Zdjęcie Czysty kod. Podręcznik dobrego programisty - Rzeszów

Czysty kod. Podręcznik dobrego programisty Rzeszów

4,86
36 opinii

Poznaj najlepsze metody tworzenia doskonałego kodu Jak pisać dobry kod, a zły przekształcić w dobry? Jak formatować kod, aby osiągnąć maksymalną czytelność? Jak implementować pełną obsługę błędów bez zaśmiecania logiki kodu? O tym, ile problemów sprawia niedbale napisany kod, wie każdy programista. …

Ostatnia znana cena: 64,31 zł Najbliżej: brak

Liczba ofert: 0

Podobne produkty nowe i używane

Opis

Poznaj najlepsze metody tworzenia doskonałego kodu Jak pisać dobry kod, a zły przekształcić w dobry? Jak formatować kod, aby osiągnąć maksymalną czytelność? Jak implementować pełną obsługę błędów bez zaśmiecania logiki kodu? 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 tworzenia czystego, czytelnego kodu znajdziesz właśnie w tej książce. Podręcznik jest obowiązkową pozycją dla każdego, kto chce poznać techniki rzetelnego i efektywnego programowania. W książce „Czysty kod. Podręcznik dobrego programisty” szczegółowo omówione zostały zasady, wzorce i najlepsze praktyki pisania czystego kodu. Podręcznik zawiera także kilka analiz przypadków o coraz większej złożoności, z których każda jest doskonałym ćwiczeniem porządkowania zanieczyszczonego bądź nieudanego kodu. Z tego podręcznika dowiesz się m.in., jak tworzyć dobre nazwy, obiekty i funkcje, a także jak tworzyć testy jednostkowe i korzystać z programowania sterowanego testami. Nauczysz się przekształcać kod zawierający problemy w taki, który jest solidny i efektywny. Nazwy klas i metod Funkcje i listy argumentów Rozdzielanie poleceń i zapytań Stosowanie wyjątków Komentarze Formatowanie Obiekty i struktury danych Obsługa błędów Testy jednostkowe Klasy i systemy Współbieżność Oczyszczanie kodu Niech stworzony przez Ciebie kod imponuje czystością! Spis treści: Słowo wstępne Wstęp Podziękowania Rysunki Rozdział 1. Czysty kod Niech stanie się kod... W poszukiwaniu doskonałego kodu... Całkowity koszt bałaganu Rozpoczęcie wielkiej zmiany projektu Postawa Największa zagadka Sztuka czystego kodu? Co to jest czysty kod? Szkoły myślenia Jesteśmy autorami Zasada skautów Poprzednik i zasady Zakończenie Bibliografia Rozdział 2. Znaczące nazwy Wstęp Używaj nazw przedstawiających intencje Unikanie dezinformacji Tworzenie wyraźnych różnic Tworzenie nazw, które można wymówić Korzystanie z nazw łatwych do wyszukania Unikanie kodowania Notacja węgierska Przedrostki składników Interfejsy i implementacje Unikanie odwzorowania mentalnego Nazwy klas Nazwy metod Nie bądź dowcipny Wybieraj jedno słowo na pojęcie Nie twórz kalamburów! Korzystanie z nazw dziedziny rozwiązania Korzystanie z nazw dziedziny problemu Dodanie znaczącego kontekstu Nie należy dodawać nadmiarowego kontekstu Słowo końcowe Rozdział 3. Funkcje Małe funkcje! Bloki i wcięcia Wykonuj jedną czynność Sekcje wewnątrz funkcji Jeden poziom abstrakcji w funkcji Czytanie kodu od góry do dołu zasada zstępująca Instrukcje switch Korzystanie z nazw opisowych Argumenty funkcji Często stosowane funkcje jednoargumentowe Argumenty znacznikowe Funkcje dwuargumentowe Funkcje trzyargumentowe Argumenty obiektowe Listy argumentów Czasowniki i słowa kluczowe Unikanie efektów ubocznych Argumenty wyjściowe Rozdzielanie poleceń i zapytań Stosowanie wyjątków zamiast zwracania kodów błędów Wyodrębnienie bloków try-catch Obsługa błędów jest jedną operacją Przyciąganie zależności w Error.java Nie powtarzaj się[13] Programowanie strukturalne Jak pisać takie funkcje? Zakończenie SetupTeardownIncluder Bibliografia Rozdział 4. Komentarze Komentarze nie są szminką dla złego kodu Czytelny kod nie wymaga komentarzy Dobre komentarze Komentarze prawne Komentarze informacyjne Wyjaśnianie zamierzeń Wyjaśnianie Ostrzeżenia o konsekwencjach Komentarze TODO Wzmocnienie Komentarze Javadoc w publicznym API Złe komentarze Bełkot Powtarzające się komentarze Mylące komentarze Komentarze wymagane Komentarze dziennika Komentarze wprowadzające szum informacyjny Przerażający szum Nie używaj komentarzy, jeżeli można użyć funkcji lub zmiennej Znaczniki pozycji Komentarze w klamrach zamykających Atrybuty i dopiski Zakomentowany kod Komentarze HTML Informacje nielokalne Nadmiar informacji Nieoczywiste połączenia Nagłówki funkcji Komentarze Javadoc w niepublicznym kodzie Przykład Bibliografia Rozdział 5. Formatowanie Przeznaczenie formatowania Formatowanie pionowe Metafora gazety Pionowe odstępy pomiędzy segmentami kodu Gęstość pionowa Odległość pionowa Uporządkowanie pionowe Formatowanie poziome Poziome odstępy i gęstość Rozmieszczenie poziome Wcięcia Puste zakresy Zasady zespołowe Zasady formatowania wujka Boba Rozdział 6. Obiekty i struktury danych Abstrakcja danych Antysymetria danych i obiektów Prawo Demeter Wraki pociągów Hybrydy Ukrywanie struktury Obiekty transferu danych Active Record Zakończenie Bibliografia Rozdział 7. Obsługa błędów Użycie wyjątków zamiast kodów powrotu Rozpoczynanie od pisania instrukcji try-catch-finally Użycie niekontrolowanych wyjątków Dostarczanie kontekstu za pomocą wyjątków Definiowanie klas wyjątków w zależności od potrzeb wywołującego Definiowanie normalnego przepływu Nie zwracamy null Nie przekazujemy null Zakończenie Bibliografia Rozdział 8. Granice Zastosowanie kodu innych firm Przeglądanie i zapoznawanie się z granicami Korzystanie z pakietu log4j Zalety testów uczących Korzystanie z nieistniejącego kodu Czyste granice Bibliografia Rozdział 9. Testy jednostkowe Trzy prawa TDD Zachowanie czystości testów Testy zwiększają możliwości Czyste testy Języki testowania specyficzne dla domeny Podwójny standard Jedna asercja na test Jedna koncepcja na test F.I.R.S.T.[8] Zakończenie Bibliografia Rozdział 10. Klasy Organizacja klas Hermetyzacja Klasy powinny być małe! Zasada pojedynczej odpowiedzialności Spójność Utrzymywanie spójności powoduje powstanie wielu małych klas Organizowanie zmian Izolowanie modułów kodu przed zmianami Bibliografia Rozdział 11. Systemy Jak budowałbyś miasto? Oddzielenie konstruowania systemu od jego używania Wydzielenie modułu main Fabryki Wstrzykiwanie zależności Skalowanie w górę Separowanie (rozcięcie) problemów Pośredniki Java Czyste biblioteki Java AOP Aspekty w AspectJ Testowanie architektury systemu Optymalizacja podejmowania decyzji Korzystaj ze standardów, gdy wnoszą realną wartość Systemy wymagają języków dziedzinowych Zakończenie Bibliografia Rozdział 12. Powstawanie projektu Uzyskiwanie czystości projektu przez jego rozwijanie Zasada numer 1 prostego projektu system przechodzi wszystkie testy Zasady numer 2 4 prostego projektu przebudowa Brak powtórzeń Wyrazistość kodu Minimalne klasy i metody Zakończenie Bibliografia Rozdział 13. Współbieżność W jakim celu stosować współbieżność? Mity i nieporozumienia Wyzwania Zasady obrony współbieżności Zasada pojedynczej odpowiedzialności Wniosek ograniczenie zakresu danych Wniosek korzystanie z kopii danych Wniosek wątki powinny być na tyle niezależne, na ile to tylko możliwe Poznaj używaną bibliotekę Kolekcje bezpieczne dla wątków Poznaj modele wykonania Producent-konsument[9] Czytelnik-pisarz[10] Ucztujący filozofowie[11] Uwaga na zależności pomiędzy synchronizowanymi metodami Tworzenie małych sekcji synchronizowanych Pisanie prawidłowego kodu wyłączającego jest trudne Testowanie kodu wątków Traktujemy przypadkowe awarie jako potencjalne problemy z wielowątkowością Na początku uruchamiamy kod niekorzystający z wątków Nasz kod wątków powinien dać się włączać Nasz kod wątków powinien dać się dostrajać Uruchamiamy więcej wątków, niż mamy do dyspozycji procesorów Uruchamiamy testy na różnych platformach Uzbrajamy nasz kod w elementy próbujące wywołać awarie i wymuszające awarie Instrumentacja ręczna Instrumentacja automatyczna Zakończenie Bibliografia Rozdział 14. Udane oczyszczanie kodu Implementacja klasy Args Jak to napisałem? Args zgrubny szkic Zatrzymałem się O przyrostowości Argumenty typu String Zakończenie Rozdział 15. Struktura biblioteki JUnit Biblioteka JUnit Zakończenie Rozdział 16. Przebudowa klasy SerialDate Na początek uruchamiamy Teraz poprawiamy Zakończenie Bibliografia Rozdział 17. Zapachy kodu i heurystyki Komentarze C1. Niewłaściwe informacje C2. Przestarzałe komentarze C3. Nadmiarowe komentarze C4. Źle napisane komentarze C5. Zakomentowany kod Środowisko E1. Budowanie wymaga więcej niż jednego kroku E2. Testy wymagają więcej niż jednego kroku Funkcje F1. Nadmiar argumentów F2. Argumenty wyjściowe F3. Argumenty znacznikowe F4. Martwe funkcje Ogólne G1. Wiele języków w jednym pliku źródłowym G2. Oczywiste działanie jest nieimplementowane G3. Niewłaściwe działanie w warunkach granicznych G4. Zdjęte zabezpieczenia G5. Powtórzenia G6. Kod na nieodpowiednim poziomie abstrakcji G7. Klasy bazowe zależne od swoich klas pochodnych G8. Za dużo informacji G9. Martwy kod G10. Separacja pionowa G11. Niespójność G12. Zaciemnianie G13. Sztuczne sprzężenia G14. Zazdrość o funkcje G15. Argumenty wybierające G16. Zaciemnianie intencji G17. Źle rozmieszczona odpowiedzialność G18. Niewłaściwe metody statyczne G19. Użycie opisowych zmiennych G20. Nazwy funkcji powinny informować o tym, co realizują G21. Zrozumienie algorytmu G22. Zamiana zależności logicznych na fizyczne G23. Zastosowanie polimorfizmu zamiast instrukcji if-else lub switch-case G24. Wykorzystanie standardowych konwencji G25. Zamiana magicznych liczb na stałe nazwane G26. Precyzja G27. Struktura przed konwencją G28. Hermetyzacja warunków G29. Unikanie warunków negatywnych G30. Funkcje powinny wykonywać jedną operację G31. Ukryte sprzężenia czasowe G32. Unikanie dowolnych działań G33. Hermetyzacja warunków granicznych G34. Funkcje powinny zagłębiać się na jeden poziom abstrakcji G35. Przechowywanie danych konfigurowalnych na wysokim poziomie G36. Unikanie nawigacji przechodnich Java J1. Unikanie długich list importu przez użycie znaków wieloznacznych J2. Nie dziedziczymy stałych J3. Stałe kontra typy wyliczeniowe Nazwy N1. Wybór opisowych nazw N2. Wybór nazw na odpowiednich poziomach abstrakcji N3. Korzystanie ze standardowej nomenklatury tam, gdzie jest to możliwe N4. Jednoznaczne nazwy N5. Użycie długich nazw dla długich zakresów N6. Unikanie kodowania N7. Nazwy powinny opisywać efekty uboczne Testy T1. Niewystarczające testy T2. Użycie narzędzi kontroli pokrycia T3. Nie pomijaj prostych testów T4. Ignorowany test jest wskazaniem niejednoznaczności T5. Warunki graniczne T6. Dokładne testowanie pobliskich błędów T7. Wzorce błędów wiele ujawniają T8. Wzorce pokrycia testami wiele ujawniają T9. Testy powinny być szybkie Zakończenie Bibliografia Dodatek A: Współbieżność II Przykład klient-serwer Serwer Dodajemy wątki Uwagi na temat serwera Zakończenie Możliwe ścieżki wykonania Liczba ścieżek Wyliczanie możliwych uporządkowań Kopiemy głębiej Zakończenie Poznaj używaną bibliotekę Biblioteka Executor Rozwiązania nieblokujące Bezpieczne klasy nieobsługujące wątków Zależności między metodami mogą uszkodzić kod współbieżny Tolerowanie awarii Blokowanie na kliencie Blokowanie na serwerze Zwiększanie przepustowości Obliczenie przepustowości jednowątkowej Obliczenie przepustowości wielowątkowej Zakleszczenie Wzajemne wykluczanie Blokowanie i oczekiwanie Brak wywłaszczania Cykliczne oczekiwanie Zapobieganie wzajemnemu wykluczaniu Zapobieganie blokowaniu i oczekiwaniu Umożliwienie wywłaszczania Zapobieganie oczekiwaniu cyklicznemu Testowanie kodu wielowątkowego Narzędzia wspierające testowanie kodu korzystającego z wątków Zakończenie Samouczek. Pełny kod przykładów Klient-serwer bez wątków Klient-serwer z użyciem wątków Dodatek B: org.jfree.date.SerialDate Epilog O autorze: Robert C. Martin (Wujek Bob) jest programistą od 1970 roku. Jest uznanym mówcą na konferencjach całego świata. Napisał między innymi książki Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów (Helion, 2013) oraz UML for Java Programmers (Prentice Hall, 2003). Oprócz tego Martin opublikował setki artykułów, rozpraw i wpisów na blogach. Działał jako redaktor naczelny magazynu „The C++ Report” i był pierwszym przewodniczącym organizacji Agile Alliance. Założył i prowadzi międzynarodową firmę Object Mentor Inc., skupiającą doświadczonych programistów i menedżerów specjalizujących się we wspomaganiu firm w realizacji trudnych projektów.

Specyfikacja

Podstawowe informacje

Autor
  • Robert C. Martin
Wybrane wydawnictwa
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2010
Ilość stron
  • 160
Język oryginału
  • Angielski
Tematyka
  • Podręczniki akademickie
  • Programowanie
ISBN
  • 9788328302341

Opinie Czysty kod. Podręcznik dobrego programisty

Na liście znajdują się opinie, które zostały zweryfikowane (potwierdzone zakupem) i oznaczone są one zielonym znakiem Zaufanych Opinii. Opinie niezweryfikowane nie posiadają wskazanego oznaczenia.

Ocena ogólna
4,86 na podstawie 36 opinii
  • Krystian
    4,5
    Opinia została napisana przez użytkownika, który kupił produkt.
    Jeszcze nie przeczytałem.
    • wiedza
  • użytkownik_anonimowy
    5
    Opinia została napisana przez użytkownika, który kupił produkt.
    Książka była prezentem, ale obdarowany jest bardzo zadowolony.
  • Ania
    5
    Opinia została napisana przez użytkownika, który kupił produkt.
    Podręcznik kupiony w prezencie, prezent się spodobał.
  • Nati
    5
    Opinia została napisana przez użytkownika, który kupił produkt.
    Podstawowa książka dla informatyków. Polecam.
  • Użytkownik Ceneo
    4,5
    Opinia została napisana przez użytkownika, który kupił produkt.
    Expresowa przesyłka. Wszystko ok