Mevcut projemde (bir oyunda, C ++), geliştirme sırasında% 100 Test Güdümlü Geliştirme kullanmaya karar verdim.
Kod kalitesi açısından bu harika oldu. Kodum hiç bu kadar iyi tasarlanmış ya da hatasız olmamıştı. Projenin başlangıcında bir yıl önce yazdığım kodu görüntülerken cüruf etmiyorum ve sadece daha kolay test edilebilir olmak için değil, uygulama ve kullanımda daha kolay olmak için işleri nasıl yapılandıracağımla ilgili daha iyi bir anlam kazandım. .
Ancak ... projeye başladığımdan bu yana bir yıl geçti. Kabul ediyorum, sadece boş zamanlarımda çalışabiliyorum, fakat TDD alışkın olduğum durumla karşılaştırıldığında beni hala yavaşlatıyor. Daha yavaş gelişim hızının zamanla daha iyi olduğunu okudum ve kesinlikle testler alıştığımdan çok daha kolay testler yapıyorum, ancak bir yıldır bu işteyim ve hala bir salyangoz hızında çalışıyorum.
İşe ihtiyacı olan bir sonraki adımı düşündüğümde, her zaman durmalı ve gerçek kodu yazmama izin vermek için nasıl bir test yazacağımı düşünmeliyim. Bazen tam olarak hangi kodu yazmak istediğimi bilerek, ancak testlerle tam olarak örtecek kadar ince bir şekilde nasıl parçalanacağını bilmeyerek saatlerce takılıp kalırım. Diğer zamanlarda, hızlıca bir düzine test düşüneceğim ve bir saat yazma testini geçirerek, aksi halde yazmak birkaç dakika sürecek küçük bir gerçek kod parçasını kapsayacak.
Veya, oyunda belirli bir varlığı ve yaratılması ve kullanılmasının tüm yönlerini kapsayacak şekilde 50. testini bitirdikten sonra yapılacaklar listeme bakıyorum ve kodlanacak bir sonraki varlığı görüyorum ve yazı düşüncesine dehşete düşüyorum uygulamak için başka 50 benzer testler.
Geçtiğimiz yılın ilerlemesine bakarken, "lanet olası projeyi bitirmek" için TDD'yi bırakmayı düşünüyorum. Ancak, birlikte gelen kod kalitesinden vazgeçmek, dört gözle beklediğim bir şey değil. Test yazmayı bırakırsam, kodu çok modüler ve test edilebilir hale getirme alışkanlığımdan kaçıracağımdan korkuyorum.
Belki de hala bu kadar yavaş olması için yanlış bir şey yapıyorum? Yararlarını tamamen kaybetmeden üretkenliği hızlandıran alternatifler var mı? TAD? Daha az test kapsamı? Diğer insanlar tüm verimlilik ve motivasyonlarını kaybetmeden TDD'den nasıl kurtulurlar?