e-mail sitemap strona główna
Tylko dzisiaj!
Promocja dnia

30% taniej

więcej
Macromedia Dreamweaver 8 z ASP, PHP i ColdFusion. Oficjalny podręcznik
Cena: 8.5714285714286 6.00 zł

Jak zarabiać kilkadziesiąt dolarów dziennie?

Darmowa część I

więcej
Poznaj sekrety Google AdSense
Cena: 39.97 zł
Visual Studio .NET 2005

Dwie darmowe części

więcej
Sekrety języka C#
Cena: 29.95 zł


Seria: Inne
Bestseller: TOP-1


Czysty kod. Podręcznik dobrego programisty

Robert C. Martin
cena: 69.00 zł
Data wydania: 2010-02-19
stron: 424, miękka oprawa, format: 168x237

więcej na stronie helion.pl

Czysty kod. Podręcznik dobrego programisty -- 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



Cena: 69.00 zł

dodaj do koszyka
Powiadom znajomego


Pozostałe z kategorii: Techniki programowania

Systemy uczące się (39.01zł)
Ciągłe dostarczanie oprogramowania. Automatyzacja kompilacji, testowania i wdrażania (69.00zł)
Kod doskonały. Jak tworzyć oprogramowanie pozbawione błędów. Wydanie II (103.20zł)
Algorytmy (49.00zł)
Algorytmy. Ćwiczenia (34.90zł)
Zwinne wytwarzanie oprogramowania. Najlepsze zasady, wzorce i praktyki (89.00zł)
Analiza i projektowanie obiektowe. Rusz głową! (79.00zł)
Wyrażenia regularne. Wprowadzenie (34.90zł)
Agile Development. Filozofia programowania zwinnego (69.00zł)
Sztuka kodowania. Sekrety wielkich programistów (69.00zł)
Mistrz programowania. Zwiększ efektywność i zrób karierę (37.88zł)
Złożoność obliczeniowa (79.00zł)
Head First Software Development. Edycja polska (69.00zł)
Piękny kod. Tajemnice mistrzów programowania (89.00zł)
Czysty kod. Podręcznik dobrego programisty (67.00zł)
Metodologia i techniki programowania (12.58zł)
Programowanie funkcyjne. Krok po kroku (34.90zł)
Scratch. Komiksowa przygoda z programowaniem (34.90zł)
Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów (31.20zł)
Inżynieria oprogramowania. Jak zapewnić jakość tworzonym aplikacjom (47.00zł)

Pozostałe z serii: Inne

PHP i HTML. Tworzenie dynamicznych stron WWW (39.00zł)
Tablice informatyczne. MS Windows Server 2008 (10.32zł)
Perl. Od podstaw (69.00zł)
Adobe Photoshop CS6/CS6 PL. Oficjalny podręcznik (77.00zł)
Ruby. Wzorce projektowe (10.00zł)
MS FrontPage XP. Ćwiczenia praktyczne (12.00zł)
Eclipse 4. Programowanie wtyczek na przykładach (59.00zł)
E-biznes. Poradnik praktyka. Wydanie II (39.00zł)
WordPerfect 5.1. Pierwsze kroki (6.30zł)
C#. Praktyczny kurs. Wydanie II. eBook. Mobi (47.00zł)
Visual Basic 2010. Od podstaw (99.00zł)
Excel 2010 PL. Ćwiczenia praktyczne. eBook. Mobi (14.90zł)
Windows XP. Instalacja i naprawa. Ćwiczenia praktyczne (17.70zł)
Linux. Biblia. Edycja 2007 (127.00zł)
JavaScript dla webmasterów. Zaawansowane programowanie (89.00zł)
GURU KULTU..ry (31.92zł)
Fotografia cyfrowa. Wydanie III (99.00zł)
Ścigany. Rozmowy z Kevinem Mitnickiem (29.90zł)
Herosi i filozofia. Książka, która ocali ten świat (34.90zł)
Projektowanie gier w środowisku Unity 3.x. eBook. Pdf (62.90zł)

najlepszy symetryczny bezprzewodowy internet kurów telefon | dogecoin.com.pl | żółw żółtolicy choroby | mobilier.pl | busy Bruksela