Ben büyük bir mümini izci Kuralı :
Bir modülü her zaman temizleyiciden kontrol ettiğinizden daha fazla kontrol edin. "Asıl yazarın kim olduğu önemli değil, ya da ne kadar küçük olursa olsun, modülü geliştirmek için her zaman biraz çaba sarfedersek. Sonuç ne olurdu? hepsi bu basit kuralı uyguladıktan sonra, yazılım sistemlerimizin acımasız bozulmasının sonunu görecektik, bunun yerine, sistemlerimiz gittikçe gittikçe daha iyi ve daha iyi olacaklardı. sadece kendi küçük küçük parçalarına bakan bireylerden daha çok.
Ayrıca, Fırsatçı Refactoring'in ilgili fikrine büyük bir inanç duyuyorum :
Bazı zamanlanmış yeniden düzenleme çabaları için yerler olmasına rağmen, yeniden düzenlemeyi, ne zaman ve nerede olursa olsun, kodun ne zaman ve nerede temizlenmesi gerektiğine göre, fırsatçı bir aktivite olarak teşvik etmeyi tercih ederim. Bunun anlamı, herhangi bir zamanda birisinin olması gerektiği kadar net olmayan bazı kodlar gördüğü, hemen orada ve sonra - ya da en azından birkaç dakika içinde düzeltmek için fırsatını kullanması gerektiğidir.
Özellikle, yeniden düzenleme makalesinden aşağıdaki alıntıyı not edin:
Fırsatçı yeniden yapılanma için sürtünmeye neden olan geliştirme uygulamalarına karşı temkinliyim ... Anladığım kadarıyla, çoğu ekip yeniden yapılanmaya yetmiyor, bu yüzden insanları bunu yapmaktan caydıran herhangi bir şeye dikkat etmek önemlidir. Bunu gidermek için küçük bir yeniden düzenleme yapmaktan çekindiğiniz zaman, farkında olunca bir veya iki dakika alacağınızdan emin olun. Bu tür herhangi bir engel, konuşmaya yol açması gereken bir koku. Öyleyse, cesaret kırıcılığını not edin ve ekibiyle birlikte ortaya çıkarın. En azından bir sonraki retrospektifiniz boyunca tartışılmalıdır.
Çalıştığım yerde, ağır sürtünmeye neden olan bir geliştirme uygulaması var - Kod İnceleme (CR). “Görevim” kapsamında olmayan bir şeyi ne zaman değiştirirsem, gözden geçirenlerin gözden geçirmesini zorlaştırdığım için gözden geçirenler tarafından azarlanırım. Bu, yeniden yapılanma söz konusu olduğunda özellikle geçerlidir, çünkü "satır satır" fark karşılaştırmasını zorlaştırır. Bu yaklaşım burada standarttır; bu, fırsatçı yeniden yapılanmanın nadiren yapıldığı ve yalnızca “planlı” yeniden yapılanmanın (genellikle çok az, çok geç) olduğu anlamına gelir.
Avantajların buna değer olduğunu ve 3 gözden geçirenin biraz daha fazla çalışacağını iddia ediyorum (satırların değiştiği dar kapsamına bakmak yerine, kodu gerçekten önce ve sonra anlamak - gözden geçirmenin tek başına daha iyi olacağını düşünüyorum. ) böylece sonraki 100 geliştiricinin kodu okuyup sürdürmesi fayda sağlayacaktır. Bu tartışmayı gözden geçirenlerime sunduğumda, aynı CR’de olmadığı sürece refactoring ile bir problemleri olmadığını söylüyorlar. Ancak bunun bir efsane olduğunu iddia ediyorum:
(1) Çoğu zaman, ödevinizin ortasındayken, yeniden neyi yansıtmak istediğinizi ancak ne zaman gerçekleştirdiğinizi fark edersiniz. Martin Fowler’ın söylediği gibi:
İşlevselliği ekledikçe, eklediğiniz bazı kodların, bazı kodların bir çoğaltması içerdiğini fark edersiniz, bu nedenle işleri temizlemek için varolan kodu yeniden etkinleştirmeniz gerekir ... Bir şeyin çalışmasını sağlayabilirsiniz, ancak bunun olacağını Mevcut sınıflarla etkileşimin değişmesi halinde daha iyi. Kendinizi yapmayı düşünmeden önce bunu yapmak için bu fırsatı kullanın.
(2) Yapmanız gerekmeyen "yeniden canlandırma" CR'lerini salıverdiğinizde kimse size olumlu bakmayacak. Bir CR'nin belirli bir ek yükü vardır ve yöneticiniz yeniden yapılanmada "zamanınızı boşa harcamanızı" istemez. Yapmanız gereken değişiklikle bir araya geldiğinde, bu sorun en aza indirilir.
Sorun Değişiklikten eklediğiniz her yeni dosya olarak, resharper tarafından şiddetlenir (ve dosyalar değişmiş sona ereceğini tam olarak önceden bilemeyiz) genellikle edilir çevrili hataları ve önerileri ile - spot ve tamamen hak çoğu sabitleme.
Sonuçta korkunç kod görüyorum ve sadece orada bırakıyorum. İronik olarak, böyle bir kodu düzeltmenin sadece puanlarımı iyileştirmekle kalmayacağını değil, aynı zamanda onları düşürdüğünü ve beni işini yapmak yerine kimsenin umursamadığı şeyleri düzeltmek için zaman harcayan "odaklanmamış" bir adam olarak boyadığını hissediyorum. Bu konuda kendimi kötü hissediyorum, çünkü gerçekten kötü kodu küçümsüyorum ve izlemeye dayanamıyorum, kendi yöntemlerinden bile aradım!
Bu durumu nasıl çözebileceğim hakkında bir fikriniz var mı?
your manager doesn't want you to "waste your time" on refactoring