čtvrtek 12. února 2015

Castalia


Společnost Embarcadero provedla akvizici produktů Castalia a Usertility společnosti TwoDesk (http://www.twodesk.com/). Castalia je zásuvný modul pro Delphi, který rozšiřuje vývojové prostředí o pokročilé funkce pro zvýšení čitelnosti kódu a produktivity při jeho zápisu.

Instalace

Pro Delphi ve verzi XE7 a starší je třeba Castalii nainstalovat. Během instalace by vlastní prostředí (Delphi / RAD Studio) nemělo být spuštěné. Instalaci je vhodné provádět pod účtem lokálního správce. O tom, že integrace Castalie proběhla v pořádku, jsme informováni v úvodní obrazovce během následného startu prostředí.

Uvodní_obrazovka

Orientace a navigace ve zdrojovém kódu

Ke standardnímu zvýrazňování syntaxe přidává Castalia zvýraznění struktury programu. Jedná se o vizuální párování závorek a v případě Delphi především klíčových slov "begin" a "end", které je zvlášť u složitějších konstrukcí nepostradatelným pomocníkem. Spojnice jsou pro ještě přehlednější zápis kódu odlišeny barevně dle hloubky zanoření.


Dalším rozšířením, které usnadňuje orientaci v kódu je grafické znázornění průběhu zpracování jednotlivých příkazů (code flow). V ideálním případě se instrukce vykonávají jedna po druhé v pořadí od shora dolů. Existuje však řada příkazů, které tuto (dobře čitelnou) posloupnost příkazů narušují. Castalia všem takovým příkazům přidává srozumitelnou informační ikonu. Na první pohled tak je patrné, v kterém místě může dojít k opuštění procedury, cyklu nebo ukončení provádění běhu celého programu.


Velmi užitečnou pomůckou je také navigační lišta (Navigation toolbar), umístěná v horním rámu editoru kódu. Nalezneme zde dva rozbalovací seznamy, z nichž první zobrazuje všechny v jednotce definované třídy a druhý pak všechny funkce, procedury a metody. Výběr z nabízených položek přenese programátora přímo na příslušnou část kódu. Dále je zde možnost rychlé volby pro přesun na začátek a konec souboru, na začátek sekcí "Interface" nebo "Implementation" a nebo jejich "uses" definice. K dispozici je rovněž přehled všech odkazovaných jednotek a pole pro vyhledávání.


Některé části kódu mohou být natolik zásadní, že je vhodné mít možnost je rychle vyhledat. Pro tento účel je editor vybaven záložkami. Castalia přesouvá správu záložek do navigační lišty a k dispozici jsou i ve formě nabídky "Tooltip". Definování záložek, přesun na zvolenou, předchozí nebo následující záložku tak má vývojář doslovně "po ruce".


Produktivita

Pro zvýšení produktivity nabízí Castalia hotové vzorové šablony pro nejběžnější jazykové konstrukce. Ty je samozřejmě možné nejen editovat, ale lze i přidávat šablony vlastní.


Jedním z častých zápisů je definice procedury nebo funkce. Castalia nabízí jednoduchou synchronizaci zápisů prováděných v oddílu "Interface" a oddílu "Implementation". Pokud například v implementaci rozšíříme proceduru o nový parametr, stačí stisknout kombinaci kláves "Shift+Ctrl+S" a Castalia zajistí jeho doplnění v definici rozhraní. Synchronizace je obousměrná, takže je možné ji použít v obou sekcích editované jednotky.
Castalia rovněž usnadňuje další z rutinních činností, kterou je deklarace proměnných. Při definování nové proměnné se není třeba přesouvat do hlavičky metody, ale lze ji deklarovat přímo uvnitř procedury nebo funkce. Po stisku mezerníku je deklarace automaticky přesunuta na odpovídající místo.
Při zápisu kódu ocení uživatelé jistě i rozšíření editoru o takzvané chytré klávesy (Smart Keys). Jedná se o drobná, ale velmi příjemná vylepšení. Například klávesa "Home" přesune po druhém stisknutí ukazatel nikoli na začátek řádky, ale skutečně před první znak (bez ohledu na úroveň odsazení). Vybraný blok textu lze celý označit jako komentář (klávesa "/"), nebo uzavřít do závorek (klávesa "("). Díky historii schránky (Clipboard History) je možné znovu použít některý z dříve kopírovaných fragmentů kódu.


Castalia se ale neomezuje pouze na vlastní editor. Zajímavou vlastnost nabízí i pro vizuální návrhář. Pokud máte na formuláři větší množství nevizuálních komponent, které lidově řečeno "překáží", můžete je za pomoci Castalie jednoduše skrýt a kdykoliv později znovu zobrazit.


V případě potřeby lze také použít volbu "Split Editor", která umožňuje současné zobrazení okna vizuálního návrhu a editoru kódu.

Kvalita kódu

Není pochyb, že rychle napsaný kód není nutně také dobrý. Proto má Castalia vestavěné i funkce pro podporu kvality zdrojového kódu. Sleduje se řada atributů jako počet příkazů v proceduře či funkci, úrovně zanoření, počet parametrů a podobně. Na základě těchto metrik je vypočten koeficient "jedovatosti" kódu. Nižší je lepší a Castalia doporučuje udržet jeho hodnotu pod číslem jedna. Analýza kódu je pro právě editovanou proceduru nebo funkci dostupná přes již zmiňovanou nabídku "Tooltip", nebo ji lze vyvolat z hlavní nabídky. V takovém případě získáte přehlednou tabulku pro všechny metody právě otevřené jednotky.



Z mnoha dalších možností je třeba zmínit alespoň ještě refaktorování kódu. Cílem refaktorování je provedení změn, které vedou k čistšímu nebo čitelnějšímu kódu, aniž by to však mělo dopad na jeho výstupy (chování).
Refaktoring je opět dostupný prostřednictvím nabídky "Tooltip". Po klepnutí na poslední ikonu nabídky Castalia nabídne výčet "vylepšení", které může na příslušnou část kódu aplikovat. Patří sem například přejmenování a přesun tříd, odstranění nepoužitých proměnných a další.


Přesto, že výčet funkcí není úplný, překvapilo mě, kolik užitečných vylepšení produkt nabízí a jak moc návykový je. Po necelých třech týdnech používání bych se ho vzdával opravdu jen velmi nerad. Aktuálně je Castalia součástí dodávky všech licencí Delphi a RAD Studia XE7 vyjma edice Starter a mělo by tomu tak být minimálně do konce března 2015.