Zrównoważony kod. Dobre praktyki i heurystyki dla inżynierów oprogramowania
- Wydawnictwo:
- Helion
- Ocena:
- 5.0/6 Opinie: 1
- Stron:
- 400
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi
Opis książki: Zrównoważony kod. Dobre praktyki i heurystyki dla inżynierów oprogramowania
Wielu zdolnych programistów uczestniczy w nieefektywnych, źle prowadzonych projektach. Inni muszą utrzymywać kod, który właściwie nigdy nie powinien ujrzeć światła dziennego. Źródeł tego rodzaju trudności jest wiele: programowanie samo w sobie jest niełatwym zagadnieniem, a tworzenie funkcjonalnych aplikacji najczęściej wymaga współdziałania wielu osób. Sprawia to, że kod budujący aplikację szybko zwiększa swoją złożoność, staje się niezrozumiały i bardzo trudny w utrzymaniu. Na szczęście te problemy zostały dostrzeżone i obecnie mamy wiele sposobów ich rozwiązywania.
Ta książka jest przeznaczona dla doświadczonych programistów, którzy chcą zdobyć lub pogłębić wiedzę o metodologiach i dobrych praktykach tworzenia złożonego oprogramowania. Stanowi interesująco napisany zbiór heurystyk i technik ułożonych w kolejności stosowania podczas rozwijania projektu programistycznego. Omówiono tu między innymi listy kontrolne, TDD, rozdzielenie poleceń i zapytań, Git, złożoność cyklomatyczną, przezroczystość referencyjną, wycinki pionowe, refaktoryzację zastanego kodu czy programowanie typu outside-in. Pokazano również, jak utrzymać właściwe tempo pracy podczas dodawania funkcjonalności, jak rozwiązywać problemy optymalizacji, enkapsulacji, a także projektowania API i testów jednostkowych. Poszczególne zagadnienia zostały zilustrowane kodem przykładowego projektu napisanego w C#, zrozumiałego dla każdego, kto zna dowolny język zorientowany obiektowo.
Dzięki książce zrozumiesz, jak:
- wybierać sprawdzone procesy
- tworzyć listy kontrolne ułatwiające polepszenie wyników
- unikać "paraliżu analitycznego"
- przeciwdziałać degradacji kodu i niepotrzebnej złożoności
- stosować lepsze techniki modyfikacji kodu i rozwiązywania problemów
- skuteczniej godzić wymogi wydajności i bezpieczeństwa
Celem nie jest pisanie kodu. Celem jest funkcjonalne oprogramowanie!
Wybrane bestsellery
-
Wstrzykiwanie zależności. Zasady, praktyki, wzorce to poprawiona i rozszerzona wersja bestselleru Dependency Injection in .NET. Publikacja w sposób kompleksowy omawia zagadnienie wstrzykiwania zależności (DI). Zawiera przykłady, wzorce i antywzorce, które czytelnik może wykorzystać do tworzenia l...(0,00 zł najniższa cena z 30 dni)
95.20 zł
119.00 zł(-20%) -
O tym, ile problemów sprawia niedbale napisany kod, wie każdy programista. Nie wszyscy jednak wiedzą, jak napisać ten świetny, „czysty” kod i czym właściwie powinien się on charakteryzować. Co więcej – jak odróżnić dobry kod od złego? Odpowiedź na te pytania oraz sposoby tworzen...(0,00 zł najniższa cena z 30 dni)
51.35 zł
79.00 zł(-35%) -
Po przyswojeniu zagadnień związanych z językiem C# i aplikacjami konsoli dowiesz się, jak tworzyć praktyczne aplikacje i usługi z wykorzystaniem biblioteki ASP.NET Core, a także wzorzec MVC i technologię Blazor. Zapoznasz się z metodami stosowania wielozadaniowości do poprawy wydajności i skalowa...
C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI
(0,00 zł najniższa cena z 30 dni)103.35 zł
159.00 zł(-35%) -
Ta książka jest praktycznym i wyczerpującym przewodnikiem, dzięki któremu w pełni wykorzystasz możliwości Kali Linux. Opisano w niej wiele interesujących zagadnień związanych z przeprowadzaniem testów penetracyjnych. Dowiesz się, jak zbudować nowoczesne środowisko testowe z użyciem kontenerów Doc...(0,00 zł najniższa cena z 30 dni)
64.35 zł
99.00 zł(-35%) -
Oto intuicyjny przewodnik dla średnio zaawansowanych programistów Pythona, pomyślany tak, by przyswajać zasady programowania zorientowanego obiektowo podczas praktycznych ćwiczeń. Dowiesz się, jakie problemy wiążą się z zastosowaniem podejścia proceduralnego i jak dzięki podejściu obiektowemu pis...
Python zorientowany obiektowo. Programowanie gier i graficznych interfejsów użytkownika Python zorientowany obiektowo. Programowanie gier i graficznych interfejsów użytkownika
(0,00 zł najniższa cena z 30 dni)57.85 zł
89.00 zł(-35%) -
To drugie, zaktualizowane i poprawione wydanie bestsellerowego podręcznika Programowania w Pythonie pozwoli Ci błyskawicznie zacząć tworzyć kod, który działa! Zaczniesz od zrozumienia podstawowych koncepcji programistycznych, następnie nauczysz się zapewniać programom interaktywność i wykształcis...(0,00 zł najniższa cena z 30 dni)
64.35 zł
99.00 zł(-35%) -
Ta książka powinna zostać przestudiowana przez każdego architekta nowoczesnych systemów rozproszonych. Jej celem jest pokazanie sposobów rozwiązywania trudnych problemów związanych z projektowaniem takiego oprogramowania. W krytyczny i wszechstronny sposób omówiono w niej najważniejsze problemy u...
Złożone zagadnienia architektury oprogramowania. Jak analizować kompromisy i podejmować trudne decyzje Złożone zagadnienia architektury oprogramowania. Jak analizować kompromisy i podejmować trudne decyzje
(0,00 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
Dzięki tej książce nauczysz się przekształcać suche dane liczbowe w pełną empatii narrację! Aby spełniły one swoje zadanie, ktoś musi przedstawić zawarte w nich informacje w postaci opowieści. W tej publikacji wyczerpująco i praktycznie opisano przebieg tego procesu. Jej lektura sprawi, że rozwin...
Opowieści ukryte w danych. Wyjaśnij dane i wywołaj działania za pomocą narracji Opowieści ukryte w danych. Wyjaśnij dane i wywołaj działania za pomocą narracji
(0,00 zł najniższa cena z 30 dni)20.90 zł
67.00 zł(-69%) -
To książka przeznaczona dla programistów, którzy chcą zacząć pracę z Gitem i GitHubem. W każdym rozdziale zawarto wyłącznie przydatne informacje, a te uzupełniono licznymi ćwiczeniami. Dzięki temu równocześnie możesz się uczyć Gita i nabierać sprawności w posługiwaniu się tym systemem. Przewodnik...
Git i GitHub. Kontrola wersji, zarządzanie projektami i zasady pracy zespołowej Git i GitHub. Kontrola wersji, zarządzanie projektami i zasady pracy zespołowej
(0,00 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
Dzięki tej książce przekonasz się, jak wspaniałą przygodą jest programowanie i jak łatwo ją zacząć! Poznasz podstawy Pythona, dowiesz się, jak pisać i formatować kod, a także szybko nauczysz się uruchamiać swoje programy. Instrukcje sterujące, operatory, typy danych, funkcje, klasy i moduły nie b...
Python 3. Projekty dla początkujących i pasjonatów Python 3. Projekty dla początkujących i pasjonatów
(0,00 zł najniższa cena z 30 dni)38.94 zł
59.90 zł(-35%)
O autorze książki
1 Mark SeemannMark Seemann marzył o karierze gwiazdy rocka i próbował zostać ekonomistą, jego prawdziwym powołaniem jednak okazało się programowanie aplikacji internetowych i biznesowych. Jest certyfikowanym programistą Rockstara, autorem nagradzanych książek o programowaniu i prelegentem na prestiżowych konferencjach. Mieszka w Kopenhadze z żoną i dwójką dzieci.
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły książki
- Tytuł oryginału:
- Code That Fits in Your Head: Heuristics for Software Engineering (Robert C. Martin Series)
- Tłumaczenie:
- Joanna Zatorska
- ISBN Książki drukowanej:
- 978-83-283-9226-7, 9788328392267
- Data wydania książki drukowanej:
- 2022-09-27
- ISBN Ebooka:
- 978-83-283-9227-4, 9788328392274
- Data wydania ebooka:
-
2022-09-27
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Format:
- 165x228
- Numer z katalogu:
- 175824
- Rozmiar pliku Pdf:
- 7.3MB
- Rozmiar pliku ePub:
- 6.7MB
- Rozmiar pliku Mobi:
- 14.8MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Zgłoś erratę
- Kategorie:
Programowanie » Inne - Programowanie
Spis treści książki
- 1.1. Budowanie domu
- 1.1.1. Problem związany z projektami
- 1.1.2. Problem etapów
- 1.1.3. Zależności
- 1.2. Pielęgnacja ogrodu
- 1.2.1. Dzięki czemu ogród rośnie?
- 1.3. W kierunku inżynierii
- 1.3.1. Oprogramowanie jako rzemiosło
- 1.3.2. Heurystyki
- 1.3.3. Wcześniejsze poglądy na inżynierię oprogramowania
- 1.3.4. Ku inżynierii oprogramowania
- 1.4. Wniosek
- 2.1. Pomaganie pamięci
- 2.2. Lista kontrolna dla nowego kodu źródłowego
- 2.2.1. Użyj Gita
- 2.2.2. Zautomatyzuj proces budowania
- 2.2.3. Włącz wszystkie komunikaty o błędzie
- 2.3. Włączanie narzędzi kontrolnych dla istniejącego kodu
- 2.3.1. Stopniowe ulepszenia
- 2.3.2. Zhakuj swoją organizację
- 2.4. Wniosek
- 3.1. Cel
- 3.1.1. Zrównoważony rozwój
- 3.1.2. Wartość
- 3.2. Dlaczego programowanie jest trudne
- 3.2.1. Metafora mózgu
- 3.2.2. Więcej kodu się czyta, niż pisze
- 3.2.3. Czytelność
- 3.2.4. Praca intelektualna
- 3.3. W stronę inżynierii oprogramowania
- 3.3.1. Relacja z informatyką
- 3.3.2. Ludzki kod
- 3.4. Wniosek
- 4.1. Zacznij od działającego oprogramowania
- 4.1.1. Od otrzymania danych po ich utrwalenie
- 4.1.2. Minimalny wycinek pionowy
- 4.2. Chodzący szkielet
- 4.2.1. Test charakteryzacyjny
- 4.2.2. Zasada Arrange-Act-Assert
- 4.2.3. Moderowanie analizy statycznej
- 4.3. Podejście outside-in
- 4.3.1. Przyjmowanie danych w formacie JSON
- 4.3.2. Przesyłanie rezerwacji
- 4.3.3. Test jednostkowy
- 4.3.4. DTO i model domeny
- 4.3.5. Fałszywy obiekt
- 4.3.6. Interfejs repozytorium
- 4.3.7. Tworzenie w repozytorium
- 4.3.8. Konfiguracja zależności
- 4.4. Kończenie wycinka
- 4.4.1. Schemat
- 4.4.2. Repozytorium SQL
- 4.4.3. Konfiguracja uwzględniająca bazę danych
- 4.4.4. Wykonanie testu dymnego
- 4.4.5. Test graniczny z fałszywą bazą danych
- 4.5. Wniosek
- 5.1. Zapisywanie danych
- 5.1.1. Zasada Transformation Priority Premise
- 5.1.2. Test parametryzowany
- 5.1.3. Kopiowanie obiektu DTO do modelu domeny
- 5.2. Walidacja
- 5.2.1. Błędne daty
- 5.2.2. Procedura czerwone, zielone, refaktoryzacja
- 5.2.3. Liczby naturalne
- 5.2.4. Prawo Postela
- 5.3. Ochrona niezmienników
- 5.3.1. Zawsze poprawny
- 5.4. Wniosek
- 6.1. Pamięć krótkoterminowa kontra długoterminowa
- 6.1.1. Zastany kod i pamięć
- 6.2. Wydajność
- 6.2.1. Zbyt wiele rezerwacji
- 6.2.2. Adwokat diabła
- 6.2.3. Istniejące rezerwacje
- 6.2.4. Adwokat diabła kontra czerwone, zielone, refaktoryzacja
- 6.2.5. Kiedy jest wystarczająco wiele testów?
- 6.3. Wniosek
- 7.1. Psucie się kodu
- 7.1.1. Wartości progowe
- 7.1.2. Złożoność cyklomatyczna
- 7.1.3. Reguła 80/24
- 7.2. Kod, który mieści się w mózgu
- 7.2.1. Kwiat sześciokątów
- 7.2.2. Spójność
- 7.2.3. Zazdrość o kod
- 7.2.4. Między wierszami
- 7.2.5. Parsuj, nie waliduj
- 7.2.6. Architektura fraktalna
- 7.2.7. Liczba zmiennych
- 7.3. Wniosek
- 8.1. Zasady projektowania API
- 8.1.1. Afordancja
- 8.1.2. Poka-Yoke
- 8.1.3. Pisz dla czytelników
- 8.1.4. Przedkładaj dobrze napisany kod nad komentarze
- 8.1.5. Zastąpienie nazw znakami x
- 8.1.6. Rozdzielenie poleceń i zapytań
- 8.1.7. Hierarchia komunikacji
- 8.2. Przykładowy projekt API
- 8.2.1. Maître D'
- 8.2.2. Interakcja z opakowanym obiektem
- 8.2.3. Szczegóły implementacyjne
- 8.3. Wniosek
- 9.1. Git
- 9.1.1. Komunikaty rewizji
- 9.1.2. Ciągła integracja
- 9.1.3. Małe rewizje
- 9.2. Zbiorowa własność kodu
- 9.2.1. Programowanie w parach
- 9.2.2. Mob Programming
- 9.2.3. Opóźnienia w inspekcji kodu
- 9.2.4. Odrzucenie zmian
- 9.2.5. Recenzje kodu
- 9.2.6. Żądania aktualizacji
- 9.3. Wniosek
- 10.1. Flagi funkcji
- 10.1.1. Flaga kalendarza
- 10.2. Wzorzec dusiciela
- 10.2.1. Dusiciel na poziomie metody
- 10.2.2. Dusiciel na poziomie klasy
- 10.3. Wersjonowanie
- 10.3.1. Wcześniejsze ostrzeżenie
- 10.4. Wniosek
- 11.1. Refaktoryzacja testów jednostkowych
- 11.1.1. Zmiana sieci bezpieczeństwa
- 11.1.2. Dodawanie nowego kodu testowego
- 11.1.3. Osobna refaktoryzacja testów i kodu produkcyjnego
- 11.2. Testy kończące się niepowodzeniem
- 11.3. Wniosek
- 12.1. Zrozumienie
- 12.1.1. Metoda naukowa
- 12.1.2. Upraszczanie
- 12.1.3. Gumowa kaczuszka
- 12.2. Defekty
- 12.2.1. Odtwórz błędy za pomocą testów
- 12.2.2. Wolne testy
- 12.2.3. Defekty niedeterministyczne
- 12.3. Bisekcja
- 12.3.1. Bisekcja za pomocą Gita
- 12.4. Wniosek
- 13.1. Kompozycja
- 13.1.1. Kompozycja zagnieżdżona
- 13.1.2. Kompozycja sekwencyjna
- 13.1.3. Przezroczystość referencyjna
- 13.2. Kwestie przekrojowe
- 13.2.1. Zapisywanie zdarzeń w dziennikach
- 13.2.2. Dekorator
- 13.2.3. Co rejestrować w dziennikach
- 13.3. Wniosek
- 14.1. Osobisty rytm
- 14.1.1. Dzielenie czasu na bloki
- 14.1.2. Rób przerwy
- 14.1.3. Wykorzystuj czas celowo
- 14.1.4. Pisanie bezwzrokowe
- 14.2. Rytm zespołowy
- 14.2.1. Regularne aktualizowanie zależności
- 14.2.2. Zaplanuj inne rzeczy
- 14.2.3. Prawo Conwaya
- 14.3. Wniosek
- 15.1. Wydajność
- 15.1.1. Spuścizna z przeszłości
- 15.1.2. Czytelność
- 15.2. Bezpieczeństwo
- 15.2.1. Metoda STRIDE
- 15.2.2. Spoofing
- 15.2.3. Tampering
- 15.2.4. Repudiation
- 15.2.5. Information Disclosure
- 15.2.6. Denial of service
- 15.2.7. Elevation of privilege
- 15.3. Inne techniki
- 15.3.1. Testowanie oparte na właściwościach
- 15.3.2. Behawioralna analiza kodu
- 15.4. Wniosek
- 16.1. Nawigacja
- 16.1.1. Ogólne spojrzenie
- 16.1.2. Organizacja pliku
- 16.1.3. Znajdowanie szczegółów
- 16.2. Architektura
- 16.2.1. Monolit
- 16.2.2. Cykle
- 16.3. Użycie
- 16.3.1. Uczenie się na podstawie testów
- 16.3.2. Słuchaj swoich testów
- 16.4. Wniosek
- A.1. Adwokat diabła
- A.2. Arrange-act-assert
- A.3. Bisekcja
- A.4. Czerwone, zielone, refaktoryzacja
- A.5. Dekoratory dla aspektów przekrojowych
- A.6. Dusiciel
- A.7. Flaga funkcji
- A.8. Funkcyjny rdzeń, imperatywna powłoka
- A.9. Hierarchia komunikacji
- A.10. Inspekcja kodu
- A.11. Liczenie zmiennych
- A.12. Lista kontrolna dla nowego kodu źródłowego
- A.13. Model zagrożeń
- A.14. Odtwarzaj defekty w testach
- A.15. Parsuj, nie waliduj
- A.16. Prawo Postela
- A.17. Programowanie sterowane X
- A.18. Regularnie aktualizuj zależności
- A.19. Reguła 50/72
- A.20. Reguła 80/24
- A.21. Rozdzielenie poleceń i zapytań
- A.22. Rozdzielenie refaktoryzacji testów i refaktoryzacji kodu produkcyjnego
- A.23. Transformation Priority Premise
- A.24. Usprawiedliwiaj wyjątki od reguły
- A.25. Wersjonowanie semantyczne
- A.26. Wycinek
- A.27. Zastąp nazwy znakami X
- A.28. Złożoność cyklomatyczna
Przedmowa wydawcy serii
Wstęp
O autorze
CZĘŚĆ I. Przyspieszenie
Rozdział 1 Sztuka czy nauka?
Rozdział 2. Listy kontrolne
Rozdział 3. Radzenie sobie ze złożonością
Rozdział 4. Pionowy wycinek
Rozdział 5. Enkapsulacja
Rozdział 6. Triangulacja
Rozdział 7. Dekompozycja
Rozdział 8. Projektowanie API
Rozdział 9. Praca zespołowa
CZĘŚĆ II. Zrównoważony rozwój
Rozdział 10. Rozbudowywanie kodu
Rozdział 11. Edycja testów jednostkowych
Rozdział 12. Rozwiązywanie problemów
Rozdział 13. Separacja pojęć
Rozdział 14. Rytm
Rozdział 15. Typowi podejrzani
Rozdział 16. Wycieczka
Dodatek A. Lista praktyk
Bibliografia
Oceny i opinie klientów: Zrównoważony kod. Dobre praktyki i heurystyki dla inżynierów oprogramowania Mark Seemann (1)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(0)
(1)
(0)
(0)
(0)
(0)
Data dodania: 2022-12-15 Ocena: 5 Opinia potwierdzona zakupem