Trendy w programowaniu z ostatnich lat często polegają na odwracaniu kolejności czynności w procesie wytwarzania oprogramowania. Popularnie w ostatnich latach podejścia to “Test first”, “Acceptance tests first”, “Inversion of control”, “Commit message first”. Podczas prezentacji prelegent zaproponuje proces pracy nad kodem, który można nazwać “Application heart first”. Celem wykładu będzie ustalenie, czym jest serce aplikacji oraz przekonanie słuchaczy, że to właśnie od jego stworzenia należy rozpocząć prace nad nowym feature’em.
3. Programowanie od serca
Krzysztof Szabelski2015-01-10 | Gliwice
3
Jako twórca budżetu chcę mieć ekran "Planowanie miesiąca" zawierający tabelę
z kolumnami "Kategoria", "Cel wydatku", "Priorytet" i "Kwota", do której będę mógł
dodawać dowolną ilość wierszy.
• Pole “Kategoria” będzie umożliwiało wybór wartości z poprzednio wpisanych,
oraz podanie całkowicie nowej wartości.
• Po przekroczeniu dostępnego w danym miesiącu budżetu, wiersze o
najniższym wskaźniku pierwszeństwa powinny zostać podświetlone na
czerwono.
• Wskaźnik pierwszeństwa oblicza się według wzoru: w = priorytet*priorytet/kwota
Wymaganie
4. Programowanie od serca
Krzysztof Szabelski2015-01-10 | Gliwice
4
“Projektując” w głowie rozwiązanie powyższego problemu, myślałeś przede
wszystkim o:
Ankieta
• Bazie danych
• Logice biznesowej
• Interfejsie użytkownika
8. Programowanie od serca
Krzysztof Szabelski2015-01-10 | Gliwice
8
Programowanie od
SERCA
Najważniejszy lub środkowy punkt czegoś.
Słownik Języka Polskiego, PWN
9. Programowanie od serca
Krzysztof Szabelski2015-01-10 | Gliwice
9
Co jest sercem pisanych przez Ciebie aplikacji?
Ankieta
• Baza danych
• Logika biznesowa
• Interfejs użytkownika
11. Programowanie od serca
Krzysztof Szabelski
Heart Driven Development
2015-01-10 | Gliwice
11
• Zacznij implementację wymagania
od jego logiki
• Napisz testy akceptacyjne
• Z niego wynikną pola klas
• Zdefiniuj zachowanie
– Napisz test
– Napisz implementację
• Przypnij stworzoną funkcję do GUI
• Odwzoruj powstały model danych w źródle.
o Stwórz model obiektowy
12. Programowanie od serca
Krzysztof Szabelski2015-01-10 | Gliwice
12
Co dostajemy
o Czysty kod
o Testowalny i przetestowany
o Realną wartość biznesową
13. Programowanie od serca
Krzysztof Szabelski2015-01-10 | Gliwice
13
• A czy ktos tak w ogóle robi?!?
o Uncle Bob
• FitNesse
o Ja
• Case Study: Example Sprint
o Domain Driven Design
• Tackling Complexity in the Heart of Software
14. Programowanie od serca
Krzysztof Szabelski2015-01-10 | Gliwice
14
• O czym była ta prelekcja?
o O tym, żeby pisać oprogramowanie zaczynając od bebechów (logiki
biznesowej).
o Następnie dorobić do tego bazę danych i interfejs użytkownika.
• Dlaczego?
o Bo tam mieszkają smoki!
o Przy implementacji tych bebechów powstaje najwięcej niejasności i
wątpliwości.