በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)

በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)
እነሱ እንደሚሉት ፣ በአሮጌው ኮድዎ ካላፈሩ ፣ እንደ ፕሮግራመር እያደጉ አይደሉም - እና በዚህ ሀሳብ እስማማለሁ። ለደስታ ፕሮግራሚንግ የጀመርኩት ከ40 ዓመታት በፊት ነው፣ እና በፕሮፌሽናልነት ከ30 ዓመታት በፊት፣ ስለዚህ ብዙ ስህተቶች አሉኝ። በጣም ብዙ. የኮምፒውተር ሳይንስ ፕሮፌሰር እንደመሆኔ፣ ተማሪዎቼ ከስህተታቸው እንዲማሩ አስተምራቸዋለሁ - የነሱ፣ የእኔ እና ሌሎች። ጨዋነቴን ላለማጣት ስህተቶቼን የምናወራበት ጊዜ ይመስለኛል። ለአንድ ሰው ጠቃሚ እንደሚሆኑ ተስፋ አደርጋለሁ.

ሦስተኛው ቦታ - የማይክሮሶፍት ሲ ማጠናከሪያ

የትምህርት ቤት አስተማሪዬ ሮሚዮ እና ጁልዬት እንደ አሳዛኝ ነገር ሊቆጠሩ እንደማይችሉ ያምን ነበር ምክንያቱም ገፀ ባህሪያቱ ምንም አይነት አሳዛኝ ጥፋተኝነት ስለሌላቸው - በአሥራዎቹ ዕድሜ ውስጥ የሚገኙ ወጣቶች እንደሚገባቸው ሞኝነት ያሳዩ ነበር. በዚያን ጊዜ ከእሱ ጋር አልተስማማሁም, አሁን ግን በእሱ አስተያየት, በተለይም ከፕሮግራም ጋር በተገናኘ ምክንያታዊነት አየሁ.

የሁለተኛ አመት ትምህርቴን በMIT ስጨርስ፣ በህይወቴም ሆነ በፕሮግራም ውስጥ ወጣት እና ልምድ የለኝም። በበጋው፣ በC compiler ቡድን ውስጥ፣ ማይክሮሶፍት ውስጥ ተለማምጄ ነበር በመጀመሪያ እንደ ፕሮፋይሊንግ ድጋፍ ያሉ የተለመዱ ተግባራትን አደረግሁ፣ ከዚያም በጣም አስደሳች የሆነውን የአቀናባሪውን ክፍል እንድሰራ አደራ ተሰጠኝ (እኔ እንዳሰብኩት) - የኋላ ማመቻቸት። በተለይ ለቅርንጫፍ መግለጫዎች የ x86 ኮድ ማሻሻል ነበረብኝ.

ለእያንዳንዱ ጉዳይ በጣም ጥሩውን ማሽን ኮድ ለመጻፍ ቆርጬ ራሴን ራሴን ወደ ገንዳው ወረወርኩ። የእሴቶቹ ስርጭት ጥግግት ከፍተኛ ከሆነ ወደ ውስጥ አስገባኋቸው የሽግግር ጠረጴዛ. የጋራ መከፋፈያ ካላቸው, ጠረጴዛውን የበለጠ ጥብቅ ለማድረግ ተጠቀምኩኝ (ነገር ግን ክፍፍሉ በመጠቀም ሊከናወን የሚችል ከሆነ ብቻ ነው. ትንሽ ፈረቃ). ሁሉም እሴቶች የሁለት ሃይሎች ሲሆኑ፣ ሌላ ማሻሻያ አድርጌያለሁ። የእሴቶች ስብስብ ሁኔታዎቼን ካላረኩ ፣ ወደ ብዙ ሊመቻቹ ወደሚችሉ ጉዳዮች ከፈልኩት እና ቀድሞውንም የተሻሻለውን ኮድ ተጠቀምኩ።

ቅዠት ነበር። ከብዙ አመታት በኋላ ኮዱን የወረሰው ፕሮግራመር እንደጠላኝ ተነገረኝ።

በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)

የተማረው ትምህርት

ዴቪድ ፓተርሰን እና ጆን ሄንሲ በኮምፒዩተር አርክቴክቸር እና ኮምፒዩተር ሲስተምስ ዲዛይን ላይ እንደጻፉት፣ ከዋና ዋና የስነ-ህንፃ እና የንድፍ መርሆዎች አንዱ በአጠቃላይ ነገሮችን በተቻለ ፍጥነት እንዲሰሩ ማድረግ ነው።

የተለመዱ ጉዳዮችን ማፋጠን ያልተለመዱ ጉዳዮችን ከማመቻቸት የበለጠ አፈፃፀምን በተሻለ ሁኔታ ያሻሽላል። የሚገርመው፣ የተለመዱ ጉዳዮች ብዙ ጊዜ ከስንት ጊዜ ይልቅ ቀላል ናቸው። ይህ አመክንዮአዊ ምክር የትኛው ጉዳይ የተለመደ እንደሆነ እንደሚያውቁ ይገምታል - እና ይህ ሊገኝ የሚችለው በጥንቃቄ በመሞከር እና በመለካት ሂደት ብቻ ነው.

በመከላከያዬ ውስጥ የቅርንጫፍ መግለጫዎች በተግባር ምን እንደሚመስሉ ለማወቅ ሞከርኩ (ለምሳሌ ምን ያህል ቅርንጫፎች እንዳሉ እና ምን ያህል ቋሚዎች እንደተከፋፈሉ) ነገር ግን በ 1988 ይህ መረጃ ሊገኝ አልቻለም. ነገር ግን፣ አሁን ያለው አቀናባሪ ለመጣሁት አርቲፊሻል ምሳሌ ጥሩ ኮድ ማመንጨት በማይችልበት ጊዜ ሁሉ ልዩ ጉዳዮችን መጨመር አልነበረብኝም።

ልምድ ላለው ገንቢ መደወል እና ከእሱ ጋር, የተለመዱ ጉዳዮች ምን እንደነበሩ አስብ እና በተለይ ከእነሱ ጋር መገናኘት ነበረብኝ. እኔ ያነሰ ኮድ መጻፍ ነበር, ነገር ግን ይህ ጥሩ ነገር ነው. የ Stack Overflow መስራች ጄፍ አትዉድ እንደፃፈው፣ የፕሮግራም አድራጊ ክፉ ጠላት ራሱ ፕሮግራመር ነው፡-

እንደ ሁላችንም ጥሩ ሀሳብ እንዳለህ አውቃለሁ። ፕሮግራሞችን እንፈጥራለን እና ኮድ ለመፃፍ እንወዳለን። የተፈጠርነው እንደዚህ ነው። ማንኛውም ችግር በተጣራ ቴፕ፣ በቤት ውስጥ በተሰራ ክራንች እና ቁንጥጫ ኮድ ሊፈታ የሚችል ይመስለናል። ኮድ ሰጪዎች እንዲቀበሉት የሚያምመውን ያህል፣ ምርጡ ኮድ የሌለበት ኮድ ነው። እያንዳንዱ አዲስ መስመር ማረም እና ድጋፍ ያስፈልገዋል, መረዳት ያስፈልገዋል. አዲስ ኮድ ሲያክሉ፣ ሌሎች አማራጮች ሁሉ ተሟጥጠው ስለነበር በቸልተኝነት እና በመጸየፍ ማድረግ አለብዎት። ብዙ ፕሮግራመሮች በጣም ብዙ ኮድ ይጽፋሉ, ይህም ጠላታችን ያደርገዋል.

የተለመዱ ጉዳዮችን የሚሸፍን ቀለል ያለ ኮድ ከጻፍኩ አስፈላጊ ከሆነ ማዘመን በጣም ቀላል ይሆን ነበር። ማንም ሊቋቋመው የማይፈልገውን ውጥንቅጥ ትቼ ነበር።

በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)

ሁለተኛ ቦታ: በማህበራዊ አውታረ መረቦች ላይ ማስታወቂያ

ጎግል ላይ በማህበራዊ ሚዲያ ማስታወቂያ ላይ ስሰራ (Myspaceን አስታውስ?) በC++ ላይ እንደዚህ ያለ ነገር ጻፍኩ፡-

