Rubber Duck Debugging: Өөртэйгөө ярихын ач тус.

Jiguur G
Jiguur G
Dec 14, 2018 · 4 min read

Код хэзээ ч худлаа ажилладаггүй.

Их сургуулийн оюутны дипломын ажлын үзлэг дээр нэгэн оюутны төгсөх эсэхийг шийдэх хамгийн чухал мөчид өөрийнх бичсэн програм нь сайн ажилласангүй. Өнөөх оюутан: “-Ямар сонин юм бэ? Дөнгөж сая л зүгээр байсан юм даа…” гээд кодоо ухаад явчихав. Тэрээр угаасаа л дутуу дулимаг зүйл хийсэн үү эсвэл үнэхээр “гайхамшигт сонин” зүйл тохиолдоод гэнэт өөрөөр ажиллаад эхлэв үү? Өөрөөр хэлбэл хамгийн чухал мөчид код нүүр буруулав уу?

Гэнэн залуу програм хөгжүүлэгч байхдаа одоогийн Emart-ын кассын системийн програмыг бичих ахуйд “Би бүх нөхцлийг сайн тооцоолсон, гэхдээ миний бичсэн энэ код худлаа ажиллаж, зөндөө их мөнгөний тооцоог буруу хийвэл яанаа?? код лав миний өмнөөс тэр алдагдлыг төлөхгүй” гэж санаа зовдог байж билээ.

Гэхдээ нэг л зүйл үнэн. Код хэзээ ч худлаа хэлдэггүй. Эрхий хуруунаасаа илүү түүнд л итгэж болно. Өөрийг нь хуурахгүй гэсэн 100% баталгаа өгдөг учраас зарим програмистүүд “I Love Her” биш “I Love Coding” гэсэн бичигтэй подволк өмсдөг байх.

Бичсэн код чинь ажиллахгүй сонин байна уу? Сонин биш л дээ, чи л суга байгаа юм…

Бүгд алдаа гаргадаг

Дээрх оюутны адилаар бид бүгд л алдаа гаргадаг. Алдаа болгоныг засаж, гарсан бүх асуудлуудыг шийдэж, ямар ч алдаагүй ажилладаг болох хүртэл маш олон процессийг давж, олон сайн эрсийн үс халзарч унатал нервтсэнийн үр шимийг бид өнөөдөр хүртэж байгаа гэдгийг энд тэмдэглэмээр байна. За тэгэхлээр гол шаардлага маань алдаагүй програмын код бичиж үр дүн үзүүлэхгүй л бол хайран үс болохоор боллоо.

Pair-programming хэмээх нэгэн арга байдаг нь хамтрагчтайгаа хамт нэг зүйл дээр төвлөрч бүхий л санаа оноогоо ярилцаад, хамтдаа зөв шийдвэрт хүрч, нэг нь нөгөөгөө мотивацжуулах замаар “гоё” програм бичихийг хэлдэг. Үүний нэгэн хөгжилтэй жишээ бол Хятадад нэгэн компани өөрсдийн програм хөгжүүлэгчдийг мотивацжуулах үүднээс залуу эмэгтэйчүүдийг хажууд нь “хөгжөөн дэмжигчийн” үүрэгтэйгээр суулгадаг. Ингэснээр тухайн эрчүүдийн стресстэх нь багасч, улмаар ажлын бүтээмж нэмэгдсэн тухай тэмдэглэгдэж байв.

Rubber Duck Debugging — Хүн бүхэнд хамтрагч хэрэгтэй

Batman & Robin, Wallace & Gromit гэхчилэн хүн болгонд л хамтрагч байдаг. Харин програм хөгжүүлэгч зөвхөн компьютертэйгээ л найзлаж, тэндээ өөрийн тусгай орчинг үүсгэж, өөртэйгөө харилцаж, өөртэйгөө ирээдүйг төсөөлдөг 😭forever alone 😭 замналыг сонгосон хүмүүс юм. Тэдэнд хамтрагч хэрэгтэй...

Гэвч тэд бүх зүйлсийн шийдлийг олж чаддагийн адилаар үүнд ч бас шийдэл гаргаж иржээ. Энэ бол Rubber Duck буюу ваннанд хөвдөг нугас. Нугас төгс учраас бүхий л асуудлыг шийдэж чадна. Түүний хэрэглэх их энгийн. Програм хөгжүүлэгч та:

  • Интернетээр захих, Хүүхдийн дэлгүүрээс худалдаж авах, бяцхан дүүгийнхээ тоглоомнуудаас хусах аль эсвэл илбэдэж гаргаж ирэх гэх мэт ямар нэгэн байдлаар нугас болоод түүний төрлийн зүйлтэй болох хэрэгтэй. Хамгийн гол нь өөрийн чинь уур хилэнг хэзээ ч төрүүлэхээргүй баясгалантай царайтай байх ёстой.
  • Түүнийг ажлын ширээнийхээ хаа нэгтээ байрлуулна.
  • Асуудал гарахад өөрийн бичсэн програмын кодоо мөр мөрөөр нь чангаар түүнд уншиж өгнө. Энэ мөр кодыг би ийм зориулалтаар бичсэн, ийм үр дүн гарах ёстой гэх мэтээр тайлбарлана.
  • Зөвхөн асуудал тулгарсан үед ч биш, юу хийх гэж байгаагаа эсвэл өдрийн хоолонд юу идэх вэ? гэх мэт ер нь юуны ч талаар түүнд ярьж өгч болно.
  • Нугас тэр үед аядуу тайван байдалтайгаар инээмсэглэж таны ярьсан бүгд зөв гэдэгтэй санал нийлнэ.
  • Заримдаа өөрийн хийсэн буруу үйлдлээ өөртөө биш нугасанд тохох нь илүү амар байдаг.

Өөртэйгөө ярихын ач тус

Мэдээж нугас бол амьгүй биет. Програмистууд хэдий ухаантай ч зарим талаараа гэнэн тэнэг учраас нугасыг өөрийн хамтрагчаа хэмээн итгэдэг ажээ. Үнэхээр гайхалтай нь нугас тэдэнд өөрийнх нь алдааг олж илрүүлэхэд тусалдаг учраас тэр байх…

Бид өөрсдийн бичсэн код зөв хэмээн өөртөө бат итгүүлж, бичсэн кодынхоо алдааг хайж байгаа хэрнээ бүхэл бүхлээр нь алгасаж явдаг. Үүнд л кодоо мөр мөрөөр нь анхаарал хандуулж тайлбарлахын гол учир явж байгаа юм. Ямарваа нэгэн зүйлийг амаар ярих нь тэр зүйлийг бодохоос илүүтэйгээр тодоор дүрслэгддэг хэмээх ойлголтын тухай Self-Directed Speech Affects Visual Search Performance хэмээх шинжлэх ухааны судалгаа бүхий бичвэр байдаг юм байна.

Жишээ нь бид өрөөсөн оймсоо хайж байхдаа “Миний өрөөсөн оймс хаана байна?” хэмээн яг үнэндээ бусдад биш өөртөө хандаж хэлээд өөрөө олчихдог шүү дээ. Энэ нь тухайн өрөөсөн оймсын тухай ярих үед төсөөлөл нь илүү хурц болж, улмаар илүү хянамгай хайдаг тухай санаа юм. Яг үүнтэй адилаар өөртэйгөө ярих процессийг илүү сонирхолтой болгох үүднээс Rubber Duck Debugging хэмээх аргачлалыг анх 1999 онд The Pragmatic Programmer хэмээх номонд анх дурдагдсан байна.

Extra section: Нугасыг амьд хэмээн итгэсээр байгаа хүмүүст

Нугас үнэхээр төгс юм чинь яагаад өөрийнхөө өмнөөс код бичүүлж болохгүй гэж? Хэмээх асуултанд Google ингэж хариулжээ…

Догь асуулт байна. Нугас төгс гэдэгтэй би ч санал нийлж байна. Гэхдээ ихэнх нугаснууд зөвхөн Менторын үүрэг гүйцэтгэх дуртай байдаг. Тиймээс тэднээр дуртай ажлыг нь л хийлгэ. Код бичих зориулалтаар хийгдсэн нугаснууд байдаг ч Ангараг луу хөөргөх пуужингийн төсөл эсвэл Засгийн газрын маш нууц даалгавруудад ажилладаг тул магадгүй бид хэзээ ч тэднийг өөрийн хамтрагчаа болгож чадахгүй …

fibostories

A cloud computing consulting company

Jiguur G

Written by

Jiguur G

fibostories

A cloud computing consulting company

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade