Kiedyś kodowałem w języku C # w stylu TDD - pisz / lub zmieniaj mały fragment kodu, ponownie kompiluj w 10 sekund całe rozwiązanie, ponownie uruchom testy i jeszcze raz. Łatwo...
Ta metodologia programowania działała dla mnie bardzo dobrze przez kilka lat, aż do ostatniego roku, kiedy musiałem wrócić do kodowania w C ++ i naprawdę czuję, że od tego czasu moja wydajność dramatycznie spadła. C ++ jako język nie stanowi problemu - miałem całkiem spore doświadczenie dla programistów C ++ ... ale w przeszłości.
Moja produktywność jest nadal OK dla małych projektów, ale pogarsza się, gdy wraz ze wzrostem wielkości projektu i gdy czas kompilacji przekroczy 10 minut, robi się naprawdę źle. A jeśli znajdę błąd, muszę ponownie rozpocząć kompilację itp. To jest po prostu frustrujące.
Tak więc doszedłem do wniosku, że w małych fragmentach (jak poprzednio) jest nie do przyjęcia - wszelkie zalecenia, jak mogę wprowadzić się w stary nawyk kodowania przez około godzinę, podczas ręcznego przeglądania kodu (bez polegania na szybkim kompilatorze C #) , i ponowne kompilowanie / ponowne uruchamianie testów jednostkowych tylko raz na kilka godzin.
Z C # i TDD bardzo łatwo było napisać kod w sposób ewolucyjny - po kilkunastu iteracjach, które badziewie zacząłem, kończyło się na dobrym kodzie, ale po prostu nie działa dla mnie (w powolnej kompilacji środowisko).