SPIS TREŚCI
Przedmowa
Wstęp
Podziękowania
O autorze
Rozdział 1. Rzemiosło
CZĘŚĆ I. Procedury
Programowanie ekstremalne
Krąg rozwoju
Programowanie sterowane testami
Refaktoryzacja
Prostota projektu
Programowanie zespołowe
Testy akceptacyjne
Rozdział 2. Programowanie sterowane testami
Ogólny zarys
Oprogramowanie
Trzy prawa TDD
Czwarte prawo
Podstawy
Proste przykłady
Stos
Czynniki pierwsze
Gra w kręgle
Zakończenie
Rozdział 3. Zaawansowane techniki TDD
Sortowanie – podejście 1.
Sortowanie – podejście 2.
Utknięcie
Przygotuj, działaj, sprawdź
Wprowadzenie do BDD
Automaty skończone
Znowu o BDD
Dublery testowe
Atrapa
Zaślepka
Szpieg
Imitacja
Podróbka
Zasada niepewności metodyki TDD
Londyn kontra Chicago
Problem pewności
Londyn
Chicago
Synteza
Architektura
Zakończenie
Rozdział 4. Projektowanie testów
Testowanie baz danych
Testowanie interfejsów GUI
Dane wprowadzane z interfejsu GUI
Wzorce testowe
Podklasa specyficzna dla testów
Samopodstawienie
Skromny obiekt
Projektowanie testów
Problem kruchych testów
Zgodność jeden do jednego
Zrywanie zgodności
Wypożyczalnia filmów
Szczegółowość kontra ogólność
Domniemane pierwszeństwo przekształceń (Transformation Priority Premise)
{} -> Nil
Nil -> stała
Stała -> zmienna
Bezwarunkowość -> wybór
Wartość -> lista
Instrukcja -> rekurencja
Wybór -> iteracja
Wartość -> zmieniona wartość
Przykład: Fibonacci
Domniemane pierwszeństwo przekształceń
Zakończenie
Rozdział 5. Refaktoryzacja
Czym jest refaktoryzacja?
Podstawowy zestaw narzędziowy
Zmiana nazwy
Wyodrębnianie metody
Wyodrębnianie zmiennej
Wyodrębnianie pola
Kostka Rubika
Procedury
Testy
Szybkie testy
Zerwij z głęboką zgodnością jeden do jednego
Stale refaktoryzuj
Refaktoryzuj bezwzględnie
Niech wyniki testów będą stale pozytywne!
Pozostaw sobie wyjście
Zakończenie
Rozdział 6. Prostota projektu
YAGNI
Kod pokryty testami
Pokrycie
Cel asymptotyczny
Projekt?
To jednak nie wszystko
Zwiększenie wyrazistości
Bazowa abstrakcja
Testy: druga część problemu
Ograniczenie duplikacji
Przypadkowa duplikacja
Zmniejszanie
Prosta konstrukcja
Rozdział 7. Programowanie zespołowe
Rozdział 8. Testy akceptacyjne
Procedura
Ciągła budowa
CZĘŚĆ II. Standardy
Twój nowy dyrektor techniczny
Rozdział 9. Produktywność
Nie będziemy nigdy wciskać badziewia
Możliwość niedrogiej adaptacji
Będziemy zawsze gotowi
Stabilna wydajność
Rozdział 10. Jakość
Ciągłe ulepszanie
Odważna fachowość
Wyjątkowa jakość
Nie będziemy zrzucali pracy na dział zapewniania jakości
Przypadłość działu zapewniania jakości
Dział zapewniania jakości niczego nie znajdzie
Automatyzacja testów
Testowanie automatyczne a interfejsy użytkownika
Testowanie interfejsu użytkownika
Rozdział 11. Odwaga
Zastępujemy się nawzajem
Rzetelne oszacowania
Musisz mówić „NIE”
Ciągłe aktywne uczenie się
Mentorowanie
CZĘŚĆ III. Etyka
Pierwszy programista
Siedemdziesiąt pięć lat
Ofermy i wyzwoliciele
Wzory osobowe i czarne charaktery
Rządzimy światem
Katastrofy
Przysięga
Rozdział 12. Szkody
Po pierwsze, nie szkodzić
Nie szkodzić społeczeństwu
Uszczerbek w funkcjonowaniu
Nieszkodzenie strukturze
Elastyczność
Testy
Najlepsza praca
Jak zrobić to dobrze
Czym jest dobra struktura?
Macierz Eisenhowera
Programiści są interesariuszami
Dokładanie wszelkich starań
Powtarzalny dowód
Dijkstra
Udowadnianie poprawności
Programowanie strukturalne
Dekompozycja funkcyjna
Programowanie sterowane testami
Rozdział 13. Integralność
Krótkie cykle
Historia kontroli kodu źródłowego
Git
Krótkie cykle
Ciągła integracja
Gałęzie kontra przełączniki
Ciągłe wdrażanie
Ciągła budowa
Bezwzględne ulepszanie
Pokrycie testami
Testowanie mutacyjne
Stabilność semantyczna
Oczyszczanie
Wytwory
Utrzymywanie wysokiej wydajności
Lepkość
Radzenie sobie z rozproszeniami
Zarządzanie czasem
Rozdział 14. Praca zespołowa
Praca w zespole
Otwarte/wirtualne biuro
Rzetelne i uczciwe oszacowania
Kłamstwa
Uczciwość, dokładność, precyzja
Historia nr 1: wektory
Historia nr 2: pCCU
Nauczka
Dokładność
Precyzja
Łączenie
Uczciwość
Szacunek
Nigdy nie przestawaj się uczyć
Opinie
Na razie nie ma opinii o produkcie.