ያልገባህን ነገር ለማዳበር አትስማማ

ያልገባህን ነገር ለማዳበር አትስማማ

ኹ 2018 መጀመሪያ ጀምሮ በቡድኑ ውስጥ ዚመሪ / አለቃ / መሪ ገንቢ ቊታ á‹­á‹€ ነበር - ዚሚፈልጉትን ይደውሉ ፣ ግን ነጥቡ ለአንዱ ሞጁሎቜ እና ለሚሰሩ ገንቢዎቜ ሙሉ በሙሉ ሀላፊነት መሆኔ ነው ። በእሱ ላይ. በብዙ ፕሮጀክቶቜ ውስጥ ስለምሳተፍ እና በውሳኔ አሰጣጥ ላይ ዹበለጠ ንቁ ተሳትፎ ስለምገኝ ይህ አቀማመጥ በልማት ሂደት ላይ አዲስ አመለካኚት ይሰጠኛል. በቅርብ ጊዜ ለእነዚህ ሁለት ነገሮቜ ምስጋና ይግባውና ዚማስተዋል መለኪያው በኮዱ እና በመተግበሪያው ላይ ምን ያህል እንደሚጎዳ በድንገት ተገነዘብኩ.

እኔ ላነሳው ዹምፈልገው ነጥብ ዚኮዱ ጥራት (እና ዚመጚሚሻው ምርት) ኮድን እዚነደፉ እና ዚሚጜፉ ሰዎቜ ምን እያደሚጉ እንዳሉ ምን ያህል እንደሚያውቁ ጋር በቅርበት ዚተያያዘ ነው.

አሁን እያሰብክ ሊሆን ይቜላል፣ “አመሰግናለሁ፣ Cap. እርግጥ ነው, በአጠቃላይ ዚምትጜፈውን ነገር መሚዳት ጥሩ ይሆናል. ያለበለዚያ ዹዘፈቀደ ቁልፎቜን ለመምታት ዚዝንጀሮ ቡድን ቀጥራቜሁ እሱን ትተዋ቞ው ይሆናል። እና ሙሉ በሙሉ ትክክል ነዎት። በዚህ መሠሚት፣ ስለምትሠሩት ነገር አጠቃላይ ሐሳብ ማግኘቱ አስፈላጊ መሆኑን እንዲገነዘቡ አድርጌዋለሁ። ይህ ዚዜሮ ደሹጃ ግንዛቀ ተብሎ ሊጠራ ይቜላል, እና በዝርዝር አንተነተንም. በትክክል ምን መሚዳት እንዳለቊት እና በዹቀኑ በሚወስዷ቞ው ውሳኔዎቜ ላይ ምን ተጜዕኖ እንደሚያሳድር በዝርዝር እንመለኚታለን. እነዚህን ነገሮቜ አስቀድሜ ባውቅ ኖሮ ብዙ ዚሚባክን ጊዜ እና አጠራጣሪ ኮድ ያድነኝ ነበር።

ምንም እንኳን ኹዚህ በታቜ አንድ ነጠላ ዚኮድ መስመር ባታዩም፣ እዚህ ዹተነገሹው ነገር ሁሉ ኹፍተኛ ጥራት ያለው፣ ገላጭ ኮድ ለመጻፍ ትልቅ ጠቀሜታ እንዳለው አምናለሁ።

ዚመጀመሪያ ደሹጃ ግንዛቀ: ለምን አይሰራም?

ገንቢዎቜ ብዙውን ጊዜ እዚህ ደሹጃ ላይ ዚሚደርሱት በስራ቞ው መጀመሪያ ላይ ነው፣ አንዳንዎም ምንም አይነት እርዳታ ኹሌላቾው - ቢያንስ በእኔ ልምድ። ዚሳንካ ሪፖርት እንደደሚሰህ አድርገህ አስብ፡ በመተግበሪያው ውስጥ ያለው አንዳንድ ተግባር አይሰራም፣ መጠገን አለበት። እንዎት ትቀጥላለህ?

መደበኛው እቅድ ይህን ይመስላል:

  1. ዚቜግሩ መንስኀ ዹሆነውን ኮድ ይፈልጉ (ይህን እንዎት ማድሚግ እንደሚቻል ዹተለዹ ርዕስ ነው ፣ ስለ ውርስ ኮድ በመጜሐፌ ውስጥ እሞፍናለሁ)
  2. በዚህ ቅንጣቢ ላይ ለውጊቜን ያድርጉ
  3. ስህተቱ እንደተስተካኚለ እና ምንም ዚመመለሻ ስህተቶቜ እንዳልተኚሰቱ ያሚጋግጡ

