Herhangi bir düz cevap aşırı olacak. Açıkça, son tarihin çok çirkin olduğu ve çirkin kod kullanmanız gereken durumlar olduğu ve kodun o kadar çirkin olduğu durumlarda, onu geliştirmek için son tarihi kaçırmaya değecek durumlar vardır. İhtiyacınız olan, hangisinde bulunduğunuzu yargılamaya yönelik yöntemler ve belki de daha iyi kod yazmak için zaman kazandıracak gerçekçi tarihler belirleme yöntemleridir.
Temizliği daha sonra saklamayın. Alışılmadık bir şekilde, yeniden yapmaktan başka bir işe yaramayan dönemleriniz olmadıkça, kodu düzeltmenin bir şekilde şu anda olduğundan daha yüksek önceliğe sahip olacağı "daha sonra" yoktur. Rutin "kırmızı, yeşil, refactor", "kırmızı, yeşil değil, iki hafta boyunca tamamen farklı bir şey yap, refactor". Gerçekçi olarak, bir dahaki sefere başka bir sebepten dolayı tekrar ziyaret edene kadar kodu değiştirmeyeceksiniz ve muhtemelen o zaman da bir son teslim tarihi alacaksınız. Gerçek seçenekleriniz şimdi düzeltmek veya bırakmak.
Tabii ki, iyi biçimli kod, bir daha okumayı planladığınızı varsayarsak, kötü biçimli koddan daha iyidir. Bir daha asla okumamayı planlıyorsan, toparlama . Testleri geçen ilk şeyi gönder. Ancak bu oldukça nadir bir senaryo, çoğu programcı için yaklaşık olarak hiç gerçekleşmiyor. Bu durumu gözardı ederek, düzeltmek için maliyeti ne kadar olacağına (gelecekteki bakımın artması durumunda) düzeltmemenin ne kadar masraflı olduğuna karar vermek için yalnızca gerçek davanızın ayrıntılarına sahipsiniz.
Kodun bakım gerektirdiği noktada düzeltilmesi zor olmayan bazı şeyler var, düzeltmek için olduğundan daha fazla. Bunlar şimdi düzeltmek için size pek faydası olmaz. En belirgin olanı düzeltmek için önemsizdir (boşluklar ve benzeri hatalar) ve bu nedenle bu soruyu sormak için zamanınız olduğunu, ama onları düzeltmek için zamanınız olmadığını hayal etmek zor ;-) Önemsiz olmayan ve bu türden iyi olanlar için Tamam İdeal olmayan bir kodunuz var ama pragmatik olmalısınız. İşe yarıyor ve son teslim tarihindesiniz. Kullanın.
Şimdi düzeltilmesi oldukça kolay olan bazı şeyler var, (a) herkesin kafasında o kadar taze değillerse; (b) onlara güvenen veya taklit eden başka şeyler de yazılmıştır. Bunlar şimdi düzeltmek için çok daha değerlidir, bu yüzden onları önceliklendirin. Bunları düzeltmek için son tarihlerinizde zamanınız yoksa, daha uzun süreler için elinizden geldiğince zorlamanız gerekir, çünkü kod üssünüzde borç biriktiriyorsunuzdur, muhtemelen bir dahaki ziyaretinizde ödemeniz gerekecek kod.
Tercih edilen kod sabitleme yöntemi bir inceleme sürecidir. İçinde bulunduğun problemleri yorumla ve değiştirmek için çocuğa geri gönder . Ne demek istediğine dair örnekler verebilir ve başvuruda bulunduğu koddaki tüm vakaları bulması için küçük çocuğa bırakabilirsin, ancak sadece onlar için kodlarını bitirmeyin. Bunu yaparsanız, onları geliştirmek için hiçbir araç vermeyin.
Sık karşılaşılan sorunları “bunu yapma, onun yerine yap” diyen ve nedenini açıklayan bir stil kılavuzuna yazmalısınız. Sonuçta bunun sebebi, "kodumuzu estetik olarak tutarlı hale getirmek için" olmaktır, ancak kurallarınızı bir gerekçeyle yazmaya hazır değilseniz, o zaman muhtemelen onları da zorlamamalısınız. Her programlayıcıyı seçmekte serbest bırakın.
Son olarak, süresiz olarak işleri ince ayar yapma eğilimine dikkat edin. Getiriler azalıyor ve hala iyi oldukları deneyimlerle öğrenmeniz gerekiyor. Yeterince neyin iyi olduğuna dair gerçekçi bir fikir edinmeniz kesinlikle şarttır, aksi takdirde, son tarihlerinizin size "yeterince iyi" bir kod oluşturmak için zaman tanıdığından emin olduğunuz pazarlığı yapamazsınız. Vaktini yeterince iyi olmayan şeyler için harca.