Yapay Zeka Çağı ve Kod Dökümentasyonu

Eskiden kod ve test kodu dokümentasyondu. Örnegin Java’da bunun icin @Javadoc isminde özel bir yapi bile var.

Ben kodun icinde dokümentasyon yapmayi hic bir zaman tasvip etmedim, cünkü kod cok hizli degisebilen bir mevhum ve metotlar ve siniflar icinde birakilan yorumlar zaman icinde gecerlilklerini yitiriyorlar.

Ben testlerin, özellikle onay/kabul testlerinin gercek dokümentasyon olduklari savini tasiyordum. Bu konuda da fikrim degisti.

Öncelikle kod dokümentasyonunun neden yapildigina bir göz atalim. Dokümentasyon bir sonraki yazilimcinin ne yapildigina dair hizli bir sekilde fikir edinebilmesi icin yapilan bir aktivitedir. Kodu okuyup, anlamak zor olabilir. Bu yüzden zaten clean code gibi akimlar basladi. Dokümentasyon mimari, algoritma ve yeri yapilari hakkinda bilgiler ihtiva eder.

Dokümentasyonun en kötü özellikleri:

  • Cok hizli gercekleri yansitamaz sekilde geride kalmasi
  • Her daim dogrulari ihtiva etmemesi ve güvenilir bir kaynak olmamasi
  • Karmasik olabilmesi

Peki bizim programci olarak dokümentasyon okuma istedigimiz nereden geliyor? Öncelikle sunu belirtelim: böyle bir istek yok. Programci hemen kodu acar, karistirmaya baslar. Bu kafa yapisi ile bir ürün kullanma klavuzuna bakmadan, ürünü calistirmaya calisma zihniyet aynidir.

Genel olarak dokümentasyonu karmasik bir yapiyi anlayabilmek icin okuruz. Peki buna gerek kaldi mi? Bize birisi uygulamanin tüm özelliklerini, kullandigi mimariyi, algoritmalari ve veri yapilarini anlatabilir mi? Evet anlatabilir. Bunu kim yapabilir? Yapay zeka!

Bu sebeple dokümentasyon olusturmaya gerek kalmamistir. Kodun en güncel durumuna en kisa sürede yapay zeka yardimi ile vakif olabiliriz. Code review yapmak istemiyorsak, buna bile gerek kalmamistir. Code review yapmak bile gereksiz bir aktivitedir artik, cünkü olusan tonla kodu mantikli bir. zaman cercevesinde review yapmak mümkün degildir.

Dokümentasyon yerine ben ne yapiyorum? Onay kabul testleri icin onay/kabul kriterleri olusturuyorum. Bunlari test speclleri olarak yapay zekaya veriyorum ve gerekli onay/kabul testlerini olusturmasini ve kosturmasini söylüyorum. Bu testler sorunsuz calisana kadar benim icn kod hatalidir ve üzerinde calisilmasi gerekir.

Benim icin gecerli tek dokümentasyon ve hakikat kaynagi onay/kabul kriterleridir. Gerisi beni ilgilendirmiyor. Onlari okuyarak, uygulamadan olan beklentileri cok hizli bir sekilde kavrayabilirim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir