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

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

ከ 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

አስተያየት ያክሉ