ai-kodlasdirmanin-məhsuldarligi-paradoksu:-surət-indi,-xaos-daha-sonra
AI kodlaşdırmanın məhsuldarlığı paradoksu: Sürət indi, Xaos daha sonra

AI kodlaşdırmanın məhsuldarlığı paradoksu: Sürət indi, Xaos daha sonra

Şəkildə tam ölçüdə görüntüləmək üçün Enter düyməsini basın və ya vurun

FreePik.com sayəsində

Github Copilot və ChatGpt kimi AI köməkçi kodlaşdırma vasitələri son yaddaşdakı hər şeydən daha sürətli proqram təminatını daha sürətli dəyişdirdi. Bir dəfə saatlar yazan kod xərcləyən inkişaf etdiricilər indi bir neçə dəqiqə ərzində iş prototipləri yarada bilərlər. Komandalar daha sürətli xüsusiyyətləri çatdırır, sənədlər özünü və testləri demək olar ki, avtomatik olaraq görünməyə yazır.

Sehrli kimi hiss olunur … amma 9 ay sonra … bu sehr tez-tez azalır. İndi hansı bir neçə komanda kəşf edən bir problemli bir nümunədir: AI yazılı kodun qorunması, başa düşülməsi, anlaması və ya təhlükəsiz şəkildə uzanması çətinləşir.

Niyə AI yaradılan kod zamanla pisləşir

1. niyyətin olmaması

Böyük bir insan inkişaf etdiricisi və AI kodlaşdırma köməkçisi arasındakı əsl fərq sürət deyil, niyyətdir. İnsanlar kodu yazanda, qururlar zehni modellər: Məlumatların necə axdığının daxili xəritələri, hansı qərarlar memarlıq sürür və hər bir parçanın olması. Hər bir funksiya, hər sinif, hər bir şərh düşüncə fraqmentlərini daşıyır. Bu sadəcə sintaksis deyil; Bu məntiqdə hekayə.

AI bunu etmir. Ticarət və ya təsəvvür edən sistem təkamülünün səbəbi, səbəbi yoxdur. Sadəcə, statistik olaraq yaxşı koda bənzəyən nümunə-ardıcıl sintaksis – kod yaradır.

Nəticə bu anda mükəmməl görünür: təmiz, idiomatik, səmərəlidir. Ancaq altındakı, həyati bir şey yoxdur – sistemləri birlikdə bağlayan niyyətin ipi.

2. Parçalı üslublar

Zamanla, fərqli AI alətlərindən (kopilot, chatgpt və s.) Istifadə etmək üçün zamanla bir çox tərtibatçı tərəfindən yaradılan kodbazalar, stilistik olaraq ayrılmağa başlayır.

  • Modullar arasında uyğun olmayan dəyişən adlar, girinti və ya naxışlar.
  • Eyni məntiq hansı AI yazdığından asılı olaraq incə fərqli yollarla ifadə olunur.
  • Daha sərt avtomatlaşdırılmış refaktorinq, çünki Linters forma vahid “AI ləhcəsi” tətbiq edə bilməz.

3. Gizli mürəkkəblik

AI kodu tez-tez incə mühəndislik təqdim edir:

  • Sadə funksiyaların istədiyi yerlərdə ciddi ehtiyac duymayan çox təbəqə və ya abstraktlar (“ümumi fabrik” nümunələri).
  • Kor qaydada “ən yaxşı təcrübələr” əlavə edildi (məsələn, dekoratorlar, bəzəkçilər, asılılıq enjeksiyası) faydası olmadan əlavə əlavə edin.
  • Sintaktik cəhətdən zərif, lakin semantik olaraq sıx olan “ağıllı” kod – insan oxunmaz deyil.

Bunlar sonradan ayırır və ya ağrılı şəkildə ölçülür.

4. zəif təkamüllə işləyən

AI, təzə kod yaratmaqda əladır, amma davamlılığı qorumaq üçün zəifdir.

  • İterations üzərindəki memarlıq sürüşməsi və ya texniki borcu izləmir.
  • Bir AI-ni “Yeniləmə” Köhnə kodu “yeniləməyə” istədikdə, tez-tez minimum refaktoru deyil, sıfırdan yenidən yazılır.
  • Bu, reqressiya testlərini pozan kod churn, itirilmiş şərhlər və incə davranış dəyişikliklərinə səbəb olur.

Niyə bu 9 ayda görünür

Bu, ömrü olanlar haqqında:

  • İlkin tərtibatçılar davam edir və yeniləri niyyəti başa düşməlidirlər.
  • Yeni xüsusiyyətlər və ya inteqrasiya mövcud kodbazanın uzadılmasını tələb edir.
  • AI qazanından basıb borcu yığmağa başlayır.

Bir çox komanda yeni bir texniki borcu seçməyə başlayır: mükəmməl işləyən kod təkamüllə müqavimət göstərir. AI, nümunə ilə deyil, nümunə ilə yazır, tez-tez heç kimin tam başa düşmədiyi və ya inamla dəyişə bilmədiyi quruluşları geridə qoyur.

Səmərəlilik kimi görünən şey entropiyaya çevrilir – Kiçik dəyişikliklər gözlənilməz dərəcədə ripple, sənədləşmə niyyət və refaktorinqə uyğun olmayan bir tahmin oyunu olur. Borc bugs və ya kəsilmə ilə ölçülmür, itirilmiş anlayışda ölçülür.

Hansı yetkin komandalar bu barədə edir

Kod göndərmə izləmə

  • GIT-də AI yaradılan kod seqmentlərini etiketləmək
  • Birləşməzdən əvvəl bütün AI müəllifi olan bütün müəllifi nəzərdən keçirir.

AI stil icrası

  • İncə tənzimləmə içərisində llms öz repo ardıcıl memarlıq və adlandırma tətbiq etmək.
  • “AI tərzi” naxışları (məsələn, lazımsız abstraksiya) rədd edən Linting qaydaları və naxış oyunlarından istifadə etməklə.

İzahlı tapşırıq tələb edir

  • Hər AI-də köməkli PR-ni qısa bir şeyə daxil etdiyini məcbur etmək rational qeyd (təbii dildə) məntiq və ticarət-offs təsvir.
  • Bu, gələcək qoruyucular üçün yüngül “niyyət təbəqəsi” olur.

Seçici ai istifadə

  • Ai üçün iskeletestiş məntiqi üçün deyil.
  • Komandalar AI nəslini “aşağı riskli” zonalara məhdudlaşdırır: qazan, məlumat xəritələri, sənədlər və s.

Guardrails kimi memarlıq

  • AI’nin doğaçlama edə biləcəyini məhdudlaşdırmaq üçün domen idarəedici dizayn və ya Microservice şablonlarından istifadə etməklə.
  • Memarlıq-Birinci İnkişaf: AI əvvəlcədən müəyyən edilmiş sərhədlərin içərisindəki boşluqları doldurur. Bu birlik qoruyur və proqnozlaşdırılan kod təkamülünü qoruyur.

Alt xətt

Ən yaxşı halda, AI bir sürətləndiricidir – insan məhsuldarlığını artıran və təkrarlanan işləri azaltan bir vasitədir. Ancaq bu, insan ağlının yolunun əvəzedicisi deyil səbəb sistemlər haqqında.

AI dünyanın modelləri qurmur. Dil nümunələri qurur. Bu anlaşma formasını təqlid edə bilər, ancaq bunun mahiyyəti deyil. Buna görə AI yaranan kod bu gün parlaq görünə bilər və altı aydan sonra bataqlıq hiss edə bilər. İnsan tərtibatçılarının bir sistemi dizayn, refaktor və inkişaf etdikcə inşa etdiyi zehni model yoxdur.

İnsanlar kodu ünsiyyət forması olaraq yazdırır: keçmiş və gələcək arasında, komanda yoldaşları arasında, niyyət və icra arasında. AI bu kodu yazır ardıcıl Amma deyil şüurlu.

Kod ünsiyyət qurarkən, bu, davamlı olmağı dayandırır.

Beləliklə, iş axınlarımızda AI-ni qucaqladığımız üçün, onun həqiqi uzunömürlülüyünün kodunu nə olduğunu xatırlamalıyıq: mənası. Bu dözən sintaksis deyil, bunun arxasında düşüncə var.

AI naxışlar yarada bilər, ancaq insanlar məqsəd yarada bilərlər. Və məqsəd, bir yığın təlimatdan kodun canlı, inkişaf edən bir sistemə çevrilməsi nədir.

Çünki sonda: İnsan tərtibatçıları zehni modellərlə yazın. AI nümunə ardıcıl sintaksisini yazır. Biri başa düşür. Digəri çıxışı qurur. Və proqramın gələcəyi ikisini nə qədər balanslaşdıracağıqdan asılı olacaq.

Qaynaq