• EOL

Vyčistěte kód. Příručka dobrého programátora - Robert C. Martin - ukončený produkt

Index: KSZ-02068

Překlad: Paweł Gonera Vydavatel: Helion. Kniha popisuje pravidla a vzorce psaní dobrého, „čistého“ kódu bez chyb.

Vyčistěte kód. Příručka dobrého programátora - Robert C. Martin - ukončený produkt
360,12 Kč
342,98 Kč bez DPH.
Nepřístupný
Produkt s ukončenou výrobou
30 dní na vrácení zboží
Výrobce: Helion

Pozornost!

Kniha je nahrazena novým vydáním - podívejte se!

Popis produktu: Čistý kód. Příručka dobrého programátora - Robert C. Martin - ukončený produkt

Chcete se naučit, co je „čistý“ kód a jak napsat dobrý program bez chyb? V této knize se dočtete o technikách pevného a efektivního programování. Naučíte se pravidla a vzorce psaní syntetizovaného kódu. Naučíte se, jak vytvářet názvy funkcí a objektů a jak psát testy jednotek. Existuje několik příkladů, jak uspořádat kód do čtení, což vám pomůže naučit se, jak váš program splnit přijaté standardy.

Kniha se zabývá takovými problémy jako:

  • Názvy tříd a metod
  • Funkce a seznamy argumentů
  • Oddělení příkazů a dotazů
  • Použití výjimek
  • Komentáře
  • Formátování
  • Objekty a datové struktury
  • Vypořádání se s chybou
  • Jednotkové testy
  • Třídy a systémy
  • Konkurence
  • Vyčištění kódu

Ukázkové projekty použité v knize jsou k dispozici ke stažení . Fragment knihy ke čtení online .

Obsah

Předmluva (13)

Úvod (19)

1. Vyčistěte kód (23)

  • Nechť je kód ... (24)
  • Při hledání dokonalého kódu ... (24)
  • Celkové náklady na nepořádek (25)
    • Zahájit velkou změnu designu (26)
    • Postoj (27)
    • Největší záhada (28)
    • Umění čistého kodexu? (28)
    • Co je Clean Code? (28)
  • Školy myšlení (34)
  • Jsme autoři (35)
  • Scoutův princip (36)
  • Předchůdce a principy (36)
  • Konec (36)
  • Bibliografie (37)

2. Významná jména (39)

  • Úvod (39)
  • Používejte názvy, které představují záměry (40)
  • Zabránění dezinformacím (41)
  • Vytváření jasných rozdílů (42)
  • Vytváření vyslovitelných jmen (43)
  • Používání snadno vyhledatelných jmen (44)
  • Vyhněte se kódování
    • Maďarská notace (45)
    • Prefixy přísad (46)
    • Rozhraní a implementace (46)
  • Vyhýbání se mentálnímu mapování (47)
  • Názvy tříd
  • Názvy metod
  • Nebuď vtipný (48)
  • Vyberte jedno slovo na koncept (48)
  • Nedělejte hříčky! (49)
  • Používání doménových jmen řešení
  • Použití problémových doménových jmen 49
  • Přidání smysluplného kontextu 50
  • Nadbytečný kontext by neměl být přidáván 51
  • Závěrečné slovo (52)

3. Vlastnosti (53)

  • Malé funkce! (56)
    • Bloky a odsazení (57)
  • Udělejte jednu věc (57)
    • Sekce v rámci funkcí
  • Jedna úroveň abstrakce ve funkci 58
    • Čtení kódu shora dolů - shora dolů (58)
  • Přepnout výpisy
  • Používání popisných jmen 61
  • Argumenty funkcí
    • Běžně používané unární funkce 62
    • Argumenty značek
    • Binární funkce 63
    • Tři argumentační funkce
    • Objektově orientované argumenty
    • Argumenty
    • Slovesa a klíčová slova (65)
  • Vyhýbání se vedlejším účinkům (65)
    • Počáteční argumenty
  • Oddělování příkazů a dotazů
  • Používání výjimek místo vracení chybových kódů 67
    • Extrakce bloků Try-Catch 68
    • Zpracování chyb je jedna operace 69
    • Přichytávání závislostí v souboru Error.java
  • Neopakujte se (69)
  • Strukturální programování (70)
  • Jak psát takové funkce? (70)
  • Konec (71)
  • SetupTeardownIncluder (71)
  • Bibliografie (73)