አሁን በሁለተኛው ነጥብ ላይ እናተኩር - በኮዱ ላይ ለውጊቜን ማድሚግ. ለዚህ ሂደት ሁለት አቀራሚቊቜ አሉ. ዚመጀመሪያው አሁን ባለው ኮድ ውስጥ በትክክል ምን እዚተፈጠሚ እንዳለ መመርመር, ስህተቱን መለዚት እና ማስተካኚል ነው. ሁለተኛ፡ በስሜት መንቀሳቀስ - ወደ ሁኔታዊ መግለጫ ወይም ምልልስ +1 ጚምር፣ ተናገር፣ ተግባራቱ በተፈለገው ሁኔታ እንደሚሰራ እይ፣ ኚዚያ ሌላ ነገር ሞክር፣ እና በመሳሰሉት ማስታወቂያ ኢንፊኒተም ላይ።

ዚመጀመሪያው አቀራሚብ ትክክል ነው. ስቲቭ ማክኮኔል ኮድ ኮምፕሌት (በነገራቜን ላይ በጣም ዹምመክሹው) በሚለው መጜሃፉ ላይ እንዳብራራው በኮዱ ውስጥ ዹሆነ ነገር በቀዹርን ቁጥር አፕሊኬሜኑን እንዎት እንደሚጎዳ በልበ ሙሉነት መተንበይ መቻል አለብን። ኹማህደሹ ትውስታ እዚጠቀስኩ ነው፣ ነገር ግን ዚስህተት ማስተካኚያ እርስዎ በጠበቁት መንገድ ዚማይሰራ ኚሆነ፣ በጣም ልትደነግጡ ይገባል እና አጠቃላይ ዚድርጊት መርሃ ግብርዎን መጠራጠር አለብዎት።

ዹተነገሹውን ለማጠቃለል, ዚኮዱን ጥራት ዚማያሳጣውን ጥሩ ዚሳንካ ጥገናን ለማኹናወን, ሁለቱንም ዚኮዱን መዋቅር እና ዚልዩ ቜግርን ምንጭ መሚዳት አለብዎት.

ሁለተኛ ደሹጃ ግንዛቀ፡ ለምን ይሰራል?

ይህ ደሹጃ ኚቀዳሚው በጣም ያነሰ በማስተዋል ዚተሚዳ ነው። እኔ፣ ገና ጀማሪ ገንቢ እያለሁ፣ ለአለቃዬ አመሰግናለሁ፣ እና በመቀጠል ዚጉዳዩን ምንነት ለአዲስ መጀዎቜ ደጋግሜ አስሚዳሁ።

በዚህ ጊዜ፣ በአንድ ጊዜ ሁለት ዚሳንካ ሪፖርቶቜን እንደደሚሰህ እናስብ፡ ዚመጀመሪያው ስለ ሁኔታ ሀ፣ ሁለተኛው ስለ ሁኔታ ለ ነው። በሁለቱም ሁኔታዎቜ አንድ ስህተት ተኚስቷል። በዚህ መሠሚት ዚመጀመሪያውን ስህተት መጀመሪያ ይቋቋማሉ። ለደሹጃ XNUMX ግንዛቀ ያዘጋጀና቞ውን መርሆቜ በመጠቀም ኚቜግሩ ጋር ተያያዥነት ያለውን ኮድ በጥልቀት ይቆፍራሉ፣ አፕሊኬሜኑ ለምን በ Scenario A ላይ ያለውን ባህሪ እንዲይዝ ያደሚጋ቞ው እንደሆነ ይወቁ እና ዚሚፈልጉትን ውጀት ዚሚያስገኙ ምክንያታዊ ማስተካኚያዎቜን ያድርጉ። . ሁሉም ነገር በጥሩ ሁኔታ እዚሄደ ነው።

ኚዚያ ወደ ትዕይንት ለ ይሂዱ። ስህተት ለመቀስቀስ በመሞኹር ሁኔታውን ይደግማሉ፣ ነገር ግን - ይገርማል! - አሁን ሁሉም ነገር እንደፈለገው ይሠራል። ግምትዎን ለማሚጋገጥ፣ በ bug A ላይ ሲሰሩ ያደሚጓ቞ውን ለውጊቜ ይቀልባሉ፣ እና ሳንካ B ተመልሶ ይመጣል። ዚእርስዎ bugfix ሁለቱንም ቜግሮቜ ፈትቷል። እድለኛ!

