Bir nokta yeniden yazma maliyeti daha ağır basar üstlenmeden maliyeti var mı?

6 Cevap php

Biz istihdam benim şimdiki yerinde bir nesil çerçevesi olarak lanse bazı gerçekten şok edici kodu var.

Şey var bu görüş sadece bir kişi olduğunu ve bunun çoğu yazdı adam, olduğunu. Bölümün geri kalanı o kötü kodlanmış izlenim, hata ayıklamak için bir pide ve genel olarak sadece biraz Naff'a vardır.

Bu kampın o tarafta yüzden yazdım adam yönetimi ile oldukça etkili bir konuma sahiptir.

Biz yönetime (hakiki) endişelerini sermiştir ama açıkçası onlar doğrudan alt satırında katkıda olmayan bir projeye daha fazla zaman koymak için istekli değiliz.

Bu çerçevede üzerinde dağıtılan çeşitli uygulamaları vardır bu nedenle herhangi üstlenmeden bu uygulamaları kapsaması gerekir.

Her şey öylesine biz sadece çok çekirdek API bile basit değişiklikler büyük bir proje demek, belirli bir sınıfın bir uygulama dışarı rip ve bu şekilde yeniden cant iç içedir.

Ancak 3 canlı dağıtım yıllar ve birçok hata düzeltmeleri, köşe durumlarda ve kanat için sınır koşulları var.

Biz çeşitli büyük projeler, şekil için bunu elde etmek için başka bir 3 yıl almak ya da sadece varolan üstüne bizim özel gereksinimlerini yeniden yazma olasılığı zamanla Refactor olacağını bölgelerinde yeniden ve verilen bu refactor deneyin framework?

6 Cevap

Şey yeniden neredeyse evrensel kötü bir fikir olduğunu - sen bitene kadar bunun için göstermek için hiçbir şey, çalışan ay harcamak. Ve bu ikinci sistemi devreye kurbanı, ve aslında do bitirmek olduğunu olmadığını varsayar.

Üstlenmeden neredeyse kesinlikle doğru cevaptır. Ben herhangi bir deneyim üstlenmeden PHP (I do C + + ve C #) yok, bu yüzden herhangi bir tavsiye edemez. Sen bebek adımları ile devam etmek zorunda.

  • İlk olarak, size en rencide kod parçaları belirlemek. Benim için, C + +, bu global değişkenler olduğunu.
  • İkincisi, küçük refactorings bir seferde bir problemi kaldırmak için yapmak. Bu kod eski müşterilerine kırma önlemek için, yerinde bir cephe koymak gerekebilir. Eğer eski kod yeni bir cephe koyabilirsiniz, ya da yeni kod eski bir cephe koyabilirsiniz ya.
  • Eğer really emin olmadıkça, üçüncü ve en önemli, size refactor üzereyiz kodu için birim testleri sağlam bir set var emin olun.

Ama: kodu yeniden yazmak için her şeyi düşürmeyin. Yavaş yavaş refactor. Bu size biraz yavaşlatmak gerekir, ancak birlikte gitmek gibi hala değerini teslim olacağım.

this article sizin yönetimine Teknik Borç açıklanmasına yardımcı olacağını görüyoruz. Onlar umurumda görünmemektedir nedeni de açıklayacağım.

Yazımının avantajı daha güncel ihtiyaçlarına uyarlanmış bir model oluşturmak, hesapta analiz aşamasında tüm yeni şeyler alabilir olmasıdır. Öte yandan, sadece kötü, kodlanmış kötü tasarlanmış değilse, tam bir yeniden yazma yapmanın hiçbir anlamı yok. Sadece kod refactor / sterilize.

emin olmak için gerçek zor bir karar ...

Ben buraya bakın sorun, bir çok bilgi içine gitti ve çalışan projeler için kalite açıkça kabul edilebilir var yani çerçeve uzun süre kullanılır ve sabit olmasıdır. böylece bildiğiniz tüm gereksinimleri ile sıfırdan yeniden yazmak - eğer siz zaten çalışmış bir şey unutacak emin olabilirsiniz (- veya patron ;) zor bir müşteriye açıklamak için)

bunu üstlenmeden - bu düşünüyorum - gerçekten kodundaki bağlantıları bilen tek adam olduğundan da zor bir iştir - kimin değiştirmek istemiyor ...

üç seçenek vardır:

  • onunla yaşamak
  • üstlenmeden gerekli olduğunu adamı ikna böylece herkes kullanabilir korumak / o değil sadece
  • Bir yeniden yazma gerekli yönetimini ikna ama bu yeniden yazma / üstlenmeden karşı çok üzgün birini alacak

iki yolu koymak - bu çerçeveden sorumlu biri tarafından geçen zamanla beri ... herkes için kötü bir durum kendini onunla uğraşmak zorunda olacak ve o zaman çok geç kalmış olabilirsiniz.

Küçük bir düzeyde, evet: Bir işlevin yeni bir sürümünü sağlamak o eski yanı sıra yeni çalıştığını doğrulamak, eski kaldırın. Sık sık funciton kendisinden üstlenmeden daha yeterince hızlı. Ama bu düzeyde, bu üstlenmeden oluyor :)

Bir yazımının strategic maliyeti hemen hemen her zaman üstlenmeden aşıyor.

Sen teslim edemez. Eğer yeni geliştirmek iken eski sürümü korumak zorunda. Mali size yeniden yazma projeyi öldürmek zorunda derseniz, hiçbir şey elde ettik - hiçbir şey yapıldı gibi çalışma kod tabanı bir kötü durumda. "Ne zaman yeniden yazma tamamlandığında yine biz atmak olacak" çünkü tüm değişiklikler, kluged beri, muhtemelen daha da kötü.


Evet yeniden yazma ucuz senaryolar inşa edilecek CAN:

  • Orijinal kod tabanı bu yüzden herhangi bir yerel değişiklik görünüşte ilişkisiz özellikleri sonları spaghettied edilmektedir.
  • Sen eski çocuklar çok daha iyi gerçekten harika bir yeni bir takım var, ama onlar mevcut kod tabanı ile hiçbir deneyime sahip ve mevcut kod tabanı bir karışıklık olduğunu, ya da bir dilde onlar bilmiyorlar, ya da onun gibi bir şey.


Yine, deneyim kod bir nedeni kötü olduğunu gösterir, ve her zaman kodlama değil ve tanımlamak ve nedenlerini değişmez ne zaman, yeniden yazmak tarih tekrar bir egzersiz olacaktır.

Yeniden Yazma çok risklidir. Henüz debug edilecek yeni kodu ile eski iyi ayıklanmış kod yerini alacak. Bu hata bir sürü tanıtacak ve bunları düzeltmek gerekir. Ilk kısmı için ne çok ayrıntılı olarak anlamak, sonra Refactor - yavaş yavaş refactor daha iyi. Bu şekilde daha az kod değiştirmek ve pek çok yeni böcek tanıtılması riski daha düşük.

Zaten söyleniyor ne eklemek için: deneyin ve yönetim buy-in olsun. Alt satırında var are faydaları Refactor - yeni özellikler programlama için adam saat de maaş düşük maliyet önde gelen ve muhtemelen sunucu maliyetleri, zamanla yerine aşağı yukarı gidecek. Üstlenmeden değerli olduğunu ve daha mutlu bir iş yaptığını yapacak neden yönetim hiçbiri anlayan varsa, doğru yerde çalışıyorsunuz?