Jak rozumiem, programowanie oparte na testach polega na pisaniu testów w celu zdefiniowania specyfikacji programu (możesz mnie poprawić, jeśli się mylę).
Jeśli jest ktoś odpowiedzialny za napisanie specyfikacji (w tym publicznego API) oprogramowania (nazwijmy go Architektem Oprogramowania), czy to oznacza, że Architekt Oprogramowania musi napisać wszystkie testy?
Czy też architekt oprogramowania pisze specyfikacje, a następnie przekazuje je programistom, aby napisali testy?
A może pozwalasz, by specyfikacje rosły organicznie, pozwalając wszystkim programistom pisać własne testy i zapomnieć o posiadaniu Architekta oprogramowania?
architecture
tdd
Robert Harvey
źródło
źródło
Odpowiedzi:
Nie piszesz testów w celu zdefiniowania specyfikacji, opisy testów, historie użytkowników i opisy funkcji są specyfikacjami w sensie „martwych drzew”.
Podsumowując, proces TDD w skrócie to:
ile projektu, architektury, dokumentacji pomocniczej i innych, które wybierzesz, nie jest częścią TDD. Istnieje kilka praktycznych „najlepszych praktyk”, o których możesz przeczytać, ale pamiętaj, że są to „najlepsze” praktyki w warsztatach innych osób , a nie twoje.
pamiętać, że punkt jest dla klienta i dewelopera, aby wymyślić i napisać funkcji historie i opisy badań razem , wzajemnego zrozumienia
dlatego przy pierwszym pytaniu było:
Krótka odpowiedź brzmi:
EDYCJA: Długa odpowiedź brzmi: architekt odgrywa zwykle role wizjonera / badacza / drażniącego / wsparcia / zabezpieczenia podczas całego procesu, w razie potrzeby.
EDYCJA 2: Przepraszam, że nie trafiłem w sedno pytań cząstkowych! Każdy jest odpowiedzialny za napisanie specyfikacji; wszystkich programistów, w tym architekta, jeśli jest to właściwe, oraz klienta . Programiści kodują również testy.
źródło
Architekt oprogramowania nie pisze wszystkich testów. To byłoby dla mnie zbyt duże obciążenie ramion.
Architekt oprogramowania powinien być w stanie naszkicować wstępną formę interfejsu API, którą programiści piszą w tym celu testy, a następnie budują interfejs API. Architekt oprogramowania może jednak mieć różne standardy kodu, które niekoniecznie są testowalne, np. Dokumentację lub konwencje nazewnictwa. Istnieje również możliwość, że w początkowym interfejsie API brakuje niektórych wywołań, które po zakończeniu implementacji dodają nowe wywołania do interfejsu API. W związku z tym nastąpi wzrost organiczny interfejsu API wraz ze wzrostem bazy kodu, ale rolą architekta jest zapewnienie wytycznych na wysokim poziomie i próba upewnienia się, że są one przestrzegane.
Z pewnością mogą zdarzyć się przypadki, w których zespół może nie chcieć mieć architekta oprogramowania, ale w zależności od skali interfejsu API i zaangażowanej firmy może to być dobry pomysł lub nie.
źródło