for (int i = 0; i < user->interests->length(); i++) {
  for (int j = 0; j < user->interests(i)->keywords.length(); j++) {
      keywords->add(user->interests(i)->keywords(i)) {
  }
}

ፕሮግራመሮች ስህተቱን ወዲያውኑ ሊያዩ ይችላሉ-የመጨረሻው ክርክር j እንጂ i አይደለም. የክፍል ሙከራ ስህተቱን አላሳየም፣ እና የእኔ ገምጋሚም እንዲሁ። ማስጀመሪያው ተካሄዷል እና አንድ ምሽት የእኔ ኮድ ወደ አገልጋዩ ሄዶ በመረጃ ማእከሉ ውስጥ ያሉትን ኮምፒውተሮች በሙሉ ተበላሽቷል።

ምንም መጥፎ ነገር አልተከሰተም. ለማንም ሰው የሰበረው ነገር የለም ምክንያቱም ከአለምአቀፍ ጅምር በፊት ኮዱ በአንድ የውሂብ ማዕከል ውስጥ ተፈትኗል። የኤስአርአይ መሐንዲሶች ለተወሰነ ጊዜ ቢሊያርድ መጫወት ካቆሙ እና ትንሽ ወደኋላ ካላደረጉ በስተቀር። በማግስቱ ጠዋት ከብልሽት መጣያ ጋር ኢሜይል ደረሰኝ፣ ኮዱን አስተካክዬ ስህተቱን የሚያሳዩ የክፍል ሙከራዎችን ጨመርኩ። ፕሮቶኮሉን ስለተከተልኩ - ያለበለዚያ የእኔ ኮድ በቀላሉ አይሰራም - ሌሎች ችግሮች አልነበሩም።

በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)

የተማረው ትምህርት

ብዙዎች እንዲህ ዓይነቱ ትልቅ ስህተት ወንጀለኛውን ከሥራ መባረር እንደሚያስከፍል እርግጠኞች ናቸው ፣ ግን ይህ እንደዚያ አይደለም ፣ በመጀመሪያ ፣ ሁሉም ፕሮግራመሮች ይሳሳታሉ ፣ ሁለተኛም ፣ ተመሳሳይ ስህተት ሁለት ጊዜ አይሰሩም።

እንደውም ጎበዝ መሃንዲስ የነበረ እና አንድ ስህተት በመስራት የተባረረ የፕሮግራም ጓደኛ አለኝ። ከዚያ በኋላ በ Google ውስጥ ተቀጠረ (እና ብዙም ሳይቆይ ከፍ ከፍ ያለ) - በቃለ መጠይቅ ላይ ስለሠራው ስህተት በሐቀኝነት ተናግሯል, እና እንደ ገዳይነት አይቆጠርም.

ያ ነው። ተናገር ስለ ቶማስ ዋትሰን፣ የአይቢኤም አፈ ታሪክ ኃላፊ፡-

ወደ አንድ ሚሊዮን ዶላር የሚጠጋ የመንግስት ትዕዛዝ ይፋ ሆነ። IBM ኮርፖሬሽን - ወይም ይልቁንስ ቶማስ ዋትሰን ሲር. በግል - ለማግኘት በእውነት ፈልጎ ነበር። እንደ አለመታደል ሆኖ የሽያጭ ወኪሉ ይህንን ማድረግ ባለመቻሉ IBM ጨረታውን አጥቷል። በማግስቱ ይህ ሰራተኛ ወደ ሚስተር ዋትሰን ቢሮ መጣ እና በጠረጴዛው ላይ ፖስታ አደረገ። ሚስተር ዋትሰን ለማየት እንኳን አልደከመም - ሰራተኛ እየጠበቀ ነበር እና የስራ መልቀቂያ ደብዳቤ መሆኑን ያውቅ ነበር.

ዋትሰን ምን ችግር እንደተፈጠረ ጠየቀ።

የሽያጭ ተወካይ ስለ ጨረታው ሂደት በዝርዝር ተናግሯል. ሊወገዱ ይችሉ የነበሩ ስህተቶችን ሰይሟል። በመጨረሻም፣ “ሚስተር ዋትሰን፣ እንድገልጽ ስለፈቀዱልኝ አመሰግናለሁ። ይህንን ትእዛዝ ምን ያህል እንደሚያስፈልገን አውቃለሁ። እሱ ምን ያህል አስፈላጊ እንደሆነ አውቃለሁ” እና ለመሄድ ተዘጋጀ።

ዋትሰን ወደ በሩ ቀረበ፣ አይኑን አይኑን ተመለከተውና ፖስታውን እንዲህ ሲል መለሰለት፡- “እንዴት ልልቀቅህ እችላለሁ? አሁን አንድ ሚሊዮን ዶላር ለትምህርትህ ፈሰስኩ።

“በእርግጥ ከስህተቶች ከተማርክ እኔ ቀድሞውንም ጌታ ነኝ” የሚል ቲሸርት አለኝ። እንዲያውም ወደ ስሕተቶች ስንመጣ የሳይንስ ዶክተር ነኝ።

የመጀመሪያ ቦታ፡ የመተግበሪያ ፈጣሪ ኤፒአይ

በእውነቱ አስፈሪ ስህተቶች እጅግ በጣም ብዙ ተጠቃሚዎችን ይነካሉ ፣ ይፋዊ እውቀት ይሆናሉ ፣ ለማረም ረጅም ጊዜ ይወስዳሉ እና እነሱን ሊሰሩ በማይችሉ ሰዎች የተሰሩ ናቸው። ትልቁ ስህተቴ ከነዚህ ሁሉ መመዘኛዎች ጋር የሚስማማ ነው።

የባሰ ይሻላል

እነባለሁ በሪቻርድ ገብርኤል መጣጥፍ በዘጠናዎቹ ውስጥ ስለዚህ አቀራረብ እንደ ተመራቂ ተማሪ ፣ እና በጣም ስለወደድኩ ለተማሪዎቼ እጠይቃለሁ። በደንብ ካላስታወሱት, ማህደረ ትውስታዎን ያድሱ, ትንሽ ነው. ይህ ጽሑፍ ቀላልነትን ጨምሮ በብዙ መንገዶች "ትክክለኛውን" እና "የከፋውን ይሻላል" የሚለውን ፍላጎት ይቃረናል.

እንዴት መሆን እንዳለበት: ዲዛይኑ በአተገባበር እና በይነገጽ ውስጥ ቀላል መሆን አለበት. የበይነገጹ ቀላልነት ከትግበራ ቀላልነት የበለጠ አስፈላጊ ነው።

በጣም የከፋው, የተሻለው: ንድፉ በአተገባበር እና በይነገጽ ውስጥ ቀላል መሆን አለበት. የመተግበር ቀላልነት ከመገናኛው ቀላልነት የበለጠ አስፈላጊ ነው.

ያንን ለአንድ ደቂቃ እንርሳው። በሚያሳዝን ሁኔታ, ለብዙ አመታት ረስቼው ነበር.

የመተግበሪያ ፈጠራ

ጎግል ላይ ስሰራ የቡድኑ አካል ነበርኩ። የመተግበሪያ ፈጠራለጀማሪዎች የመስመር ላይ የመጎተት እና የመጣል ልማት አካባቢ Android-ገንቢዎች። 2009 ነበር፣ እና በበጋ ወቅት ለመምህራን አውደ ጥናቶችን እንድናዘጋጅ የአልፋ ስሪትን በሰዓቱ ለመልቀቅ እየጣደፍን ነበር፣ ከዚያም በመኸር ወቅት በክፍላቸው ውስጥ አካባቢውን መጠቀም ይችላሉ። በTI-99/4 ላይ ጨዋታዎችን ለመጻፍ ጊዜዬን የማስታውሰውን ስፕራይትስ ለመተግበር በፈቃደኝነት ሄድኩ። ለማያውቁት ሰዎች፣ ስፕራይት ከሌሎች የሶፍትዌር አካላት ጋር መንቀሳቀስ እና መስተጋብር መፍጠር የሚችል ባለ ሁለት ገጽታ ግራፊክ ነገር ነው። የስፕራይት ምሳሌዎች የጠፈር መንኮራኩሮችን፣ አስትሮይድስን፣ ኳሶችን እና ፓድልስን ያካትታሉ።

