K1339.qxd
31.1.2007
15:30
StrÆnka 3
Obsah Předmluva Poděkování Úvod Nářadí pro řemeslo Jak je tato kniha uspořádána Vzorová aplikace Kontakt na autora
11 13 15 15 16 17 18
KAPITOLA 1
Plánování projektu Určení základní sady rysů Výtahový prodej Myšlenková mapa
Správa požadavků Definování požadavků Identifikace a dokumentace požadavků
Nástroje pro řízení projektů Bezbolestné plánování softwaru Nástroje pro sledování času a nákladů
Výběr metodiky Vodopádový přístup Iterativní přístupy Agilní přístupy Volba metodiky
Kontrolní seznam plánování
19 19 20 21
23 24 25
28 28 30
31 31 32 32 33
34
KAPITOLA 2
Organizace vašeho projektu Přemýšlení o architektuře Co je softwarová architektura? Architektura versus Návrh Architektura na malých projektech Co takhle UML ?
35 35 36 36 37 38
K1339.qxd
31.1.2007
4
15:30
StrÆnka 4
Obsah
Úvod do návrhových vzorů Gang čtyř Proč návrhové vzory? Návrhové vzory v Microsoftu
Zahájení nového projektu Psaní kódu metodou „Nejprve do šířky“ Psaní kódu metodou „Nejprve do hloubky“ Kombinovaná metoda
Plánování dodávek
39 39 40 40
42 42 42 43
43
Beta-testování Extrémní programování (XP) Výběr přístupu k plánování dodávek
44 44 45
Kontrolní seznam organizace projektu
46
KAPITOLA 3
Efektivní správa zdrojových kódů Tři úrovně správy zdrojového kódu Úroveň 1: Otevřete své oči Úroveň 2: Řemeslník správy zdrojových kódů Úroveň 3: Pouze pro experty
Alternativy správy zdrojových kódů Výběr vašeho systému pro správu zdrojových kódů Cena Souběžný styl vývoje aplikací Repository Přátelství s Internetem Integrace s vývojovým prostředím Pokročilé příkazy Podpora více platforem
Nejlepší praktiky správy zdrojových kódů Co patří do systému? Etiketa správy zdrojových kódů Vhodné používání návěští Disciplína větvení Další pravidla
Správa zdrojového kódu pro Download Tracker Kontrolní seznam správy zdrojových kódů
47 47 48 49 51
52 54 55 55 56 56 57 58 58
58 58 60 60 60 61
61 63
K1339.qxd
31.1.2007
15:30
StrÆnka 5
Obsah
5
KAPITOLA 4
Defenzivní kódování Ohlašování a výjimky Ohlašování (Assertions) Mechanismus .NET ohlašování Doporučení pro dobré ohlašování
Výjimky Mechanismus výjimek Uživatelské výjimky Doporučení pro dobré výjimky
Komentáře, nebo samodokumentující kód? Komentáře pro komentáře Zástupné komentáře Komentáře typu souhrn a záměr
Kontrolní seznam defenzivního kódování
65 65 65 66 68
69 70 71 73
73 74 75 76
79
KAPITOLA 5
Předcházení chybám testováním jednotek 81 Oblast testování Typy testování Testování pro vývojáře
Testování jednotek v akci Nástroje testování jednotek pro .NET Používání NUnit pro testování jednotek
81 81 82
83 84 85
Vývoj řízený testy
94
TDD v akci Efekty TDD
95 98
Refaktorizace
99
Refaktorizace metody GetDownload Nástroje pro refaktorizaci
99 100
Kontrolní seznam testování jednotek
102
KAPITOLA 6
Vylepšení integrovaného vývojového prostředí Přizpůsobení Visual Studia Používání profilů Nastavení možností Visual Studia
103 104 104 106
K1339.qxd
31.1.2007
6
15:30
StrÆnka 6
Obsah
Používání VS.NET PowerToys
Psaní maker ve VS.NET Představení maker Nahrávání maker Editor maker Vytvoření permanentního makra Makra z klávesnice
Výběr přídavných modulů
108
108 109 111 112 113 113
114
Některé jednoduché příklady Navigování v kódu a jeho analýza Výměna editoru Velcí chlapci
114 117 119 120
Kontrolní seznam vývojového prostředí
124
KAPITOLA 7
Zdrojový kód pod drobnohledem
125
Utility umožňující znovuvyužití kódu
126
Disassembler Ildasm Nástroj Reflector Experimentování s novým kódem nogoop .NET Component Inspector Snippet Compiler
126 129 134 134 135
Zdroje opakovaně použitelného zdrojového kódu Framework a přátelé Aplikační bloky Microsoftu Ostatní zdroje volného kódu
Vyhodnocování kódu: FxCop Kontrolní seznam vývojového prostředí
137 137 138 139
139 142
KAPITOLA 8
Generování kódu Porozumění generování kódu Ukázka generování kódu Taxonomie generování kódu Zamyšlení nad použitím generování kódu
Generování kódu pro .NET Generování kódu ve Visual Studiu.NET .NET nástroje pro generování kódu
Generování kódu v Download Trackeru
143 143 144 146 148
148 149 150
151
K1339.qxd
31.1.2007
15:30
StrÆnka 7
Obsah
Rozhodnutí, zda použít generování kódu Kontrolní seznam generování kódu
7
153 154
KAPITOLA 9
Sledování a odstraňování chyb Řízení rizik Analýza rizik Řízení rizik Udržování seznamu pěti nejvážnějších rizik Roztřídění a prvotní ošetření chyb
Zajišťování kvality a testování Typy testování softwaru Zajišování kvality vlky samotáři Vytvoření sítě pro účely testování
Nástroje pro sledování chyb Výběr nástroje pro sledování chyb Používání nástroje pro sledování chyb
Kontrolní seznam odstraňování chyb
157 157 158 160 161 162
165 165 166 168
171 171 173
175
KAPITOLA 10
Logování aktivity aplikace Strategie pro logování v aplikacích Logování v průběhu vývoje Logování aplikace běžící u zákazníka
Prostředky pro logování Třídy Trace a Debug Třída EventLog Enterprise Instrumentation Framework Komponenta Logging Application Block Open-source projekt log4net
Nástroje pro diagnostiku Kontrolní seznam vytváření logových záznamů aplikací
177 177 178 178
179 180 184 186 189 190
193 195
KAPITOLA 11
Práce v menších týmech Proč pracovat v týmu? Řízení týmu Volba struktury týmu Sledování postupu projektu
197 197 199 199 200
K1339.qxd
31.1.2007
8
15:30
StrÆnka 8
Obsah
Peterův princip
Nástroje pro distribuované týmy Elektronická pošta Prostředky přímé komunikace (instant messaging) Online dostupné pracovní prostory
Kontrolní seznam pro práci v týmu
201
202 202 203 204
211
KAPITOLA 12
Vytváření dokumentace
213
Tvorba nápovědy pro koncové uživatele
213
Pochopení potřeb uživatelů Výběr okruhů nápovědy Organizace informací Testování a zpětná vazba Nástroje pro koncové uživatele Vytváření nápovědy pro vývojáře Tvorba manuálů Tvorba dokumentace pro potřeby týmu
214 216 217 219 220 222 226 227
Kontrolní seznam dokumentace
229
KAPITOLA 13
Zvládnutí procesu sestavení aplikace Proces sestavení: jak jej vytvořit? Celkový pohled na věc Úkoly denního sestavování aplikace Nástroje pro denní sestavování aplikace Daily Build FinalBuilder Hippo.NET NAnt Visual Build Professional
Nepřetržitá integrace Problémy a jejich řešení Automatizace neautomatizovatelných nástrojů Vyřešení nejednotnosti prostředí vývojářů Co s nedokončenými sestaveními Řízení verzí softwaru
Kontrolní seznam procesu sestavení
231 231 232 233 234 236 236 238 239 243
245 246 246 247 247 248
248
K1339.qxd
31.1.2007
15:30
StrÆnka 9
Obsah
9
KAPITOLA 14
Ochrana vašeho duševního vlastnictví Sepisování smluv na software Uplatňování nároků Sestavení smlouvy
Licencování vašeho softwaru Public domain Licence typu Open-source Licence typu Shared-source Vlastní na míru vytvořené licence
Použití obfuskace na ochranu vašich algoritmů Proč obfuskace? Přístupy k obfuskaci Obfuskace v praxi
Kontrolní seznam ochrany vlastnictví
251 252 252 253
255 255 255 258 259
260 260 261 262
266
KAPITOLA 15
Dodání aplikace Psaní pořádných instalačních programů Zmapování programů pro vytváření instalací Výběr programu pro tvorbu instalace Všeobecné tipy pro instalaci
Vytvoření instalačního programu pro Download Tracker Alternativy k tradičním instalačním programům Šíření metodou XCOPY
Kontrolní seznam dodání aplikace
Rejstřík
267 267 268 270 271
273 277 277
279
281