Wpis z mikrobloga

Pytanie do programistów - czy w swojej pracy (komercyjnej) piszesz kod zgodnie z zasadami TDD (Test Driven Development)?
#programowanie #programista15k #programista25k

Czy używasz TDD?

  • Nope - zawsze piszę najpierw kod, potem testy (0%) 64.2% (102)
  • Bardzo rzadko (mniej niż 10%) 10.1% (16)
  • Zdarza mi się raz na jakiś czas (11% - 30%) 10.1% (16)
  • Średnio (31% - 50%) 5.0% (8)
  • Często (51% - 75%) 1.9% (3)
  • Bardzo często (76% - 90%) 4.4% (7)
  • Prawie zawsze (91%-99%) 1.3% (2)
  • Zawsze (100%) 3.1% (5)

Oddanych głosów: 159

  • 14
  • Odpowiedz
@kaczoor: ksiazkowe TDD widzi się tak samo często w pracy crudziarza jak książkowe DDD, czyli wcale xd zresztą w 99% przypadkach i ofert TDD oznaczało tyle że piszemy unit testy i może integracyjne
  • Odpowiedz
@kaczoor: @szmichal tak w ogóle sama idea pisania testów przed kodem to rak jakich mało. Nie jest to w ogóle intuicyjne ani praktyczne, samo dostarczanie kodu zajmuje 3-4 więcej czasu a wiadomo pracujemy w SPRINTACH czyli mamy dostarczać kod szybko. To nie MARATONY tylko SPRINTY wiec kod ma być dostarczany taśmowo

Klient kodu nie widzi czy był napisany przez brute-force-stack-overflow-copy-paste czy z użyciem CQRS, DDD, DDA czy innych chorób psychicznych
  • Odpowiedz
@kaczoor: TDD to gówno. Nie mam pojęcia jak będzie wyglądał mój kod, jaki będzie miał Kontrakt i jakie API i mam testy pisać do tego? Bez jaj. Od razu jak się uczyłem tego to mi to nie pasowało. Wynik był taki, że siedziałem i ciągle testy poprawiałem. Produktywność jakoś -200% u mnie wyniosła.
  • Odpowiedz
Nie mam pojęcia jak będzie wyglądał mój kod, jaki będzie miał Kontrakt i jakie API i mam testy pisać do tego


@rolling_stone_with_no_hope: no właśnie zdaje się, że w idealnym świecie to zanim zaczniesz pisać kod powinieneś już wiedzieć jaki będzie kontrakt, bo dlaczego nie?

to, że zazwyczaj task nie jest w ogóle opisany i nikt się nawet przez 10 minut nie zastanowił jak ma wyglądać kontrakt i zachowanie to inna sprawa
  • Odpowiedz
@kaczoor: Tak, wtedy jak najbardziej robię tdd, bo robiąc najpierw test można naprawdę dobrze przemyśleć to w jaki sposób dany feature ma działać. No i testowanie przyspiesza programowanie o jakieś milion procent
  • Odpowiedz
@kaczoor tdd nie polega na pisaniu najpierw testow pozniej kodu, tdd oznacza pisanie ich jednoczesnie na zmiane raz test raz implementacja. Tdd jest fajne jak sie wie konkretnie co ma sie zrobic i jak cos zwraca konkretna informacje ale tak rzadko bywa wiec malo kto stosuje tdd w praktyce choc niektorzy mowia ze widza roznice czy kod byl napisany za pomoca tdd czy nie. A najgorsze jak robi sie cos co chwile
  • Odpowiedz
@kaczoor: Filozofia jak każda inna - nie daje odpowiedzi, a mnoży pytania dając jedynie fałszywe poczucie bezpieczeństwa. Przy kodowaniu trzeba przede wszystkim myśleć i żaden test nie zwolni z tego człowieka.
  • Odpowiedz
@niko444: no ale przecież dostajesz wytyczne co dany feature ma robić. Wiadomo że nie zawsze wszystko wiadomo, co wychodzi właśnie w czasie pisania testów. Bo wtedy okazuje się że np. robi zamieszanie z już istniejącą funkcjonalnością, lub po prostu istnieją też różne edge casey. Wtedy trzeba się zatrzymać i dostać szczegóły. Pisanie z testami jest milion razy szybsze niż bez, wystarczy je nasmrodzic i wtedy można śmiało robić #!$%@? muje dzikie
  • Odpowiedz