Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ C#

Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C# Język: 1

978-83-283-5567-5

Cena Brutto: 129.00

Cena netto: 122.86

Ilość:
Wersja: Drukowana
Autor Robert C. Martin, Micah Martin
Liczba_stron 848
Wydawnictwo Helion
Data_Wydania 2019-01-09
Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C#

W związku ze stale rosnącymi oczekiwaniami użytkowników oprogramowania produkcja systemów informatycznych wymaga dziś korzystania z usystematyzowanych metod zarządzania. Projekt informatyczny, przy którym nie używa się sensownej metodologii wytwarzania, jest skazany na porażkę - przekroczenie terminu, budżetu i niespełnienie wymagań funkcjonalnych. Kierowanie projektem zgodnie z określonymi zasadami również nie gwarantuje sukcesu, lecz znacznie ułatwia jego osiągnięcie. Na początku roku 2001 grupa ekspertów zawiązała zespół o nazwie Agile Alliance. Efektem prac tego zespołu jest metodologia zwinnego wytwarzania oprogramowania - Agile.


Książka Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C# to podręcznik metodologii Agile przeznaczony dla twórców oprogramowania korzystających z technologii .NET. Dzięki niemu poznasz podstawowe założenia i postulaty twórców Agile i nauczysz się stosować je w praktyce. Dowiesz się, jak szacować terminy i koszty, dzielić proces wytwarzania na iteracje i testować produkt. Zdobędziesz wiedzę na temat refaktoryzacji, diagramów UML, testów jednostkowych i wzorców projektowych. Przeczytasz także o publikowaniu kolejnych wersji oprogramowania.

  • Techniki programowania ekstremalnego
  • Planowanie projektu
  • Testowanie i refaktoryzacja
  • Zasady zwinnego programowania
  • Modelowanie oprogramowania za pomocą diagramów UML
  • Stosowanie wzorców projektowych
  • Projektowanie pakietów i komponentów
    • Słowo wstępne
    • Słowo wstępne
      • Zaczerpnięte z książki Agile Software Development: Principles, Patterns and Practices
    • Przedmowa
      • Wstęp Boba
      • Wstęp Micaha
      • O książce
        • Odrobina historii
          • Znajomość z Boochem
          • Wpływ metodyki programowania ekstremalnego
          • Znajomość z Beckiem
          • .NET
        • Diabeł tkwi w szczegółach
        • Organizacja
        • Jak należy czytać tę książkę
    • Podziękowania
    • O autorach
    • Część I. Wytwarzanie zwinne
    • 1. Praktyki programowania zwinnego
      • Agile Alliance
        • Programiści i ich harmonijna współpraca jest ważniejsza od procesów i narzędzi
        • Działające oprogramowanie jest ważniejsze od wyczerpującej dokumentacji
        • Faktyczna współpraca z klientem jest ważniejsza od negocjacji zasad kontraktu
        • Reagowanie na zmiany jest ważniejsze od konsekwentnego realizowania planu
      • Podstawowe zasady
      • Konkluzja
      • Bibliografia
    • 2. Przegląd technik programowania ekstremalnego
      • Praktyki programowania ekstremalnego
        • Cały zespół
        • Opowieści użytkownika
        • Krótkie cykle
          • Plan iteracji
          • Plan wydania
        • Testy akceptacyjne
        • Programowanie w parach
        • Wytwarzanie sterowane testami (TDD)
        • Wspólna własność
        • Ciągła integracja
        • Równe tempo
        • Otwarta przestrzeń pracy
        • Gra planistyczna
        • Prosty projekt
        • Refaktoryzacja
        • Metafora
      • Konkluzja
      • Bibliografia
    • 3. Planowanie
      • Wstępne poznawanie wymagań
        • Dzielenie i scalanie opowieści użytkownika
      • Planowanie wydań
      • Planowanie iteracji
      • Definiowanie warunków zakończenia projektu
      • Planowanie zadań
      • Iteracje
      • Śledzenie postępu
      • Konkluzja
      • Bibliografia
    • 4. Testowanie
      • Wytwarzanie sterowane testami
        • Przykład projektu poprzedzonego testami
        • Izolacja testów
        • Eliminowanie powiązań
      • Testy akceptacyjne
      • Wpływ testów akceptacyjnych na architekturę oprogramowania
      • Konkluzja
      • Bibliografia
    • 5. Refaktoryzacja
      • Prosty przykład refaktoryzacji generowanie liczb pierwszych
        • Testy jednostkowe
        • Refaktoryzacja
        • Ostatnie udoskonalenia
      • Konkluzja
      • Bibliografia
    • 6. Epizod z życia programistów
      • Gra w kręgle
      • Konkluzja
      • Przegląd reguł gry w kręgle
    • Część II. Projektowanie zwinne
    • 7. Czym jest projektowanie zwinne?
      • Symptomy złego projektu
        • Symptomy złego projektu, czyli potencjalne źródła porażek
        • Sztywność
        • Wrażliwość
        • Nieelastyczność
        • Niedostosowanie do rzeczywistości
        • Nadmierna złożoność
        • Niepotrzebne powtórzenia
        • Nieprzejrzystość
      • Dlaczego oprogramowanie ulega degradacji
      • Program Copy
        • Przykład typowego scenariusza
          • Projekt początkowy
          • Zmieniające się wymagania
          • Kolejne wymaganie
          • Oczekujmy zmian
        • Przykład budowy programu Copy w ramach projektu zwinnego
          • Stosowanie praktyk programowania zwinnego
          • Utrzymywanie projektu w możliwie dobrym stanie
      • Konkluzja
      • Bibliografia
    • 8. Zasada pojedynczej odpowiedzialności
      • Definiowanie odpowiedzialności
      • Oddzielanie wzajemnie powiązanych odpowiedzialności
      • Trwałość
      • Konkluzja
      • Bibliografia
    • 9. Zasada otwarte-zamknięte
      • Omówienie zasady otwarte-zamknięte
      • Aplikacja Shape
        • Przykład naruszenia zasady OCP
        • Przykład pełnej zgodności z zasadą otwarte-zamknięte
        • Przewidywanie zmian i naturalna struktura
        • Przygotowywanie punktów zaczepienia
          • Gdy raz mnie oszukasz
          • Stymulowanie zmian
        • Stosowanie abstrakcji do jawnego zamykania oprogramowania dla zmian
        • Zapewnianie zamknięcia z wykorzystaniem techniki sterowania przez dane
      • Konkluzja
      • Bibliografia
    • 10. Zasada podstawiania Liskov
      • Naruszenia zasady podstawiania Liskov
        • Prosty przykład
        • Przykład mniej jaskrawego naruszenia zasady LSP
          • Realny problem
          • Poprawność nie jest cechą wrodzoną
          • Relacja IS-A reprezentuje zachowania
          • Projektowanie przez kontrakt
          • Definiowanie kontraktów w formie testów jednostkowych
        • Przykład zaczerpnięty z rzeczywistości
          • Motywacja
          • Problem
          • Rozwiązanie niezgodne z zasadą podstawiania Liskov
          • Rozwiązanie zgodne z zasadą podstawiania Liskov
      • Wyodrębnianie zamiast dziedziczenia
      • Heurystyki i konwencje
      • Konkluzja
      • Bibliografia
    • 11. Zasada odwracania zależności
      • Podział na warstwy
        • Odwracanie relacji własności
        • Zależność od abstrakcji
      • Prosty przykład praktycznego znaczenia zasady DIP
        • Odkrywanie niezbędnych abstrakcji
      • Przykład aplikacji Furnace
      • Konkluzja
      • Bibliografia
    • 12. Zasada segregacji interfejsów
      • Zanieczyszczanie interfejsów
      • Odrębne klasy klienckie oznaczają odrębne interfejsy
      • Interfejsy klas kontra interfejsy obiektów
        • Separacja przez delegację
        • Separacja przez wielokrotne dziedziczenie
      • Przykład interfejsu użytkownika bankomatu
      • Konkluzja
      • Bibliografia
    • 13. Przegląd języka UML dla programistów C#
      • Diagramy klas
      • Diagramy obiektów
        • Diagramy sekwencji
      • Diagramy współpracy
      • Diagramy stanów
      • Konkluzja
      • Bibliografia
    • 14. Praca z diagramami
      • Po co modelować oprogramowanie?
        • Po co budować modele oprogramowania?
        • Czy powinniśmy pracować nad rozbudowanymi projektami przed przystąpieniem do kodowania?
      • Efektywne korzystanie z diagramów języka UML
        • Komunikacja z innymi programistami
        • Mapy drogowe
        • Dokumentacja wewnętrzna
        • Co powinniśmy zachowywać, a co można wyrzucać do kosza?
      • Iteracyjne udoskonalanie
        • Najpierw zachowania
        • Weryfikacja struktury
        • Wyobrażenie o kodzie
        • Ewolucja diagramów
      • Kiedy i jak rysować diagramy
        • Kiedy przystępować do tworzenia diagramów, a kiedy rezygnować z dalszego rysowania ich
        • Narzędzia CASE
        • A co z dokumentacją?
      • Konkluzja
    • 15. Diagramy stanów
      • Wprowadzenie
        • Zdarzenia specjalne
        • Superstany
        • Pseudostan początkowy i końcowy
      • Stosowanie diagramów skończonych maszyn stanów
      • Konkluzja
    • 16. Diagramy obiektów
      • Migawka
      • Obiekty aktywne
      • Konkluzja
    • 17. Przypadki użycia
      • Pisanie przypadków użycia
        • Przebiegi alternatywne
        • Co jeszcze?
      • Prezentowanie przypadków użycia na diagramach
      • Konkluzja
      • Bibliografia
    • 18. Diagramy sekwencji
      • Wprowadzenie
        • Obiekty, linie życia, komunikaty i inne konstrukcje
        • Tworzenie i niszczenie obiektów
        • Proste pętle
        • Przypadki i scenariusze
      • Pojęcia zaawansowane
        • Pętle i warunki
        • Komunikaty, których przesyłanie wymaga czasu
        • Komunikaty asynchroniczne
        • Wiele wątków
        • Obiekty aktywne
        • Wysyłanie komunikatów do interfejsów
      • Konkluzja
    • 19. Diagramy klas
      • Wprowadzenie
        • Klasy
        • Asocjacje
        • Relacje dziedziczenia
      • Przykładowy diagram klas
      • Omówienie szczegółowe
        • Stereotypy klas
          • interface
          • utility
        • Klasy abstrakcyjne
        • Właściwości
        • Agregacja
        • Kompozycja
        • Liczność
        • Stereotypy asocjacji
        • Klasy zagnieżdżone
        • Klasy asocjacji
        • Kwalifikatory asocjacji
      • Konkluzja
        • Bibliografia
    • 20. Heurystyki i kawa
      • Ekspres do kawy Mark IV Special
        • Specyfikacja
        • Popularne, ale niewłaściwe rozwiązanie
          • Brakujące metody
          • Klasy ulotne
        • Nieprzemyślana abstrakcja
          • Boskie klasy
        • Poprawione rozwiązanie
          • Interfejs użytkownika ekspresu do kawy
          • Przypadek użycia nr 1 użytkownik naciska przycisk uruchamiający parzenie
          • Przypadek użycia nr 2 niegotowe naczynie na kawę
          • Przypadek użycia nr 3 zakończony proces parzenia kawy
          • Przypadek użycia nr 4 zużycie całej kawy
        • Implementacja modelu abstrakcyjnego
          • Przypadek użycia nr 1 użytkownik naciska przycisk Brew
          • Implementacja funkcji IsReady
          • Implementacja funkcji Start
          • Wywołanie funkcji M4UserInterface.CheckButton
          • Dokończenie projektu oprogramowania ekspresu do kawy
        • Zalety projektu w tej formie
          • Źródła tego projektu
      • Implementacja projektu obiektowego
      • Bibliografia
    • Część III. Studium przypadku listy płac
      • Uproszczona specyfikacja systemu listy płac
      • Ćwiczenie
        • Przypadek użycia nr 1 dodanie danych nowego pracownika
          • Alternatywa błąd w strukturze transakcji
        • Przypadek użycia nr 2 usunięcie danych pracownika
          • Alternatywa nieprawidłowy lub nieznany identyfikator EmpID
        • Przypadek użycia nr 3 wysłanie karty czasu pracy
          • Alternatywa nr 1 wskazany pracownik nie jest rozliczany za godziny pracy
          • Alternatywa nr 2 wystąpił błąd w strukturze danej transakcji
        • Przypadek użycia nr 4 wysłanie raportu o sprzedaży
          • Alternatywa nr 1 wskazany pracownik nie jest wynagradzany w systemie prowizyjnym
          • Alternatywa nr 2 wystąpił błąd w strukturze danej transakcji
        • Przypadek użycia nr 5 wysłanie informacji o opłacie na rzecz związku zawodowego
          • Alternatywa błędny format transakcji
        • Przypadek użycia nr 6 zmiana szczegółowych danych pracownika
          • Alternatywa błędny format transakcji
        • Przypadek użycia nr 7 wygenerowanie listy płatności na dany dzień
    • 21. Wzorce projektowe Command i Active Object uniwersalność i wielozadaniowość
      • Proste polecenia
      • Transakcje
        • Fizyczny podział kodu
        • Czasowy podział kodu
      • Metoda Undo
      • Wzorzec projektowy Active Object
      • Konkluzja
      • Bibliografia
    • 22. Wzorce projektowe Template Method i Strategy dziedziczenie kontra delegacja
      • Wzorzec projektowy Template Method
        • Błędne zastosowanie wzorca Template Method
        • Sortowanie bąbelkowe
      • Wzorzec projektowy Strategy
      • Konkluzja
      • Bibliografia
    • 23. Wzorce projektowe Facade i Mediator
      • Wzorzec projektowy Facade
      • Wzorzec projektowy Mediator
      • Konkluzja
      • Bibliografia
    • 24. Wzorce projektowe Singleton i Monostate
      • Wzorzec projektowy Singleton
        • Zalety
        • Wady
        • Wzorzec Singleton w praktyce
      • Wzorzec projektowy Monostate
        • Zalety
        • Wady
        • Wzorzec Monostate w praktyce
      • Konkluzja
      • Bibliografia
    • 25. Wzorzec projektowy Null Object
      • Omówienie
      • Konkluzja
      • Bibliografia
    • 26. Przypadek użycia listy płac pierwsza iteracja
      • Uproszczona specyfikacja
      • Analiza przez omówienie przypadku użycia
        • Dodanie danych nowego pracownika
        • Usunięcie danych pracownika
        • Wysłanie karty czasu pracy
        • Wysłanie raportu o sprzedaży
        • Wysłanie informacji o opłacie na rzecz związku zawodowego
        • Zmiana szczegółowych danych pracownika
        • Wygenerowanie listy płac na dany dzień
      • Refleksja identyfikacja abstrakcji
        • Wynagrodzenia wypłacane pracownikom
        • Harmonogram wypłat
        • Formy wypłat
        • Przynależność związkowa
      • Konkluzja
      • Bibliografia
    • 27. Przypadek użycia listy płac implementacja
      • Transakcje
        • Dodawanie danych pracowników
          • Baza danych systemu płacowego
          • Dodawanie danych pracowników z wykorzystaniem wzorca Template Method
        • Usuwanie danych pracowników
        • Karty czasu pracy, raporty o sprzedaży i składki na związki zawodowe
        • Zmiana danych pracowników
          • Zmiana formy wynagradzania pracownika
        • Co ja najlepszego zrobiłem?
        • Wynagradzanie pracowników
          • Decyzje projektowe i biznesowe
        • Wynagradzanie pracowników etatowych
        • Wynagradzanie pracowników zatrudnionych w systemie godzinowym
          • Okresy rozliczeniowe problem projektowy
      • Program główny
      • Baza danych
      • Konkluzja
      • O tym rozdziale
      • Bibliografia
    • Część IV. Pakowanie systemu płacowego
    • 28. Zasady projektowania pakietów i komponentów
      • Pakiety i komponenty
      • Zasady spójności komponentów ziarnistość
        • Zasada równoważności wielokrotnego użycia i wydawania (REP)
        • Zasada zbiorowego wielokrotnego stosowania (CRP)
        • Zasada zbiorowego zamykania (CCP)
        • Podsumowanie problemu spójności komponentów
      • Zasady spójności komponentów stabilność
        • Zasada acyklicznych zależności (ADP)
          • Cotygodniowe kompilacje
          • Eliminacja cykli zależności
          • Skutki występowania cyklu w grafie zależności pomiędzy komponentami
          • Przerywanie cykli
          • Projektowanie zstępujące kontra projektowanie wstępujące
        • Zasada stabilnych zależności (SDP)
          • Stabilność
          • Miary stabilności
          • Zmienna stabilność komponentów
          • Wysokopoziomowy układ komponentów
        • Zasada stabilnych abstrakcji (SAP)
          • Mierzenie abstrakcji
          • Ciąg główny
          • Odległość od ciągu głównego
      • Konkluzja
    • 29. Wzorzec projektowy Factory
      • Problem zależności
      • Statyczna kontra dynamiczna kontrola typów
      • Fabryki wymienne
      • Wykorzystywanie fabryk do celów testowych
      • Znaczenie fabryk
      • Konkluzja
      • Bibliografia
    • 30. Studium przypadku systemu płacowego analiza podziału na pakiety
      • Notacja i struktura komponentów
      • Stosowanie zasady zbiorowego zamykania (CCP)
      • Stosowanie zasady równoważności wielokrotnego użycia i wydawania (REP)
      • Wiązanie komponentów i hermetyzacja
      • Mierniki
      • Stosowanie mierników dla aplikacji płacowej
        • Fabryki obiektów
          • Fabryka obiektów dla komponentu TransactionImplementation
          • Inicjalizacja fabryk
        • Przebudowa granic spójności
      • Ostateczna struktura pakietów
      • Konkluzja
      • Bibliografia
    • 31. Wzorzec projektowy Composite
      • Polecenia kompozytowe
      • Liczność albo brak liczności
      • Konkluzja
    • 32. Wzorzec projektowy Observer ewolucja kodu w kierunku wzorca
      • Zegar cyfrowy
      • Wzorzec projektowy Observer
        • Modele
        • Zarządzanie zasadami projektowania obiektowego
      • Konkluzja
      • Bibliografia
    • 33. Wzorce projektowe Abstract Server, Adapter i Bridge
      • Wzorzec projektowy Abstract Server
      • Wzorzec projektowy Adapter
        • Forma klasowa wzorca Adapter
        • Problem modemu adaptery i zasada LSP
          • Pierwsze, niedoskonałe rozwiązanie
          • Zagmatwana sieć zależności
          • Wzorzec projektowy Adapter w roli koła ratunkowego
      • Wzorzec projektowy Bridge
      • Konkluzja
      • Bibliografia
    • 34. Wzorce projektowe Proxy i Gateway zarządzanie cudzymi interfejsami API
      • Wzorzec projektowy Proxy
        • Implementacja wzorca Proxy
        • Podsumowanie
      • Bazy danych, oprogramowanie pośredniczące i inne gotowe interfejsy
      • Wzorzec projektowy Table Data Gateway
        • Testowanie konstrukcji TDG w pamięci
        • Test bram DB
      • Stosowanie pozostałych wzorców projektowych łącznie z bazami danych
      • Konkluzja
      • Bibliografia
    • 35. Wzorzec projektowy Visitor
      • Wzorzec projektowy Visitor
      • Wzorzec projektowy Acyclic Visitor
        • Zastosowania wzorca Visitor
          • Generowanie raportów
          • Inne zastosowania
      • Wzorzec projektowy Decorator
      • Wzorzec projektowy Extension Object
      • Konkluzja
      • Bibliografia
    • 36. Wzorzec projektowy State
      • Zagnieżdżone wyrażenia switch-case
        • Wewnętrzny zasięg zmiennej stanu
        • Testowanie akcji
        • Zalety i wady
      • Tabele przejść
        • Interpretacja tabeli przejść
        • Zalety i wady
      • Wzorzec projektowy State
        • Wzorzec State kontra wzorzec Strategy
        • Zalety i wady
        • Kompilator maszyny stanów (SMC)
        • Plik Turnstile.cs wygenerowany przez kompilator SMC i pozostałe pliki pomocnicze
          • Zalety i wady
      • Zastosowania skończonej maszyny stanów
        • Wysokopoziomowa polityka działania graficznych interfejsów użytkownika (GUI)
        • Sterowanie interakcją z interfejsem GUI
        • Przetwarzanie rozproszone
      • Konkluzja
      • Bibliografia
    • 37. Studium przypadku systemu płacowego baza danych
      • Budowa bazy danych
      • Słaby punkt dotychczasowego projektu
      • Dodawanie danych nowych pracowników
      • Transakcje
      • Odczytywanie danych o pracownikach
      • Co jeszcze zostało do zrobienia?
    • 38. Interfejs użytkownika systemu płacowego wzorzec Model View Presenter
      • Interfejs
      • Implementacja
      • Budowa okna
      • Okno główne systemu płacowego
      • Pierwsza odsłona
      • Konkluzja
      • Bibliografia
    • Dodatek A. Satyra na dwa przedsiębiorstwa
      • Rufus Inc. Project Kickoff
      • Rupert Industries Project Alpha
    • Dodatek B. Czym jest oprogramowanie?
      • Posłowie
powrót
 
Produkty Podobne
Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C#
Projektowanie gier przy użyciu środowiska Unity i języka C#. Od pomysłu do gotowej gry. Wydanie II
C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych
Visual Studio 2017. Tworzenie aplikacji Windows w języku C#
Bardziej efektywny C#. 50 sposobów ulepszenia języka C#
Język C# w 7 dni. Solidne podstawy programowania obiektowego
Microsoft Visual C# 2017 Krok po kroku
Microsoft Visual C# Step by Step, 9th Edition
Essential C# 7.0, 6th Edition
C# 7.0 w pigułce. Wydanie VII
Więcej produktów