AI код ямар харагддаг вэ?

AI код ямар харагддаг вэ?

Товч хариулт: Хиймэл оюун ухааны тусламжтайгаар код нь ихэвчлэн ер бусын цэвэрхэн, "сурах бичиг" гэж уншигддаг: тууштай форматлах, ерөнхий нэршил, эелдэг алдааны мессежүүд, илэрхий зүйлийг давтан илэрхийлсэн тайлбарууд. Хэрэв бодит ертөнцийн хатуу чанар - домэйн хэл, эвгүй хязгаарлалтууд, захын тохиолдлууд - дутуу байвал энэ нь анхааруулах тэмдэг юм. Та үүнийг репозиторын хэв маягтаа бэхлээд үйлдвэрлэлийн эрсдэлийн эсрэг туршиж үзэхэд найдвартай болдог.

Гол дүгнэлтүүд:

Контекст шалгалт: Хэрэв домэйны нэр томьёо, өгөгдлийн хэлбэр, хязгаарлалтууд тусгагдаагүй бол үүнийг эрсдэлтэй гэж үзнэ үү.

Хэт өнгөлгөөтэй: Хэт их бичигдсэн үгс, жигд бүтэц, уйтгартай нэрс нь ерөнхий үүслийн дохио болдог.

Алдааны залруулга: Өргөн хүрээтэй алдаа, залгисан алдаа, тодорхойгүй бүртгэлийг анхаарч үзээрэй.

Хийсвэрлэлийн тайралт: Хамгийн жижиг зөв хувилбар үлдэх хүртэл таамаглалын туслагч болон давхаргуудыг устгана уу.

Бодит байдлын тестүүд: Интеграци болон захын тохиолдлын тестүүдийг нэмэх; тэдгээр нь "цэвэр ертөнц" гэсэн таамаглалыг хурдан илчилдэг.

Хиймэл оюун ухааны код ямар харагддаг вэ? Инфографик

Хиймэл оюун ухааны тусламжтайгаар код бичих нь одоо хаа сайгүй байдаг (Stack Overflow Developer Survey 2025; GitHub Octoverse (2025 оны 10-р сарын 28)). Заримдаа энэ нь гайхалтай бөгөөд танд нэг өдрийн цагийг хэмнэдэг. Заримдаа энэ нь... сэжигтэй өнгөлсөн, жаахан ерөнхий, эсвэл хэн нэгэн хэний ч туршиж үзээгүй нэг товчлуур дээр дарах хүртэл "ажилладаг" байдаг 🙃. Энэ нь хүмүүсийн кодын тойм, ярилцлага, хувийн DM-үүдэд байнга асуудаг асуултад хүргэдэг:

Хиймэл оюун ухааны код ямар харагддаг вэ

Шууд хариулт нь: энэ нь юу ч харагдаж болно. Гэхдээ хэв маяг байдаг - зөөлөн дохио болохоос шүүхийн нотолгоо биш. Үүнийг бялууг нарийн боовны газраас эсвэл хэн нэгний гал тогооноос авсан эсэхийг таамаглахтай адил гэж бодоорой. Крем нь хэтэрхий төгс байж болох ч зарим гэрийн нарийн боовчид аймшигтай амттай байдаг. Үүнтэй адил мэдрэмж төрүүлдэг.

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

🔗 AI чиг хандлагыг хэрхэн урьдчилан таамагладаг вэ?
Хэв маягийн сургалт, дохио, урьдчилсан мэдээг бодит хэрэглээнд тайлбарладаг.

🔗 Хиймэл оюун ухаан нь гажигийг хэрхэн илрүүлдэг вэ?
Гадны илрэлийг илрүүлэх аргууд болон бизнесийн нийтлэг хэрэглээг хамардаг.

🔗 AI хэр их ус хэрэглэдэг вэ?
Өгөгдлийн төвийн усны хэрэглээ болон сургалтын нөлөөллийг задлан шинжилнэ.

🔗 Хиймэл оюун ухааны хэвийлт гэж юу вэ?
Гажуудлын эх үүсвэр, хор хөнөөл, түүнийг бууруулах практик аргуудыг тодорхойлдог.


1) Нэгдүгээрт, хүмүүс "хиймэл оюун ухааны код" гэж юу гэж хэлдэг вэ 🤔

Ихэнх хүмүүс "хиймэл оюун ухааны код" гэж хэлэхдээ ихэвчлэн дараах зүйлсийн аль нэгийг хэлдэг:

  • Хиймэл оюун ухааны туслахын боловсруулсан код нь мөрөөс (онцлог, алдаа засах, рефактор) үүсгэсэн.

  • Кодыг автоматаар гүйцээх аргаар их хэмжээгээр гүйцээсэнбөгөөд хөгжүүлэгч түлхсэн боловч бүрэн зохиогдоогүй байна.

  • Кодыг хиймэл оюун ухаан “цэвэрлэгээ”, “гүйцэтгэл” эсвэл “хэв маяг”-ын тулд дахин бичсэн.

  • Хиймэл оюун ухаанаас гараагүй ч гэсэн (энэ нь хүмүүсийн хүлээн зөвшөөрснөөс илүү олон удаа тохиолддог) гарч ирсэн мэт харагдах код

Энд нэг гол зүйл байна: Хиймэл оюун ухаан ганцхан хэв маягтай байдаггүй. Энэ нь чиг хандлагатай. Эдгээр чиг хандлагын ихэнх нь ерөнхийдөө зөв, өргөн хүрээнд уншигдахуйц, ерөнхийдөө аюулгүй байхыг хичээхээс үүдэлтэй байдаг ... энэ нь хачирхалтай нь гаралтыг жаахан адилхан мэдрэмж төрүүлдэг.


2) Хиймэл оюун ухааны код ямар харагддаг вэ: хурдан дүрслэл нь үүнийг хэлж өгдөг 👀

Гарчигт тодорхой хариулъя: Хиймэл оюун ухааны код ямар харагддаг вэ?

Ихэнхдээ энэ нь дараах код шиг харагддаг:

  • Маш “сурах бичиг цэгцтэй” - догол мөр нь тогтвортой, формат нь тогтвортой, бүх зүйл тогтвортой.

  • Төвийг сахисан байдлаар дэлгэрэнгүй бичсэн - нэг их тус болохгүй олон "тусламжтай" сэтгэгдэл.

  • Хэт ерөнхийлсөн - бодит хоёр хувилбарын оронд арван төсөөллийн хувилбарыг зохицуулахаар бүтээгдсэн.

  • Бага зэрэг хэт бүтэцтэй - нэмэлт туслах функцууд, нэмэлт давхаргууд, нэмэлт хийсвэрлэл ... гурван чемодантай амралтын өдрүүдийн аялалд зориулж баглах гэх мэт 🧳.

  • Бодит системүүдийн хуримтлуулдаг эвгүй ирмэгийн цавууг (онцлог шинж чанаруудын туг, уламжлалт хачин жигтэй байдал, тохиромжгүй хязгаарлалтууд) алдах ( Мартин Фаулер: Онцлогуудыг солих ).

Гэхдээ бас - би үүнийг давтан хэлсээр байх болно, учир нь энэ нь чухал - хүний ​​хөгжүүлэгчид ч гэсэн ингэж бичиж чадна. Зарим багууд үүнийг хэрэгжүүлдэг. Зарим хүмүүс зүгээр л нямбай донтонгууд. Би үүнийг хайраар хэлдэг 😅.

Тиймээс "хиймэл оюун ухааныг илрүүлэх"-ийн оронд энэ код бодит нөхцөл байдалд бичигдсэн мэт ажиллаж байна уу гэж асуух нь дээр . Хиймэл оюун ухааныг ихэвчлэн хазайдаг газар бол нөхцөл байдал юм.


3) Хэтэрхий цэвэрхэн үед "гайхалтай хөндий" гэсэн тэмдэг 😬

Хиймэл оюун ухаанаар үүсгэгдсэн код нь ихэвчлэн тодорхой "гялбаатай" байдаг. Үргэлж биш ч гэсэн ихэвчлэн.

Нийтлэг "хэтэрхий цэвэрхэн" дохионууд

  • Илэрхий байсан ч функц бүр docstring-тэй байдаг

  • Бүх хувьсагчид нь result , data , items , payload , responseData гэх мэт эелдэг нэртэй байдаг .

  • тогтмол алдааны мессежүүд : "Хүсэлтийг боловсруулах явцад алдаа гарлаа."

  • Холбоогүй модулиудын хооронд жигд хэв маяг, яг л бүх зүйлийг нэг нямбай номын санч бичсэн мэт.

Нарийн бэлэг

Хиймэл оюун ухааны код нь бүтээгдэхүүн биш, харин хичээлд зориулагдсан мэт санагдаж болно. Энэ нь хашаа будах костюм өмсөж байгаатай адил юм. Маш зөв, хувцаслалтад бага зэрэг буруу үйлдэл.


4) Хиймэл оюун ухааны кодын сайн хувилбарыг юу бүрдүүлдэг вэ? ✅

Үүнийг эргүүлье. Учир нь зорилго нь "хиймэл оюун ухааныг барих" биш, харин "хөлөг онгоцны чанар" юм

Хиймэл оюун ухааны тусламжтайгаар хийгдсэн кодын сайн хувилбар нь:

Өөрөөр хэлбэл, гайхалтай хиймэл оюун ухааны код нь ... танай баг үүнийг бичсэн юм шиг харагдаж байна. Эсвэл ядаж л танай баг үүнийг зөв хэрэгжүүлсэн. Одоо буйдан хаана байгааг мэддэг аврах нохой шиг 🐶.


5) Хээний сан: сонгодог хиймэл оюун ухааны хурууны хээ (мөн яагаад үүсдэг вэ) 🧩

Хиймэл оюун ухааны тусламжтайгаар кодын баазуудад би олон удаа харсан хэв маягууд энд байна - үүнд би өөрөө цэвэрлэсэн загварууд багтана. Эдгээрийн зарим нь зүгээр. Зарим нь аюултай. Ихэнх нь зүгээр л... дохионууд юм.

А) Хаа сайгүй хэт хамгаалалттай хоосон шалгалт

Та дараах давхаргуудыг харах болно:

  • хэрэв x нь Байхгүй бол: буцаах ...

  • try/except Үл хамаарах зүйл

  • олон нөөц тохиргоо

Яагаад: Хиймэл оюун ухаан нь ажиллах үеийн алдаанаас ерөнхийдөө зайлсхийхийг хичээдэг.
Эрсдэл: Энэ нь жинхэнэ алдааг нууж, дибаг хийхийг муухай болгож болзошгүй.

B) Оршихуйгаа олж авдаггүй ерөнхий туслах функцууд

Жишээ нь:

  • процессын_өгөгдөл()

  • handle_request()

  • validate_input()

Яагаад: хийсвэрлэл нь "мэргэжлийн" мэт санагддаг.
Эрсдэл: та бүх зүйлийг хийдэг, юу ч тайлбарладаггүй функцүүдтэй тулгардаг.

C) Кодыг дахин илэрхийлсэн тайлбарууд

Жишээ энерги:

  • “i-г 1-ээр нэмэгдүүлэх”

  • "Хариултаа буцааж өгөх"

Яагаад: Хиймэл оюун ухааныг тайлбарлах чадвартай байхаар сургасан.
Эрсдэл: тайлбарууд хурдан муудаж, шуугиан үүсгэдэг.

D) Дэлгэрэнгүй мэдээллийн гүн тогтворгүй байдал

Нэг хэсэг нь маш нарийн ширийн зүйлтэй, нөгөө хэсэг нь нууцлаг байдлаар тодорхойгүй байна.

Яагаад: анхаарлын төвлөрөл хазайх... эсвэл хэсэгчилсэн нөхцөл байдал.
Эрсдэл: сул талууд нь тодорхойгүй бүсэд нуугдаж байдаг.

E) Сэжигтэй тэгш хэмтэй бүтэц

Бизнесийн логик байх ёсгүй байсан ч бүх зүйл нэг л зарчимтай байдаг.

Яагаад: Хиймэл оюун ухаан батлагдсан хэлбэрийг давтах дуртай.
Эрсдэл: шаардлага нь тэгш хэмтэй биш - тэдгээр нь муу савласан хүнсний бүтээгдэхүүн шиг бөөгнөрөлтэй байдаг 🍅📦.


6) Харьцуулсан хүснэгт - хиймэл оюун ухааны код ямар харагддагийг үнэлэх аргууд 🧪

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

Хэрэгсэл / Хандлага (Үзэгчдэд) хамгийн тохиромжтой Үнэ Энэ яагаад ажилладаг вэ (бас бага зэрэг хачин)
Код хянах шалгах хуудас 📝 Багууд, удирдагчид, ахлах ангиуд Үнэгүй "Яагаад" гэсэн асуултуудыг тавихад хүргэдэг; ерөнхий хэв маягийг олж авдаг... заримдаа нарийн мэдрэмж төрүүлдэг (Google Engineering Practices: Code Review)
Нэгж + Интеграцийн Тестүүд ✅ Хүн бүр тээвэрлэлтийн онцлог шинж чанарууд Чөлөөт маягийн Алга болсон ирмэгийн тохиолдлуудыг илрүүлдэг; Хиймэл оюун ухааны код нь ихэвчлэн үйлдвэрлэлийн доторх хэрэгслүүдгүй байдаг (Google-ийн програм хангамжийн инженерчлэл: Нэгжийн туршилт; Практик туршилтын пирамид)
Статик шинжилгээ / Линтинг 🔍 Стандарттай багууд Үнэгүй / Төлбөртэй Зөрчилдөөнийг тэмдэглэдэг; гэхдээ "буруу санаа"-ны алдааг илрүүлэхгүй (ESLint Docs; GitHub CodeQL код сканнердах)
Төрөл шалгах (хамааралтай бол) 🧷 Илүү том кодын баазууд Үнэгүй / Төлбөртэй Өгөгдлийн тодорхойгүй хэлбэрийг илчилдэг; залхмаар байж болох ч үнэ цэнэтэй (TypeScript: Статик Төрлийн Шалгалт; mypy баримтжуулалт)
Аюул заналхийллийн загварчлал / Хүчирхийллийн тохиолдлууд 🛡️ Аюулгүй байдалд анхаардаг багууд Үнэгүй Хиймэл оюун ухаан нь сөрөг хэрэглээг үл тоомсорлож магадгүй; энэ нь түүнийг гэрэлд гаргахад хүргэдэг (OWASP Аюул Загварчлалын Хууралтын Хуудас)
Гүйцэтгэлийн профайл ⏱️ Арын хэсэг, өгөгдөл их шаарддаг ажил Үнэгүй / Төлбөртэй Хиймэл оюун ухаан нэмэлт давталт, хөрвүүлэлт, хуваарилалт нэмж болно - профайлжуулалт нь худлаа биш (Питон баримт бичиг: Python Profilers)
Домэйнд чиглэсэн туршилтын өгөгдөл 🧾 Бүтээгдэхүүн + инженерчлэл Үнэгүй Хамгийн хурдан "үнэрийн тест"; хуурамч мэдээлэл нь хуурамч итгэлийг бий болгодог (pytest fixtures docs)
Хосуудын тойм / Зааварчилгаа 👥 Зөвлөгөө өгөх + чухал PR-ууд Үнэгүй Зохиогчоос сонголтоо тайлбарлахыг хүс; хиймэл оюун ухаантай төстэй код нь ихэвчлэн түүхгүй байдаг (Google-ийн програм хангамжийн инженерчлэл: Кодын тойм)

Тийм ээ, "Үнэ" гэсэн булан жаахан тэнэг юм - учир нь үнэтэй хэсэг нь ихэвчлэн анхаарал төвлөрөл байдаг болохоос багаж хэрэгсэл биш. Анхаарал төвлөрөл гэдэг бол бүх зүйлийн үнэтэй 😵💫.


7) Хиймэл оюун ухааны тусламжтайгаар кодлох бүтцийн сэжүүрүүд 🧱

Хэрэв та хиймэл оюун ухааны код ямар харагддаг талаар илүү гүнзгий хариулт авахыг хүсвэл жижигрүүлж, бүтцийг нь хараарай.

1) Техникийн хувьд зөв боловч соёлын хувьд буруу нэрлэх

Хиймэл оюун ухаан олон төслүүдэд "аюулгүй" нэрсийг сонгох хандлагатай байдаг. Гэхдээ багууд өөрсдийн аялгууг боловсруулдаг:

  • Та үүнийг AccountId гэжбол хиймэл оюун ухаан үүнийг userId.

  • Та үүнийг LedgerEntryбол хиймэл оюун ухаан үүнийг гүйлгээ.

  • Та үүнийг FeatureGateэнэ нь configFlag.

Эдгээрийн аль нь ч "муу" биш ч гэсэн зохиогч таны домэйнд удаан амьдараагүй гэсэн дохио юм.

2) Дахин ашиглахгүйгээр давтах, эсвэл шалтгаангүйгээр дахин ашиглах

Хиймэл оюун ухаан заримдаа:

  • репозиторын бүхэл бүтэн контекстийг нэг дор "санаж" чадахгүй тул ижил төстэй логикийг олон газарт давтдаг, эсвэл

  • гурван мөрийг хэмнэдэг боловч гурван цагийн дараа өртөгтэй байдаг хийсвэрлэлээр дамжуулан хүчийг дахин ашигладаг.

Энэ бол худалдааны гол санаа: одоо бичихээ багасгаж, дараа нь бодох нь илүү дээр. Энэ нь сайн худалдаа гэдэгт би үргэлж итгэлтэй байдаггүй байх... долоо хоногоос хамаарна 😮💨.

3) Бодит хил хязгаарыг үл тоомсорлодог "төгс" модульчлал

Та кодыг цэвэр модулиудад хуваасан байхыг харах болно:

  • баталгаажуулагчид/

  • үйлчилгээ/

  • зохицуулагчид/

  • хэрэглээ/

Гэхдээ хил хязгаар нь таны системийн оёдолтой таарахгүй байж магадгүй. Хүн архитектурын бэрхшээлтэй цэгүүдийг тусгах хандлагатай байдаг бол хиймэл оюун ухаан нь цэвэрхэн диаграммыг тусгах хандлагатай байдаг.


8) Алдаа зохицуулах - хиймэл оюун ухааны код ... гулгамтгай болдог 🧼

Алдаа зохицуулах нь хамгийн том давуу талуудын нэг юм, учир нь энэ нь зөвхөн зөв байдлыг төдийгүй шүүлтийг шаарддаг

Ажиглах загварууд

Ямар сайхан харагдаж байна

Бага зэрэг бухимдуулсан алдааны мессеж бичих нь хүний ​​​​маш чухал шинж чанар юм. Үргэлж тийм биш ч гэсэн та үүнийг хараад л мэднэ. Хиймэл оюун ухааны алдааны мессежүүд нь ихэвчлэн бясалгалын апп шиг тайван байдаг.


9) Ирмэгийн хайрцаг болон бүтээгдэхүүний бодит байдал - "дутагдаж буй хатуулаг" 🧠🪤

Бодит системүүд эмх замбараагүй байдаг. Хиймэл оюун ухааны гаралтууд нь ихэвчлэн энэ бүтэцгүй байдаг.

Багуудад байдаг "тууштай байдал"-ын жишээнүүд:

  • Онцлогийн тэмдэглэгээ болон хэсэгчилсэн нэвтрүүлгүүд (Мартин Фаулер: Онцлогийн унтраалга)

  • Буцах нийцтэй байдлын заль мэх

  • Хачирхалтай гуравдагч талын хугацаа дуусалтууд

  • Таны схемийг зөрчиж буй хуучин өгөгдөл

  • Бүрээсний бүрхүүл, кодчилол эсвэл локалчлалын асуудлууд тогтворгүй байна

  • Дур зоргоороо байдаг учраас дур зоргоороо санагддаг бизнесийн дүрэм журам

Хэрэв та үүнийг хэлвэл хиймэл оюун ухаан нь зах зээлийн тохиолдлуудыг зохицуулж чадна, гэхдээ хэрэв та тэдгээрийг тодорхой оруулахгүй бол энэ нь ихэвчлэн "цэвэр ертөнц"-ийн шийдлийг бий болгодог. Цэвэр ертөнц бол сайхан. Цэвэр ертөнц бас байдаггүй.

Бага зэрэг хурцадмал зүйрлэл орж ирж байна: Хиймэл оюун ухааны код бол цоо шинэ хөвөн шиг - гал тогооны гамшгийг хараахан шингээж аваагүй байна. Би хэлсэн шүү дээ 🧽. Миний хамгийн сайн бүтээл биш ч гэсэн үнэн юм шиг байна.


10) Хиймэл оюун ухаанаар дэмжигдсэн кодыг хэрхэн хүн шиг мэдрүүлэх вэ - хамгийн чухал нь найдвартай байх 🛠️✨

Хэрэв та код бичихдээ хиймэл оюун ухаан ашиглаж байгаа бол (мөн олон хүн ашиглаж байгаа) хэд хэдэн зуршлын тусламжтайгаар үр дүнг мэдэгдэхүйц сайжруулж чадна.

А) Хязгаарлалтуудаа урьдчилан оруулна уу

"... гэсэн функцийг бич"-ийн оронд дараахийг оролдож үзнэ үү:

  • хүлээгдэж буй оролт/гаралт

  • гүйцэтгэлийн хэрэгцээ

  • алдааны бодлого (өсгөх, үр дүнгийн төрөл буцаах, бүртгэл + алдаа?)

  • нэрлэх журам

  • таны репозитор дахь одоо байгаа хэв маягууд

Б) Зөвхөн шийдэл биш, харин буулт хийхийг хүс

Дараахтай хамт асууна:

  • "Хоёр арга барил өгөөд, буулт хийх аргуудыг тайлбарлана уу."

  • "Та энд юу хийхээс зайлсхийх байсан бэ, яагаад?"

  • "Энэ үйлдвэрлэл хаана зогсох вэ?"

Хиймэл оюун ухаан эрсдэлийн талаар бодоход хүргэх үед илүү сайн байдаг.

C) Кодыг устгах болго

Үнэхээр. Асуу:

  • "Шаардлагагүй хийсвэрлэлийг арилгана уу."

  • "Үүнийг хамгийн жижиг зөв хувилбар болгон бууруул."

  • "Аль хэсгүүд нь таамаглал дэвшүүлж байна вэ?"

Хиймэл оюун ухаан нэмэх хандлагатай байдаг бол агуу инженерүүд хасах хандлагатай байдаг.

D) Бодит байдлыг тусгасан тестүүдийг нэмэх

Зөвхөн биш:

  • "Хүлээгдэж буй гаралтыг буцаана"

Гэхдээ:

Хэрэв та өөр юу ч хийхгүй бол үүнийг хий. Тестүүд бол худал илрүүлэгч бөгөөд кодыг хэн бичсэн нь тэдэнд хамаагүй 😌.


11) Хаалтын тэмдэглэл + товч тойм 🎯

Тэгэхээр, хиймэл оюун ухааны код ямар харагддаг вэ: энэ нь ихэвчлэн цэвэрхэн, ерөнхий, бага зэрэг хэт тайлбарласан, хэтэрхий их таалагдах гэж яарсан харагддаг. Хамгийн том "мэдээлэл" нь форматлах эсвэл тайлбар биш - энэ нь дутуу агуулга юм: домэйн нэршил, эвгүй ирмэгүүд, системтэй хамт амьдрахаас үүдэлтэй архитектурт тохирсон сонголтууд.

Товч тойм

  • Хиймэл оюун ухааны код нь нэг хэв маяг биш боловч ихэвчлэн цэвэрхэн, дэлгэрэнгүй, хэт ерөнхий байдаг.

  • Хамгийн сайн дохио бол код нь таны бодит хязгаарлалт болон бүтээгдэхүүний чанарыг тусгасан эсэх юм.

  • Илрүүлэлтэд хэт автах хэрэггүй - чанарт хэт автах: тест, хяналт, тодорхой байдал, зорилго (Google Engineering Practices: Code Review; Google дээрх програм хангамжийн инженерчлэл: Unit Testing).

  • Хиймэл оюун ухаан анхны ноорог хэлбэрээр зүгээр. Сүүлийн ноорог хэлбэрээр зүгээр биш. Энэ бол бүхэл бүтэн тоглоом юм.

Хэрэв хэн нэгэн таныг хиймэл оюун ухаан ашигласны төлөө ичээхийг оролдвол, үнэнийг хэлэхэд... чимээг үл тоомсорлоорой. Зүгээр л бат бөх код илгээгээрэй. Бат бөх код бол удаан үргэлжлэх цорын ганц уян хатан чанар юм 💪🙂.

Бодит жишээ: Хиймэл оюун ухаанаар боловсруулсан төлбөрийн баримтыг хянах алдаа засах 🛒

Хувилбар

Төлбөрийн асуудлын алдааг засахын тулд хиймэл оюун ухааны туслахыг ашиглан жижиг цахим худалдааны баг ажиллаж байна гэж төсөөлөөд үз дээ: төлбөрийн үйлчилгээ үзүүлэгчийн хугацаа дуусахад дахин оролдох товчийг дарахад үйлчлүүлэгчдээс заримдаа хоёр удаа төлбөр авдаг.

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

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

Туслахад юу хэрэгтэй вэ

Алдааг засахыг хиймэл оюун ухаанаас хүсэхээсээ өмнө түүнд нарийн ширийн зүйлийг хэлээрэй:

  • Төлбөр төлөгч 8 секундын дараа хугацаа дуусах боломжтой.

  • Хугацаа дууссан нь төлбөр амжилтгүй болсныг нотлохгүй.

  • Төлбөр тооцоо бүр өвөрмөц orderId болон idempotencyKey-тэй байдаг.

  • Одоо байгаа репозитор нь гүйлгээ биш харин PaymentAttempt-ийг ашигладаг.

  • Амжилтгүй болсон төлбөрийг orderId, providerRequestId, болон retryCount-аар бүртгэх ёстой.

  • Картын мэдээлэл эсвэл хувийн мэдээлэл бүртгэлд харагдах ёсгүй.

  • Засвар нь давхардсан товшилт, үйлчилгээ үзүүлэгчийн хугацаа дуусах, хэсэгчилсэн алдааны тестүүдийг багтаасан байх ёстой.

Жишээ заавар

Давхар төлбөрийн алдааг засахын тулд одоо байгаа төлбөрийн үйлчилгээний загваруудыг ашиглаарай. Шаардлагагүй бол ерөнхий дахин оролдох боодол үүсгэж болохгүй. Төлбөр төлөгчийн хугацаа дуусахыг амжилтгүй төлбөр гэж үзэхээс илүү тодорхойгүй төлөв гэж үзнэ үү. Одоо байгаа PaymentAttempt нэрийг ашиглана уу. orderId болон idempotencyKey ашиглан идемпотенцийн шалгалтыг нэмнэ үү. Дараах туршилтуудыг оруулна уу: нэг амжилттай төлбөр, дахин оролдсоны дараа хугацаа дуусах, товчлуур дээр дарах давхардах, үйлчлүүлэгчийн хугацаа дууссаны дараа үйлчилгээ үзүүлэгч амжилттай болсон, providerRequestId байхгүй байна. Шийдлийг аль болох бага байлгаж, үйлдвэрлэлд энэ нь хаана бүтэлгүйтэж болохыг тайлбарлана уу.

Үүнийг хэрхэн шалгах вэ

Хянагч нь хиймэл оюун ухааны тусламжтайгаар кодыг батлахаасаа өмнө таван энгийн шалгалт хийж болно:

  1. Ижил idempotencyKey ашиглан нэг төлбөрийн хүсэлтийг хоёр удаа илгээнэ үү.

  2. Үйлчилгээ үзүүлэгч дараа нь амжилтаа баталгаажуулах хугацааны завсарлагыг дуурайлгана.

  3. Хугацаа дууссаны дараа дахин оролдлогыг дуурайж, хоёр дахь төлбөр үүсгээгүйг баталгаажуулна уу.

  4. Мэдрэмтгий өгөгдөл алдагдуулахгүйгээр зөв алдаа засах талбаруудыг логуудаас шалгана уу.

  5. Зохиогчоос дахин оролдох логик нь ерөнхий хэрэгсэл биш харин энэ давхаргад яагаад хамаарахыг тайлбарлахыг хүс.

Сул хиймэл оюун ухааны төсөл аз жаргалтай замыг туулж болох ч хугацаа дуусахтай холбоотой амжилтын жишээнд бүтэлгүйтэж магадгүй юм. Энэ бол туршилтын хэлбэрээр гарч ирсэн "цэвэр ертөнц" гэсэн таамаглал юм.

Үр дүн

Жишээ нь: энэхүү зохиомол шалгалтын алдааны таван тохиолдлын хяналтын дасгалын цагийг тооцоолоход үндэслэн хиймэл оюун ухааны ноорог гаргахад 20 орчим минут зарцуулсан боловч эхний хувилбар нь шаардлагатай 5 тестийн 2-ыг нь алдсан: давхардсан товшилтын боловсруулалт болон хугацаа дууссаны дараа үйлчилгээ үзүүлэгчийн амжилт.

Дээрх домэйны хязгаарлалтыг нэмсний дараа шинэчилсэн ноорог нь бүх 5 туршилтын тохиолдлыг хамарч, гараар хянан үзэх цөөн санал шаардсан: эхний ноорог дээр 9 санал, хязгаарлагдмал ноорог дээр 3 санал. Хянан шалгах нийт хугацаа ойролцоогоор 55 минутаас 32 минут болж буурсан.

Энэ бол батлагдсан жишиг биш юм. Энэ бол багийн шууд таталтын хүсэлтийн үеэр гурван тоог хянах замаар баталгаажуулж болох тооцооллын жишээ юм: ноорогоос батлагдсан PR хүртэлх хугацаа, хянагчийн сэтгэгдлийн тоо, амжилтгүй болсон зах зээлийн туршилтын тоо.

Юу буруу болж болох вэ

Хамгийн аюултай алдаа бол хиймэл оюун ухаанд "хугацаа дууссан"-ыг "алдаа" гэж үзэх явдал юм. Төлбөрийн систем, имэйл хүргэлт, захиалгын платформ, бараа материалын шинэчлэлт, суурь ажлын байранд энэ таамаглал нь давхардсан үйлдлүүдийг үүсгэж болзошгүй юм.

Бусад нийтлэг асуудлууд:

  • Репо нь PaymentAttempt ашиглах үед хиймэл оюун ухаан нь гүйлгээ гэх мэт шинэ нэр томьёог зохиодог.

  • Энэ нь өргөн хүрээтэй алдааг илрүүлж, үндсэн алдааг нуухын зэрэгцээ ээлтэй мессеж буцааж өгдөг.

  • Энэ нь дахин ашиглах боломжтой дахин оролдох туслагчийг нэмдэг бөгөөд бусад хөгжүүлэгчид дахин оролдох нь аюултай газруудад хуулж болох юм.

  • Энэ нь хэт их контекстийг бүртгэдэг бөгөөд санамсаргүйгээр хэрэглэгчийн болон төлбөрийн нууц мэдээллийг агуулдаг.

  • Энэ нь хамаарал бүр төгс ажиллах үед л код ажилладаг болохыг нотлох тестүүдийг бичдэг.

Практик хоол

Хиймэл оюун ухаанаар дэмжигдсэн кодыг аюулгүй болгох хамгийн сайн арга бол эхлээд түүнд нарийн ширийн зүйлийг өгөх явдал юм: жинхэнэ нэр, жинхэнэ алдааны горим, бодит бүртгэл, бодит туршилтын тохиолдлууд болон бодит хязгаарлалтууд. Хиймэл оюун ухаан нь цэвэр хувилбарыг хурдан боловсруулж чадна. Таны ажил бол нэгтгэхээс өмнө үйлдвэрлэлийн нягтралыг нэмэх явдал юм.


Түгээмэл асуултууд

Кодыг хиймэл оюун ухаан бичсэн эсэхийг яаж мэдэх вэ?

Хиймэл оюун ухааны тусламжтайгаар хийгдсэн код нь хэтэрхий цэгцтэй, бараг л "сурах бичиг" шиг харагддаг: тогтвортой форматлах, жигд бүтэц, ерөнхий нэршил ( өгөгдөл, зүйлс, үр дүн), жигд, өнгөлсөн алдааны мессежүүд. Энэ нь мөн илэрхий логикийг зүгээр л давтан илэрхийлсэн олон тооны баримт бичгийн мөр эсвэл тайлбартай хамт ирж болно. Хамгийн том дохио нь хэв маяг биш - энэ нь зэрлэг хатуу ширүүн байдал байхгүй байх явдал юм: домэйн хэл, репозиторын конвенц, эвгүй хязгаарлалт, системийг тогтвортой байлгадаг захын цавуу.

Хиймэл оюун ухаанаас үүдэлтэй алдааг зохицуулах хамгийн том аюулын дохионууд юу вэ?

Өргөн хүрээний онцгой тохиолдлуудыг (Exception-ээс бусад), анхдагч утгуудыг чимээгүйхэн буцаадаг залгисан алдаанууд, "Алдаа гарлаа" гэх мэт тодорхойгүй бүртгэлийг анхаарч үзээрэй. Эдгээр хэв маяг нь жинхэнэ алдаануудыг нууж, дибаг хийхийг таагүй болгож болзошгүй. Алдааг хүчтэй зохицуулах нь тодорхой, үйлдэл хийх боломжтой бөгөөд эмзэг өгөгдлийг бүртгэлд оруулахгүйгээр хангалттай контекст (ID, оролт, төлөв) агуулдаг. Хэт хамгаалалт нь хамгаалалт дутмаг байхтай адил эрсдэлтэй байж болно.

Яагаад хиймэл оюун ухааны код нь хэт инженерчлэгдсэн эсвэл хэт хийсвэр мэт санагддаг вэ?

Хиймэл оюун ухааны нийтлэг хандлага бол таамаглалын ирээдүйг урьдчилан таамагласан туслах функц, давхарга, сангуудыг нэмж "мэргэжлийн харагдах" явдал юм. Та process_data() эсвэл handle_request() болон системийн давхаргаас илүү диаграммд тохирсон цэвэрхэн модулийн хил хязгаарыг харах болно. Практик шийдэл бол хасах явдал юм: дараа нь өвлөгдөж болох хувилбаруудыг биш, харин таны шаардлагад нийцсэн хамгийн жижиг зөв хувилбарыг авах хүртэл таамаглалын давхаргыг тайрах.

Бодит репозиторт хиймэл оюун ухаанаар дэмжигдсэн сайн код ямар харагддаг вэ?

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

"Цэвэр ертөнц" гэсэн таамаглалыг хамгийн хурдан ямар туршилтууд илчилдэг вэ?

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

Хиймэл оюун ухаанаар бичсэн нэрс яагаад "техникийн хувьд зөв боловч соёлын хувьд буруу" мэт санагддаг вэ?

Хиймэл оюун ухаан нь олон төслүүдэд ажилладаг аюулгүй, ерөнхий нэрсийг сонгодог боловч багууд цаг хугацааны явцад тодорхой аялга боловсруулдаг. Ингэснээр userId болон AccountId, эсвэл transaction болон LedgerEntry. Энэхүү нэршлийн зөрүү нь кодыг таны домэйн болон хязгаарлалтын "дотор" амьдарч байхдаа бичээгүй гэсэн дохио юм.

Кодын тоймд хиймэл оюун ухааны кодыг илрүүлэхийг оролдох нь үнэ цэнэтэй юу?

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

Код илүү найдвартай гарахын тулд хиймэл оюун ухааныг хэрхэн өдөөх вэ?

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

Лавлагаа

  1. Stack Overflow - Stack Overflow Хөгжүүлэгчийн 2025 оны судалгаа - survey.stackoverflow.co

  2. GitHub - GitHub Octoverse (2025 оны 10-р сарын 28) - github.blog

  3. Google - Google-ийн инженерчлэлийн практик: Кодын стандартын тойм - google.github.io

  4. Abseil - Google-ийн програм хангамжийн инженерчлэл: Нэгжийн туршилт - abseil.io

  5. Abseil - Google дээрх програм хангамжийн инженерчлэл: Кодын тойм - abseil.io

  6. Abseil - Google-ийн програм хангамжийн инженерчлэл: Илүү том туршилт - abseil.io

  7. Мартин Фаулер - Мартин Фаулер: Онцлох үйлдлүүд - martinfowler.com

  8. Мартин Фаулер - Практик туршилтын пирамид - martinfowler.com

  9. OWASP - OWASP Аюул заналхийллийн загварчлалын хууран мэхлэх хуудас - cheatsheetseries.owasp.org

  10. OWASP - OWASP бүртгэлийн заль мэхийн хуудас - cheatsheetseries.owasp.org

  11. OWASP - OWASP-ийн 2025 оны шилдэг 10: Аюулгүй байдлын бүртгэл болон сэрэмжлүүлгийн алдаанууд - owasp.org

  12. ESLint - ESLint баримт бичиг - eslint.org

  13. GitHub Docs - GitHub CodeQL код сканнердах - docs.github.com

  14. TypeScript - TypeScript: Статик төрөл шалгах - www.typescriptlang.org

  15. mypy - mypy баримтжуулалт - mypy.readthedocs.io

  16. Python - Python баримт бичиг: Python Profilers - docs.python.org

  17. pytest - pytest fixtures docs - docs.pytest.org

  18. Pylint - Pylint баримт бичиг: bare-except - pylint.pycqa.org

  19. Amazon Web Services - AWS-ийн зааварчилгаа: Буцаан олголтоор дахин оролдоно уу - docs.aws.amazon.com

  20. Amazon Web Services - AWS Builders' Library: Хугацаа дуусах, дахин оролдох болон jitter-тэй буцах - aws.amazon.com

Албан ёсны хиймэл оюун ухааны туслах дэлгүүрээс хамгийн сүүлийн үеийн хиймэл оюун ухааныг олоорой

Бидний тухай

Блог руу буцах

Нэмэлт Түгээмэл Асуултууд

  • Хиймэл оюун ухаанаар үүсгэгдсэн кодыг хэрхэн тодорхойлох вэ?

    Хиймэл оюун ухаанаар үүсгэгдсэн код нь ерөнхий хувьсагчийн нэрс болон өнгөлсөн алдааны мессежүүд зэрэг тууштай формат, жигд бүтэцтэй, хэт цэвэрхэн харагддаг. Илэрхий кодын логикийг давтан илэрхийлсэн хэт их тайлбар, мөн тухайн домэйнд хамаарах нэр томьёо эсвэл контекст элементүүд дутмаг байгааг анхаарна уу.

  • Хиймэл оюун ухааны код хэт их инженерчлэгдсэний шинж тэмдэг юу вэ?

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

  • Хиймэл оюун ухааны кодонд алдаа боловсруулах нь яагаад санаа зовоосон асуудал вэ?

    Хиймэл оюун ухаанаар үүсгэгдсэн алдааг зохицуулах нь өргөн хүрээтэй үл хамаарах зүйлс эсвэл тодорхойгүй алдааны мессеж ашигладаг бол асуудалтай байж болох бөгөөд энэ нь бодит асуудлуудыг нуун дарагдуулж, алдааг олж засварлахад хүндрэл учруулж болзошгүй юм. Сайн алдааг зохицуулах нь тодорхой бөгөөд утга учиртай нөхцөл байдлыг хангах ёстой.

  • Хиймэл оюун ухааны тусламжтайгаар кодыг баталгаажуулахад ямар туршилтууд туслах вэ?

    Интеграцийн тест болон захын тест нь хиймэл оюун ухаанаар үүсгэгдсэн кодын таамаглалыг илрүүлэхэд онцгой үр дүнтэй байдаг. Эдгээр нь код нь хиймэл оюун ухаан урьдчилан таамаглаагүй байж болох гэнэтийн оролт эсвэл нөхцөл байдалд өртөх үед асуудлыг илрүүлж чаддаг.

  • Хиймэл оюун ухаанаар үүсгэгдсэн кодын найдвартай байдлыг хэрхэн сайжруулах вэ?

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

  • Хиймэл оюун ухаанаар үүсгэгдсэн нэрс ямар нийтлэг шинж чанартай байдаг вэ?

    Хиймэл оюун ухаанаар үүсгэгдсэн нэрс нь ерөнхийдөө техникийн хувьд зөв боловч таны төслийн соёлын нөхцөл байдалд тохирохгүй байж магадгүй юм. Эдгээр нь ихэвчлэн ерөнхий шинж чанартай байх хандлагатай байдаг бөгөөд танай салбарт хэрэглэгддэг тодорхой нэр томьёог тусгадаггүй.

  • Хяналтын явцад кодыг хиймэл оюун ухаан үүсгэсэн эсэхийг шалгах нь ашигтай юу?

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

  • Хиймэл оюун ухаанаар үүсгэгдсэн кодонд контекстийн ач холбогдол юу вэ?

    Хиймэл оюун ухаан нь бодит ертөнцийн хязгаарлалт болон бизнесийн логикийн нарийн ойлголт дутмаг байдаг тул нөхцөл байдал маш чухал юм. Энэхүү дутуу нөхцөл байдал нь хиймэл оюун ухааны кодыг өнгөлөг мэт санагдуулдаг ч заримдаа бодит үйл ажиллагааны хэрэгцээнээс салгаж харагдуулдаг.