Loop Engineering ve Refactoring

Gelelim refactoring konusuna. Programci iken en sevdigim konulardan birisi idi.

Refactoring ile kodun yeniden yapilandirilmasini kastediyorum. Refactoring her daim yapilabilecek bir aktivite degildir. Yapilabilmesi icin yerine getirilmesi gereken cok önemli bir sart bulunmaktadir. Test mevcudiyeti.

Cevik olmanin temelini aslinda refactoring dedigimiz aktive sagliyor. Onun icin de testler lazim. Bu yazimda buna deginmistim.

Simdi yeni bir savim var:

> Loop Engineering mimari seviyede yeni refactoring yöntemidir.

Bu tezimi aciklayayim.

Yapay zeka öncesinde nasil refactoring yapiyorduk?

Kod

Testleri kostur

Kodu degistir

Testleri kostur

Kodu degistir

Testleri kostur

Testler burada imdat simidi görevi görüyorlar. Onlar olmadan kod degisikliklerin yan etkilerini yakalamak imkansiz. Bu yüzden code coverage yüksek olmak zorunda.

Martin Fowler refactoring yöntemini su sekilde tanimliyor:

> Davranisi degistirmeden ic isleyisi degistirmek.

Bu yüzden zaten yillarca interface siniflar ve onlari implemente eden somut siniflari gelistirdik, cünkü isleyisi degistirmeden ic davranisi yeni bir somut sinif implementasyonu ile degistirmek mümkündü.

Yapay zeka ile durum degisti. Artik Opus benim icin gerekli refactoring islemini yapiyor. Ben artik herhangi bir sinifi refactor etmiyorum. Opus araciligi ile tüm bir sistemi refactor ediyorum.

Refactoring islemini loop engineering ile nasil iliskilendiriyorum?

Bir loop plan yapisina bakalim:

Analiz

Plan

Implementasyon

Test

Review

Eksik ya da problemi yerlerin tespiti

Tekrar analiz

Bu döngü refactoring döngüsüne cok benzemiyor mu? Tek bir farki var. Eskiden. bu adimlarin hepsini ben kendim tek tek atmak zorundaydim. Bunu simdi LLM yapiyor.

Loop engineering sayesinde bütün bir sistemi istedigim sekle sokana kadar refactor edebilirim. Eskinden ben metod, sinif, modül bazinda bu islemi yaparken, günümüzde tek bir loop ile koca bir sistemi bile yeniden yapilandirabiliyorum.

Burada testler yine ayni vazifeyi görmeye devam ediyorlar. Her loop sonunda testlerin de calisir durumda olmalari, refactoring isleminin yan etkisiz yapildigini garanti edecektir.

Burada yazilimcinn vazifesi de tam anlamiyla degismis durumda. Artik refactoring yapan kendisi degil, kullandigi LLM’dir. Yazilimci iyi bir uygulama mimarisi icin ne gerektigini cok iyi bilen ve bu bilgisi isiginda degisik iterasyonlarda tasarladigi sistemin oraya cikmasini saglayan kisidir.

Loop engineering refactoring yönteminin bir sonraki evrimidir.

Bir yanıt yazın

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