Qazanclar:
- Daxil tamamlama ilə tapşırıq növünü düzəltmək üçün söhbət rejimini xəritələşdirmək imkanı
- Giriş/çıxış müqavilələri, kənar vəziyyətlər və üslub məhdudiyyətləri daxil olmaqla güclü istehsal göstərişləri yazmaq bacarığı
- Yaradılmış kodu və birləşmədən əvvəl hər hansı yeni təklif olunan asılılıqları yoxlamaq imkanı
Tərtibatçının süni intellektlə ilk əlaqə nöqtəsi tez-tez avtomatik tamamlama olur – bu, yazdığınız zaman növbəti sətri təklif edən xüsusiyyətdir – və ya söhbət pəncərəsində “bu funksiyanı yazın” deyir. Hər ikisi eyni mühərrikdən istifadə edir, lakin fərqli intizam tələb edir. Bu bölmədə biz kodun yaradılmasını təsadüfi "yazmaq"dan çıxışı proqnozlaşdırıla bilən və yoxlanıla bilən mühəndislik addımına çeviririk.
Məqsəd süni intellektni yazı maşınınızı sürətləndirən alətdən təyin etdiyiniz məhdudiyyətlər daxilində işləyən şagirdə çevirməkdir. Yaxşı rəhbərlik edən şagird vaxta qənaət edir; Rəhbərsiz bir şagird sonradan təmizləməli olduğunuz bir qarışıqlıq yaradır.
İki İstifadə Rejimi: Inline Tamamlama və Söhbət
Siz redaktorunuzda yazdığınız zaman daxili tamamlama işə düşür; Siz funksiya imzası və ya şərh xəttini yazın və qalanını təklif edir. Sürət üçün əladır, lakin onun dar konteksti var: o, kodu yalnız yaxın ərazidə görür. Buna görə niyyətinizi şərhdə aydın şəkildə yazdığınız zaman daha yaxşı işləyir. Məsələn, //istifadəçi e-poçtunu doğrulayın, etibarsız şərh aşağıdakı təklifi əhəmiyyətli dərəcədə yaxşılaşdırırsa, ValidationError atmaq.
Söhbət rejimi daha böyük və strukturlaşdırılmış tapşırıqlar üçündür: "Bu sinifə səhifələmə əlavə edin", "Həmin xidmətin interfeysini çıxarın". Burada rol, kontekst və format vermək lüksünüz var. Ümumi qayda belədir: kiçik və axan tapşırıqlar üçün tamamlama, düşüncə və quruluş tələb edən tapşırıqlar üçün söhbət.
İpucu: "Tab" ilə tamamlama təklifini kor-koranə qəbul etməyin. Təklif olunan xətti bir saniyə oxuyun; Yanlış dəyişən adı və ya tərs vəziyyət ən çox buradan sızır.
Niyyəti Koda çevirmək üçün addımlar
- Müqaviləni müəyyənləşdirin. Funksiya girişi, çıxışı və səhv davranışı nədir? "E-poçt alın, etibarlıdırsa normallaşdırın, etibarsızsa xəta atın" kimi.
- Məhdudiyyətləri bildirin. Xarici asılılıqdan istifadə etmirsiniz? Xüsusi üslub bələdçisi? Performans məhdudiyyəti varmı?
- Bir misal göstərin. Giriş-çıxış cütü (“ali@x.com → etibarlı, ali@ → xəta”) modelin niyyət anlayışını proqnozdan dəqiqliyə keçir.
- Kiçik parçalar tələb edin. Bir funksiya, bir məsuliyyət. Sonra növbəti birinə keçin.
- Yaradılmış kodu oxuyun və işə salın. Tərtib etmək + sürətli bir əl cəhdi ən ucuz təminat addımıdır.
Üç mini qutu
Case 1 — Şərh əsasında istehsal dəqiqliyi artırır. Bir tərtibatçı əvvəlcə boş gövdə ilə tarix təhlili funksiyasını tələb etdi və 3 turda düzgün nəticə əldə etdi. İkinci cəhddə funksiyanı 4 sətirlik şərhlə (qəbul edilmiş formatlar, saat qurşağı qaydası, xəta şərti) təyin edib tələb edəndə birinci turda işləyən kod gəldi. Eyni model, eyni gün; fərq yalnız niyyətin aydınlığında idi.
Hal 2 - Versiyanı qeyd etməmək baha başa gəlir. Komandalardan biri Node.js üçün hazırlanmış kodda fs.promises əvəz edən köhnə geri çağırışa əsaslanan API ilə mübarizə apardı. "Use Node 20, ESM, async/await" sətri sorğuya əlavə edildikdə, istehsal layihəni ilk dəfə izlədi; Korreksiyaya sərf olunan orta hesabla 12 dəqiqə sıfırlandı.
3-cü hal - Qazan kodunda real qazanc. Mikroservis üçün 6 yeni DTO (Data Transfer Object — təbəqələr arasında məlumatları daşıyan sadə məlumat sinfi) və onların təsdiqləmə qaydaları tələb olunur. Əvvəllər təxminən 90 dəqiqəlik əl işi AI tərəfindən hazırlandıqda və nəzərdən keçirildikdə 35 dəqiqəyə endirildi; Kodun təkrarlanması yüksək olduğundan və nümunə aydın olduğundan, AI burada ən səmərəli sahədə çalışdı.
Dörd Kopyalana bilən Şablon
Müqaviləyə əsaslanan funksiyaların yaradılması:
Rol: Siz çalışqan {{dil}} tərtibatçısınız.Funksiya müqaviləsi:- Ad: {{ad}}- Giriş: {{növlər və onların mənası}}- Çıxış: {{növ və məna}}- Xəta statusu: {{nə atılır/qaytarılır}}Məhdudlar: {{xarici asılılıqlar / üslub / performans}}Nümunələr: {}_1-çıxış {{entry_2}} -> {{error_2}}Əvvəlcə imza + qısa plan, sonra kod verin. Yazı testləri, sadəcə funksiya.
Mövcud üsluba uyğunlaşdırmaq üçün (kod bazasına uyğunlaşma):
Aşağıda layihəmizdən bir nümunə funksiyası var; Adlandırma, səhvlərin idarə edilməsi və şərh tərzini burada öyrənin. {{new_task}} üçün EYNİ üslubla funksiya yazın. Nümunə: {{current_code}}
Skeletdən doldurulmaya qədər (stub → həyata keçirmə):
Şərhlərdə TODO-lara uyğun olaraq aşağıdakı funksiya skeletini doldurun. İmza və qaytarma növünü DƏYİŞİN. Mövcud olmayan köməkçi funksiya yaratmayın; lazım olsa “bu köməkçi lazımdır” deyin. {{skelet_kod}}
Alternativ tətbiq müqayisəsi:
{{task}} üçün 2 fərqli tətbiq verin: (a) oxunaqlılığa üstünlük vermək, (b) performansa üstünlük vermək. Hər birinin altına 1 "nə vaxt üstünlük verilir" cümləsini yazın.
Zəif məlumat / Güclü göstəriş
Zəif: "Mənə e-poçt yoxlama funksiyası yazın."
Güclü: "TypeScript 5, yalnız standart kitabxana. isValidEmail (daxiletmə: sətir): boolean yazın. Boşluqları kəsin, hərflərə həssas olun, a@b.co etibarlıdır, a@, @b.co, boş sətir etibarsızdır. Əgər regexdən istifadə edəcəksinizsə, həddən artıq mürəkkəb olmayın; şərh əlavə edin. 2 sətir."
Güclü versiya; Dili, versiyanı, imzanı, kənar vəziyyətləri və üslub məhdudiyyətini qaytarır. Beləliklə, yaradılan kod həm işləyir, həm də layihənizə uyğun gəlir.
yanaşma
Nə vaxt istifadə etməli
Diqqət
Daxili tamamlama
Akışda kiçik əlavələr
Təklifi oxumadan qəbul etməyin
Çatda müqavilə əsasında istehsal
Yeni funksiya/sinif
Nümunə və kənar vəziyyəti göstərin
Stil nümunəsi üzrə istehsal
Mövcud koda əlavə olunur
Cari nümunə kodunu seçin
skeletin doldurulması
İmza sabit, əsas boş
İmzanın dəyişdirilməsi
Kodun təkrarlanması və asılılıq tələsi
AI işini asanlaşdırmaq üçün tez-tez yeni kitabxana tövsiyə edir. Bəzən bu dəqiqdir, bəzən layihənizə lazımsız bir asılılıq əlavə edir və ya mövcud olmayan paketi təklif edir (hallüsinasiya). Qayda: hər yeni asılılığı təsdiq edirsiniz. Paketin həqiqətən mövcud olduğunu, saxlanıldığını və müvafiq lisenziyaya malik olduğunu yoxlamadan onu layihəyə əlavə etməyin. Çox vaxt artıq layihədə olan köməkçi yeni paketdən daha yaxşıdır.
Diqqət: AI tərəfindən təklif olunan idxal xətlərini nəzərdən keçirin. Mövcud olmayan bir paket adı (həmçinin "yazılı-squatting" adlanan saxta paketlərə bənzəyir) həm tərtibi pozur, həm də təhlükəsizlik riski yaradır.
Ümumi səhvlər
- Model tərəfindən müəyyən edilmiş imzanın olması. Giriş/çıxış növlərini düzəltməsəniz, hər istehsalla fərqli imza gəlir və inteqrasiya çətinləşir.
- Ehtiyat halları xatırlatmayaq. Boş giriş, null, mənfi ədəd, çox böyük dəyər — bunları qeyd etməsəniz, model kənarları atlayaraq "xoşbəxt yol" yazır.
- Təklifi sınaqdan keçirmədən birləşdirmək. İşlədiyi görünən kod işlədiyi demək deyil.
- Lazımsız asılılığı qəbul etmək. Bir layner üçün bütöv bir kitabxana əlavə etmək texniki borc yaradır.
- Üslub uyğunsuzluğu. Layihənin qalan hissəsindən fərqli adlandırma və səhvlərin idarə edilməsi kod bazasını yamaq edir.
Xülasə
Niyyəti aydın müqaviləyə çevirdiyiniz zaman kodun yaradılması güclüdür. Kiçik, axın daxili tapşırıqlar və söhbətdə struktur quran tapşırıqlar üçün daxili tamamlamadan istifadə edin. Siz giriş/çıxış növlərini, kənar vəziyyətləri, versiyanı və üslubu müəyyənləşdirirsiniz; Modelə bir nümunə verin; hər bir yeni asılılığı yoxlayın; və istehsal olunan hər bir parçanı qaçıb oxuyun. Süni intellekt düsturlu, təkrarlanan kodda ən yaxşı nəticə verir – onu təyin etdiyiniz limitlər daxilində orada işlədin.
Tətbiq tapşırığı
Layihənizdən yazmağınız lazım olan faktiki kiçik funksiyanı seçin. Əvvəlcə onu giriş/çıxış növləri, iki kənar vəziyyət və üslub məhdudiyyəti verən "müqavilə əsaslı funksiyaların yaradılması" şablonu ilə AI-da çap edin. Yaradılmış kodu tərtib edin və onu iki fərqli girişlə sınayın. Sonra eyni funksiyanı yenidən soruşun, bu dəfə heç bir kontekst olmadan “mənə bunu yazın” və iki çıxışı sətir-sətir müqayisə edin: hansı kənar hallar buraxıldı, neçə düzəliş tələb olundu?
yoxlama siyahısı
- [ ] Mən daxili tamamlama ilə söhbət rejimindən harada istifadə edəcəyimi bilirəm.
- [ ] Funksiya generasiyasında giriş/çıxış müqaviləsini və kənar halları müəyyən edirəm.
- [ ] Mən sorğuya dil və versiya məlumatı əlavə etməyi vərdiş halına gətirmişəm.
- [ ] Mən hər bir istehsal olunan parçanı montaj etməzdən əvvəl tərtib edib sınaqdan keçirirəm.
- [ ] Mən AI-nin təklif etdiyi hər yeni asılılığı onun mövcudluğunu və zəruriliyini təsdiq edərək təsdiq edirəm.
- [ ] Yaradılan kodun layihənin üslubuna uyğun olduğunu yoxlayıram.