Sık, küçük ve anlamlı taahhütler vermenin en önemli nedeni, kodun tarihinin anlaşılmasına yardımcı olmaktır. Özellikle, anlaşılabilir farklılıklar oluşturmak zorsa, kodun nasıl değiştiğini anlamak çok zordur.
Seçenek 1 , yaptığınız değişikliklerin geçmişini engeller, ancak aksi takdirde herhangi bir soruna neden olmaz.
Seçenek 2 , muhtemelen seçenek 1'den biraz daha az bir şekilde yaptığınız değişikliklerin geçmişini engeller, ancak taahhütlerin farklı olduğunu varsayarlar ya da başka bir şekilde bağımsız bir şekilde birleştirilebileceğini varsayarlarsa, kendiniz veya başkaları için başka sorunlara neden olabilir. Bu seçenek 1 yerine tercih edilmesinin güçlü bir pratik nedeni olmadığı sürece, bu ondan daha az idealdir.
Seçenek 3 en iyisidir, diğerleri eşit olmakla birlikte, başka bir yerde tanımladığınız gibi, bunu yapmak "aşırı" miktarlar gerektiriyorsa veya başka önemli maliyetler gerektiriyorsa, bu masrafları beklenen avantajlara göre ölçmeniz gerekir. temizleyici taahhütleri oluşturma.
Sağladığınız bilgilere göre, 1. seçeneği tercih ederim. Belki de değişikliklerinizi yapmanızı isteyen hatırlatıcılar ayarlamalısınız?
Prototip ve Yeniden Yazım
Özellikle tek programcı olma konusundaki notunuz ve nispeten yeni bir kod temeli üzerinde çalıştığınıza dair şüphem ışığında akılda tutulması gereken bir diğer husus, zaman zaman değişiklik yapma konusunda farklı alışkanlıklar geliştirmenin iyi olacağıdır. Var olan kodu korumaya veya genişletmeye karşı yeni kod prototip oluşturuyor. Muhtemelen ikisi arasında çok keskin bir bölünme yoktur, ancak bunun hala yararlı bir ayrım olduğunu düşünüyorum.
Yeni bir kod prototip yaparken, değişikliklerinizi ne zaman, kesinlikle bir branşta, ama belki de ayrı bir projede kaydetmek istediğinizde karar verin. Ya da belki de sadece tamamen dış sürüm kontrolü dışında çalışmak. Bunun yerine, düşündüğünüz çeşitli hipotezlerin veya tasarımların uygulanabilirliği hakkında kanıt toplamaya odaklanabilirsiniz. Genellikle farklı araçlar kullanarak küçük prototipler yazarım, örneğin Visual Studio for C # kodu yerine LINQPad.
Belirli bir hipotezi veya tasarımı onayladığınızda, ana projenizde, ideal olarak bir dalda yeniden yazın ve değişikliklerin doğası hakkında başkalarının (geleceğiniz dahil) anlaşılmasına en iyi yardımcı olacak küçük, anlamlı taahhütler verin. Yapıyorsun