NGINX నుండి ఆధునిక అనువర్తనాలను అభివృద్ధి చేయడానికి సూత్రాలు. 1 వ భాగము

హలో ఫ్రెండ్స్. కోర్సు ప్రారంభం కోసం ఎదురుచూస్తూ "PHPలో బ్యాకెండ్ డెవలపర్", మేము సాంప్రదాయకంగా ఉపయోగకరమైన మెటీరియల్ యొక్క అనువాదాన్ని మీతో పంచుకుంటాము.

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

NGINX నుండి ఆధునిక అనువర్తనాలను అభివృద్ధి చేయడానికి సూత్రాలు. 1 వ భాగము

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

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

NGINX నుండి ఆధునిక అనువర్తనాలను అభివృద్ధి చేయడానికి సూత్రాలు. 1 వ భాగము

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

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

ఈ సూత్రాలను వర్తింపజేయడం ద్వారా, మీరు సాఫ్ట్‌వేర్ డెవలప్‌మెంట్‌లోని తాజా ట్రెండ్‌ల ప్రయోజనాన్ని పొందగలుగుతారు DevOps అప్లికేషన్ అభివృద్ధి మరియు డెలివరీకి, కంటైనర్ల ఉపయోగం (ఉదాహరణకు, డాకర్) మరియు కంటైనర్ ఆర్కెస్ట్రేషన్ ఫ్రేమ్‌వర్క్‌లు (ఉదాహరణకు, Kubernetes), మైక్రోసర్వీస్‌ల ఉపయోగం (మైక్రో సర్వీస్ ఆర్కిటెక్చర్‌తో సహా వికీపీడియా и నెట్వర్క్ కమ్యూనికేషన్ ఆర్కిటెక్చర్ మైక్రోసర్వీస్ అప్లికేషన్ల కోసం.

ఆధునిక యాప్ అంటే ఏమిటి?

ఆధునిక అప్లికేషన్లు? ఆధునిక స్టాక్? సరిగ్గా "ఆధునిక" అంటే ఏమిటి?

చాలా మంది డెవలపర్‌లు ఆధునిక అప్లికేషన్‌ను కలిగి ఉన్న దాని గురించి ప్రాథమిక అవగాహన మాత్రమే కలిగి ఉన్నారు, కాబట్టి ఈ భావనను స్పష్టంగా నిర్వచించడం అవసరం.

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

అభ్యర్థించిన డేటా మరియు సేవలను యాక్సెస్ చేయడానికి ఆధునిక అప్లికేషన్ APIని అందిస్తుంది. API మారకుండా మరియు స్థిరంగా ఉండాలి మరియు నిర్దిష్ట క్లయింట్ నుండి నిర్దిష్ట అభ్యర్థన కోసం ప్రత్యేకంగా వ్రాయబడదు. API HTTP(S)లో అందుబాటులో ఉంది మరియు GUI లేదా CLIలో కనిపించే అన్ని కార్యాచరణలకు యాక్సెస్‌ను అందిస్తుంది.

డేటా తప్పనిసరిగా JSON వంటి ఉమ్మడి, ఇంటర్‌ఆపరబుల్ ఫార్మాట్‌లో అందుబాటులో ఉండాలి. API వస్తువులు మరియు సేవలను స్పష్టమైన, వ్యవస్థీకృత రూపంలో బహిర్గతం చేస్తుంది; ఉదాహరణకు, RESTful API లేదా GraphQL మంచి ఇంటర్‌ఫేస్‌ను అందిస్తాయి.

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

ఈ రకమైన స్టాక్ యొక్క జనాదరణ పొందిన సంస్కరణలు ఆధారంగా ఉంటాయి జావా, పైథాన్, నోడ్, రూబీ, PHP и Go. మైక్రోసర్వీస్ ఆర్కిటెక్చర్ వికీపీడియా పేర్కొన్న ప్రతి భాషలో అమలు చేయబడిన ఆధునిక స్టాక్ యొక్క ఉదాహరణను సూచిస్తుంది.

దయచేసి మేము పూర్తిగా మైక్రోసర్వీస్ విధానాన్ని సూచించడం లేదని గమనించండి. మీలో చాలా మంది పరిణామం చెందాల్సిన ఏకశిలాలతో పని చేస్తున్నారు, మరికొందరు మైక్రోసర్వీస్ అప్లికేషన్‌లుగా విస్తరిస్తున్న మరియు అభివృద్ధి చెందుతున్న SOA అప్లికేషన్‌లతో వ్యవహరిస్తున్నారు. మరికొందరు సర్వర్‌లెస్ అప్లికేషన్‌ల వైపు వెళుతున్నారు మరియు కొందరు పైన పేర్కొన్న వాటి కలయికలను అమలు చేస్తున్నారు. ఈ ఆర్టికల్‌లో వివరించిన సూత్రాలు కొన్ని చిన్న మార్పులతో ఈ ప్రతి సిస్టమ్‌కు వర్తిస్తాయి.

సూత్రాలు

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

సూత్రాలలో ఒకటి “చిన్న అనువర్తనాలను రూపొందించండి”, దానిని పిలుద్దాం చిన్నతనం యొక్క సూత్రం. చాలా కదిలే భాగాలను కలిగి ఉన్న చాలా క్లిష్టమైన అప్లికేషన్లు ఉన్నాయి. ప్రతిగా, చిన్న, వివిక్త భాగాల నుండి ఒక అప్లికేషన్‌ను రూపొందించడం ద్వారా డిజైన్ చేయడం, నిర్వహించడం మరియు మొత్తం ఉపయోగించడం సులభం అవుతుంది. (మేము "సులభతరం చేస్తుంది" అని చెప్పామని మరియు "సులభతరం చేస్తుంది" అని కాదు).

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

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

మీరు అనువర్తనాన్ని రూపొందించేటప్పుడు మరియు అమలు చేసేటప్పుడు ఈ సూత్రాలను దృష్టిలో ఉంచుకుంటే, మీ ఉత్పత్తి యొక్క అభివృద్ధి మరియు డెలివరీలో మీకు ప్రత్యేక ప్రయోజనం ఉంటుంది.

ఈ మూడు సూత్రాలను మరింత వివరంగా పరిశీలిద్దాం.

చిన్నతనం యొక్క సూత్రం

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

NGINX నుండి ఆధునిక అనువర్తనాలను అభివృద్ధి చేయడానికి సూత్రాలు. 1 వ భాగము

కింది కారణాల వల్ల అప్లికేషన్‌లు కుళ్ళిపోయాయి:

  • డెవలపర్‌లపై అభిజ్ఞా భారాన్ని తగ్గించడం;
  • పరీక్ష యొక్క త్వరణం మరియు సరళీకరణ;
  • అప్లికేషన్‌లో మార్పులను వేగంగా డెలివరీ చేయడం.


డెవలపర్‌లపై అభిజ్ఞా భారాన్ని తగ్గించడానికి అనేక మార్గాలు ఉన్నాయి మరియు ఇక్కడే చిన్నతనం యొక్క సూత్రం అమలులోకి వస్తుంది.

కాబట్టి, అభిజ్ఞా భారాన్ని తగ్గించడానికి మూడు మార్గాలు:

  1. కొత్త ఫీచర్‌ని డెవలప్ చేసేటప్పుడు వారు పరిగణించాల్సిన టైమ్ ఫ్రేమ్‌ని తగ్గించండి - తక్కువ టైమ్ ఫ్రేమ్, తక్కువ కాగ్నిటివ్ లోడ్.
  2. ఒక సమయంలో పని చేస్తున్న కోడ్ మొత్తాన్ని తగ్గించండి - తక్కువ కోడ్ - తక్కువ లోడ్.
  3. మీ అప్లికేషన్‌లో పెరుగుతున్న మార్పులు చేసే ప్రక్రియను సులభతరం చేయండి.

తగ్గిన అభివృద్ధి సమయ ఫ్రేమ్‌లు

మెథడాలజీ ఉన్న సమయానికి తిరిగి వెళ్దాం waterfall డెవలప్‌మెంట్ ప్రాసెస్‌కి ప్రమాణం, మరియు అప్లికేషన్‌ను డెవలప్ చేయడానికి లేదా అప్‌డేట్ చేయడానికి ఆరు నెలల నుండి రెండు సంవత్సరాల కాల ఫ్రేమ్‌లు సాధారణ అభ్యాసం. సాధారణంగా, ఇంజనీర్లు మొదట ఉత్పత్తి అవసరాలు (PRD), సిస్టమ్ రిఫరెన్స్ డాక్యుమెంట్ (SRD), ఆర్కిటెక్చర్ ప్లాన్ వంటి సంబంధిత డాక్యుమెంట్‌లను చదివి, ఈ విషయాలన్నింటినీ కలిపి ఒక కాగ్నిటివ్ మోడల్‌లో చేర్చడం ప్రారంభిస్తారు. అవసరాలు మరియు అందువల్ల నిర్మాణం మారినందున, అభిజ్ఞా నమూనాకు సంబంధించిన నవీకరణల గురించి మొత్తం బృందానికి తెలియజేయడానికి గణనీయమైన ప్రయత్నాలు చేయాల్సి వచ్చింది. చెత్త సందర్భంలో, ఈ విధానం కేవలం పనిని స్తంభింపజేస్తుంది.

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

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

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

చిన్న కోడ్‌బేస్‌లు

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

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

ఇంజనీర్లపై అభిజ్ఞా భారాన్ని తగ్గించడానికి ఒక ప్రభావవంతమైన మార్గం మైక్రోసర్వీస్ ఆర్కిటెక్చర్‌కు వెళ్లడం. మైక్రోసర్వీస్ విధానంలో, ప్రతి సేవ ఒక సెట్ ఫంక్షన్‌పై దృష్టి పెడుతుంది; సేవ యొక్క అర్థం సాధారణంగా నిర్వచించబడింది మరియు అర్థమయ్యేలా ఉంటుంది. సేవ యొక్క సరిహద్దులు కూడా స్పష్టంగా ఉన్నాయి - సేవతో కమ్యూనికేషన్ APIని ఉపయోగించి నిర్వహించబడుతుందని గుర్తుంచుకోండి, కాబట్టి ఒక సేవ ద్వారా ఉత్పత్తి చేయబడిన డేటా సులభంగా మరొకదానికి బదిలీ చేయబడుతుంది.

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

చిన్న చిన్న మార్పులు

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

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

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

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

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

మొదటి భాగం ముగింపు.

మేము అనువాదం యొక్క రెండవ భాగాన్ని త్వరలో ప్రచురిస్తాము, కానీ ఇప్పుడు మేము మీ వ్యాఖ్యల కోసం వేచి ఉన్నాము మరియు మిమ్మల్ని ఆహ్వానిస్తున్నాము ఓపెన్ డే, ఈరోజు 20.00 గంటలకు జరుగుతుంది.

మూలం: www.habr.com

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