Skipper je nejnovější verze vizualizačního nástroje pro ORM frameworky, dříve známého jako ORM Designer. Jeho hlavní výhodou je možnost automaticky převést existující projekty do vizuální podoby, editovat je přímo v diagramu a změny automaticky exportovat jako definice.
V současné době jsou podporovány PHP frameworky Doctrine 1 a 2, Propel a CakePHP. Plánovaná budoucí rozšíření zarhnují například frameworky postavené na Python a Ruby, ale podpora pro firemní ORM a rozsáhlé přizpůsobení aplikace specifickému použití jsou možné už nyní, např. rozšíření o vlastní atributy, šablony, export modelu do dokumentace nebo seznamů tříd.
Běžný postup pro vytváření ORM definic je klasické ruční psaní kódu ve více či méně chytrém textovém editoru. Jako vývojář musíte ručně definovat všechny tabulky, vazby a ORM atributy, dohledat, co je potřeba změnit, a dávat pozor, aby někde něco nechybělo. Buď pracujete podle diagramu, který jste si předtím připravili, nebo musíte svoji práci dokumentovat ručně podle výsledků v kódu.
Taková práce je velice náročná jak na čas, tak na dovednosti a vyžaduje velikou pečlivost (zejména dodržení formátování YAML nebo orientace v kódu anotací mohou být velice náročné). Vzhledem k opakujicí se struktuře tabulek a vazeb může být tento vývoj velice stereotypní a repetitivní.
Při použití Skipperu je přímá práce s kódem ORM definic omezena na minimum. Skipper dokáže importovat definiční soubory, z nichž vytvoří přehledný ER diagram, který je interaktivní a rozšířený o pokročilé ORM koncepty jako je dědičnost a ORM atributy. Samotný import probíhá jednoduše, pomocí krátkého průvodce si zvolím framework a vyberu ty definiční soubory, které chci naimportovat.
Ve výsledném diagramu hned vidím nejen přesnou strukturu modelu, ale i všechny jeho vlastnosti, což je nedocenitelné, pokud přebírám cizí projekt nebo se vracím k některému staršímu. Nemusím hledat dokumentaci a ověřovat, jestli odpovídá kódu, všechno hned vidím ve vizuálním modelu Skipperu a mohu začít pracovat.
Model je pak možné editovat přímo v grafickém rozhraní. S pomocí vestavěných validátorů, automatického doplňování textu, šablon a přednastavených hodnot jsou úpravy rychlé, intuitivní a hlavně bez chyb. Export je záležitostí jednoho kliknutí a všechny změny se promítnou do projektových souborů ve formě standardizovaných definic odpovídajících zvolenému formátu a frameworku. Export změn je možné provádět opakovaně, v případě XML a YML formátů jsou definice vygenerovány vždy přesně podle modelu. V případě PHP kódu jsou upraveny pouze ORM anotace.
Úspora času je znatelná ve všech fázích projektu. Na začátku projektu si snadno připravím hotové prototypy schémat zároveň s ER diagramy za několik minut a mohu kolegům nebo zákazníkům snadno a rychle ukázat strukturu projektu. Tím, že je model zároveň diagramem, automaticky udržuji aktuální dokumentaci. To se hodí třeba při přebírání nebo rozšiřováním stávajícího projektu. Díky vizuálnímu modelu vždy rychle najdu, co je potřeba změnit, a okamžitě vidím, jak se změny projeví ve struktuře modelu.
Kromě již zmíněného nahrazení dokumentace či opakovatelnosti exportu nabízí aplikace Skipper celou řadu dalších výhod. Jednou z nich je, že schémata je možné oddělit do samostatných modulů, které pak lze sdílet mezi více projekty. Další výhodou je, že veškerá logika související s ORM je rozšiřitelná pomocí jazyka XML, XSLT a Javascript. Díky tomu je nástroj velmi variabilní a oproti konkurenci nabízí řešení téměř pro každého.
Autor: Martin Kulhavý