V tomto díle vás seznámím s pojmy „code review“ a „refactoring“, zmíním jejich základní pravidla. V následujících několika dílech nové série článků pak uvedu a rozeberu nové konstrukce jazyka, které dělají kód čitelnější, snazší k údržbě, a také méně náchylný k chybám.
Code review je aktivita, při níž váš kód čte někdo jiný za účelem odhalení nejen potencionálních chyb, ale také konstrukcí kódu, které by mohly způsobit některé z výše uvedených nežádoucích vlastností. Můžete si jej dělat sami, ale zpravidla je lepší nápad poprosit někoho jiného, kdo s vaším kódem ještě nepřišel do styku. Zvýší se tak šance, že se objeví něco, co vy přehlížíte. Máte-li v týmu někoho zkušenějšího, nebojte se jej o code review požádat.
Refactoringem se poté rozumí úprava kódu vámi nebo někým zkušenějším, ve smyslu odstranění nebo alespoň minimalizovaní těchto vlastností. Refactoring by za žádných okolností neměl (ne, že by se to nestávalo) měnit funkcionalitu aplikace. V případě, že děláte refactoring a používáte nějaký verzovací systém, je obecně dobrý nápad vytvořit si branch a dělat to v ní. Rozhodně nedoporučuji refactorovat přímo trunk. Následující seznam jmenuje některé povolené zásahy do kódu v rámci refactoringu:
- přejmenování (např. třídy, metody, ...)
- úprava struktury kódu (např. mezery, regiony, pořadí členů třídy, ...)
- změna zodpovědností (např. z objektu na objekt, v rámci objektu, ...)
- optimalizace algoritmu (chování na venek zůstane stejné)
- použití chytřejších konstrukcí (o nich bude tento seriál)
Při refactoringu mějte na paměti, že měnit veřejné API zpravidla není moc dobrý nápad, nejste-li si úplně jisti, kdo všechno ho využívá.
Visual Studio je při refactoringu mírně nápomocné nástroji dostupnými přes kliknutí pravého tlačítka v kódu (znázorněno na obrázku) anebo přes spodní část menu Edit, submenu Advanced, IntelliSense a Refactoring. Pomocí těchto nástrojů lze snadno a rychle měnit hlavně strukturu kódu.
Existují také různé nástroje, které vás budou nutit psát pěkný kód, z nichž nejznámější je bezesporu ReSharper (http://www.jetbrains.com/resharper/), který osobně nepoužívám, protože nemám rád, když mi někdo „stojí za zády“ při vývoji.
Máme za sebou stručný úvod do code review a refactoringu. V příštím díle se můžete těšit na první dávku chytrých konstrukcí C#, konkrétně z verze 3.0.