ఒక వారంలో కోడ్ యొక్క 100,000 లైన్లను చదవడం మరియు సరిదిద్దడం ఎలా

ఒక వారంలో కోడ్ యొక్క 100,000 లైన్లను చదవడం మరియు సరిదిద్దడం ఎలా
ప్రారంభంలో పెద్ద మరియు పాత ప్రాజెక్ట్‌ను అర్థం చేసుకోవడం ఎల్లప్పుడూ కష్టం. వాస్తుశిల్పి అంచనా యొక్క కార్యకలాపాలలో ఆర్కిటెక్చర్ ఒకటి. సాధారణంగా మీరు పెద్ద, పాత ప్రాజెక్ట్‌లతో పని చేయాల్సి ఉంటుంది మరియు ఫలితాలు తప్పనిసరిగా ఒక వారంలో పంపిణీ చేయబడతాయి.

క్లయింట్‌కు నిజంగా ఉపయోగకరంగా ఉండే ఫలితాలను అందిస్తూనే, ఒక వారంలో 100k లేదా అంతకంటే ఎక్కువ లైన్‌ల కోడ్‌ల ప్రాజెక్ట్‌ను ఎలా మూల్యాంకనం చేయాలి.

చాలా మంది ఆర్కిటెక్ట్‌లు మరియు టెక్నికల్ లీడ్స్ ఇలాంటి ప్రాజెక్ట్ అసెస్‌మెంట్‌లను ఎదుర్కొన్నారు. ఇది సెమీ-ఫార్మల్ ప్రాసెస్ లాగా లేదా మా కంపెనీలో చేసినట్లుగా ఒక ప్రత్యేక సేవ వలె కనిపించవచ్చు, మీలో చాలా మంది దీనితో వ్యవహరించారు.

మీ రష్యన్ మాట్లాడని స్నేహితుల కోసం ఆంగ్లంలో అసలైనది ఇక్కడ ఉంది: ఒక వారంలో ఆర్కిటెక్చర్ అసెస్‌మెంట్.

మా కంపెనీ విధానం

ఇది మా కంపెనీలో ఎలా పని చేస్తుందో మరియు ఇలాంటి పరిస్థితుల్లో నేను ఎలా వ్యవహరిస్తానో నేను మీకు చెప్తాను, కానీ మీరు మీ ప్రాజెక్ట్ మరియు కంపెనీ అవసరాలకు అనుగుణంగా ఈ విధానాన్ని సులభంగా మార్చవచ్చు.

ఆర్కిటెక్చర్ అసెస్‌మెంట్‌లో రెండు రకాలు ఉన్నాయి.

ఇంటీరియర్ - మేము సాధారణంగా కంపెనీలోని ప్రాజెక్ట్‌ల కోసం దీన్ని చేస్తాము. ఏదైనా ప్రాజెక్ట్ అనేక కారణాల వల్ల నిర్మాణ అంచనాను అభ్యర్థించవచ్చు:

  1. తమ ప్రాజెక్ట్ సరైనదని మరియు ఇది అనుమానాస్పదంగా ఉందని బృందం భావిస్తోంది. మేము అలాంటి సందర్భాలను కలిగి ఉన్నాము మరియు తరచుగా అలాంటి ప్రాజెక్టులలో ప్రతిదీ ఆదర్శానికి దూరంగా ఉంటుంది.
  2. బృందం వారి ప్రాజెక్ట్ మరియు వాటి పరిష్కారాలను పరీక్షించాలనుకుంటోంది.
  3. విషయాలు చెడ్డవని జట్టుకు తెలుసు. వారు ప్రధాన సమస్యలు మరియు కారణాలను కూడా జాబితా చేయవచ్చు, కానీ ప్రాజెక్ట్‌ను మెరుగుపరచడానికి సమస్యలు మరియు సిఫార్సుల పూర్తి జాబితాను కోరుకుంటారు.

బాహ్య అంతర్గత అంచనా కంటే అధికారిక ప్రక్రియ. క్లయింట్ ఎల్లప్పుడూ ఒక సందర్భంలో మాత్రమే వస్తుంది, ప్రతిదీ చెడుగా ఉన్నప్పుడు - చాలా చెడ్డది. సాధారణంగా క్లయింట్ ప్రపంచ సమస్యలు ఉన్నాయని అర్థం చేసుకుంటాడు, కానీ కారణాలను సరిగ్గా గుర్తించలేరు మరియు వాటిని భాగాలుగా విభజించలేరు.

