Rehberler

Yapay zekâ ile kod inceleme

Yapay zekâ ile kod inceleme, bir pull request'i tıpkı kıdemli bir inceleyicinin yaptığı gibi okuyan; mantığı, güvenliği ve tutarlılığı bir insan dikkatini harcamadan önce denetleyen bir operatördür, içine fonksiyon yapıştırdığınız bir sohbet botu değil. Bu pillar, yapay zekânın bir inceleme akışında neyi gerçekten iyi yaptığını, insan kapısının yerini nerede tutamadığını ve bir ekibin bunu birleştirmeyi yavaşlatmadan pull request akışına nasıl yerleştirdiğini anlatır.

Çoğu “yapay zekâ ile kod inceleme” yazısı, özellik tablosuyla sunulan on aracın listesidir. Bu, asıl meseleyi kaçırır. Değer, en çok onay işareti olan uygulamayı seçmek değildir; bir kusurun ne zaman yakalandığını değiştirmektir. Yani “bir inceleyici Salı günü fark etti”yi “diff push edildiği an işaretlendi”ye çevirmektir. Biz işi inceleyip teslim eden bir yapay zekâ sistemini bu şekilde yürütüyoruz; o yüzden bu pillar, inceleme akışını ziyaret ettiğiniz bir araç olarak değil, bir operatör olarak anlatıyor.

Yapay zekâ ile kod inceleme gerçekte ne yapar?

Bir değişikliği bağlamı içinde okur ve yorgun bir insan inceleyicinin gözden kaçırma eğiliminde olduğu şeyi bildirir: hiç ele alınmayan null yolu, yanlışlıkla commit edilmiş bir secret, kod tabanının kendi kurallarından sapmış bir fonksiyon. Dürüst çerçeve şudur: yapay zekâ bir ilk-geçiş okuyucusudur, bir hüküm değil. Mekanik taramada güvenilirdir. Yani stil tutarlılığı, bariz mantık boşlukları, yüzeysel güvenlik kokuları; bir diff’in her satırında, her seferinde, dört yüzüncü dosyayı insana göz gezdirten yorgunluk olmadan. Ürettiği şey önceliklendirilmiş bir listedir: işte bir insanın gözünü hak eden satırlar ve nedeni. İnceleyici de yargısını, tüm diff’i sıfırdan okumak yerine, önemli olan birkaç satıra harcar.

Yapay zekâ ile kod inceleme nerede yardım eder, nerede etmez?

En çok incelemenin yüksek-hacimli, az-yargı gerektiren katmanında yardım eder: mevcut desenlerle tutarlılık, eksik hata yönetimi, test kapsamındaki boşluklar ve bir şey insana ulaşmadan önce güvenlik ön-taraması. Sistemin neden var olduğunu anlamayı gerektiren kısımlarda ise yardım etmez, hatta tehlikelidir: bunun doğru mimari olup olmadığı, değişikliğin gerçek ürün niyetiyle örtüşüp örtüşmediği, bu işletme için ödünün kabul edilebilir olup olmadığı. Yapay zekâ sizin alan kısıtlarınızı bilmez; bu yüzden teknik olarak temiz ama mimari olarak yanlış bir değişikliği özgüvenle onaylar. İçeride tuttuğumuz sınır şudur: makine kapsama ve tutarlılığa sahiptir, insan ise niyetin doğruluğuna. Yapay zekânın gözetimsiz onaylayıp birleştirmesine izin veren bir ekip, incelemenin tek anlamlı kısmını otomatikleştirip ortadan kaldırmıştır.

Yapay zekâ pull request akışına nasıl oturur?

İnsan incelemesinin yerine değil, ondan önce çalışan bir aşama olarak. Akış şöyledir: bir geliştirici pull request açar, yapay zekâ inceleyici otomatik çalışır ve satır içi yorumlarla bir özet paylaşır, geliştirici mekanik bulguları giderir; ancak ondan sonra bir insan inceleyici geriye kalanı, yani tasarımı ve niyeti, gözden geçirir. Bunu işler kılan disiplin, herhangi bir yapay zekâ ile yürüyen süreçte kullandığımızın aynısıdır: her bulgu, bir insanın kabul edebileceği veya reddedebileceği ayrı, incelenebilir bir yorumdur; birleştirmeyi otomatik bloklayan kapalı bir skor değil. Böyle yapıldığında yapay zekâ, sıkıcı yarıyı kaldırarak incelemeyi kısaltır; insan inceleyici daha küçük, önceden temizlenmiş bir diff’e ulaşır ve gerçekten beyin isteyen kısmı inceler.

Kod incelemede insanın işi olarak ne kalır?

Mimari karar, bağlama bağlı güvenlik yargısı ve son onay. Bir yapay zekâ, bir sorgunun parametrelenmemiş olduğunu işaretleyebilir; o girdiyi güvenilir kılan veri akışına ise bir insan karar verir. Bir yapay zekâ, bir modülün büyüdüğünü not edebilir; onu şimdi mi böleceğine yoksa borcu mu kabul edeceğine bir insan karar verir. Onay düğmesinin sahibi de makine değil bir insandır, çünkü onay bir hesap verebilirlik eylemidir: biri “bu değişikliği anlıyorum ve arkasında duruyorum” diyor. Onayı otomatikleştirip kaldırmak, bir kod tabanının her kontrolden geçmiş ama kimsenin gerçekten anlamadığı değişikliklerle dolmasının yoludur. Bırakın yapay zekâ mekanik %80’i temizlesin ki inceleyicinin dikkati gerçek riski taşıyan %20’ye insin.

Bu, review’u gömülü teslim eden bir mühendislik pod’unun arkasındaki işletim modelidir; sona sonradan cıvatalanmış bir araç değil, birlikte çalışan inşa, tasarım, veri ve bir QA kapısı: Web / Mühendislik Ekibi kiti sayfasına bakın. Daha derin nasıl-yapılır rehberleri yapay zekâ kod inceleme araçları, GitHub’da yapay zekâ ile kod inceleme ve yapay zekâ ile kod dokümantasyonu sayfalarındadır.

Araçları mı arıyorsun? 58 Geliştirme aracına göz at →

Bu kümedeki yazılar