Mimari çürümenin bir nedeni geliştirme maliyetine taviz vermektir
Categories:
Çürümüş mimarinin özellikleri şunlardır: çok sayıda özel işlem, uyumluluk işlemi, ciddi bağlantı ve geri dönüşü olmayan birikim. Mimari yavaş yavaş çürüyecektir. Çürümüş mimari, yeni özellikler geliştirmeyi zorlaştırır, hata düzeltmek zordur, bir yerine dokununca her yer etkilenir, bu da test ve QA’yı da zorlaştırır. Meslek dışından bir geliştirme meraklısının, kod yazarken modelin soyutlama davranışını sınırlaması gerektiğini, böylece kodun daha anlaşılır olacağını söylediği bir gönderi görmüştüm. İnsanın daha kolay anladığı kod, LLM tarafından da daha kolay anlaşılır, bu nedenle hızlı geliştirme yapılabilir ve hatalar azalır. Sanırım meslek dışından geliştiricilerin mühendislik ölçeği küçüktür ve montaj hattı mantığına alışkındır; eğer ölçeği büyütme beklentisi varsa, düşünme şekli montaj hattıyla sınırlı kalmamalı, bunun yerine bir inşaat işçisi zihniyeti kullanılmalıdır. 30 katlı bir bina inşa etmeyi hedefliyorsanız, 10 metre temel kazmanız gerekir; su ve elektrik bağlantısını hedefliyorsanız, su ve elektrik bacaları ayırmanız gerekir. Bu, hedefi net bir tasarımdır; bunun yanı sıra, hedefi net olmayan tasarımlar da vardır, örneğin evin içinde ileride bir elektrikli cihaz konulacak ama ne olduğu belirsizse, sadece bir priz bırakmak yeterlidir. Yazılım mühendisliğinde tasarıma rehberlik etmek için zaten SOLID ilkeleri vardır; birçok durumda görünürde SOLID ilkelerine uyulduğunda aynı işlevi gerçekleştirmek için daha fazla dosya ve daha fazla kod yazılır, kısa vadeli sonuçlara bakıldığında, tasarım yapmakla yapmamak arasında patron/test/kullanıcı neredeyse hiçbir fark görmez, tasarımın getirdiği fayda ancak uzun vadede ortaya çıkar. İyi bir mimari, özellik eklemeyi, özellik değiştirmeyi ve hata düzeltmeyi kolaylaştırır ve daha az sorun getirir. Tasarım için gereken düşünme, genellikle doğrudan özellik geliştirmeye başlamaktan daha fazladır; tasarım, parçacık büyüklüğünü (granülerliği) göz önünde bulundurmalıdır, priz panelini tüm duvarlara fayans gibi yapıştırmak başka bir saçma yaklaşımdır. Geçmişte geliştirme yaparken geliştirme döngüsünü düşünür, ödün verirdim; zaman kısıtlı olduğunda tasarım bile yapmaz, birkaç fonksiyon ekleyip işi bitirir, geleceğin işini geleceğe bırakırdım. Şimdi AI sayesinde, tasarımın parçacık büyüklüğünü daha küçük yapabilir, üretilen kod insan tarafından daha zor anlaşılır görünse de mühendislik daha kolay bakım yapılır hale gelir. Soyutlamayı artırdıktan sonra, daha zayıf modeller gerçekten iyi başa çıkamayabilir, bu nedenle şu anki en iyi modeli kullanmak en iyisidir. Sadece betik (script) yazıyorsanız, modeller arasındaki yetenek farkı çok belirgin olmayabilir. AI’ın geliştiricilerin giriş engelini düşürüp düşürmediğine gelince; bu konuda şüpheliyim, sonuçta yeni geliştiricilerin öğrenme yolu geçmişten tamamen farklı, engelin yüksek mi alçak mı olduğu tartışması anlamsız olabilir, çünkü engelin nereye taşındığını bilmiyoruz.
