Facebook - konwersja
  • nowość

Test-Driven Development w C# i .NET. Tworzenie wysokiej jakości kodu w architekturze DDD za pomocą znanych narzędzi i bibliotek - ebook

Wydawnictwo:
Data wydania:
28 stycznia 2025
Format ebooka:
MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
79,00

Test-Driven Development w C# i .NET. Tworzenie wysokiej jakości kodu w architekturze DDD za pomocą znanych narzędzi i bibliotek - ebook

Spośród wielu koncepcji tworzenia oprogramowania na szczególną uwagę zasługuje model programowania sterowanego testami - TDD. Zastosowanie podejścia TDD ułatwia utrzymanie wysokiej jakości kodu. Technika ta opiera się na dodawaniu funkcjonalności do produktu dopiero po utworzeniu i przeprowadzeniu testów jednostkowych. TDD coraz częściej jest wyborem szanowanych firm programistycznych.

W tej praktycznej książce przedstawiono zasady TDD na rzeczywistych przykładach z użyciem popularnych frameworków, takich jak ASP.NET Core i Entity Framework. Po zapoznaniu się z solidnym wprowadzeniem do koncepcji TDD dowiesz się, jak można używać Visual Studio 2022 do tworzenia aplikacji internetowej z wykorzystaniem Entity Framework, a także baz danych SQL Server i Cosmos DB. Nauczysz się też korzystać z różnych wzorców, takich jak repozytorium, usługi i budowniczy. Ponadto omówiono tu architekturę DDD i inne najlepsze praktyki stosowane podczas tworzenia oprogramowania, w tym reguły SOLID i wskazówki FIRSTHAND. Nie zabrakło przydatnych uwag o biznesowych aspektach podejścia TDD.

W książce między innymi:

  • testy jednostkowe i mechanizm wstrzykiwania zależności
  • NSubstitute: imitacje i dublery używane podczas testów
  • zastosowanie TDD dla ASP.NET API, Entity Framework i baz danych
  • tworzenie potoków ciągłej integracji za pomocą GitHub
  • zaawansowane scenariusze używania imitacji
  • korzyści z wdrażania podejścia TDD przez zespoły i firmy

TDD wprowadza dobre praktyki i doskonali programistę!

Spis treści

 

Część I. Rozpoczęcie pracy i podstawy TDD

Rozdział 1. Przygotowanie pierwszej implementacji TDD

  • Wymagania techniczne
  • Wybór zintegrowanego środowiska programistycznego
    • Microsoft Visual Studio
    • JetBrains Rider
    • Visual Studio Code
    • Wersje .NET i C#
  • Utworzenie szkieletu rozwiązania razem z testami jednostkowymi
    • Wymagania
    • Utworzenie szkieletu projektu
    • Zapoznanie się z wbudowanymi narzędziami przeznaczonymi do przeprowadzania testów
  • Implementacja wymagań z zastosowaniem programowania sterowanego testami
    • SUT
    • Klasa testów
    • Warunki i oczekiwania
    • Czerwony - zielony
    • Wzorzec AAA
    • Jeszcze więcej testów
  • Podsumowanie
  • Dalsza lektura

Rozdział 2. Wprowadzenie do mechanizmu wstrzykiwania zależności

  • Wymagania techniczne
  • Aplikacja WFA
    • Utworzenie przykładowej aplikacji
    • Dodawanie komponentu odpowiedzialnego za dostarczanie rzeczywistej prognozy pogody
  • Poznawanie mechanizmu wstrzykiwania zależności
    • Typy abstrakcyjne i konkretne
    • Czym jest zależność?
    • Znaczenie zależności
    • Definiuj zależności od abstrakcji, a nie od konkretnej implementacji
  • Wprowadzenie do mechanizmu wstrzykiwania zależności
    • Pierwszy przykład wstrzykiwania zależności
    • Testowanie API
    • Czym jest szew?
    • Odwrócenie kontroli
  • Używanie kontenerów wstrzykiwania zależności
    • Rola kontenera
    • Kontenery podmiotów zewnętrznych
    • Cykl życiowy usługi
    • Refaktoryzacja pod kątem wstrzykiwania zależności
    • Rzeczywisty scenariusz użycia wstrzykiwania zależności
    • Wstrzykiwanie metody
    • Wstrzykiwanie właściwości
    • Lokalizator usługi
  • Podsumowanie
  • Dalsza lektura

Rozdział 3. Rozpoczęcie pracy z testami jednostkowymi

  • Wymagania techniczne
  • Wprowadzenie do testów jednostkowych
    • Czym jest testowanie jednostkowe?
    • Frameworki testów jednostkowych
  • Wyjaśnienie struktury projektu stosującego testy jednostkowe
    • Dodawanie projektu xUnit za pomocą wiersza poleceń
    • Konwencje nazw w projekcie testów jednostkowych
    • Wykonanie przykładowego testu jednostkowego
    • Okno Test Explorer
  • Analiza anatomii klasy testu jednostkowego
    • Konwencja nadawania nazwy klasie
    • Metody testowe
    • Wzorzec "przygotowanie, działanie, asercja"
    • Testowany system
  • Omówienie podstaw frameworka xUnit
    • Atrybuty Fact i Theory
    • Wykonywanie testów
    • Klasa Assert
    • Klasa Record
  • Omówienie powiązań zachodzących między regułami SOLID a testami jednostkowymi
    • Reguła jednej odpowiedzialności
    • Reguła otwarte-zamknięte
    • Zasada podstawień Barbary Liskov
    • Zasada rozdzielania interfejsów
    • Zasada odwrócenia zależności
  • Podsumowanie
  • Dalsza lektura

Rozdział 4. Rzeczywiste stosowanie testów jednostkowych z wykorzystaniem dublerów używanych podczas testów

  • Wymagania techniczne
  • Wprowadzenie do koncepcji dublerów używanych podczas testów
    • Typy dublerów używanych podczas testów
    • Którego rozwiązania należy używać w programowaniu sterowanym testami?
  • Omówienie kolejnych kategorii testów
    • Testy integracyjne
    • Testy sintegration
    • Testy akceptacyjne
    • Wybór kategorii testów
  • Podsumowanie
  • Dalsza lektura

Rozdział 5. Programowanie sterowane testami

  • Wymagania techniczne
  • Filary programowania sterowanego testami
    • Najpierw testy
    • Czerwony, zielony, refaktoryzacja
  • Programowanie sterowane testami w praktyce
    • Utworzenie rozwiązania w wierszu poleceń
    • Dodawanie zadania programistycznego
    • Krótkie podsumowanie
  • Najczęściej zadawane pytania i zastrzeżenia do programowania sterowanego testami
    • Dlaczego potrzebne jest programowanie sterowane testami? Czy nie można po prostu używać testów jednostkowych?
    • Podejście w stylu TDD podczas tworzenia oprogramowania wydaje się nienaturalne
    • Stosowanie programowania sterowanego testami będzie nas spowalniać
    • Czy programowanie sterowane testami ma znaczenie dla startupów?
    • Nie lubię programowania sterowanego testami i wolę najpierw zająć się swoją bazą kodu
    • Testy jednostkowe nie sprawdzają rzeczywistych aspektów kodu
    • Podobno istnieją dwie szkoły w zakresie programowania sterowanego testami - londyńska i klasyczna. Jakie są między nimi różnice?
    • Dlaczego niektórzy programiści nie lubią testów jednostkowych i programowania sterowanego testami?
    • Jaki związek zachodzi między programowaniem sterowanym testami a programowaniem ekstremalnym?
    • Czy system jest w stanie przetrwać bez programowania sterowanego testami?
  • Programowanie sterowane testami i testy sintegration
    • Testy sintegration jako alternatywa dla testów jednostkowych w programowaniu sterowanym testami
    • Wyzwania pojawiające się podczas stosowania testów sintegration
  • Podsumowanie
  • Dalsza lektura

Rozdział 6. Wskazówki FIRSTHAND dotyczące programowania sterowanego testami

  • Wymagania techniczne
  • Wskazówka "pierwszy"
    • Później oznacza nigdy
    • Przygotowanie do użycia mechanizmu wstrzykiwania zależności
    • Opracowanie z perspektywy klienta
    • Promowanie testowania sposobu działania
    • Eliminowanie fałszywych alarmów
    • Eliminowanie kodu spekulatywnego
  • Wskazówka "intencja"
    • NazwaMetody_Warunek_Oczekiwanie
    • NazwaMetody_Should_When
    • Struktura testu jednostkowego
  • Wskazówka "czytelność"
    • Inicjalizacja konstruktora testowanego systemu
    • Wzorzec budowniczego
  • Wskazówka "jeden sposób działania"
    • Czym jest sposób działania?
    • Przykład sposobu działania
    • Testowanie jedynie zewnętrznie zdefiniowanego sposobu działania
    • Dlaczego nie testujemy elementów wewnętrznych?
    • Test sprawdza tylko jeden sposób działania
  • Wskazówka "dokładność"
    • Testy jednostkowe przeznaczone do testowania zależności
    • Co oznacza pokrycie kodu testami?
    • Bycie dokładnym
  • Wskazówka "wysoka wydajność"
    • Integracja jako ukryte jednostki
    • Testy jednostkowe w ogromnym stopniu wykorzystujące procesor i pamięć operacyjną
    • Istnienie zbyt wielu testów
  • Wskazówka "automatyzacja"
    • Automatyzacja począwszy od dnia pierwszego
    • Niezależność od platformy
    • Wysoka wydajność w potoku ciągłej integracji
  • Wskazówka "brak współzależności"
    • Odpowiedzialność frameworka testów jednostkowych
    • Odpowiedzialność programisty
  • Wskazówka "deterministyczność"
    • Przypadki niedeterministycznych testów jednostkowych
    • Przykład zamrożenia czasu
  • Podsumowanie

Część II. Stworzenie aplikacji z zastosowaniem podejścia w stylu TDD

Rozdział 7. Pragmatyczne omówienie architektury DDD

  • Wymagania techniczne
  • Praca z przykładową aplikacją
    • Projekt aplikacji
    • Projekt obiektów kontraktu
    • Projekt warstwy dziedziny
  • Poznawanie dziedzin
    • Obiekty dziedziny
    • Encje i obiekty wartości
    • Agregacja
    • Modele anemiczne
    • Wszechobecny język
  • Poznawanie usług
    • Zarządzanie postem
    • Usługi aplikacji
    • Usługi infrastruktury
    • Cechy charakterystyczne usługi
  • Poznawanie repozytoriów
    • Przykład repozytorium
    • Entity Framework i repozytoria
  • Połączenie wszystkiego w całość
    • Okno Solution Explorer
    • Widok architekturalny
  • Podsumowanie
  • Dalsza lektura

Rozdział 8. Opracowanie aplikacji pozwalającej na rezerwowanie wizyt

  • Wymagania techniczne
  • Zebranie wymagań biznesowych
    • Cele biznesowe
    • Historyjki użytkownika
  • Projektowanie w duchu architektury DDD
    • Obiekty dziedziny
    • Usługi dziedziny
    • Architektura systemu
  • Implementowanie tras
    • Frontend
    • Backend w postaci relacyjnej bazy danych
    • Backend w postaci bazy danych opartej na dokumentach
    • Używanie wzorca mediatora
  • Podsumowanie
  • Dalsza lektura

Rozdział 9. Wykorzystanie Entity Framework i relacyjnej bazy danych do opracowania aplikacji pozwalającej na rezerwowanie wizyt

  • Wymagania techniczne
  • Planowanie kodu źródłowego i struktury projektu
    • Analiza struktury projektu
    • Utworzenie projektów i konfiguracja zależności
    • Konfiguracja projektu dziedziny
    • Przygotowanie Entity Framework
    • Przygotowanie projektu witryny internetowej
  • Implementacja Web API z użyciem programowania sterowanego testami
    • Używanie działającego dostawcy EF dla magazynu danych w pamięci
    • Implementacja pierwszej historyjki użytkownika
    • Implementacja piątej historyjki użytkownika (zarządzanie czasem)
  • Udzielenie odpowiedzi na najczęściej zadawane pytania
    • Czy te testy jednostkowe są wystarczające?
    • Dlaczego nie utworzyliśmy testów jednostkowych dla kontrolerów?
    • Czy system został wystarczająco przetestowany?
    • Pominęliśmy testowanie pewnych obszarów, więc jak osiągnąć wysoki poziom pokrycia testami?
  • Podsumowanie

Rozdział 10. Wykorzystanie wzorca repozytorium i bazy danych opartej na dokumentach do opracowania aplikacji pozwalającej na rezerwowanie wizyt

  • Wymagania techniczne
  • Planowanie kodu źródłowego i struktury projektu
    • Analiza struktury projektu
    • Utworzenie projektów i konfiguracja zależności
    • Konfiguracja projektu dziedziny
    • Wzorzec repozytorium
    • Przygotowanie projektu witryny internetowej
  • Implementacja Web API z użyciem programowania sterowanego testami
    • Implementacja pierwszej historyjki użytkownika
    • Implementacja piątej historyjki użytkownika (zarządzanie czasem)
  • Udzielenie odpowiedzi na najczęściej zadawane pytania
    • Czy te testy jednostkowe są wystarczające?
    • Dlaczego nie utworzyliśmy testów jednostkowych dla kontrolerów?
    • Dlaczego nie utworzyliśmy testów jednostkowych dla implementacji repozytoriów?
    • Czy system został wystarczająco przetestowany?
    • Pominęliśmy testowanie pewnych obszarów, więc jak osiągnąć wysoki poziom pokrycia testami?
  • Podsumowanie

Część III. Zastosowanie programowania sterowanego testami we własnych projektach

Rozdział 11. Wdrożenie potoku ciągłej integracji za pomocą usługi GitHub Actions

  • Wymagania techniczne
  • Wprowadzenie do systemu ciągłej integracji
    • Sposób działania systemu ciągłej integracji
    • Zalety systemu ciągłej integracji
  • Implementacja procesu ciągłej integracji za pomocą usługi GitHub Actions
    • Utworzenie przykładowego projektu w repozytorium GitHub
    • Zdefiniowanie sposobu działania
    • System ciągłej integracji i testowanie
    • Symulowanie testów zakończonych niepowodzeniem
    • Omówienie sposobu działania
  • Podsumowanie
  • Dalsza lektura

Rozdział 12. Praca z uaktualnianymi projektami

  • Wymagania techniczne
  • Analizowanie trudności
    • Obsługa mechanizmu wstrzykiwania zależności
    • Trudności związane z modyfikowaniem kodu źródłowego
    • Trudności związane z czasem i wysiłkiem
  • Strategia pozwalająca na zastosowanie programowania sterowanego testami
    • Rozważ ponowne utworzenie projektu
    • Zmiany kodu źródłowego
    • Natywna obsługa dla mechanizmu wstrzykiwania zależności
    • Poziom pokrycia testami przed dodaniem testów jednostkowych
  • Refaktoryzacja na potrzeby testów jednostkowych
    • Tworzenie egzemplarzy w kodzie
    • Zastępowanie statycznych elementów składowych
    • Zmiana struktury kodu źródłowego
  • Podsumowanie
  • Dalsza lektura

Rozdział 13. Zawiłości związane ze stosowaniem programowania sterowanego testami

  • Trudności techniczne
    • Projekt nowy czy uaktualniany?
    • Narzędzia i infrastruktura
  • Trudności w zespole
    • Doświadczenie zespołu
    • Ochota do działania
    • Czas
  • Trudności biznesowe
    • Korzyści biznesowe wynikające z programowania sterowanego testami
    • Wady testów jednostkowych z perspektywy biznesowej
  • Argumenty za programowaniem sterowanym testami i związane z nim błędne koncepcje
    • Testy jednostkowe, a nie programowanie sterowane testami
    • Testy jednostkowe nie są implementowane przez testerów
    • Sposób tworzenia i obsługi technicznej dokumentacji
    • Mamy niekompetentnych programistów
  • Podsumowanie

Dodatek A. Biblioteki, których najczęściej używa się podczas testów jednostkowych

  • Wymagania techniczne
  • Frameworki testów jednostkowych
    • MSTest
    • NUnit
  • Biblioteki imitacji
    • Moq
  • Biblioteki pomocnicze dla testów jednostkowych
    • Fluent Assertions
    • AutoFixture
  • Dalsza lektura

Dodatek B. Zaawansowane scenariusze związane z używaniem imitacji

  • Wymagania techniczne
  • Utworzenie biblioteki klienta OpenWeather
    • API One Call
    • Utworzenie szkieletu rozwiązania
    • Rozpoczęcie pracy nad implementacją z użyciem programowania sterowanego testami
    • Niezaliczenie i późniejsze zaliczenie testu
    • Podsumowanie
    • Analizowanie skomplikowanych scenariuszy imitacji
  • Dalsza lektura
Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-289-1694-4
Rozmiar pliku: 15 MB

BESTSELLERY

Kategorie: