"Legendary Payment Servlet" rozwijany przez lata w firmie projekt do integracji wewnętrznych systemów z bramką płatności. Kod, który w podobnej postaci można prawdpopodobnie spotkać w bardzo wielu istniejących firmach. Celem warsztatu jest przećwiczenie pracy z odziedziczonym kodem w oparciu o algorytmem postępowania opisany w książce Micheal'a Feathersa "Working Effectively with Legacy Code".
Zadaniem uczestnika jest zaimplementowanie kilku prostych ficzerów starając się postępować zgodnie z algorytmem:
- Zidentyfikuj miejsce zmiany,
- Znajdź najodpowiedniejsze miejsca do przetestowania,
- Rozbij zależności, jeżeli to konieczne,
- Napisz testy (na dotychczasową i nową funkcjonalność),
- Dokonaj zmiany i zrefaktoryzuj.
Projekt wymaga zainstalowanego lokalnie Java SDK najlepiej w wersji 8.
Projekt jest budowany z wykorzystaniem narzędzia Gradle, jednak dzięki zastosowaniu wrappera nie jest konieczna jego wcześniejsza instalacja.
Proste zbudowanie i wykonanie testów:
Linux/Unix:
./gradlew check
Windows:
gradlew.bat check
Import do IntelliJ Idea 13+: File -> Import Project.
i wskazać plik build.gradle
.
Uwaga. W przypadku korzystania z Idei w wariancie bezpłatnym (Community Edition) zalecana jest wersja 14 posiadająca wbudowane narzędzie do badania pokrycia kodu (w Idei 13 była ta funkcja dostępna była tylko w wersji Ultimate).
Import do Eclipse:
./gradlew eclipse
(na platformie Windows można 2 razy kliknąć gradlew-eclipse.bat
)
i potem File -> Import -> Existing Project Into Workspace
Uwaga. Ze względu na wykorzystanie Java 8 zalecaną wersją Eclipsa jest minimum Luna (4.4).
Zalecana konfiguracja IDE (Idea i Eclipse) została opisana w pliku IDE.md
Strona projektu: https://github.com/LegendarySolutions/LegendaryPaymentServlet
Autorzy: