15 maja 2018

Wymówki

Podobieństwa pomiędzy regułą podwójnego zapisu a Test-Driven Development są głębokie i jest ich dużo.
  • Obie są dyscyplinami używanymi przez ekspertów, którzy ostrożnie manipulują złożonymi dokumentami pełnymi tajemnych symboli, które muszą być pod groźbą okropnych konsekwencji, poprawne co do typu i położenia.
  • Obie obejmują reprezentację długich ciągów podstawowych ruchów w dwóch różnych formach i na dwóch różnych dokumentach.
  • Obie techniki aktualizują swoje dokumenty jednym podstawowym ruchem w jednym miejscu na raz i każda taka aktualizacja kończy się weryfikacją upewniającą się czy te dwa dokumenty pozostają w zgodności ze sobą.

Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony :


Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta.


Ubierając to w bardziej konkretne definicje:
  • Księgowi wprowadzają transakcje do dwóch różnych kont. Jedno to konto Zobowiązania. Drugie to konto Aktywa lub Udziały. Te konta są sumowane w bilansie i następująca zależność musi być spełniona: Aktywa + Udziały = Zobowiązania.
  • Księgowi są uczeni księgować jedną transakcję na raz, sprawdzając bilans po każdej takiej operacji.
  • Programiści, którzy praktykują TDD wprowadzają podstawowe jednostki zachowania w dwa różne programy. Jeden w program testowy. Drugi w pożądany program produkcyjny. Te dwa powinny być wykonywane w natychmiastowy sposób pokazując czy produkcyjny kod działa tak, jak go opisuje testowy kod.
  • Programiści są uczeni dodawać tylko jedną podstawową jednostkę na raz do każdego z programów i uruchamiać testy po każdym takim dodaniu.
Tak jak powiedziałem, równoważność pomiędzy tymi dwiema dyscyplinami jest wyraźna. One mają w zasadzie identyczne podejście.
I nic dziwnego. Obie dyscypliny służą temu samemu celowi. Obie pozwalają tym z nas, którzy ostrożnie manipulują złożonymi dokumentami pełnymi tajemnych symboli, które muszą być poprawne pod groźbą okropnych konsekwencji, być pewnym, że te konsekwencje ich nie spotkają.

Czy księgowi mają deadline'y? Czy menedżerowie naciskają na nich aby skończyli swoje księgowanie do konkretnej daty? Oczywiście! Nie ma różnicy w temacie ciśnienia. Księgowi czują presję tak samo jak czują ją programiści.
Czy programy programistów są w jakiś sposób mniej ważne od kont księgowych? Oczywiście, że nie! Te programy są instrumentami, które pozwalają zarabiać albo oszczędzać pieniądze przedsiębiorstwa. One są krytycznie ważne. Po prostu są tak ważne, jak konta księgowych.
Więc dlaczego księgowi potrafią trzymać się swojej dyscypliny tak wytrwale i tak całkowicie? Czy potrafisz wyobrazić sobie grupę księgowych rozmawiających między sobą: "Chłopaki, jesteśmy pod ścianą. Musimy skończyć te konta do Piątku. Więc róbcie wszystkie Aktywa i Udziały. Wrócimy do tego i zrobimy Zobowiązania później."
Nie. Nie możesz sobie tego wyobrazić. No i przynajmniej nie powinieneś. Księgowi mogą iść do więzienia za takie rzeczy.
No więc jak to jest, że tak dużo programistów jęczy i stęka skonfrontowana z dyscypliną TDD? Dlaczego pokazują tak wiele powodów, że TDD jest niepraktyczne, albo bezsensowne, albo...

Czy potrafisz sobie wyobrazić księgowego robiącego wymówki takie jak:(Wszystko wzięte z artykułów o TDD)
  • Nigdy nie stosuję reguły podwójnego zapisu, ponieważ śledzenie tych wszystkich kont zabiera zbyt wiele czasu.
  • Konta nie muszą być perfekcyjne, one muszą być tylko wystarczająco dobre. Reguła podwójnego zapisu to przesada.
  • Wszyscy Ci księgowi, którzy praktykują regułę podwójnego zapisu są po prostu zbyt fanatyczni. Podążają za niepotrzebnym dogmatem.
  • Balansowanie Aktywów i Udziałów z Zobowiązaniami w zasadzie nie dowodzi, że konta są poprawne. Więc reguła podwójnego zapisu jest zbyt dużą pracą za zbyt mały zysk.
  • Reguła podwójnego zapisu to brednie promowane przez konsultantów, którzy chcą po prostu zarobić pieniądze sprzedając książki, kursy i filmy.
  • Reguła podwójnego zapisu jest martwa. Kolesie z Andersen Consulting napisali o tym na blogu.
  • Jestem przeciwko regule podwójnego, ponieważ doświadczenie pokazuje, że zapobiega ona pojawianiu się wysokiej jakości designu kont.
  • Kiedy pierwszy raz usłyszałem o regule podwójnego pomyślałem, że to jakiś wymyślny żart. To jest strasznie durne.
  • Reguła podwójnego nie działa. Nie obchodzi mnie, co słyszałeś. Nie obchodzi mnie jak bardzo Twój menedżer chce ją wprowadzić. Nie obchodzi mnie jak bardzo rozpromienione oczy Twoich współpracowników lśnią w jej blasku. Ona. Nie. Działa.
  • Reguła podwójnego promuje psucie designu kont.
  • Nie wszystko da się zaksięgować.
  • Reguła podwójnego blokuje design konta.
  • Reguła podwójnego brzmi dobrze w teorii. W praktyce jednak, nie jest jasne jak jest dobra.
  • Życie jest krótkie i ma tylko skończoną liczbę godzin na dobę. Musimy więc dokonywać wyborów, w jaki sposób spędzimy nasz czas. Jeżeli spędzamy go robiąc podwójne zapisy to w tym czasie nie robimy nic innego.
  • Użycie podwójnego zapisu nie gwarantuje Ci dobrego designu kont.
  • Postawię wszystko na jedną kartę i powiem z brutalną szczerością, że to dosłownie zwyczajna strata czasu.
  • Kolejną kwestią jest dyskusyjny poziom doskonałości, do którego musi dążyć ten, który chce robić regułę podwójnego dobrze. Niektórzy upierają się, że jeżeli podwójny zapis nie jest wytrwale robiony przez wszystkich w zespole od początku to zespół ten będzie tylko cierpieć.
  • Podwójny zapis jedzie się na poczuciu winy. Bardziej zachęca do procedur niż do zrozumienia. Nosi z sobą tony doktryn i sloganów.
  • Dla mnie, fanatycy podwójnego zapisu są religijnymi wariatami pukającymi do moich drzwi aby udowodnić, że mój sposób pracy jest nieodwracalnie zepsuty i jedyną drogą do zbawienia jest podwójny zapis.
  • To, co wkurza mnie w regule podwójnego, to fakt, że zawiera w sobie mnóstwo zasad lub wytycznych.
  • W Twoim pierwszym projekcie z regułą podwójnego ponosisz dwie wielkie straty, czas i osobistą wolność.
Mógłbym tak w kółko. (I w kółko. I w kółko.) Jak możesz zauważyć nie brakuje głupiutkich, niedoinformowanych i niezadowolonych krytyków.
Dla mnie podsumowanie jest proste. TDD jest dobrą dyscypliną do upewniania się, że złożone dokumenty, pełne tajemnych symboli, są tworzone w sposób pozwalający uniknąć znaczących, negatywnych konsekwencji. Nie znam żadnej innej dyscypliny, która choć zbliża się do tego.
Reguła podwójnego zapisu była wynaleziona przez Koreańczyków ponad tysiąc lat temu. Była niezależnie wynaleziona ponownie przez Włochów ponad sześćset lat temu. Rozkwitła i rozniosła się razem z kapitalistycznym i ekonomicznym dobrobytem zapewniając mu bezpieczeństwo. Jednak jej adopcja nie obyła się bez oporów i opóźnień. Ostatnie państwa, które ustandaryzowały regułę podwójnego zapisu zrobiły to w wieku dwudziestym.
Miejmy nadzieję, że nie potrwa to 500 lat, zanim dyscyplina testowania stanie się standardem dla programistów.


Powyższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony :


Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta.

Podstawy Programowania Funkcyjnego Epizod 3

Czy wszystkie Zasady Się Zmieniają? Kiedy tylko zaczynamy używać nowego paradygmatu , porównujemy z nim na...