በጃቫ ላይ ነገርን ያማከለ መተግበሪያ ኢንቬንሰርን ተግባራዊ አድርገናል፣ ስለዚህ እዚያ ውስጥ ብዙ የነገሮች ስብስብ አለ። ኳሶች እና ስፕሪቶች በጣም ተመሳሳይ ባህሪ ስላላቸው በንብረቶች (ሜዳዎች) X ፣ Y ፣ Speed ​​​​(ፍጥነት) እና ርዕስ (አቅጣጫ) ያለው ረቂቅ የስፕሪት ክፍል ፈጠርኩ ። ግጭቶችን ለመለየት፣ ከማያ ገጹ ጠርዝ ለመውጣት፣ ወዘተ የመሳሰሉትን ዘዴዎች ነበራቸው።

በኳስ እና በስፕሪት መካከል ያለው ዋነኛው ልዩነት በትክክል የተሳለው ነው - የተሞላ ክበብ ወይም ራስተር። መጀመሪያ ስፕሪቶችን ስለተገበርኩ ምስሉ የሚገኝበት በላይኛው ግራ ጥግ ላይ ያለውን x- እና y-መጋጠሚያዎችን መግለጹ ምክንያታዊ ነበር።

በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)
አንዴ ስፕሪቶች ሲሰሩ የኳስ ቁሳቁሶችን በጣም ትንሽ ኮድ ተግባራዊ ማድረግ እንደምችል ወሰንኩ. ብቸኛው ችግር እኔ ቀላሉ መንገድ መሄዴ ነበር (ከአስፈፃሚው እይታ) ፣ የኳሱን የላይኛው የግራ ጥግ የ x- እና y-መጋጠሚያዎች ያመለክታሉ።

በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)
እንደውም በማንኛውም የሂሳብ መማሪያ መጽሐፍ እና ክበቦችን በሚጠቅስ በማንኛውም ምንጭ ላይ እንደተገለጸው የክበቡ መሃል የ x- እና y-መጋጠሚያዎችን ማመላከት አስፈላጊ ነበር።

በፕሮግራም ስራዬ ውስጥ በጣም አሳፋሪ ስህተቶች (እስካሁን)
ካለፉት ስህተቶቼ በተለየ ይህ የስራ ባልደረቦቼን ብቻ ሳይሆን በሚሊዮኖች የሚቆጠሩ የመተግበሪያ ፈጣሪ ተጠቃሚዎችንም ነካ። ብዙዎቹ ልጆች ነበሩ ወይም ለፕሮግራም ሙሉ ለሙሉ አዲስ የሆኑ። ኳሱ በሚገኝበት በእያንዳንዱ መተግበሪያ ላይ ሲሰሩ ብዙ አላስፈላጊ እርምጃዎችን ማከናወን ነበረባቸው. ሌሎች ስህተቶቼን በሳቅ ካስታወስኩ ይሄኛው ዛሬም ላብ ያደርገኛል።

በመጨረሻ ይሄንን ስህተት የከፈትኩት በቅርቡ ከአስር አመት በኋላ ነው። "የተጠጋጋ" እንጂ "ቋሚ" አይደለም ምክንያቱም Joshua Bloch እንደሚለው ኤፒአይዎች ዘላለማዊ ናቸው. ነባር ፕሮግራሞችን የሚነኩ ለውጦችን ማድረግ አልቻልንም፣ የ OriginAtCenter ንብረትን በአሮጌ ፕሮግራሞች ላይ ዋጋ ያለው እና ለወደፊት ባሉት ሁሉ እውነት ያለውን ጨምረናል። ተጠቃሚዎች አመክንዮአዊ ጥያቄን ሊጠይቁ ይችላሉ፡ የመነሻ ነጥቡን ከመሃል ውጭ ሌላ ቦታ ለማስቀመጥ ማን አስቦ ነበር። ለማን? ከአስር አመት በፊት የተለመደ ኤፒአይ ለመፍጠር በጣም ሰነፍ ለነበረ አንድ ፕሮግራመር።

የተማሩ ትምህርቶች

በኤፒአይዎች ላይ በሚሰሩበት ጊዜ (ሁሉም ፕሮግራመሮች አንዳንድ ጊዜ ማድረግ ያለባቸው) በ Joshua Bloch ቪዲዮ ውስጥ የተዘረዘሩትን ምርጥ ምክሮችን መከተል አለብዎት "ጥሩ ኤፒአይ እንዴት መፍጠር እንደሚቻል እና ለምን በጣም አስፈላጊ እንደሆነ"ወይም በዚህ አጭር ዝርዝር ውስጥ:

  • ኤፒአይ ሁለቱንም ትልቅ ጥቅም እና ትልቅ ጉዳት ሊያመጣ ይችላል።. ጥሩ ኤፒአይ ተደጋጋሚ ደንበኞችን ይፈጥራል። መጥፎው የአንተ ዘላለማዊ ቅዠት ይሆናል።
  • እንደ አልማዝ ያሉ የህዝብ ኤፒአይዎች ለዘለዓለም ይኖራሉ. ሁሉንም ነገር ስጡ፡ ሁሉንም ነገር በትክክል ለመስራት ሌላ እድል አይኖርም።
  • የኤፒአይ ዝርዝሮች አጭር መሆን አለባቸው - ከመስመር ያልበለጠ የክፍል እና ዘዴ ፊርማዎች እና መግለጫዎች ያሉት አንድ ገጽ። ይህ ለመጀመሪያ ጊዜ ፍጹም ሆኖ ካልተገኘ በቀላሉ እንደገና እንዲዋቀሩ ያስችልዎታል።
  • የአጠቃቀም ጉዳዮችን ይግለጹኤፒአይን ከመተግበሩ በፊት ወይም በዝርዝሩ ላይ እንኳን ከመሥራትዎ በፊት። በዚህ መንገድ ሙሉ በሙሉ የማይሰራ ኤፒአይ ከመተግበር እና ከመግለጽ ይቆጠባሉ።

በአርቴፊሻል ስክሪፕት አጭር ማጠቃለያ እንኳን ብፅፍ ምናልባት ስህተቱን አውቄ አርመው ነበር። ካልሆነ፣ ከስራ ባልደረባዬ አንዱ በእርግጠኝነት ያደርገዋል። ከፍተኛ ውጤት ያለው ማንኛውም ውሳኔ ቢያንስ ለአንድ ቀን ሊታሰብበት ይገባል (ይህ በፕሮግራም ላይ ብቻ አይደለም).

የሪቻርድ ገብርኤል ድርሰቱ ርዕስ “ከፉ ይሻላል” የሚለው ለገበያ መጀመሪያ መሆን የሚያስገኘውን ጥቅም የሚያመለክት ሲሆን ይህም ፍጽምና የጎደለው ምርት እያለ ሌላው ሰው ፍጹም የሆነውን በማሳደድ ዘላለማዊነትን ሲያሳልፍ ነው። በስፕሪት ኮድ ላይ ሳሰላስል፣ ለማስተካከል ተጨማሪ ኮድ መጻፍ እንኳን እንደሌለብኝ ተገነዘብኩ። አንድ ሰው የሚናገረው ምንም ይሁን ምን፣ በጣም ተሳስቻለሁ።

መደምደሚያ

የፕሮግራም አድራጊዎች በየቀኑ ስህተቶችን ይሠራሉ, የስህተት ኮድ መጻፍም ሆነ ክህሎታቸውን እና ምርታማነታቸውን የሚያሻሽል ነገር መሞከር አይፈልጉም. በእርግጥ እኔ እንዳደረኩት ከባድ ስህተቶችን ሳታደርጉ ፕሮግራመር መሆን ትችላላችሁ። ግን ስህተቶቻችሁን ሳያውቁ እና ከነሱ ካልተማሩ ጥሩ ፕሮግራመር መሆን አይቻልም።

ብዙ ስህተቶችን እንደሚሰሩ እና ስለዚህ ለፕሮግራም ያልተቋረጡ ተማሪዎችን ያለማቋረጥ አጋጥሞኛል። በአይቲ ውስጥ አስመሳይ ሲንድሮም ምን ያህል የተለመደ እንደሆነ አውቃለሁ። የዘረዘርኳቸውን ትምህርቶች እንደሚማሩ ተስፋ አደርጋለሁ - ግን ዋናውን አስታውሱ-እያንዳንዳችን ስህተት እንሰራለን - አሳፋሪ ፣ አስቂኝ ፣ አስፈሪ። ወደፊት ጽሑፉን ለመቀጠል የሚያስችል በቂ ቁሳቁስ ከሌለኝ እገረማለሁ እና እበሳጫለሁ.

ምንጭ: hab.com

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster