бирдиги 2 / 12

Скрипт түзүү жана автотолтуруу

Пайдалар:

  • Саптагы аяктоо менен тапшырманын түрүн оңдоо үчүн чат режиминин картасын түзүү мүмкүнчүлүгү
  • Киргизүү/чыгарма келишимдерин, четки учурларды жана стилдик чектөөлөрдү камтыган күчтүү өндүрүштүк көрсөтмөлөрдү жазуу мүмкүнчүлүгү
  • Түзүлгөн кодду жана ар кандай жаңы сунушталган көз карандылыктарды бириктирүү алдында текшерүү мүмкүнчүлүгү

Иштеп чыгуучунун AI менен биринчи байланышы көбүнчө автотолтурулат — бул функция терип жатканда кийинки сапты сунуштайт — же чат терезесине "ошол функцияны териңиз" деп айтуу. Экөө тең бир кыймылдаткычты колдонушат, бирок ар кандай дисциплиналарды талап кылат. Бул бөлүмдө биз коддун жаралышын кокусунан "жазып алуудан" чыгуусу алдын ала жана текшерилүүчү инженердик кадамга айландырабыз.

Максаты - AIди терүү машинаңызды тездетүүчү куралдан сиз койгон чектөөлөрдүн алкагында иштеген үйрөнчөккө айландыруу. Жакшы жетекчилик кылган шакирт убакытты үнөмдөйт; Жетексиз үйрөнчүк башаламандык жаратат, аны кийинчерээк тазалашыңыз керек.

Эки колдонуу режими: Inline аяктоо жана чат

Редакторуңузда терип жатканыңызда сапта бүтүрүү ишке кирет; Сиз функциянын кол тамгасын же комментарий сызыгын териңиз, ал калганын сунуштайт. Бул ылдамдык үчүн сонун, бирок анын тар контексти бар: ал кодду жакынкы аймакта гана көрөт. Ошондуктан комментарийге ниетиңизди так жазсаңыз жакшы болот. Мисалы, //колдонуучунун электрондук почтасын текшерүү, жараксыз комментарий болсо ValidationError ыргытуу төмөндөгү сунушту кыйла жакшыртат.

Чат режими чоңураак жана структураланган тапшырмалар үчүн: "Бул класска баракча кошуу", "Ошол кызматтын интерфейсин чыгаруу". Бул жерде сизде роль, контекст жана формат берүү люкс бар. Жалпы эреже болуп саналат: кичинекей жана агымдуу тапшырмалар үчүн бүтүрүү, ой жүгүртүүнү жана түзүлүштү талап кылган тапшырмалар үчүн сүйлөшүү.

Кеңеш: "Өтмөк" менен аяктоо сунушун сокур түрдө кабыл албаңыз. Сунушталган сапты бир секундага окугула; Туура эмес өзгөрмө аты же тескери абал көбүнчө ушул жерден агып чыгат.

Ниетти кодго которуу кадамдары

  1. Келишимди аныктоо. Функциянын киргизүү, чыгаруу жана ката жүрүм-туруму кандай? "Электрондук почтаны алуу, жарактуу болсо нормалдаштыруу, жараксыз болсо ката ыргытуу" сыяктуу.
  2. Чектөөлөрдү айтыңыз. Тышкы көз карандылыкты колдонбойсузбу? Белгилүү бир стилдик колдонмо? аткаруу чеги барбы?
  3. Мисал келтириңиз. Киргизүү-чыгарма жубу (“ali@x.com → жарактуу, ali@ → ката”) моделдин ниетти түшүнүүсүн болжолдоодон тактыкка жылдырат.
  4. кичинекей бөлүктөрүн сура. Бир функция, бир жоопкерчилик. Андан кийин кийинкисине өтүңүз.
  5. Түзүлгөн кодду окуп, иштетиңиз. Компиляция + тез кол менен сынап көрүү - бул эң арзан кепилдик кадамы.

Үч мини Case

1-жагдай - Комментарийге негизделген өндүрүш тактыкты жогорулатат. Иштеп чыгуучу алгач бош денеси менен датаны талдоо функциясын сураган жана 3 раундда туура жыйынтыкка ээ болгон. Экинчи аракетте мен функцияны 4 саптык комментарий (кабыл алынган форматтар, убакыт алкагынын эрежеси, ката шарты) менен аныктап, сураганымда, биринчи турда иштеген код келди. Ошол эле модель, ошол эле күнү; айырмачылык ниеттин айкындыгы гана болгон.

2-жагдай - Версияны көрсөтпөө кымбатка турат. Бир команда Node.js үчүн чыгарылган коддогу fs.promises алмаштыруучу эски кайра чалууга негизделген API менен күрөштү. "Түйүн 20, ESM, асинхрондоштуруу/күтүү" сабы тездикке кошулганда, өндүрүш биринчи жолу долбоордун артынан чыкты; Түзөтүүгө кеткен орточо 12 мүнөт баштапкы абалга келтирилди.

3-жагдай - Коддун реалдуу кирешеси. Микросервиске 6 жаңы DTO (Data Transfer Object — катмарлар арасында маалыматтарды алып жүрүүчү жөнөкөй маалымат классы) жана аларды текшерүү эрежелери талап кылынат. Мурда болжол менен 90 мүнөт кол менен иштөө AI тарабынан иштелип чыкканда жана каралып чыкканда 35 мүнөткө чейин кыскарган; Коддун кайталанышы жогору жана үлгү ачык болгондуктан, AI бул жерде эң натыйжалуу чөйрөсүндө иштеген.

Көчүрмө төрт шаблон

Келишимге негизделген функцияларды түзүү:

Рол: Сиз тырышчаак {{language}} иштеп чыгуучусусуз. Функция келишими:- Аты-жөнү: {{аты}}- Киргизүү: {{түрлөр жана алардын мааниси}}- Чыгуу: {{түрү жана мааниси}}- Ката абалы: {{кандай ыргытылды/кайтарылды}}Чектөөлөр: {{тышкы көз карандылык жок / стили / аткаруу}}Мисалдар:{}_}- {{entry_2}} -> {{error_2}}Адегенде кол тамга + кыска планды, анан кодду бериңиз. Жазуу тесттери, жөн гана функция.

Учурдагы стилге дал келүү үчүн (код базасына ыңгайлашуу):

Төмөндө биздин долбоордон бир мисал функция болуп саналат; Бул жерден ат коюу, ката менен иштөө жана комментарий берүү стилин үйрөнүңүз. {{new_task}} үчүн Функцияны ОШОЛ стилде жазыңыз. Мисал: {{current_code}}

Скелеттен толтуруу (stub → ишке ашыруу):

Комментарийлердеги TODOларга ылайык төмөнкү функциянын скелетин толтуруңуз. Кол коюуну жана кайтаруу түрүн ӨЗГӨРТҮҮ. Болбогон жардамчы функцияны жасабаңыз; керек болсо, мага "бул жардамчы керек" деп айт. {{skelet_kod}}

Альтернативдүү колдонмо салыштыруу:

{{task}} үчүн 2 түрдүү ишке ашырууну бериңиз: (а) окууга артыкчылык берүү, (б) аткарууну артыкчылыктуу. Ар биринин астына "качан артык" деген 1 сүйлөмдү жазыңыз.

Алсыз тездик / Күчтүү тездик

Алсыз: "Мага электрондук почта текшерүү функциясын жаз."
Күчтүү: "TypeScript 5, стандарттык китепкана гана. isValidEmail (киргизүү: сап): логикалык жазыңыз. Боштуктарды кыскартыңыз, аны регистрге сезбейт, a@b.co жарактуу, a@, @b.co, бош сап жараксыз. Эгер сиз regex колдонгуңуз келсе, өтө татаал болбоңуз; комментарийлерди 2 сап кошуңуз."

Күчтүү версия; Тилди, версияны, кол тамганы, четки регистрлерди жана стилдик чектөөнү кайтарат. Ошентип, түзүлгөн код иштейт жана долбооруңузга туура келет.

мамиле

Качан колдонуу керек

Көңүл буруңуз

Inline аяктоо

Агымдагы кичинекей кошумчалар

Сунушту окубай туруп кабыл албаңыз

Чатта келишимге негизделген өндүрүш

Жаңы функция/класс

Мисал келтирип, иштин четин көрсөт

Стиль үлгүсү боюнча өндүрүш

Учурдагы кодго кошуу

Учурдагы үлгү кодун тандаңыз

скелет толтуруу

Кол коюлган, негизги бош

Кол коюуну өзгөртүү

Кодду кайталоо жана көз карандылык тузагы

AI көбүнчө ишин жеңилдетүү үчүн жаңы китепкананы сунуштайт. Кээде бул так, кээде долбооруңузга керексиз көз карандылыкты кошот же жок пакетти сунуштайт (галлюцинация). Эреже: ар бир жаңы көз карандылыкты ырастайсыз. Пакет чындыгында бар экенин, сакталып турганын жана тиешелүү лицензиясы бар экенин текшербей туруп, аны долбоорго кошпоңуз. Көпчүлүк учурда долбоордо болгон жардамчы жаңы пакетке караганда жакшыраак.

Эскертүү: AI сунуштаган импорттук сызыктарды карап чыгыңыз. Болбогон топтомдун аталышы (ал ошондой эле "типсиздик" деп аталган жасалма пакеттерге окшош болушу мүмкүн) компиляцияны бузуп, коопсуздук коркунучун жаратат.

Жалпы каталар

  • Кол коюу модели менен аныкталат. Киргизүү/чыгарма түрлөрүн оңдобосоңуз, ар бир өндүрүш менен башка кол коюлат жана интеграция кыйындайт.
  • Эң четки учурларды айтпай эле коёлу. Бош киргизүү, нөл, терс сан, өтө чоң маани — эгер сиз буларды көрсөтпөсөңүз, модель четтерин өткөрүп жиберип, "бактылуу жолду" жазат.
  • Сунуштарды сынабай туруп айкалыштыруу. Иштей турган код анын иштейт дегенди билдирбейт.
  • Керексиз көз карандылыкты кабыл алуу. Бир лайнер үчүн бүтүндөй китепкананы кошуу техникалык карызды жаратат.
  • Стильдин дал келбестиги. Долбоордун калган бөлүгүнөн айырмаланган ат коюу жана каталарды иштетүү код базасын жараксыз кылат.

Кыскача айтканда

Кодду түзүү ниетти так келишимге которгондо күчтүү болот. Кичинекей, агымдагы тапшырмалар жана сүйлөшүүдө структураны түзүүчү тапшырмалар үчүн сапта бүтүрүүнү колдонуңуз. Сиз киргизүү/чыгарма түрлөрүн, четки учурларды, версияны жана стилди белгилейсиз; Үлгүгө мисал келтириңиз; ар бир жаңы көз карандылыгын текшерүү; жана чыгарылган ар бир чыгарманы чуркап окугула. AI формулалык, кайталануучу коддо эң жакшы натыйжа берет — аны ошол жерден, сиз белгилеген чектерде иштетиңиз.

Колдонмо тапшырмасы

Долбооруңуздан жазуу керек болгон кичинекей функцияны тандаңыз. Адегенде аны AIга "келишимге негизделген функцияларды түзүү" шаблону менен басып чыгарыңыз, анда киргизүү/чыгарма түрлөрүн, эки четтүү учурду жана стилди чектөөнү бериңиз. Түзүлгөн кодду түзүңүз жана аны эки башка киргизүү менен сынап көрүңүз. Андан кийин ошол эле функцияны кайра сураңыз, бул жолу эч кандай контекстсиз “мага муну жазыңыз” жана эки жыйынтыкты сап-сапка салыштырыңыз: кайсы четиндеги учурлар өткөрүлбөй калган, канча оңдоо талап кылынган?

текшерүү тизмеси

  • [ ] Мен саптык аяктоо менен чат режимин кайда колдонууну билем.
  • [ ] Функцияны генерациялоодо киргизүү/чыгарма келишимин жана четки учурларды аныктайм.
  • [ ] Мен тил жана версия маалыматын чакырууга кошууну адатка айланттым.
  • [ ] Мен ар бир өндүрүлгөн бөлүкчөлөрдү чогултуу алдында сынайм.
  • [ ] Мен AI сунуш кылган ар бир жаңы көз карандылыкты анын бар экенин жана зарылдыгын текшерүү менен тастыктайм.
  • [ ] Мен түзүлгөн код долбоордун стилине дал келерин текшерем.