Diğer tüm geliştiricilerin temel CRUD uygulamaları yapmaya alışkın oldukları veya yalnızca güzel / fonksiyonel arayüzler yapmaya odaklandıkları iş uygulamaları serisi yapıyorum ve aşağıdakileri çok alıyorum.
"Bunu yapmak için kullandığımız yolla Çalışan, bir çalışanla yapabileceğiniz her şeye sahip olacaktır." Ve bu doğruydu. Bir "Sınıf" binlerce satır kod vardı ve bir çalışan ile yapabileceğiniz her şey vardı. Daha da kötüsü, bir çalışan verileri tablosu vardı ve her geliştirici olay işleyicisinde yapmak istediklerini nasıl yapacağını anladı.
Bu yaklaşımla ilgili tüm kötü şeyler doğruydu, ancak en azından çalışanı kullanan geliştirici, diğer belgelere gitmeden, çalışanı bir sağlık planına nasıl kaydedeceğini, ücret artışı, yangın, işe alma, transfer vb. Yönetici ve diğer tüm büyük fikirler için. Veya, çalışanı diğer gerekli veri tablolarını kullanıyorlarsa, istediklerini yapabilirlerdi.
Evet, çoğaltılmış kod vardı. Evet çok kırılgan bir kod. Evet, test etmek gerekenden çok daha zordu. Evet işlevselliği değiştirmek korku uyandırıcıydı ve Kopyala Yapıştır yaklaşımı nedeniyle doğaldı.
Ama en azından bir sınıf oluşturarak neyin mevcut olduğunu keşfedebildiler ya da arayüzler, soyut sınıflar, somut sınıflar vb. Arasındaki farkı anlamak zorunda kalmadan yapmaları gerekeni yapabilirlerdi. intellisense tarafından döndürülen yöntemler veya verilerin bulunduğu tabloları bilir.
Ben googled / binged ve hatta yahoo! D var ama bu sorunun herhangi bir kabul bulamadık.
Belki bir sorun yok ve ben sadece bir şey eksik. Gerçek davranış / tasarım çalışmayan geliştiricilerin herhangi bir harici belgeye başvurmak zorunda kalmadan veya çeşitli bileşenlerde sınıf adlarını taramak zorunda kalmadan kolayca bir şeyler yapmayı keşfedebilecekleri bir çözüm bulmaya çalışan bir çözüm bulmaya çalıştım. projenin kulağa hoş geleceğini bulmak için çalışır.
Ortaya koyabildiğim tek şey, daha iyi bir isim eksikliğinden dolayı, gerçek sınıfları döndüren başka bir şey yapmayan "İçerik Sınıfı Tablosu" (ve bunların çoğu arayüzler ama diğer geliştiricilerin istenen gerçek görevleri yerine getirmek için kullanabileceği farkı veya hatta bakımı). Hala gerçekten büyük sınıflarla sonuçlanıyor ama içlerinde neredeyse hiç davranış yok.
SOLID'in gerçek uygulamasının gerçekleştiği orta katman hakkında samimi bilgi gerektirmeyen daha iyi bir yol var mı?
Temelde istediğim, CRUD tipi geliştiricilerin çok karmaşık bir sistemde CRUD geliştiricileri olmaya devam etmelerine izin vermenin bir yolu var