Szczegóły ebooka

Nauka programowania opartego na testach. Jak pisać przejrzysty kod w kilku językach programowania

Nauka programowania opartego na testach. Jak pisać przejrzysty kod w kilku językach programowania

Saleem Siddiqui

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ć!

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

  • Tytuł: Nauka programowania opartego na testach. Jak pisać przejrzysty kod w kilku językach programowania
  • Autor: Saleem Siddiqui
  • Tytuł oryginału: Learning Test-Driven Development: A Polyglot Guide to Writing Uncluttered Code
  • Tłumaczenie: Lech Lachowski
  • ISBN: 978-83-283-9041-6, 9788328390416
  • Data wydania: 2022-08-16
  • Format: Ebook
  • Identyfikator pozycji: naprop
  • Wydawca: Helion