Obsah. Tipy podle zaměření... 11 Úvod... 17 Jednejte s opatrností... 20 Seb Rose. Aplikujte principy funkcionálního programování...



Podobné dokumenty
Kevlin Henney. 97 klíčových znalostí programátora

možnost půjčovat si e-knihy (ZDARMA) z knihoven. Výkonem i funkcemi patří ereading.cz 4 ke

Váš největší problém pravděpodobně nebude technického rázu Mark Ramm

Richard Monson-Haefel. 97 klíčových znalostí softwarového architekta

Projektový management a fundraising

INFORMACE PRO UCHAZEČE

Tomáš Činčala. Strategie osobních aktiv jednotlivce, jejich tvorby a struktury

Vytvářejte si svoji identitu. Máme více identit? Adam Stępiński, Polsko. Vytvářejte si svoji identitu. nízká střední vysoká

VÝZVA K PODÁNÍ NABÍDKY NA VEŘEJNOU ZAKÁZKU MALÉHO ROZSAHU (zadávací dokumentace) Závěrečná evaluace projektu Vzdělávejte se pro růst!

Články Spodní vody inovujícího e-learningu: výtah z celoroční zprávy 2006/07 projektu HELIOS Claudio Dondi

1. Dříve než začneme Trocha historie nikoho nezabije Co budete potřebovat Microsoft versus zbytek světa...

Co ANO při čtení dětem

Didaktika hudební výchovy v současném systému vzdělávání

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

Mobilní dotyková zařízení jako didaktická pomůcka

ROZPORUPLNOST A ROZDÍLNOST VÝCHOZÍCH PARAMETRŮ PŘI SYSTÉMOVÉM POHLEDU NA VZDĚLÁVÁNÍ DOSPĚLÝCH. Zdeněk Palán, NVF Karlovy Vary

Newsletter Gymnázia Thomase Manna

FAQ Odpovědi na často kladené otázky:

KAPITOLA 1 Přehled aktuálního vývoje webů 11

IV. kapitola. Přehled a volba spánkového řešení

Datec News 2009/1. OBSAH Datum vydání:

Obsah. Úvod 7 Zpětná vazba od čtenářů 7 Dotazy 8 Errata 8 Poznámka k aktuálnosti 8 Konvence použité v knize 8

--- Ukázka z titulu --- Myšlení uzdravuje. Jarmila Mandžuková

Církevní základní škola ve Veselí nad Moravou Školní 698, IČ: pro ŠKOLNÍ ROK

JOHN P. KOTTER VĚDOMÍ NALÉHAVOSTI PRVNÍ A NEJDŮLEŽITĚJŠÍ KROK REALIZACE ZMĚNY

Absolventská a bakalářská práce

Tomáš Kocifaj. Facebook: Nemám

2013/14 Petr Jandejsek JABOK/ETF UK

Výukový materiál v rámci projektu OPVK 1.5 Peníze středním školám

Obsah setu: V setu naleznete následující materiály: informace k modelové situaci. instrukce pro modelovou situaci

THE KNOWLEDGE VOLUNTEERS


Očekávání stavebních firem a dodavatelů stavebních materiálů

Jak ZÍSKAT. hodinu. denně. garantováno. Michael Heppell

VEŘEJNÁ JEDNOKOLOVÁ ARCHITEKTONICKO VÝTVARNÁ SOUTĚŽ O NÁVRH NA ŘEŠENÍ INTERIÉRŮ SCIENCE CENTRA A PLANETÁRIA

Uzavírací techniky v obchodním jednání

MEVPIS VODŇANY Otevřené kurzy jaro 2016

Seznam kateder, jejichž předměty jsou zastoupeny v uvedených studijních programech. 1 UJP-Ústav jazykové přípravy 2

3. LEKCE. 2.7 Překlad Překládejte 2.7

Finanční gramotnost pro SŠ -9. modul Dobré finanční návyky

EM-kit Empowerment of immigrant women

Vyučování Zákona na konferenci Dafa v New Yorku o Velikonocích, 2004

1. Vznik a první krůčky OZP Akademie z.ú.

Metodický manuál let SPOLEČENSKO-VĚDNÍ ZÁKLAD. nástroje zdroje. aplikace TABLETY DO ŠKOL. Petr Kofroň

Partner : Způsob Vaší sebe prezentace (Luna v Kozorohu)

Výpočet minulého života

Cvičení 1 Testuje se: poslech a porozumění. Za každou chybnou odpověď 1 bod.

Nový čtenář Souhrnná zpráva z testování čtenářských dovedností Základní školy, 2016

1. Tyto montážní instrukce mohou být reprodukovány a/nebo distribuovány pouze s písemným a explicitním souhlasem společnosti Sela

Proč se učit anglicky?

III. fáze profesního poradenství Řešení situace dlouhodobě nezaměstnaného

Setkání ředitele školy se studenty AR 2015/2016

INTRO. Očekávaný přínos pro byznys však u drtivé většiny těchto značek nikdy nepřijde. Na českém Facebooku vydělává pouze 15 % firem.

Obsah setu: V setu naleznete následující materiály: informace k případové studii / prezentaci. instrukce pro případovou studii / prezentaci

Komunikační a prezentační dovednosti

PILOTNÍ PROJEKT ELEKTROMOBILITA SKUPINY ČEZ. Představení projektu a možností spolupráce

03-04/2016. Všechny akce platí od do nebo do vyprodání zásob. Chyby v tisku a změny vyhrazeny.

VÝZVA K PŘEDKLÁDÁNÍ GRANTOVÝCH PROJEKTŮ OP LZZ

Všichni jsou jedno, chovejte se ke všem stejně

Studentský projekt s odvážnými ambicemi Aneb Zlaté české ručičky nejsou jen mýtus...

Výroční zpráva za rok 2013

Přípravy. na zlatý třesk. Část I. J a k s e s tav í h ř i š t ě

Jak nasadit Windows 10 ve škole

1.1 Zátěžové testování

Převodník stejnosměrného proudu na střídavý PC8-150T, PC8-200A

FORD ST _ST_Range_V2_ MY.indd FC1-FC3 27/06/ :24:01

FORD ST _ST_Range_V2_2015MY.indd FC1-FC3 06/11/ :29:57

PORTÁL ELEKTRONICKÝCH STUDIJNÍCH TEXTŮ

Seminární práce. Téma. Jméno, Příjmení, rok,

K čj.: 568-2/2014-ÚVN V Praze dne

ICILS 2013 VÝSLEDKY Z PILOTNÍHO ŠETŘENÍ

EVROPSKÁ ŽELEZNIČNÍ AGENTURA. SYSTÉMOVÝ PŘÍSTUP Prováděcí pokyny pro tvorbu a zavádění systému zajišťování bezpečnosti železnic

2014 Dostupný z Licence Creative Commons Uveďte autora-zachovejte licenci 4.0 Mezinárodní

Uživatelská příručka

BYOD podmínky a konsekvence jejich provozu u podnikatele. Tomáš Roubík Advokátní kancelář Roubík & spol.

MY JSME LUDGEŘOVICE!!!

Metodický list úprava od Přiznání k dani z příjmů právnických osob

Středisko služeb školám a Zařízení pro další vzdělávání pedagogických pracovníků Brno Č E R V E N č. 6 M Ě S Í Č N Í K

Městský úřad Vimperk Steinbrenerova 6/2, , Vimperk odbor vnitřních věcí

Zadání úloh. Úloha 2.1 Trojice. Úloha 2.2 Čerpadlo. (4b) (4b) matematicko-fyzikální časopis ročníkxiv číslo2

PŘÍPRAVA NA ÚSTNÍ ZKOUŠKU

PROSTOROVÁ ORIENTACE A MATEMATICKÉ PŘEDSTAVY PŘEDŠKOLNÍHO DÍTĚTE

Ukázka knihy z internetového knihkupectví

Obsah. Ukládáme sešit 31 První uložení sešitu 31 Jak pracovat se složkami 33 Ukládání již jednou uloženého sešitu 34 Ukončení práce v Excelu 36

Vlídná povzbuzení na každý den. Josef Schultz

JAK ZÍSKAT OSVĚDČENÍ REVIZNÍHO TECHNIKA ELEKTRICKÝCH ZAŘÍZENÍ ZA 6 DNÍ

2. Výroční zprávu za r přednesl předseda Sdružení Ladislav Zoubek.

F*A*Q. Často-kladené-dotazy

STATUTÁRNÍ MĚSTO BRNO

Spouštíme Digisemestr - vzdělávání studentů v oblasti digitálního marketingu

Cílem tohoto článku je seznámit čtenáře s důvody pro zavedení symbolu pro neznámé, tak jak

Přeshraniční spolupráce: Vytváření a management kooperačních procesů územního rozvoje v německo-polsko-českém pohraničí

Péče o klienta jako umění budování obchodního vztahu I. Mgr. Jitka Dobešová

Ochrana duševního vlastnictví Autorská práva ve vazbě na metodiku tvorby didaktických materiálů

Služby města Bochov, s.r.o. Náměstí Míru 1, Bochov IČ:

VNITŘNÍ ZDROJE A SCHOPNOSTI ORGANIZACE

Obecná charakteristika blesku

Architektura počítačů Agenda

Obsah. Úvod 9. Kapitola 1 Základní informace o Googlu 11. Kapitola 2 Základy vyhledávání 17. Kapitola 3 Vyhledávání pro pokročilé 47

Transkript:

Obsah Tipy podle zaměření............................................. 11 Úvod............................................................ 17 Jednejte s opatrností............................................. 20 Seb Rose Aplikujte principy funkcionálního programování.................. 22 Edward Garson Položte si otázku: Co by udělal uživatel? (vy jím nejste)........... 24 Giles Colborne Automatizujte své kódovací standardy............................ 26 Filip van Laenen V jednoduchosti je krása......................................... 28 Jørn Ølmheim Před refaktorováním............................................. 30 Rajith Attapattu Pozor na sdílený kód............................................. 32 Udi Dahan Skautské pravidlo................................................ 34 Robert C. Martin (Uncle Bob) Než začnete obviňovat ostatní, zkontrolujte vlastní kód........... 36 Allan Kelly Obsah 3

Nástroje volte s rozvahou........................................ 38 Giovanni Asproni Programujte v jazyce domény.................................... 40 Dan North Kód představuje návrh........................................... 42 Ryan Brush Na odsazení kódu záleží.......................................... 44 Steve Freeman Revize kódu...................................................... 46 Mattias Karlsson Odůvodnění správnosti kódu..................................... 48 Yechiel Kimchi Pár slov ke komentářům.......................................... 50 Cal Evans Komentujte pouze to, co kód sám nedokáže říct.................. 52 Kevlin Henney Nepřetržité učení................................................ 54 Clint Shank Pohodlnost nepatří mezi ctnosti.................................. 56 Gregor Hohpe Nasazujte brzy a často............................................ 58 Steve Berczuk Rozlište technické a business výjimky............................. 60 Dan Bergh Johnsson Procvičujte se.................................................... 62 Jon Jagger Jazyky specifické pro doménu.................................... 64 Michael Hunger Nebojte se, že něco rozbijete..................................... 66 Mike Lewis Nesnažte se okouzlit testovacími daty............................ 68 Rod Begbie 4 97 klíčových znalostí programátora

Neignorujte chyby............................................... 70 Pete Goodliffe Nestačí pouze naučit se jazyk, ale porozumět jeho kultuře......... 72 Anders Norås Nesnažte se svůj program přibít do vzpřímené polohy............ 74 Verity Stob Nevěřte na kouzla................................................ 76 Alan Griffiths Neopakujte se................................................... 78 Steve Smith Nedotýkej se toho kódu.......................................... 80 Cal Evans Zapouzdřete chování, ne pouze stav.............................. 82 Einar Landre Čísla s plovoucí řádovou čárkou nejsou reálná.................... 84 Chuck Allison Naplňte své ambice pomocí open-source......................... 86 Richard Monson-Haefel Zlaté pravidlo návrhu API........................................ 88 Michael Feathers Mýtus guru...................................................... 90 Ryan Brush Dřina se nevyplácí............................................... 92 Olve Maudal Použití systému pro sledování chyb............................... 94 Matt Doar Vylepšete kód tím, že ho odstraníte............................... 96 Pete Goodliffe Nainstaluj si mě.................................................. 98 Marcus Baker Komunikace mezi procesy ovlivňuje reakční dobu aplikace....... 100 Randy Stafford Obsah 5

Udržujte build čistý............................................. 102 Johannes Brodwall Naučte se používat nástroje příkazového řádku.................. 104 Carroll Robinson Ovládejte více než dva programovací jazyky..................... 106 Russel Winder Poznejte své IDE................................................ 108 Heinz Kabutz Poznejte své limity.............................................. 110 Greg Colvin Poznejte, kdy dokončíte práci................................... 112 Dan Bergh Johnsson Rozsáhlá vzájemně propojená data patří do databáze............ 114 Diomidis Spinellis Naučte se cizí jazyky............................................ 116 Klaus Marquardt Naučte se odhadovat........................................... 118 Giovanni Asproni Naučte se říct: Ahoj, světe...................................... 120 Thomas Guest Nechte projekt mluvit sám za sebe.............................. 122 Daniel Lindner Linker není žádným magickým programem...................... 124 Walter Bright Dlouhověkost provizorních řešení............................... 126 Klaus Marquardt Rozhraní by se měla snadno používat správným způsobem a těžko špatným................................................ 128 Scott Meyers Ať se neviditelné stane více viditelným........................... 130 Jon Jagger 6 97 klíčových znalostí programátora

Předávání zpráv vede v paralelních systémech k lepší rozšiřitelnosti................................................... 132 Russel Winder Odkaz budoucnosti............................................. 134 Linda Rising Nevyužité příležitosti k polymorfizmu........................... 136 Kirk Pepperdine Novinka: Testeři jsou vaši kamarádi.............................. 138 Burk Hufnagel Pouze jeden binární soubor..................................... 140 Steve Freeman Pouze kód říká pravdu.......................................... 142 Peter Sommerlad Nezapomínejte na sestavení..................................... 144 Steve Berczuk Párové programování........................................... 146 Gudny Hauknes, Kari Røssland a Ann Katrin Gagnat Preferujte typy specifické pro doménu před primitivními typy.... 148 Einar Landre Předcházejte chybám........................................... 150 Giles Colborne Profesionální programátor...................................... 152 Robert C. Martin (Uncle Bob) Všechno verzujte................................................ 154 Diomidis Spinellis Odložte myš a odstupte od klávesnice........................... 156 Burk Hufnagel Čtěte kód....................................................... 158 Karianne Berg Zajímejte se o humanitní vědy................................... 160 Keith Braithwaite Obsah 7

Často znovu vynalézejte kolo.................................... 162 Jason P. Sage Odolejte pokušení návrhového vzoru jedináček.................. 164 Sam Saariste Honbu za výkonem komplikuje špinavý kód..................... 166 Kirk Pepperdine Jednoduchost jde ruku v ruce s redukcí.......................... 168 Paul W. Homer Princip jedné odpovědnosti..................................... 170 Robert C. Martin (Uncle Bob) Začněte u Ano.................................................. 172 Alex Miller Odstupte a automatizujte, automatizujte, automatizujte......... 174 Cay Horstmann Využijte nástrojů pro analýzu kódu.............................. 176 Sarah Mount Testujte požadované, nikoli nahodilé chování.................... 178 Kevlin Henney Testujte přesně a konkrétně..................................... 180 Kevlin Henney Testujte ve spánku (a přes víkendy).............................. 182 Rajith Attapattu Testování je přísností softwarového vývoje....................... 184 Neal Ford Myšlení ve stavech.............................................. 186 Niclas Nilsson Dvě hlavy jsou často lepší než jedna............................. 188 Adrian Wible Dvakrát špatně může znamenat dobře (a těžko se opravuje)...... 190 Allan Kelly Ubuntu pro vaše přátele......................................... 192 Aslam Khan 8 97 klíčových znalostí programátora

Unixové nástroje jsou vaši kamarádi............................. 194 Diomidis Spinellis Použijte správný algoritmus a datovou strukturu................. 196 Jan Christiaan JC van Winkel Přehnané protokolování vám na klidném spánku nepřidá........ 198 Johannes Brodwall WET pomáhá překonat výkonnostní překážky.................... 200 Kirk Pepperdine Když programátoři a testeři spolupracují......................... 202 Janet Gregory Piště kód tak, jako byste museli zajišťovat jeho podporu po zbytek svého života.......................................... 204 Yuriy Zubarev Vytvářejte malé funkce na základě příkladů...................... 206 Keith Braithwaite Vytvářejte testy pro lidi.......................................... 208 Gerard Meszaros O kód se musíte starat........................................... 210 Pete Goodliffe Vaši zákazníci neuvažují nad tím, co říkají........................ 212 Nate Jackson Přispěvatelé.................................................... 214 Rejstřík......................................................... 235 Obsah 9

Tipy podle zaměření Chyby a opravy Než začnete obviňovat ostatní, zkontrolujte vlastní kód.................. 36 Nedotýkej se toho kódu................................................. 80 Použití systému pro sledování chyb...................................... 94 Dvakrát špatně může znamenat dobře (a těžko se opravuje)............. 190 Vývoj Nasazujte brzy a často................................................... 58 Nedotýkej se toho kódu................................................. 80 Nainstaluj si mě......................................................... 98 Udržujte build čistý.................................................... 102 Nechte projekt mluvit sám za sebe..................................... 122 Pouze jeden binární soubor............................................ 140 Nezapomínejte na sestavení............................................ 144 Vzhled kódu Automatizujte své kódovací standardy................................... 26 Na odsazení kódu záleží................................................. 44 Revize kódu............................................................. 46 Pár slov ke komentářům................................................. 50 Komentujte pouze to, co kód sám nedokáže říct......................... 52 Využijte nástrojů pro analýzu kódu..................................... 176 Tipy podle zaměření 11

Techniky návrhu Aplikujte principy funkcionálního programování......................... 22 Položte si otázku: Co by udělal uživatel? (vy jím nejste).................. 24 V jednoduchosti je krása................................................ 28 Nástroje volte s rozvahou............................................... 38 Programujte v jazyce domény........................................... 40 Kód představuje návrh.................................................. 42 Odůvodnění správnosti kódu............................................ 48 Pohodlnost nepatří mezi ctnosti......................................... 56 Rozlište technické a business výjimky.................................... 60 Neopakujte se.......................................................... 78 Zapouzdřete chování, ne pouze stav..................................... 82 Zlaté pravidlo návrhu API............................................... 88 Komunikace mezi procesy ovlivňuje reakční dobu aplikace.............. 100 Rozhraní by se měla snadno používat správným způsobem a těžko špatným..................................................... 128 Předávání zpráv vede v paralelních systémech k lepší rozšiřitelnosti..... 132 Nevyužité příležitosti k polymorfismu................................... 136 Pouze kód říká pravdu................................................. 142 Preferujte typy specifické pro doménu před primitivními typy........... 148 Předcházejte chybám.................................................. 150 Odolejte pokušení návrhového vzoru jedináček......................... 164 Princip jedné odpovědnosti............................................ 170 Myšlení ve stavech..................................................... 186 WET pomáhá překonat výkonnostní překážky........................... 200 Myšlení v souvislostech Programujte v jazyce domény........................................... 40 Jazyky specifické pro doménu........................................... 64 Naučte se cizí jazyky................................................... 116 Preferujte typy specifické pro doménu před primitivními typy........... 148 Zajímejte se o humanitní vědy.......................................... 160 Myšlení ve stavech..................................................... 186 Vytvářejte malé funkce na základě příkladů............................. 206 12 97 klíčových znalostí programátora

Chyby, výjimky a ladění Rozlište technické a business výjimky.................................... 60 Neignorujte chyby...................................................... 70 Nesnažte se svůj program přibít do vzpřímené polohy................... 74 Předcházejte chybám.................................................. 150 Přehnané protokolování vám na klidném spánku nepřidá............... 198 Výuka a dovednosti Nepřetržité učení....................................................... 54 Procvičujte se........................................................... 62 Nestačí pouze naučit se jazyk, ale porozumět jeho kultuře................ 72 Naplňte své ambice pomocí open-source................................ 86 Mýtus guru............................................................. 90 Dřina se nevyplácí...................................................... 92 Čtěte kód.............................................................. 158 Zajímejte se o humanitní vědy.......................................... 160 Často znovu vynalézejte kolo........................................... 162 Tajemno a magično Nevěřte na kouzla....................................................... 76 Nedotýkej se toho kódu................................................. 80 Mýtus guru............................................................. 90 Naučte se používat nástroje příkazového řádku......................... 104 Linker není žádným magickým programem............................. 124 Testujte ve spánku (a přes víkendy)..................................... 182 Přehnané protokolování vám na klidném spánku nepřidá............... 198 Piště kód tak, jako byste museli zajišťovat jeho podporu po zbytek svého života......................................................... 204 Výkon a optimalizace Aplikujte principy funkcionálního programování......................... 22 Čísla s plovoucí řádovou čárkou nejsou reálná........................... 84 Vylepšete kód tím, že ho odstraníte...................................... 96 Komunikace mezi procesy ovlivňuje reakční dobu aplikace.............. 100 Poznejte své limity..................................................... 110 Tipy podle zaměření 13

Rozsáhlá vzájemně propojená data patří do databáze................... 114 Předávání zpráv vede v paralelních systémech k lepší rozšiřitelnosti..... 132 Honbu za výkonem komplikuje špinavý kód............................ 166 Použijte správný algoritmus a datovou strukturu........................ 196 WET pomáhá překonat výkonnostní překážky........................... 200 Profesionální přístup....................................................... Nepřetržité učení....................................................... 54 Procvičujte se........................................................... 62 Dřina se nevyplácí...................................................... 92 Dlouhověkost provizorních řešení...................................... 126 Profesionální programátor............................................. 152 Odložte myš a odstupte od klávesnice.................................. 156 Testování je přísností softwarového vývoje.............................. 184 Piště kód tak, jako byste museli zajišťovat jeho podporu po zbytek svého života......................................................... 204 O kód se musíte starat.................................................. 210 Programovací jazyky a paradigmata Aplikujte principy funkcionálního programování......................... 22 Jazyky specifické pro doménu........................................... 64 Nestačí pouze naučit se jazyk, ale porozumět jeho kultuře................ 72 Ovládejte více než dva programovací jazyky............................ 106 Naučte se cizí jazyky................................................... 116 Refaktorování a údržba kódu Jednejte s opatrností.................................................... 20 Před refaktorováním.................................................... 30 Skautské pravidlo....................................................... 34 Komentujte pouze to, co kód sám nedokáže říct......................... 52 Nebojte se, že něco rozbijete............................................ 66 Vylepšete kód tím, že ho odstraníte...................................... 96 Udržujte build čistý.................................................... 102 Poznejte, kdy dokončíte práci.......................................... 112 Dlouhověkost provizorních řešení...................................... 126 Odkaz budoucnosti.................................................... 134 14 97 klíčových znalostí programátora

Pouze kód říká pravdu................................................. 142 Nezapomínejte na sestavení............................................ 144 Profesionální programátor............................................. 152 Honbu za výkonem komplikuje špinavý kód............................ 166 Jednoduchost jde ruku v ruce s redukcí................................. 168 Ubuntu pro vaše přátele................................................ 192 O kód se musíte starat.................................................. 210 Znovupoužití verzus opakování Pozor na sdílený kód.................................................... 32 Pohodlnost nepatří mezi ctnosti......................................... 56 Procvičujte se........................................................... 62 Neopakujte se.......................................................... 78 Často znovu vynalézejte kolo........................................... 162 Použijte správný algoritmus a datovou strukturu........................ 196 WET pomáhá překonat výkonnostní překážky........................... 200 Plány, termíny a odhady Jednejte s opatrností.................................................... 20 Kód představuje návrh.................................................. 42 Poznejte, kdy dokončíte práci.......................................... 112 Naučte se odhadovat.................................................. 118 Ať se neviditelné stane více viditelným.................................. 130 Jednoduchost V jednoduchosti je krása................................................ 28 Naučte se říct: Ahoj světe............................................. 120 Odkaz budoucnosti.................................................... 134 Jednoduchost jde ruku v ruce s redukcí................................. 168 Práce v týmu Revize kódu............................................................. 46 Naučte se cizí jazyky................................................... 116 Párové programování.................................................. 146 Začněte u Ano......................................................... 172 Tipy podle zaměření 15

Dvě hlavy jsou často lepší než jedna.................................... 188 Ubuntu pro vaše přátele................................................ 192 Když programátoři a testeři spolupracují................................ 202 Testy, testování a testeři Aplikujte principy funkcionálního programování......................... 22 Kód představuje návrh.................................................. 42 Nesnažte se okouzlit testovacími daty................................... 68 Zlaté pravidlo návrhu API............................................... 88 Rozhraní by se měla snadno používat správným způsobem a těžko špatným..................................................... 128 Ať se neviditelné stane více viditelným.................................. 130 Novinka: Testeři jsou vaši kamarádi..................................... 138 Testujte požadované, nikoli nahodilé chování........................... 178 Testujte přesně a konkrétně............................................ 180 Testujte ve spánku (a přes víkendy)..................................... 182 Testování je přísností softwarového vývoje.............................. 184 Když programátoři a testeři spolupracují................................ 202 Vytvářejte malé funkce na základě příkladů............................. 206 Vytvářejte testy pro lidi................................................. 208 16 97 klíčových znalostí programátora

Úvod I ten nejnovější počítač pouze znásobuje pradávný problém vztahu mezi lidskými bytostmi a na konci bude zprostředkovatel muset čelit problému toho, co říci a jak. Edward R. Murrow V hlavách programátorů se honí mnoho myšlenek. Programovací jazyky, programovací techniky, vývojová prostředí, způsoby kódování, nástroje, proces vývoje, termíny, schůzky, softwarová architektura, návrhové vzory, dynamika týmu, kód, požadavky, chyby, kvalita kódu a mnoho a mnoho dalšího. Programování je umění, dovednost a věda, zdaleka přesahující rámec samotného programu. Programování spojuje diskrétní svět počítačů s fluidním světem lidských záležitostí. Programátoři jsou prostředníky mezi vyjednanými a nejistými obchodními fakty a neústupnou oblastí bitů a bajtů a vyšších jazykových konstruktů. Vzhledem k množství potřebných znalostí a bezpočtu možných postupů nemůže nikdo označovat právě svůj postup za ten jediný správný. Kniha 97 klíčových znalostí programátora staví na kolektivních vědomostech a zkušenostech a spíše než ucelený větší obrázek poskytuje představu odborné veřejnosti o tom, co by měl každý programátor znát. Svým rozsahem tak pokrývá vše od rad týkajících se kódu po vzdělávání, od použití algoritmů po agilní uvažování, od implementačního know-how po profesionalismus, od způsobu k podstatě. Příspěvky na sebe vzájemně nenavazují a není to ani záměr spíše opak je pravdou. Hodnota příspěvků pramení právě z jejich osobitosti. Hodnota kolekce spočívá v tom, jak se vzájemně doplňují, potvrzují, nebo jsou dokonce v rozporu. Nenajdete zde žádné oslí můstky je na vás reagovat, uvážit a spojit si dohromady, co čtete, vzít v potaz váš vlastní kontext a zkušenosti. Oprávnění Autorskou ochranu každého článku lze přirovnat k open-source řešením. Každý tip je dostupný online a chráněn na základě licence Creative Commons, což znamená, že můžete každý z článků samostatně využívat ve své praxi, pokud uvedete jeho autora. Úvod 17

Poděkování Mnoho lidí přispělo svým časem či názory ke vzniku knihy 97 klíčových znalostí programátora, a to přímo i nepřímo. Ti všichni si zaslouží uznání. Richard Monson-Haefel je původce myšlenky edice 97 klíčových znalostí a také sestavil první knihu této série 97 klíčových znalostí softwarového architekta, do které jsem přispěl. Chtěl bych Richardovi poděkovat za tuto sérii, její koncept otevřeného přispívání a hlavně za podporu mého nápadu realizovat tuto knihu. Chci poděkovat všem, kteří věnovali čas a úsilí přispět do tohoto projektu. Přispěvatelům, kteří jsou se svými radami uvedeni v této knize, i těm, kteří vybráni nebyli. Velký objem a kvalita příspěvků učinily výběr hodně složitým, pevně daný počet bohužel vyřadil i několik těch, které by se normálně do knihy podařilo vmáčknout. Velký dík za zpětnou vazbu, komentáře a další nápady patří Giovanni Aspronimu, Paulu Colin Glosterovi a Michaelu Hungerovi. Děkuji O Reilly za podporu, kterou věnovalo tomuto projektu, velkou pozornost a lidem v O Reilly jmenovitě pak Miku Loukidesovi, Laurelu Ackermanovi, Ediemu Freedmanovi, Edu Stephensonovi a Rachel Monaghanové. Chtěl bych také poděkovat svojí ženě Carolyn za to, že vnesla pořádek do mého chaosu, a také mým dvěma synům, Stefanovi a Yannickovi za znovuvytvoření části chaosu. Doufám, že kniha vám poskytne informace, vhled a inspiraci. Poznámka redakce českého vydání Nakladatelství Computer Press, které pro vás tuto knihu přeložilo, stojí o zpětnou vazbu a bude na vaše podněty a dotazy reagovat. Můžete se obrátit na následující adresy: Computer Press redakce PC literatury Holandská 8 639 00 Brno nebo knihy@cpress.cz Další informace a případné opravy českého vydání knihy najdete na internetové adrese http://knihy.cpress.cz/k1834. Prostřednictvím uvedené adresy můžete též naší redakci zaslat komentář nebo dotaz týkající se knihy. Na vaše reakce se srdečně těšíme. 18 97 klíčových znalostí programátora