Добици:
- Способност мапирања основног страног кода слој по слој помоћу вештачке интелигенције и праћења обележја од краја до краја
- Способност објашњавања сложених функција корак по корак и праћења тока података
- Способност сагледавања АИ описа као хипотезе и верификације критичних тврдњи у коду
Програмери читају код уместо да пишу код. Када започнете нови посао, преузмете услугу коју је оставио неко други или допринесете библиотеци отвореног кода, ваш први задатак је „шта се овде дешава?“ је пронаћи одговор на питање. АИ може смањити овај задатак откривања на сате, а не на недеље - али само када се користи са правим питањима и рефлексом верификације.
У овој јединици учимо да користимо АИ као „водич кода“: мапирање стране базе кода, превођење сложене функције на обичан језик, праћење тока података и проналажење начина за коришћење библиотеке. Златно правило овде је да је објашњење АИ хипотеза; то верификујете самим кодом.
Зашто је анотација кода моћна, али ризична?
ЛЛМ је веома добар у читању дела кода и превођењу на људски језик, као што је „ова функција освежава токен сесије корисника“; јер је научио обрасце из милиона сличних примера. Ово је велика уштеда времена, посебно са дугим и угнежђеним функцијама.
Ево ризика: модел понекад говори шта код изгледа чини, а не шта заправо ради. Ако је име променљиве исАдмин, али је логика унутра обрнута, модел може погледати име и извући погрешан резиме. Стога, пре него што изјаву учините основом за своје критичне одлуке, требало би да визуелно проверите наводно понашање на релевантним линијама. Опис вас води на право место; Кодекс има последњу реч.
Опрез: Не рачунајте резиме АИ „овај код ради Кс“ само као доказ у одлуци која укључује безбедност или проток новца. Резиме је мапа која показује где тражити; Потврду дајете у коду.
Кораци за мапирање базе страног кода
- Почните на највишем нивоу. Прво се упознајте са структуром фасцикли и улазним тачкама (главни, покретање апликације, кућни рутер). Питајте АИ "који су слојеви апликације засновани на овој структури директоријума?" питати.
- Пратите функцију од краја до краја. „Које датотеке се активирају и којим редоследом када се корисник пријави?“ — гледање једног тока је поучније од читања целе архитектуре.
- Локализујте термине. Затражите од АИ концепте специфичне за пројекат („станар“, „књига“, „посланик“) и пронађите њихове еквиваленте у коду.
- Упростили сте сложену функцију. Нека дуга функција буде објашњена корак по корак, а затим означите те кораке у коду.
- Верифи. Направите малу промену и покрените тестове да бисте тестирали своје разумевање; Тест вам одмах каже да ли је ваше разумевање погрешно.
Три мини кућишта
Случај 1 — Наслеђена услуга је смањена са 2 дана на 3 сата. Програмер је преузео услугу усаглашавања плаћања са 4.000 редова од колеге који одлази. Имао је АИ да сумира модуле и прати ток плаћања од краја до краја; Он је лично верификовао две критичне функције у коду. Откриће, за које је процењено да ће трајати 2 дана уз класично „читање на слепо“, завршено је за отприлике 3 сата верификованим АИ методом.
Случај 2 — Замка за лажно име. Једна функција се звала валидатеАндСаве, али у резимеу АИ је писало „прво проверава, па чува“. Када је програмер ушао у код, видео је да је чување обављено пре верификације, а верификација је само записала у дневник. Ово је био прави узрок грешке у производњи. Ако у коду није било валидације, лажни резиме би сакрио грешку.
Случај 3 — Убрзано учење нове библиотеке. Тим је намеравао да интегрише библиотеку реда порука са којом нису били упознати. Питао сам АИ "како да подесим потрошача у овој библиотеци, како да покушам поново у случају грешке?" Питали су и дали су узорак; Затим су упоредили пример са званичним документом и исправили разлику (стара верзија АПИ-ја). Време учења је преполовљено.
Четири шаблона за копирање
Мапирање базе кода:
Испод је листа директоријума/датотека пројекта. 1) Издвојите слојеве апликације (улаз, пословна логика, приступ подацима, итд.). 2) Наведите могуће путовање фајла захтева „{{екампле проперти}}“. 3) Означите области за које нисте сигурни као „морају бити верификоване“. {{дирецтори_лист}}
Опис функције (корак по корак):
Поделите ову функцију у групе редова и објасните на чистом турском шта свака група ради. Коначно: наведите улаз, излаз, нежељене ефекте (база података/фајл/мрежа) и могуће ивичне случајеве. Сакупите понашања за која нисте сигурни у ОДВОЈЕНИ наслов „мора бити верификован“.{{фунцтион}}
Праћење тока података:
Одакле долази вредност „{{вариабле/дата}}“, кроз које трансформације пролази, где је написана? Креирајте ланац тока користећи имена функција у коду. Сродни код: {{цоде_сегментс}}
Научите како да користите библиотеку:
Желим да направим {{пурпосе}} са {{библиотеком}}. Наведите минималан, радни пример. Уверите се да свака функција коју користите заиста припада овој библиотеци; ако нисте сигурни, означите „провери из службене документације“. Верзија: {{верзија}}.
Слаби промпт / Јаки промпт
Слабо: "Објасните овај код." (Шта се питате? На ком нивоу? Шта ћете радити?)
Снажан: "Преузимам ову функцију и променићу логику поновног покушаја у њој. Објасните функцију корак по корак, посебно у случају грешке, јасно наведите колико пута и у ком интервалу покушавате поново; означите делове за које нисте сигурни као 'морају бити верификовани'. [код]"
Јака верзија даје вашу намеру (променићу логику поновног покушаја) и фокус; тако да објашњење није општи резиме већ користан водич.
Куест
АИ ради добро
Обавезно проверите
Општи преглед архитектуре
Уклоните слојеве
Стварни редослед позива
сложена функција
Корак по корак објашњење
Обрнута логика, нежељени ефекти
ток података
Израда ланца
Условне гране, прескочене стазе
Коришћење библиотеке
Генерисање узорка
Аутентичност и верзија АПИ-ја
Нема замене за људско разумевање
АИ опис није замена за учење; то убрзава. Заиста „поседовати“ базу кода значи изградити њен ментални модел, а тај модел се уклапа само док читате код, правите мале измене и видите резултат. Користите вештачку интелигенцију као што би вам ментор рекао „погледајте овде, ово је важно“ — али прочитајте где то видите својим очима.
Савет: Када мислите да разумете функцију, замолите АИ да је „сумира у једној реченици“; Затим га упореди са својом реченицом. Ако су две реченице у супротности једна с другом, или сте ви или модел нешто пропустили - и ви то решите у коду.
Уобичајене грешке
- Размотрите резиме као доказ. Доношење одлуке о шифри без провере описа значи упадање у замку погрешних имена.
- Лепљење превеликих комада. Сумирање 2.000 редова одједном даје површне резултате и подложне грешкама; поделити на комаде.
- Не наводећи сврху. Ако не кажете „шта ћете радити“, опис остаје општи и не фокусира се на ваш посао.
- Не проверава се инстанца библиотеке. Модел може позвати застарели или непостојећи АПИ; Упоредите са званичним документом.
- Давање свега учења. Рад само са апстрактима без читања базе кода оставља вас беспомоћним при првој правој грешци.
Укратко
АИ је моћан водич у истраживању стране базе кода: мапира архитектуру, поједностављује сложене функције, прати ток података, подучава коришћење библиотеке. Али свако објашњење је хипотеза. Јасно разјасните своју поенту, раздвојите је и проверите у коду и тестирајте сваку критичну тврдњу за коју модел каже (а не) „мора бити верификована“. Водич је АИ; Ви сте тај који чита мапу и сноси одговорност.
Задатак апликације
Изаберите модул који вам није познат или који сте управо наследили. Прво, издвојите слојеве и путовање кроз датотеку функције помоћу шаблона „мапирање базе кода“. Затим нека најкритичнија функција те функције објасни корак по корак помоћу шаблона „објашњење функције“. Коначно, лично проверите у коду најмање две тврдње које је модел означио као „мора бити верификован“ и забележите да ли су тачне или нетачне.
контролна листа
- [ ] Ја третирам АИ изјаву као хипотезу и проверавам је у коду.
- [ ] Док објашњавам код, додајем своју сврху и фокус на промпт.
- [ ] Велику базу кода сажимам тако што је делим на делове.
- [ ] Проверавам критичне тврдње на мрежи за лажне замке имена/обрнуте логике.
- [ ] Поредим примере библиотеке са званичним документом и верзијом.
- [ ] Користим АИ као водич за убрзање учења, а не као замену за учење.