బాహ్య క్లయింట్ కోసం నిర్మాణాన్ని మూల్యాంకనం చేయడం అనేది మరింత క్లిష్టమైన కేసు. ప్రక్రియ మరింత అధికారికంగా ఉండాలి. ప్రాజెక్టులు ఎల్లప్పుడూ పెద్దవి మరియు పాతవి. వారికి చాలా సమస్యలు, బగ్‌లు మరియు వంకర కోడ్ ఉన్నాయి. చేసిన పనిపై నివేదిక గరిష్టంగా కొన్ని వారాలలో సిద్ధంగా ఉండాలి, ఇందులో ప్రధాన సమస్యలు మరియు మెరుగుదల కోసం సిఫార్సులు ఉంటాయి. అందువల్ల, మేము ప్రాజెక్ట్ యొక్క బాహ్య అంచనాతో వ్యవహరిస్తే, అప్పుడు అంతర్గత అంచనా కేక్ ముక్కగా ఉంటుంది. అత్యంత క్లిష్టమైన కేసును పరిశీలిద్దాం.

ఎంటర్‌ప్రైజ్ ప్రాజెక్ట్ ఆర్కిటెక్చర్ అసెస్‌మెంట్

మూల్యాంకనం చేయడానికి ఒక సాధారణ ప్రాజెక్ట్ చాలా సమస్యలతో కూడిన పెద్ద, పాత, ఎంటర్‌ప్రైజ్ ప్రాజెక్ట్. ఒక క్లయింట్ మా వద్దకు వచ్చి తన ప్రాజెక్ట్‌ను సరిచేయమని అడుగుతాడు. ఇది మంచుకొండ వంటిది, క్లయింట్ తన సమస్యల యొక్క కొనను మాత్రమే చూస్తాడు మరియు నీటి కింద (కోడ్ యొక్క లోతులో) ఏమి ఉందో తెలియదు.

కస్టమర్ ఫిర్యాదు చేయగల మరియు తెలుసుకోవలసిన సమస్యలు:

  • పనితీరు సమస్యలు
  • వినియోగ సమస్యలు
  • దీర్ఘకాలిక విస్తరణ
  • యూనిట్ మరియు ఇతర పరీక్షలు లేకపోవడం

క్లయింట్‌కు ఎక్కువగా తెలియని సమస్యలు, కానీ అవి ప్రాజెక్ట్‌లో ఉండవచ్చు:

  • భద్రతా సమస్యలు
  • డిజైన్ సమస్యలు
  • తప్పు వాస్తు
  • అల్గోరిథమిక్ లోపాలు
  • తగని సాంకేతికతలు
  • సాంకేతిక రుణం
  • తప్పు అభివృద్ధి ప్రక్రియ

అధికారిక నిర్మాణ సమీక్ష ప్రక్రియ

ఇది మేము కంపెనీగా అనుసరించే అధికారిక ప్రక్రియ, కానీ మీరు మీ కంపెనీ మరియు ప్రాజెక్ట్ ఆధారంగా దీన్ని అనుకూలీకరించవచ్చు.

క్లయింట్ నుండి అభ్యర్థన

క్లయింట్ ప్రస్తుత ప్రాజెక్ట్ యొక్క నిర్మాణాన్ని అంచనా వేయమని అడుగుతాడు. మా వైపు బాధ్యతగల వ్యక్తి ప్రాజెక్ట్ గురించి ప్రాథమిక సమాచారాన్ని సేకరిస్తాడు మరియు అవసరమైన నిపుణులను ఎంపిక చేస్తాడు. ప్రాజెక్ట్ ఆధారంగా, ఇవి వేర్వేరు నిపుణులు కావచ్చు.

సొల్యూషన్ ఆర్కిటెక్ట్ - అంచనా మరియు సమన్వయానికి బాధ్యత వహించే ప్రధాన వ్యక్తి (మరియు తరచుగా ఒకే ఒక్కడు).
నిర్దిష్ట నిపుణులను స్టాక్ చేయండి – .నెట్, జావా, పైథాన్ మరియు ప్రాజెక్ట్ మరియు సాంకేతికతలను బట్టి ఇతర సాంకేతిక నిపుణులు
క్లౌడ్ నిపుణులు - ఇవి అజూర్, GCP లేదా AWS క్లౌడ్ ఆర్కిటెక్ట్‌లు కావచ్చు.
ఇన్ఫ్రాస్ట్రక్చర్ – DevOps, సిస్టమ్ అడ్మినిస్ట్రేటర్, మొదలైనవి.
ఇతర నిపుణులు - పెద్ద డేటా, మెషిన్ లెర్నింగ్, పెర్ఫార్మెన్స్ ఇంజనీర్, సెక్యూరిటీ ఎక్స్‌పర్ట్, QA లీడ్ వంటివి.

ప్రాజెక్ట్ గురించి సమాచారాన్ని సేకరిస్తోంది

మీరు ప్రాజెక్ట్ గురించి సాధ్యమైనంత ఎక్కువ సమాచారాన్ని సేకరించాలి. మీరు పరిస్థితిని బట్టి వివిధ పద్ధతులను ఉపయోగించవచ్చు:

  • ప్రశ్నాపత్రాలు మరియు మెయిల్ ద్వారా కమ్యూనికేషన్ యొక్క ఇతర పద్ధతులు. అత్యంత అసమర్థమైన మార్గం.
  • ఆన్‌లైన్ సమావేశాలు.
  • సమాచార మార్పిడి కోసం ప్రత్యేక సాధనాలు: Google doc, Confluence, repositories మొదలైనవి.
  • సైట్‌లో "లైవ్" సమావేశాలు. అత్యంత ప్రభావవంతమైన మరియు అత్యంత ఖరీదైన మార్గం.

మీరు క్లయింట్ నుండి ఏమి పొందాలి?

ప్రాథమిక సమాచారం. ప్రాజెక్ట్ దేని గురించి? దాని ప్రయోజనం మరియు విలువ. భవిష్యత్తు కోసం ప్రధాన లక్ష్యాలు మరియు ప్రణాళికలు. వ్యాపార లక్ష్యాలు మరియు వ్యూహాలు. ప్రధాన సమస్యలు మరియు ఆశించిన ఫలితాలు.

ప్రాజెక్ట్ సమాచారం. టెక్నాలజీ స్టాక్, ఫ్రేమ్‌వర్క్‌లు, ప్రోగ్రామింగ్ భాషలు. ఆన్-ప్రాంగణంలో లేదా క్లౌడ్ విస్తరణ. ప్రాజెక్ట్ క్లౌడ్‌లో ఉంటే, ఏ సేవలు ఉపయోగించబడతాయి. ఏ నిర్మాణ మరియు డిజైన్ నమూనాలు ఉపయోగించబడ్డాయి.

నాన్-ఫంక్షనల్ అవసరాలు. పనితీరు, లభ్యత మరియు సిస్టమ్ యొక్క సౌలభ్యానికి సంబంధించిన అన్ని అవసరాలు. భద్రతా అవసరాలు మొదలైనవి.

ప్రాథమిక వినియోగ సందర్భాలు మరియు డేటా ప్రవాహాలు.

సోర్స్ కోడ్ యాక్సెస్. అతి ముఖ్యమైన భాగం! ప్రాజెక్ట్‌ను ఎలా నిర్మించాలనే దానిపై మీరు ఖచ్చితంగా రిపోజిటరీలు మరియు డాక్యుమెంటేషన్‌కు ప్రాప్యత పొందాలి.

మౌలిక సదుపాయాలకు ప్రాప్యత. లైవ్ సిస్టమ్‌తో పని చేయడానికి స్టేజ్ లేదా ప్రొడక్షన్ ఇన్‌ఫ్రాస్ట్రక్చర్‌ని యాక్సెస్ చేయడం మంచిది. క్లయింట్‌కు మౌలిక సదుపాయాలు మరియు పనితీరును పర్యవేక్షించడానికి సాధనాలు ఉంటే అది గొప్ప విజయం. మేము ఈ సాధనాల గురించి తదుపరి విభాగంలో మాట్లాడుతాము.

డాక్యుమెంటేషన్. క్లయింట్ వద్ద డాక్యుమెంటేషన్ ఉంటే, ఇది మంచి ప్రారంభం. ఇది పాతది కావచ్చు, కానీ ఇది ఇప్పటికీ మంచి ప్రారంభం. డాక్యుమెంటేషన్‌ను ఎప్పుడూ విశ్వసించవద్దు - క్లయింట్‌తో, నిజమైన మౌలిక సదుపాయాలపై మరియు సోర్స్ కోడ్‌లో దాన్ని పరీక్షించండి.

ఆర్కిటెక్చర్ మూల్యాంకన ప్రక్రియ

ఇంత తక్కువ సమయంలో ఇంత పెద్ద మొత్తంలో సమాచారాన్ని ఎలా ప్రాసెస్ చేయవచ్చు? అన్నింటిలో మొదటిది, పనిని సమాంతరంగా చేయండి.

DevOps మౌలిక సదుపాయాలను చూడాలి. కోడ్‌లోకి టెక్ లీడ్. పనితీరు కొలమానాలను వీక్షించడానికి పనితీరు ఇంజనీర్. డేటాబేస్ స్పెషలిస్ట్ డేటా స్ట్రక్చర్‌లను లోతుగా తీయాలి.

కానీ మీకు చాలా వనరులు ఉన్నప్పుడు ఇది ఆదర్శవంతమైన సందర్భం. సాధారణంగా, ఒక ప్రాజెక్ట్‌ను ఒకటి నుండి ముగ్గురు వ్యక్తులు అంచనా వేస్తారు. మీరు అంచనాను మీరే నిర్వహించవచ్చు, ప్రాజెక్ట్ యొక్క అన్ని రంగాలలో మీకు సరైన జ్ఞానం మరియు అనుభవం ఉన్నట్లయితే ఇది తరచుగా జరుగుతుంది. ఈ సందర్భంలో, మీరు సాధ్యమైనంతవరకు అన్ని ప్రక్రియలను ఆటోమేట్ చేయాలి.

దురదృష్టవశాత్తు, మీరు డాక్యుమెంటేషన్‌ను మాన్యువల్‌గా చదవవలసి ఉంటుంది. సరైన అనుభవంతో, మీరు డాక్యుమెంటేషన్ నాణ్యతను త్వరగా అర్థం చేసుకోవచ్చు. ఏది నిజం మరియు ఏది స్పష్టంగా వాస్తవంతో ఏకీభవించదు. కొన్నిసార్లు మీరు డాక్యుమెంటేషన్‌లో ఆర్కిటెక్చర్‌ని చూడవచ్చు, అది నిజ జీవితంలో ఎప్పటికీ పని చేయదు. ప్రాజెక్ట్‌లో వాస్తవానికి ఇది ఎలా జరిగిందనే దాని గురించి మీరు ఆలోచించడానికి ఇది ఒక ట్రిగ్గర్.

ప్రాజెక్ట్ మూల్యాంకనాన్ని ఆటోమేట్ చేయడానికి ఉపయోగకరమైన సాధనాలు

కోడ్ మూల్యాంకనం ఒక సాధారణ వ్యాయామం. మీరు డిజైన్, పనితీరు మరియు భద్రతా సమస్యలను చూపే స్టాటిక్ కోడ్ ఎనలైజర్‌లను ఉపయోగించవచ్చు. వాటిలో కొన్ని ఇక్కడ ఉన్నాయి:

నిర్మాణం 101 వాస్తుశిల్పికి గొప్ప సాధనం. ఇది మీకు పెద్ద చిత్రాన్ని చూపుతుంది, మాడ్యూల్స్ మరియు రీఫ్యాక్టరింగ్ కోసం సంభావ్య ప్రాంతాల మధ్య ఆధారపడటం. అన్ని మంచి సాధనాల మాదిరిగానే, దీనికి మంచి డబ్బు ఖర్చవుతుంది, కానీ మీరు 30-రోజుల ట్రయల్ వెర్షన్‌ను ఉపయోగించుకోవచ్చు.

సోనార్ క్యూబ్ - మంచి పాత సాధనం. స్టాటిక్ కోడ్ విశ్లేషణ కోసం ఒక సాధనం. 20 కంటే ఎక్కువ ప్రోగ్రామింగ్ భాషలకు చెడు కోడ్, బగ్‌లు మరియు భద్రతా సమస్యలను గుర్తించడానికి మిమ్మల్ని అనుమతిస్తుంది.

అన్ని క్లౌడ్ ప్రొవైడర్‌లు మౌలిక సదుపాయాల పర్యవేక్షణ సాధనాలను కలిగి ఉన్నారు. ఇది ఖర్చు మరియు పనితీరు పరంగా మీ మౌలిక సదుపాయాల ప్రభావాన్ని సరిగ్గా అంచనా వేయడానికి మిమ్మల్ని అనుమతిస్తుంది. AWS కోసం ఇది విశ్వసనీయ సలహాదారు. అజూర్‌కి ఇది సులభం అజూర్ సలహాదారు.

అదనపు పనితీరు పర్యవేక్షణ మరియు లాగింగ్ అన్ని స్థాయిలలో పనితీరు సమస్యలను కనుగొనడంలో సహాయపడతాయి. అసమర్థమైన ప్రశ్నలతో డేటాబేస్ నుండి ప్రారంభించి, బ్యాకెండ్ మరియు ఫ్రంటెండ్‌తో ముగుస్తుంది. క్లయింట్ ఇంతకు ముందు ఈ సాధనాలను ఇన్‌స్టాల్ చేయనప్పటికీ, పనితీరు సమస్యలను గుర్తించడానికి మీరు వాటిని ఇప్పటికే ఉన్న సిస్టమ్‌లో చాలా త్వరగా ఇంటిగ్రేట్ చేయవచ్చు.

ఎప్పటిలాగే, మంచి సాధనాలు విలువైనవి. నేను కొన్ని చెల్లింపు సాధనాలను సిఫార్సు చేయగలను. అయితే మీరు ఓపెన్ సోర్స్‌ని ఉపయోగించవచ్చు కానీ మీకు ఎక్కువ సమయం పడుతుంది. మరియు ఇది నిర్మాణ అంచనా ప్రక్రియలో కాకుండా ముందుగా చేయాలి.

న్యూ రెలిక్ - అప్లికేషన్ పనితీరును అంచనా వేయడానికి ఒక సాధనం
డేటాడాగ్ - క్లౌడ్ సిస్టమ్ పర్యవేక్షణ సేవ

భద్రతా పరీక్ష కోసం అనేక సాధనాలు అందుబాటులో ఉన్నాయి. ఈసారి నేను మీకు ఉచిత సిస్టమ్ స్కానింగ్ సాధనాన్ని సిఫార్సు చేస్తాను.

OWASP ZAP - భద్రతా ప్రమాణాలకు అనుగుణంగా వెబ్ అప్లికేషన్‌లను స్కాన్ చేయడానికి ఒక సాధనం.

అన్నింటినీ కలిపి మొత్తంగా చేర్చుదాం.

నివేదికను సిద్ధం చేస్తోంది

మీరు క్లయింట్ నుండి సేకరించిన డేటాతో మీ నివేదికను ప్రారంభించండి. ప్రాజెక్ట్ లక్ష్యాలు, పరిమితులు, నాన్-ఫంక్షనల్ అవసరాలను వివరించండి. దీని తర్వాత, మొత్తం ఇన్‌పుట్ డేటా పేర్కొనబడాలి: సోర్స్ కోడ్, డాక్యుమెంటేషన్, ఇన్‌ఫ్రాస్ట్రక్చర్.

తరువాత ప్రక్రియ. మీరు మాన్యువల్‌గా లేదా స్వయంచాలక సాధనాలను ఉపయోగించి ఏవైనా సమస్యలను కనుగొనండి. అప్లికేషన్‌ల విభాగంలో చివరిలో స్వయంచాలకంగా రూపొందించబడిన పెద్ద నివేదికలను ఉంచండి. కనుగొనబడిన సమస్యలకు సంక్షిప్త మరియు సంక్షిప్త ఆధారాలు ఉండాలి.
లోపం, హెచ్చరిక, సమాచార స్కేల్‌లో కనుగొనబడిన సమస్యలకు ప్రాధాన్యత ఇవ్వండి. మీరు మీ స్వంత స్థాయిని ఎంచుకోవచ్చు, కానీ ఇది సాధారణంగా ఆమోదించబడినది.

నిజమైన ఆర్కిటెక్ట్‌గా, కనుగొనబడిన సమస్యలను సరిచేయడానికి సిఫార్సులను అందించడం మీ బాధ్యత. కస్టమర్ స్వీకరించే మెరుగుదలలు మరియు వ్యాపార విలువను వివరించండి. నుండి వ్యాపార విలువను ఎలా చూపించాలి ఆర్కిటెక్చర్ రీఫ్యాక్టరింగ్ మేము ముందుగా చర్చించాము.

చిన్న పునరావృతాలతో రోడ్‌మ్యాప్‌ను సిద్ధం చేయండి. ప్రతి పునరావృతం పూర్తి చేయడానికి సమయం, వివరణ, మెరుగుదల కోసం అవసరమైన వనరుల మొత్తం, సాంకేతిక విలువ మరియు వ్యాపార విలువను కలిగి ఉండాలి.

మేము నిర్మాణ అంచనాను పూర్తి చేస్తాము మరియు క్లయింట్‌కు నివేదికను అందిస్తాము

కేవలం నివేదికను ఎప్పుడూ మెయిల్ చేయవద్దు. ఇది అస్సలు చదవకపోవచ్చు లేదా సరైన వివరణ లేకుండా చదివి అర్థం చేసుకోకపోవచ్చు. సంక్షిప్తంగా, ప్రత్యక్ష కమ్యూనికేషన్ వ్యక్తుల మధ్య అపార్థాలను తొలగించడంలో సహాయపడుతుంది. మీరు క్లయింట్‌తో సమావేశాన్ని షెడ్యూల్ చేయాలి మరియు కనుగొనబడిన సమస్యల గురించి మాట్లాడాలి, చాలా ముఖ్యమైన వాటిపై దృష్టి సారించాలి. క్లయింట్‌కు కూడా తెలియని సమస్యలపై అతని దృష్టిని ఆకర్షించడం విలువైనదే. భద్రతా సమస్యలు మరియు అవి వ్యాపారాన్ని ఎలా ప్రభావితం చేస్తాయో వివరించడం వంటివి. మెరుగుదలలతో మీ రోడ్‌మ్యాప్‌ను చూపండి మరియు క్లయింట్‌కు మరింత అనుకూలంగా ఉండే విభిన్న ఎంపికలను చర్చించండి. ఇది సమయం, వనరులు, పని మొత్తం కావచ్చు.

మీ సమావేశం యొక్క సారాంశంగా, మీ నివేదికను క్లయింట్‌కు పంపండి.

ముగింపులో

ఆర్కిటెక్చర్ మూల్యాంకనం ఒక క్లిష్టమైన ప్రక్రియ. సరిగ్గా అంచనా వేయడానికి, మీకు తగినంత అనుభవం మరియు జ్ఞానం ఉండాలి.

క్లయింట్‌కు మరియు అతని వ్యాపారానికి ఉపయోగకరమైన ఫలితాలను కేవలం ఒక వారంలో అందించడం సాధ్యమవుతుంది. మీరు ఒంటరిగా చేసినా.

నా అనుభవం ఆధారంగా, మధ్యలో చాలా మెరుగుదలలు డౌన్‌లోడ్ చేయబడ్డాయి మరియు కొన్నిసార్లు ప్రారంభించబడలేదు. తమకు తాముగా బంగారు సగటును ఎంచుకున్న వారు మరియు కనీస కార్మిక వ్యయాలతో వ్యాపారానికి అత్యంత ఉపయోగకరమైన మెరుగుదలలలో కొంత భాగాన్ని మాత్రమే చేసిన వారు తమ ఉత్పత్తి నాణ్యతను గణనీయంగా మెరుగుపరిచారు. ఏమీ చేయని వారు రెండేళ్ల తర్వాత ప్రాజెక్టును పూర్తిగా మూసివేయవచ్చు.

కనిష్ట ధర కోసం క్లయింట్‌కు గరిష్ట మెరుగుదలలను చూపడం మీ లక్ష్యం.

విభాగం నుండి ఇతర కథనాలు నిర్మాణం మీరు మీ తీరిక సమయంలో చదువుకోవచ్చు.

మీరు క్లీన్ కోడ్ మరియు మంచి నిర్మాణ నిర్ణయాలను కోరుకుంటున్నాను.

మా ఫేస్ బుక్ గ్రూప్ - సాఫ్ట్‌వేర్ ఆర్కిటెక్చర్ అండ్ డెవలప్‌మెంట్.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి