Mevcut ekip üyelerine OOP kavramlarını tanıtmak için bir hakaret olarak ortaya çıkmayan verimli bir yol mu arıyorum? Takım arkadaşlarım OO dillerinde yeni değil. Uzun zamandır C ++ / C # yapıyoruz, bu yüzden teknolojinin kendisi tanıdık.
Ancak, etrafına bakın ve büyük çaba infüzyonu olmadan (çoğunlukla kod incelemeleri şeklinde), ürettiğimiz şey sınıfların içinde olan C kodudur. Tek bir sorumluluk prensibinin, soyutlamanın veya kuplajı en aza indirmeye çalışmanın neredeyse hiçbir faydası yoktur, sadece birkaçını belirtmek gerekir. Bir kurucu olmayan ancak her örneklendiklerinde 0'a memset olan sınıflar gördüm.
Ama OOP'u her büyüttüğümde, herkes her zaman başını sallıyor ve neden bahsettiğimi tam olarak bildiğini gösteriyor. Kavramları bilmek iyidir, ancak biz (bazıları diğerlerinden daha fazla), gerçek iş sunma konusunda bunları uygulamakta çok zorlanıyoruz.
Kod değerlendirmeleri çok yararlı oldu ama kod değerlendirmeleri ile sorun sadece gerçeği sonra oluşmasıdır, bu yüzden bazı yeniden yazılmış (çoğunlukla yeniden düzenleme, ama yine de çok zaman alır) kodu sadece yazılı. Ayrıca kod incelemeleri, tüm ekibe değil, yalnızca tek bir mühendise geri bildirimde bulunur.
Ben bir sunum (ya da bir dizi) yapma fikri ile oynuyor ve daha iyi yazılmış olabilir ve refactored olabilir mevcut kod bazı örnekleri ile birlikte OOP getirmeye çalışın. Artık kimsenin sahibi olmadığı gerçekten eski projeleri kullanabilirim, bu yüzden en azından bu bölüm hassas bir konu olmamalı. Ancak, bu işe yarar mı? Dediğim gibi çoğu insan C ++ 'ı uzun zamandır yaptı, bu yüzden benim tahminim a) onlara zaten zaten bildikleri şeyleri neden söylediğimi düşünerek oturacaklar ya da b) aslında bir hakaret olarak alabilirler çünkü Onlara yıllardır olmasalar da yıllardır yaptıkları işi nasıl yapacaklarını bilmediklerini söylediler.
Bir kod incelemesinden daha geniş bir kitleye ulaşacak başka bir yaklaşım var mı, ama aynı zamanda bir ceza dersi gibi hissetmiyor musunuz?
Mükemmel tasarlanmış kod ütopik idealleri olan üniversite dışında taze bir çocuk değilim ve kimseden bunu beklemiyorum. Bunu yazmamın nedeni, aslında kağıt üzerinde iyi bir üst düzey tasarıma sahip bir kişinin incelemesini yapmamdı. Ancak sınıfları resmediyorsanız: A -> B -> C -> D, B, C ve D kodlarında hepsi hemen hemen aynı ortak arabirimi uygular ve B / C bir liner fonksiyonuna sahiptir, böylece en üst sınıf A kesinlikle yapar tüm çalışmalar (bellek yönetimi, dizi ayrıştırma, kurulum görüşmeleri ...) öncelikle 4 mongo yönteminde ve tüm niyet ve amaçlar için neredeyse doğrudan D'yi arar.
Güncelleme: Ben bir teknik liderim (bu rolde 6 ay) ve grup yöneticisini tam olarak destekliyorum. Çok olgun bir ürün üzerinde çalışıyoruz ve bakım maliyetleri kesinlikle bilinmelerine izin veriyor.