Sorun Özeti:
Uzun lafın kısası, bir kod üssünü ve değiştirmeme izin verilmeyen bir geliştirme ekibini miras aldım ve God Objects kullanımı büyük bir sorun. Devam edersek, bize bir şeyleri yeniden faktörlendirmek istiyorum, ancak Tanrı Nesneleri ile her şeyi yapmak isteyen ekiplerden geri adım atıyorum "çünkü daha kolay" ve bu da yeniden faktörlendirmeme izin vermeyeceğim anlamına geliyor. Yıllar süren gelişim tecrübemden bahsettim, bu şeyleri, vb. Tanıyan yeni patron benim olduğumu ve üçüncü taraf denizaşırı şirketlerin satış temsilcilerini hesapladığını ve şimdi yönetici düzeyinde ve toplantımda olduğunu belirttim. yarın ve en iyi uygulamaları savunmak için çok fazla teknik mühimmat almak istiyorum çünkü şirket için uzun vadede daha ucuz olacağını düşünüyorum (Ve şahsen üçüncü tarafın endişelendiğini hissediyorum).
Sorunum teknik düzeyde, uzun vadesinin iyi olduğunu biliyorum, ancak ultra kısa ve 6 aylık dönemle ilgili sorun yaşıyorum ve "bildiğim" bir şeyi referanslar ve kaynak göstererek kaynaklarla kanıtlayamıyorum. bir kişiden (Robert C. Martin, diğer adıyla Bob Amca), benden bir kişiden veri aldığı söylendiği gibi yapmam isteniyor. Sadece bir kişiden (Robert C Martin) bir tartışma yeterince iyi değil .
Soru:
Alanında tanınmış uzmanlar tarafından doğrudan "Unvan, yıl yayınlandı, sayfa numarası, alıntı" diyebileceğim bazı kaynaklar nelerdir Açıkça "Tanrı" Nesneleri / Sınıfları / Sistemlerini kullanmanın kötü olduğunu (veya aradığımızdan beri iyidir) en teknik olarak geçerli çözüm için)?
Araştırma yaptım zaten:
- Burada birkaç kitabım var ve “tanrı nesnesi” ve “tanrı sınıfı” kelimelerini kullanmak için endekslerini aradım. Tuhaf bir şekilde neredeyse hiç kullanılmadığını ve GoF kitabının kopyasının, örneğin hiç kullanmadığını (en azından önümdeki dizine göre) buldum, ancak aşağıdaki iki kitapta buldum, ancak daha fazlasını istiyorum. Kullanabilirim.
- "God Object" için Wikipedia sayfasını kontrol ettim ve şu anda küçük referans bağlantılarına sahip olan bir saplama var, bu yüzden kişisel olarak onunla aynı fikirde olduğumu kabul etsem de, kişisel deneyimimin geçerli olmadığı kabul edilen bir ortamda kullanabileceğim fazla bir şey yok. Alıntı yapılan kitabın, bu teknik noktaları tartıştığım insanlar tarafından geçerli olamayacak kadar eski olduğu da iddia ediliyor; “bir zamanlar kötü olduğu düşünülüyordu ama kimse bunu ispatlayamıyordu, ve şimdi modern yazılım” diyor. "nesneler kullanmak iyidir". Şahsen, bu ifadenin yanlış olduğuna inanıyorum, ancak gerçeği kanıtlamak istiyorum, her neyse.
- Robert C Martin'in "C # 'da Çevik İlkeleri, Kalıpları ve Uygulamaları" nda (ISBN: 0-13-185725-8, ciltli) 266. Sayfada "Herkes tanrı sınıflarının kötü bir fikir olduğunu biliyor. Bir sistemin tüm zekasını tek bir nesneye veya tek bir işleve yoğunlaştırmak. OOD'nin amaçlarından biri de davranışların birçok sınıfa ve birçok işleve ayrılması ve dağıtılmasıdır. ” - Ve sonra bazen bazen yine de Tanrı Sınıflarını kullanmanın daha iyi olduğunu söylemeye devam ediyor.
- Robert C Martin'in “Temiz Kodu: Çevik Yazılım İşçiliğinin El Kitabı”, sayfa 136 (Ve sadece bu sayfa) “Tanrı sınıfı” hakkında konuşur ve “sınıflar küçük olmalı” kuralının ihlal edildiğinin en önemli örneğidir. 138. sayfada başlayan "Tek Sorumluluk İlkesini" teşvik etmek için kullanıyor.
Sahip olduğum sorun tüm referanslarım ve alıntılarım aynı kişiden (Robert C. Martin) ve aynı kişiden / kaynaktan geliyor. Bana sadece tek bir görüş olduğu için "Tanrı Sınıfları" nı kullanma arzumun geçersiz olduğunu ve yazılım endüstrisinde standart en iyi uygulama olarak kabul edilmediği söylendi. Bu doğru mu? Bob Amca'nın öğretisine devam etmeye çalışarak teknik açıdan yanlış şeyler mi yapıyorum?
Tanrı Nesneleri ve Nesneye Dayalı Programlama ve Tasarım:
Bunu düşündüğümden daha fazla düşünüyorum, bunun daha fazla OOP okuduğunuzda öğreneceğiniz bir şey olduğunu düşünüyorum ve asla açıkça söylenmiyor; İyi tasarımın anlamı benim düşüncem (beni düzeltmek için çekinmeyin, lütfen öğrenmek istediğim gibi), sorun bunu "bildiğim" ama herkesin yapamadığı, bu durumda geçerli bir argüman olmadığı için Aslında, çoğu insanın istatistiksel olarak cahil olduğu, çünkü istatistiksel olarak çoğu insanın programcı olmadığı, etkili bir şekilde evrensel bir gerçek olarak adlandırıyorum.
Sonuç:
Teknik bir iddiada bulundukları için alıntı yapmak için en iyi sonuçları elde etmek için neyin aranacağı konusunda bir kayıbım var çünkü gerçek bir mühendis / bilim insanı gibi alıntılarla kanıtlayabiliyorum ve gerçeği bilmek istiyorum. Tanrının nesnelerine, onları kullanan kodla ilgili kişisel deneyimim nedeniyle önyargılıyım. Herhangi bir yardım veya alıntı derinden takdir edilecektir.