4. Komentáře (75)

  • Komentáře nejsou rtěnkou pro špatný kód (77)
  • Čitelný kód nevyžaduje žádné komentáře (77)
  • Dobré komentáře (77)
    • Právní komentáře (77)
    • Informační komentáře (78)
    • Objasnění záměrů (78)
    • Vysvětlující (79)
    • Varování následků (80)
    • TODO Komentáře (80)
    • Posilování (81)
    • Komentáře Javadoc ve veřejném API
  • Špatné komentáře (81)
    • Babble (81)
    • Opakované komentáře (82)
    • Matoucí komentáře (84)
    • Vyžadovány komentáře (85)
    • Komentáře k deníku (85)
    • Noise Úvodní poznámky (86)
    • Scary Hype (87)
    • Nepoužívejte komentáře, když lze použít funkci nebo proměnnou 88
    • Značky polohy (88)
    • Closing Bracket Komentáře (88)
    • Atributy a poznámky (89)
    • Komentovaný kód (89)
    • Komentáře HTML (90)
    • Informace, které nejsou místní (91)
    • Informační přetížení (91)
    • Neviditelná spojení (91)
    • Funkční záhlaví (92)
    • Komentáře Javadoc v neveřejném kódu
    • Příklad (92)
  • Bibliografie (95)

5. Formátování (97)

  • Účel formátování
  • Vertikální formát (98)
    • Novinová metafora (99)
    • Vertikální rozestup mezi segmenty kódu (99)
    • Vertikální hustota (101)
    • Svislá vzdálenost (101)
    • Svislé uspořádání 105
  • Horizontální formátování (106)
    • Horizontální rozteč a hustota 106
    • Horizontální uspořádání (107)
    • Odsazení (109)
    • Prázdné rozsahy (110)
  • Týmové principy (110)
  • Pravidla formátování strýčka Boba (111)

6. Datové objekty a struktury (113)

  • Abstrakce dat 113
  • Antisymetrie dat a objektů
  • Demeterův zákon (117)
    • Vraky vlaků (118)
    • Hybridy (118)
    • Skrytí struktury 119
  • Objekty pro přenos dat
    • Aktivní záznam (120)
  • Končit (121)
  • Bibliografie (121)

7. Zpracování chyb (123)

  • Použití výjimek místo návratových kódů 124
  • Počínaje napsáním prohlášení Try-Catch-Finally 125
  • Použití nekontrolovaných výjimek 126
  • Poskytování kontextu pomocí výjimek 127
  • Definování tříd výjimek podle potřeb volajícího 127
  • Definování normálního toku 129
  • Nevracíme null (130)
  • Přihrávka nulová (131)
  • Končit (132)
  • Bibliografie (132)

8. Limity (133)

  • Žádost o kód třetí strany (134)
  • Prohlížení a učení hranic
  • Použití balíčku log4j 136
  • Výhody výuky testů 138
  • Použití neexistujícího kódu 138
  • Čisté hranice (139)
  • Bibliografie (140)

9. Testy jednotek (141)

  • Tři zákony TDD 142
  • Udržování čistoty testování (143)
    • Testy zvyšují možnosti (144)
  • Čisté testy (144)
    • Testovací jazyky specifické pro doménu
    • Dvoulůžkový standard (147)
  • Jedno tvrzení na test
    • Jeden koncept na test (150)
  • PRVNÍ (151)
  • Končit (152)
  • Bibliografie (152)

10. Třídy (153)

  • Organizace tříd (153)
    • Zapouzdření (154)
  • Třídy by měly být malé! (154)
    • Princip jediné odpovědnosti (156)
    • Soudržnost (158)
    • Udržování konzistence vytváří mnoho malých tříd 158
  • Správa změn 164
    • Oddělení modulů kódu od změn
  • Bibliografie (167)

11. Systémy (169)

  • Jak byste postavili město? (170)
  • Oddělení konstrukce systému od používání systému 170
    • Izolace hlavního modulu 171
    • Továrny (172)
    • Závislost Injection 172
  • Škálování (173)
    • Izolace (disekování) problémů 176
  • Zprostředkovatelé Java
  • Čisté knihovny Java AOP
  • AspectJ Aspects (181)
  • Testování architektury systému 182
  • Optimalizace rozhodování (183)
    • Když přinášejí skutečnou hodnotu, použijte standardy 183
  • Systémy vyžadují doménové jazyky
  • Končit (184)
  • Bibliografie (185)

12. Tvorba projektu (187)

  • Čistý design vývojem (187)
  • Pravidlo číslo 1 pro jednoduchý design - systém projde všemi testy (188)
  • Pravidlo číslo 2 - 4 pro jednoduchý projekt - přestavba (188)
  • Bez opakování (189)
  • Jasnost kódu 191
  • Minimální třídy a metody 192
  • Končit (192)
  • Bibliografie (192)

13. Souběžnost 193

  • Proč používat souběžnost? (194)
    • Mýty a mylné představy (195)
  • Výzvy (196)
  • Zásady pro obranu souběžnosti (196)
    • Zásada jediné odpovědnosti 197
    • Závěr - Omezení dat (197)
    • Závěr - Používání kopií dat (197)
    • Závěr - vlákna by měla být co nejvíce nezávislá 198
  • Seznamte se s použitou knihovnou (198)
    • Vlákno bezpečné kolekce
  • Seznamte se s modely provedení (199)
    • Producent-spotřebitel (199)
    • Čtenář a spisovatel (200)
    • Jídelní filozofové (200)
  • Dejte si pozor na závislosti mezi synchronizovanými metodami
  • Vytváření malých synchronizovaných sekcí 201
  • Psaní správného vypínacího kódu 202
  • Testování kódu vlákna 202
    • Náhodné pády považujeme za potenciální problémy s multithreadingem
    • Nejprve spustíme kód bez podprocesů (203)
    • Náš kód vlákna by se měl zapnout
    • Náš kód vlákna by měl být laditelný 204
    • Provozujeme více vláken, než máme k dispozici procesory (204)
    • Provádíme testy na různých platformách (204)
    • Náš kód vyzbrojíme prvky, které se snaží způsobit selhání a vynutit selhání (205)
    • Ruční přístrojové vybavení (205)
    • Automatické přístroje (206)
  • Konec (207)
  • Bibliografie (208)

14. Úspěšné vyčištění kódu (209)

  • Implementace třídy Args 210
  • Args Rough Sketch 216
  • Argumenty řetězce typu 228
  • Končit (261)

15. Struktura knihovny JUnit 263

  • Knihovna JUnit (264)
  • Končit (276)

16. Přestavba třídy SerialDate 277

  • Nejprve spustíme (278)
  • Nyní opravujeme (280)
  • Konec (293)
  • Bibliografie (294)

17. Vůně kódu a heuristika (295)

  • Komentáře (296)
    • C1. Špatné informace (296)
    • C2. Zastaralé komentáře (296)
    • C3. Nadbytečné komentáře (296)
    • C4. Špatně napsané komentáře (297)
    • C5. Komentovaný kód (297)
  • Životní prostředí (297)
    • E1. Sestavení modelu 297 vyžaduje více než jeden krok
    • E2. Testy vyžadují více než jeden krok 297
  • Funkce (298)
    • F1. Argument příliš mnoho
    • F2. Výchozí argumenty 298
    • F3. Argumenty značek 298
    • F4. Mrtvé funkce (298)
  • Obecné (298)
    • G1. Více jazyků v jednom zdrojovém souboru (298)
    • G2. Zřejmý provoz není implementován 299
    • G3. Porucha za okrajových podmínek (299)
    • G4. Zajištění odstraněno (299)
    • G5. Opakování (300)
    • G6. Kód na nesprávné úrovni abstrakce 300
    • G7. Základní třídy závislé na jejich odvozených třídách 301
    • G8. Příliš mnoho informací (302)
    • G9. Mrtvý kód (302)
    • G10. Vertikální oddělení (303)
    • G11. Nekonzistence (303)
    • G12. Zatemnění (303)
    • G13. Umělá zpětná vazba (303)
    • G14. Žárlivost na funkce (304)
    • G15. Vyberte argumenty 305
    • G16. Zatemnění záměrů (305)
    • G17. Ztracená odpovědnost (306)
    • G18. Špatné statické metody 306
    • G19. Použití popisných proměnných 307
    • G20. Názvy funkcí by vám měly říkat, co dělají (307)
    • G21. Porozumění algoritmu 308
    • G22. Převod logických na fyzické závislosti 308
    • G23. Použití polymorfismu namísto prohlášení if-else nebo Switch-Case 309
    • G24. Používání standardních konvencí 310
    • G25. Převod magických čísel na pojmenované konstanty 310
    • G26. Přesnost (311)
    • G27. Struktura před konvenci 312
    • G28. Zapouzdřující podmínky
    • G29. Vyhýbání se negativním podmínkám 312
    • G30. Funkce by měly provádět jednu operaci 312
    • G31. Skryté časové spojky
    • G32. Vyhněte se svévolným činům
    • G33. Zapouzdření okrajových podmínek
    • G34. Funkce by měly klesat o jednu úroveň abstrakce 315
    • G35. Ukládání konfigurovatelných dat na vysoké úrovni
    • G36. Vyhýbání se navigaci pro chodce 317
  • Java (317)
    • J1. Vyhněte se dlouhým seznamům importu pomocí zástupných znaků 317
    • J2. Nezdědíme konstanty (318)
    • J3. Konstanty versus výčty 319
  • Jména (320)
    • N1. Výběr popisných jmen
    • N2. Výběr jmen na odpovídající úrovni abstrakcí 321
    • N3. Kde je to možné použít standardní nomenklaturu (322)
    • N4. Unikátní jména (322)
    • N5. Používání dlouhých jmen pro dlouhé obory 323
    • N6. Vyhněte se kódování 323
    • N7. Jména by měla popisovat vedlejší účinky 323
  • Testy (324)
    • T1. Nedostatečné testování (324)
    • T2. Pomocí nástrojů pro kontrolu pokrytí
    • T3. Nepřeskakujte jednoduché testy (324)
    • T4. Ignorovaný test je indikátor nejednoznačnosti (324)
    • T5. Okrajové podmínky
    • T6. Důkladné testování blízkých chyb
    • T7. Chybové vzory hodně odhalují
    • T8. Testovací vzorky pokrytí odhalí hodně
    • T9. Testy by měly být rychlé
  • Končit (325)
  • Bibliografie (325)

A: Souběžnost II

  • Příklad klient-server
    • Server (327)
    • Přidání vláken (329)
    • Poznámky k serveru
    • Končit (331)
  • Možné cesty provedení
    • Počet stop (332)
    • Kopeme hlouběji (333)
    • Končit (336)
  • Seznamte se s použitou knihovnou (336)
    • Exekutorská knihovna (336)
    • Neblokující řešení (337)
    • Bezpečné třídy nezpracovávají vlákna
  • Závislosti mezi metodami mohou poškodit souběžný kód 339
    • Tolerance selhání 340
    • Zamykání klienta
    • Zamykání na serveru
  • Zvyšování propustnosti
    • Výpočet propustnosti s jedním vláknem
    • Výpočet vícevláknové propustnosti
  • Zablokování (345)
    • Vzájemné vyloučení (346)
    • Blokování a čekání 346
    • Žádné vyvlastnění (346)
    • Cyklické čekání 346
    • Zabránění vzájemnému vyloučení (347)
    • Zabránění blokování a čekání 347
    • Umožnění vyvlastnění 348
    • Předcházení cyklickému čekání 348
  • Testování vícevláknového kódu 349
  • Nástroje na podporu testování vláken
  • Končit (352)
  • Tutorial. Úplný kód příkladů 352
    • Klient-server bez vláken 352
    • Klient-server s vlákny

B: org.jfree.date.SerialDate (357)

C: Odkazy na Heuristics 411

Epilog (413)

Rejstřík (415)

Kniha - autor Robert C. Martin
Kniha - ISBN 978-83-246-2188-0
Kniha - vazba měkký
Kniha - vydavatel Helion
Šířka balení 0.001 cm
Výška balení 0.001 cm
Hloubka balení 0.001 cm
Váha balení 0.001 kg

Buďte první, kdo se zeptá na tento produkt!

Zákazníci, kteří koupili tento produkt, koupili také:

Produkty ze stejné kategorie: