AI Программ Хангамжийн "Дунд Анги"-ийг Устгаж Байна уу? Кодын Хүрээ ба Танин Мэдэхүйн Өр
Оршил: Даваа гарагийн өглаөө ба +24,000 мөр код
Программ хангамжийн хөгжүүлэлтийн салбарт томоохон шуугиан тарьж, Hacker News болон олон улсын хөгжүүлэгчдийн дунд халуун хэлэлцүүлэг өрнүүлсэн нэгэн нийтлэл гарлаа. Хөгжүүлэгч Флориан Херренгт (Florian Herrengt)-ийн бичсэн "AI is removing the middle class of software engineering" нэртэй эссэ нь өнөөгийн AI-д суурилсан кодинг агентуудын үүсгэж буй хамгийн том эмзэг сэдвийг хөнджээ.
2020 онд та багийнхаа хамгийн ахлах (Senior) хөгжүүлэгч байж, кодын чанар болон архитектурыг хариуцдаг байсан гэж бодъё. Амралтаараа хэдэн долоо хоног яваад ирэхэд кодын бааз бага зэрэг замбараагүй болсон байж болно. Харин өнөөдөр та амралтаараа ч яваагүй, ердөө Даваа гарагийн өглөө кофегоо уугаад компютерээ нээхэд л AI агентуудаар генерирэйт хийлгэсэн +24,506 мөр шинэ код нэмэгдэж, -3,938 мөр устгагдсан 7 ширхэг Pull Request (PR) таныг хүлээж байх болно.
Баг тань ердөө нэг амралтын өдрүүдээр урьд нь хэдэн долоо хоногт хийдэг байсан өөрчлөлтөөс ч их код үүсгэж амжжээ. Гэвч асуудлын гол нь кодын хэмжээнд биш, тухайн кодын архитектур ба дотоод логикийг багийн гишүүдийн хэн нь ч гүн ойлгохгүй байгаад оршиж байна.
Танин Мэдэхүйн Өр (Cognitive Debt) ба "Claude-аас асуу" баталгаа
Аливаа программ хангамжид систем дэх нэгэн ноцтой баг (bug) гарахад хөгжүүлэгчид үүнийг засахын тулд AI-д дахин дахин даалгавар өгдөг ч асуудал шийдэгдэхгүй байх тохиолдол олонтой. Тухайн функц дээр ажилласан хөгжүүлэгчээс "Энэ өгөгдөл яг хаанаас ирж байгаа юм бэ?" гэж асуухад: "Мэдэхгүй ээ, Claude-аас асууя" гэж хариулах нь ердийн үзэгдэл болжээ.
Дэлгэцэн дээр AI-ийн үүсгэсэн урт текст урсах бөгөөд AI загвар маш итгэлтэйгээр нэг архитектур санал болгож, дараа нь уучлалт цохож, дахин 15 удаа санал бодлоо өөрчилнө. Эцэст нь хөгжүүлэгч ч, баг ч систем яг яаж ажиллаж байгааг эхнээс нь дуустал тайлбарлаж чадахаа болино.
Энэхүү үзэгдлийг "Танин Мэдэхүйн Өр" (Cognitive Debt) буюу кодын баазыг хүн ойлгоход хэт нарийн төвөгтэй, олон дахин хийсвэрлэсэн (abstracted) давхаргатай болгох үйл явц гэж тодорхойлж байна. Хэрэв та зээлийн картаар тансаг зэрэглэлийн машин авбал өрийг шууд харахгүй ч сүүлд нь төлбөр нь ирдэгтэй адил, AI-аар хурдан үүсгэсэн код нь эхэндээ хурдацтай мэт харагдавч яваандаа системийг засах боломжгүй гацаанд оруулдаг.
Архитектурын сахилга бат ба "Дунд анги"-ийн уналт
Программ хангамжийн хөгжүүлэлтийн "дунд анги" (Middle Class) гэдэг нь юу вэ? Энэ нь системийн архитектур, кодын чанар, тестийн хамгаалалт, логик бүтэц болон урт хугацааны арчлалтыг (maintainability) хариуцдаг Mid-level болон Senior хөгжүүлэгчдийн сахилга бат, туршлага юм.
AI агентууд код бичих "хурдны хязгаарыг" устгасан. Урьд нь инженерүүд хамтдаа сууж, архитектур, мэдээллийн сангийн бүтэц, API дизайн, trade-off (давуу болон сул тал)-уудын талаар хэлэлцэж байж код бичдэг байв. Харин одоо хэдхэн цаг промпт бичээд л шууд томоохон PR нээх боломжтой болсон.
Асуудлын хамгийн эмгэнэлтэй тал нь туршлагагүй нүдээр харахад энэ арга барил "ажиллаж байгаа" мэт харагддагт оршино. Та салбарыг (branch) pull хийгээд ажиллуулж үзэхэд аппликейшн функциональ түвшинд ажиллаж байж магадгүй. Гэвч дотоод бүтэц нь:
- Шаардлагагүй олон абстракц ба сервист хуваагдсан,
- Дэд бүтцийн илүүдэл (шаардлагагүй серверлесс, мэдээллийн сангийн денормализаци г.м.),
- Моделийн 15 дахин өөрчилсөн логикийн үлдэгдлүүдээр дүүрсэн байдаг.
Улмаар багт системийн фундаментал зарчмыг ойлгодог дунд болон ахлах түвшний инженерүүдийн архитектур засах үүрэг үнэгүйдэж, хөгжүүлэгчид зүгээр л AI промпт ажиллуулагчид болон хувирах эрсдэл үүсэж байна.
Ирээдүйд хөгжүүлэгчдэд ямар ур чадвар үлдэх вэ?
Код бичих өртөг бараг орон хүртэл буурч буй энэ эрин үед инженерүүдийн хувьд ямар ур чадвар хамгийн үнэ цэнэтэй хэвээр үлдэх вэ?
- Системийн Архитектур ба Ойлгомжтой Абстракц (Crisp Abstractions): Код үүсгэх хямдхан болсон ч урт хугацаанд тогтвортой, масштаблах боломжтой систем зохион байгуулах нь хүний инженерийн сэтгэлгээг шаарддаг.
- Trade-off-ийг үнэлэх чадвар: Consistency vs Availability, Performance vs Maintainability, Speed vs Reliability гэх мэт сонголтуудыг зөв хийхэд бизнесийн ба техникийн гүн контекст хэрэгтэй.
- CI/CD ба Шалган баталгаажуулалт (Validation): AI код их үүсгэх тусам түүнийг автоматаар аюулгүй турших, тестлэх, production орчинд найдвартай ажиллуулах дэд бүтцийн ур чадвар улам бүр чухал болж байна.
- Production Reliability (Операцийн туршлага): Мониторинг, Observability, орчны баг засах, production дээр систем тасралтгүй ажиллах баталгааг хангахад зөвхөн код бичих биш, системийн гүн мэдлэг шаардлагатай.
Дүгнэлт
AI кодлогч агентууд бидний өдөр тутмын хөгжүүлэлтийн бүтээмжийг нэмэгдүүлж байгаа нь үнэн боловч, суурь мэдлэггүйгээр зөвхөн AI-д дур мэдэн даатгах нь техникийн ба танин мэдэхүйн асар том өрийг хуримтлуулж байна. Программ хангамжийн инженерчлэл гэдэг нь ердөө текст хэлбэртэй код бичих явдал биш, харин нарийн төвөгтэй системүүдийг төлөвлөх, ойлгох, урт хугацаанд аюулгүй ажиллуулах урлаг юм.
Эх сурвалж: Florian Herrengt Blog / Hacker News
Сэтгэгдэл
Ачаалж байна...