Nauka programowania opartego na testach. Jak pisać przejrzysty kod w kilku językach programowania - ebook
Nauka programowania opartego na testach. Jak pisać przejrzysty kod w kilku językach programowania - ebook
Od oprogramowania wymaga się solidności i poprawności, a równocześnie oczekuje wydajnego działania i skalowalności. Jako programista odpowiadasz za zapewnienie aplikacjom tych właśnie cech. Niezależnie od tego, jakiego języka programowania używasz, praca zgodnie z paradygmatem TDD umożliwi Ci otrzymanie testowalnego kodu o wysokiej jakości. Choć te korzyści przeważają nad niedogodnościami podejścia TDD, wielu programistów narzeka na czasochłonność, pracochłonność i sprawiającą problemy implementację programowania opartego na testach.
To przewodnik dla programistów, którzy chcą stosować podejście TDD w swojej codziennej praktyce. Pokazuje, jak korzystać z programowania sterowanego testami podczas pracy w trzech różnych językach: Go, JavaScripcie i Pythonie. Dzięki tej książce zrozumiesz, w jaki sposób zastosować klasyczny paradygmat "dziel i zwyciężaj" do budowania testów jednostkowych i w efekcie radzić sobie nawet z bardzo rozbudowaną architekturą oprogramowania. Liczne przykłady o stopniowo rosnącym poziomie zaawansowania pozwolą Ci płynnie nabierać wprawy i pewności w tworzeniu testów jednostkowych, a także ich używaniu. Szybko się przekonasz, że wprowadzenie TDD do codziennej praktyki kodowania jest bardzo opłacalną decyzją: kod będzie czysty, zrozumiały, elegancki i prosty w utrzymaniu!
W książce między innymi:
- działanie TDD w różnych językach, frameworkach testowych i koncepcjach domenowych
- TDD a ciągła integracja
- konfiguracja środowiska ciągłej integracji
- refaktoryzacja i przeprojektowywanie przy użyciu TDD
- testy jednostkowe w JavaScripcie
- jak TDD ułatwia pisanie czystego kodu w Go, JavaScripcie i Pythonie
TDD: napisz kod, któremu można zaufać!
Spis treści
Przedmowa
Wstęp
Rozdział 0. Wprowadzenie i konfiguracja
- Konfigurowanie środowiska programistycznego
- Typowa konfiguracja
- Go
- JavaScript
- Python
- Gdzie jesteśmy?
Część I. Pierwsze kroki
Rozdział 1. Problem z pieniędzmi
- "Czerwony, zielony, refaktoryzacja" - elementy konstrukcyjne TDD
- Na czym polega problem?
- Nasz pierwszy test z negatywnym wynikiem
- Go
- JavaScript
- Python
- Gramy w zielone
- Go
- JavaScript
- Python
- Czyszczenie
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
- Go
- JavaScript
- Python
Rozdział 2. Wielowalutowość
- Wprowadzamy euro
- Go
- JavaScript
- Python
- Stosowanie do kodu zasady DRY
- Go
- JavaScript
- Python
- Czy nie mówiliśmy przed chwilą "nie powtarzaj się"?
- Dziel i zwyciężaj
- Go
- JavaScript
- Python
- Czyszczenie
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 3. Portfel akcji
- Projektowanie następnego testu
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Część II. Modularyzacja
Rozdział 4. Separacja zagadnień
- Kod testowy i produkcyjny
- Zależność jednokierunkowa
- Wstrzykiwanie zależności
- Pakowanie i wdrażanie
- Modularyzacja
- Usuwanie redundancji
- Gdzie jesteśmy?
Rozdział 5. Pakiety i moduły w Go
- Dzielenie kodu na pakiety
- Moduły w Go
- Tworzenie pakietu
- Hermetyzacja
- Usuwanie redundancji z testów
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 6. Moduły w JavaScripcie
- Podział kodu na moduły
- Płynne przejście na moduły JavaScriptu
- CommonJS
- Definicja modułu asynchronicznego (AMD)
- Uniwersalna definicja modułu (UMD)
- Moduły ES
- Ulepszanie testów
- Usuwanie redundancji z testów
- Dodawanie klasy testowej i metod testowych
- Automatyczne wykrywanie i uruchamianie testów
- Generowanie danych wyjściowych po pomyślnym uruchomieniu testów
- Uruchamianie wszystkich testów, nawet jeśli któraś asercja testowa się nie powiedzie
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 7. Moduły w Pythonie
- Podział kodu na moduły
- Usuwanie redundancji z testów
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Część III. Funkcjonalności i zmiany projektowe
Rozdział 8. Ewaluacja portfela
- Mieszanie pieniędzy
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 9. Waluty, wszędzie waluty
- Szukamy (mapy) skrótów
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 10. Obsługa błędów
- Lista życzeń dla obsługi błędów
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 11. Bankowość na cenzurowanym
- Wstrzykiwanie zależności
- Podsumowanie
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Część IV. Ostatnie poprawki
Rozdział 12. Kolejność testów
- Zmiana kursów wymiany walut
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 13. Ciągła integracja
- Podstawowe pojęcia
- System kontroli wersji
- Serwer i agent kompilacji
- Repozytorium artefaktów
- Środowisko wdrażania
- Zastosowanie w praktyce
- Utworzenie konta w GitHubie
- Weryfikacja konta w GitHubie
- Wysłanie repozytorium kodu do GitHuba
- Przygotowanie dla skryptów kompilacji CI
- Go
- JavaScript
- Python
- Zatwierdzanie zmian
- Gdzie jesteśmy?
Rozdział 14. Retrospektywa
- Profil
- Złożoność cyklomatyczna
- Powiązania
- Zwięzłość
- Przeznaczenie
- Spójność
- Kompletność
- Proces
- Zastosowanie w praktyce
- Go
- JavaScript
- Python
- Czy TDD jest martwe?
- Gdzie jesteśmy?
Dodatek A. Konfiguracja środowiska programistycznego
Dodatek B. Krótka historia trzech języków
Dodatek C. Podziękowania
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9041-6 |
Rozmiar pliku: | 5,4 MB |