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

Wyrażenia regularne. Receptury (79.00zł)
Elementy systemów komputerowych (44.63zł)
Metodologia i techniki programowania (12.67zł)
Ciągłe dostarczanie oprogramowania. Automatyzacja kompilacji, testowania i wdrażania (69.00zł)
Analiza i projektowanie obiektowe. Rusz głową! (79.00zł)
Google App Engine. Kod w chmurze (45.60zł)
Metody formalne w inżynierii oprogramowania systemów czasu rzeczywistego (70.51zł)
Rzecz o istocie informatyki. Algorytmika. Klasyka informatyki (79.43zł)
Algorytmy. Ćwiczenia (34.90zł)
Algorytmy bez tajemnic (44.90zł)
Mistrz programowania. Zwiększ efektywność i zrób karierę (37.88zł)
Wyrażenia regularne. Wprowadzenie (34.90zł)
Algorytmy (49.00zł)
Złożoność obliczeniowa (79.00zł)
Head First Software Development. Edycja polska (69.00zł)
Scratch. Komiksowa przygoda z programowaniem (34.90zł)
Platformy integracyjne. Zagadnienia wybrane (42.42zł)
Pragmatyczny programista. Od czeladnika do mistrza (55.20zł)
Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów (39.00zł)
Wyrażenia regularne. Leksykon kieszonkowy. Wydanie II (17.90zł)

Pozostałe z serii: Inne

Algorytmy. Wydanie IV (149.00zł)
Podróże i zdrowie (24.90zł)
Polecenia Windows 2000. Leksykon kieszonkowy (9.90zł)
Java ME. Tworzenie zaawansowanych aplikacji na smartfony. eBook. Pdf (47.00zł)
CSS. Kaskadowe arkusze stylów. Przewodnik encyklopedyczny. Wydanie III . eBook. Pdf (54.99zł)
Podręcznik freelancera. Tajniki sukcesu niezależnego projektanta stron WWW. Smashing Magazine (39.90zł)
Flash MX. Vademecum profesjonalisty (75.00zł)
Excel w biurze i nie tylko. Wydanie II. eBook. Pdf (44.90zł)
Ukryta perswazja. Psychologiczne taktyki wywierania wpływu (29.00zł)
Kurs tworzenia stron internetowych (49.00zł)
Excel. Rusz głową! (69.00zł)
Linux. Komendy i polecenia. Praktyczne przykłady (29.90zł)
AutoCAD 2000. Pierwsze kroki (16.00zł)
ABC ochrony przed wirusami (24.90zł)
Zen prezentacji - pomysły i projekty. Jasne zasady i techniki tworzenia doskonałych prezentacji (49.90zł)
Serwisy WWW. Projektowanie, tworzenie i zarządzanie (39.90zł)
Ajax. Wzorce projektowe (69.00zł)
Fotografowanie kobiet. 500 kreatywnych ujęć (39.90zł)
AutoCAD 12 i 12 PL (45.00zł)
Projektowanie witryn internetowych dla urządzeń mobilnych (39.20zł)

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