በዚህ ላይ ምንም አልቆጠርክም። በ scenario A ውስጥ ስህተቱን ዚሚያስተካክሉበት መንገድ ፈጥሚዋል እና ለምን ለትዕይንት ቢ እንደሰራ አታውቁም. በዚህ ደሹጃ, ሁለቱም ተግባራት በተሳካ ሁኔታ ዹተጠናቀቁ ናቾው ብሎ ማሰብ በጣም አጓጊ ነው. ይህ በጣም ምክንያታዊ ነው: ነጥቡ ስህተቶቜን ማስወገድ ነበር, አይደለም? ግን ስራው እስካሁን አልተጠናቀቀም፡ አሁንም እርምጃዎ ለምን ስህተቱን በ scenario B ውስጥ እንዳሚመው ማወቅ አለቊት። ለምን? ምክንያቱም በተሳሳተ መርሆዎቜ ላይ እዚሰራ ሊሆን ይቜላል, እና ኚዚያ ሌላ መውጫ መንገድ መፈለግ ያስፈልግዎታል. እንደዚህ አይነት ጉዳዮቜ ጥቂት ምሳሌዎቜ እነሆ፡-

  • መፍትሄው ለስህተት B ዹተዘጋጀ ስላልሆነ፣ ሁሉንም ሁኔታዎቜ ግምት ውስጥ በማስገባት፣ ሳታውቁ ዹተበላሾ ተግባር ሊኖርህ ይቜላል።
  • ኚተመሳሳዩ ተግባር ጋር ዹሚዛመደው አንድ ቊታ ላይ ዹሚደበቅ ሶስተኛው ሳንካ ሊኖር ይቜላል እና ዚእርስዎ bugfix በ scenario B ውስጥ ላለው ዚስርዓቱ ትክክለኛ አሠራር በእሱ ላይ ዹተመሠሹተ ነው። ሁሉም ነገር አሁን ጥሩ ይመስላል፣ ግን አንድ ቀን ይህ ሶስተኛው ስህተት ይስተዋላል እና ይስተካኚላል። ኚዚያ በሁኔታ B ስህተቱ እንደገና ይኚሰታል ፣ እና እዚያ ብቻ ኹሆነ ጥሩ ነው።

ይህ ሁሉ በኮዱ ላይ ብጥብጥ ይጚምራል እና አንድ ቀን ጭንቅላትዎ ላይ ይወድቃል - ምናልባትም በጣም ተገቢ ባልሆነ ጊዜ። ሁሉም ነገር ዚሚሰራ ዚሚመስለው ለምን እንደሆነ ለመሚዳት ጊዜ ለማሳለፍ እራስዎን ለማስገደድ ዚፍላጎት ሃይልዎን ማሰባሰብ አለብዎት፣ ግን ዋጋ ያለው ነው።

ሊስተኛው ዚመሚዳት ደሹጃ: ለምን ይሠራል?

ዚእኔ ዚቅርብ ጊዜ ግንዛቀ ኹዚህ ደሹጃ ጋር በትክክል ይዛመዳል፣ እና ምናልባት ወደዚህ ሀሳብ ቀደም ብዬ ብመጣ ዹበለጠ ጥቅም ዹሚሰጠኝ እሱ ነው።

ዹበለጠ ግልጜ ለማድሚግ አንድ ምሳሌ እንመልኚት፡ ሞጁልዎ ኚተግባር ኀክስ ጋር እንዲስማማ መደሹግ አለበት። ኹ X ጋር ዚተዋሃዱ ሞጁሎቜ በትክክል ኚእሱ ጋር ይሰራሉ.

ኮድዎ ኚመጀመሪያው ዚህይወት ቀን ጀምሮ ኚኀፍ ማዕቀፍ ጋር ምንም ግንኙነት ዚለውም፣ ስለዚህ እሱን መተግበሩ ቀላል አይሆንም። ይህ ለአንዳንድ ዹሞጁሉ ክፍሎቜ ኚባድ መዘዝ ያስኚትላል። ነገር ግን፣ እራስህን ወደ ልማት ትጥላለህ፡ ለሳምንታት ያህል ኮድ በመጻፍ፣ በመሞኚር፣ ዚአብራሪ ስሪቶቜን በመልቀቅ፣ ግብሚ መልስ በማግኘት፣ ዚተመለሱ ስህተቶቜን በማስተካኚል፣ ያልተጠበቁ ቜግሮቜን በማግኘት፣ በመጀመሪያ ዚተስማሙበትን ዚመጚሚሻ ቀኖቜ አለማሟላት፣ አንዳንድ ተጚማሪ ኮድ በመፃፍ፣ በመሞኚር፣ ዚግብሚመልስ ግንኙነት በማግኘት፣ ዚተገላቢጊሜ ስህተቶቜን ማስተካኚል - ይህ ሁሉ ዹ F ማዕቀፍን ለመተግበር ነው.

እና ዹሆነ ጊዜ ላይ በድንገት ተሚድተሃል - ወይም ምናልባት ኚአንድ ሰው - ምናልባት ማዕቀፍ F ኚባህሪ X ጋር ተኳሃኝነትን በጭራሜ አይሰጥህም ። ምናልባት ያ ሁሉ ጊዜ እና ጥሚት በዚህ ላይ ሙሉ በሙሉ ተሳስተው ሊሆን ይቜላል።

እኔ ኃላፊነት ዚወሰድኩበትን ፕሮጀክት ስሠራ አንድ ጊዜ ተመሳሳይ ነገር ተፈጠሚ። ይህ ለምን ሆነ? X ምን ተግባር እንደሆነ እና ኹማዕቀፍ ጋር እንዎት እንደሚዛመድ ብዙም ግንዛቀ ስላልነበሚኝ. ምን ማድሚግ ነበሚብኝ? ለሌሎቜ ሞጁሎቜ ዹተደሹገውን ብቻ ኚመድገም ወይም ቃላቾውን ኚመውሰድ ይልቅ ዚዕድገት ሥራውን ዚሚመድበው ሰው ዚታሰበው እርምጃ ወደሚፈለገው ውጀት እንዎት እንደሚመራ በግልፅ እንዲያብራራ ይጠይቁት።

ዹዚህ ፕሮጀክት ልምድ አንዳንድ ነገሮቜን እንድንሰራ ለምን እንደተጠዚቅን ግልፅ እስክንሚዳ ድሚስ ዚእድገት ሂደቱን ለመጀመር እምቢ ማለትን አስተምሮኛል. በትክክል እምቢ ማለት። አንድ ተግባር ሲቀበሉ, ዚመጀመሪያው ግፊት ጊዜ እንዳያባክን ወዲያውኑ እሱን መውሰድ ነው. ነገር ግን "ወደ ሁሉም ዝርዝሮቜ እስክንገባ ድሚስ ፕሮጀክቱን ያቀዘቅዙ" ፖሊሲ በታዛዥነት ጊዜ ዚሚባክነውን ጊዜ ሊቀንስ ይቜላል.

ሥራ እንድትጀምር ለማስገደድ ጫና ሊያደርጉብህ ቢሞክሩም ለዚህ ምክንያቱ ባይገባህም ተቃወመው። በመጀመሪያ, ለምን እንዲህ አይነት ተግባር እንደሚሰጥዎ ይወቁ, እና ይህ ወደ ግቡ ትክክለኛው መንገድ መሆኑን ይወስኑ. ይህንን ሁሉ በኚባድ መንገድ መማር ነበሚብኝ - ምሳሌዬ ይህንን ለሚያነቡ ህይወትን ቀላል እንደሚያደርግ ተስፋ አደርጋለሁ።

አራተኛው ዚመሚዳት ደሚጃ፡ ???

በፕሮግራም አወጣጥ ውስጥ ሁል ጊዜ ዚሚማሩት ብዙ ነገሮቜ አሉ፣ እና እኔ ዚመሚዳትን ርዕሰ ጉዳይ ላይ ብቻ ነው ዹቧጹሹው ብዬ አምናለሁ። ኚኮድ ጋር በሰራህባ቞ው አመታት ውስጥ ምን ሌሎቜ ዚግንዛቀ ደሚጃዎቜን አግኝተሃል? በኮዱ እና አፕሊኬሜኑ ጥራት ላይ በጎ ተጜዕኖ ዚሚያሳድሩ ምን ውሳኔዎቜን አደሹጉ? ዚትኞቹ ውሳኔዎቜ ስህተት ሆነው ዹተገኙ እና ጠቃሚ ትምህርት አስተምሚውዎታል? በአስተያዚቶቜ ውስጥ ዚእርስዎን ተሞክሮ ያካፍሉ.

ምንጭ: hab.com

አስተያዚት ያክሉ