Cyclone3 a efektívnosť vývoja
Otázka ktorú si kladiem pravidelne pri vývoji Cyclone3 je, či pri všetkom tom vynaloženom úsilí na vývoji tejto platformy zlepšuje jeho existencia efektivitu nášho vývoja koncových produktov alebo aplikácií.
Programátorov môžem všeobecne rozdeliť do dvoch kategórií: jedna je vo väčšine prípadov presvedčená že vlastný nástroj im umožní pracovať lepšie, tá druhá je zas presvedčená že nemá význam "vymýšľať koleso". Priznám sa, som skôr pragmatik napriek tomu že vyvíjame "vlastné CMS".
Vlastné CMS v úvodzovkách zámerne, keďže Cyclone3 nemožno považovať len za content management system. Jeho architektúra a všetky aplikácie boli navrhnuté a sú vyvíjané tak aby sa stal platformou pre vývoj všetkých našich produktov a služieb.
Cyclone3 v súčasnosti pozostáva z dá sa povedať dvoch nezávislých vývojárskych platforiem:
Tou hlavnou je Cyclone3 Framework ktorý beží ako serverová služba a z 70% sa používa na priame generovanie webových stránok. Z tých zostávajúcich 30% percent ide o job scheduller, SOAP služby, iné daemony, prípadne špeciálne konzolové služby.
Druhou platformou je Cyclone3 XULadmin, ktorého jedinou úlohou je tvorba užívateľského rozhrania RIA (Rich Internet Application) a komunikácia s Cyclone3 Framework-om pomocou protokolu SOAP. Cyclone3 XULadmin sa tiež dostal do úrovne, keď nejde len o bežné navrhovanie užívateľského rozhrania, ale napríklad pomocou kombinovania objektov (v XUL ide o bindingy) je schopný rozširovať funkcionalitu ľubovolných aplikačných entít. Takto sa veľmi jednoducho môže rozšíriť napr. editácia entity "priečinok článkov" o správu prepojených entít (články, obrázky, diskusie,...), správu metadát, alebo konfiguráciu užívateľských práv.
Tým že je Cyclone3 pre nás vývojárskou platformou, by mal umožňovať zjednodušenú a rýchlu tvorbu aplikácií, prípadne ich rozšírení a to bez kopromisov čo sa týka kvality a úrovne technológií. Platforma má teda vývojárovi šetriť čas a tým pádom i peniaze.
Keď som mal včera trošku priestoru, dal som si teda tú prácu a úlohu rozšírenia aplikácie kontaktov som podrobil jednoduchej časovej analýze:
Cieľom bolo vytvoriť pre existujúcu aplikáciu kontaktov (ktorá už sama o sebe je rozšírením aplikácie užívateľských kônt) systém kategorizácie kontaktov v stromovej štruktúre. Výsledným efektom bolo vytvorenie datového modelu kategórií, vizualizácia stromu vo frontende (XULadmin), podpora pre vytváranie nodov, presúvanie, posúvanie (hore,dole), mazanie, obnovovanie, drag&drop priraďovanie kontaktov, dvojúrovňový kôš (vyhodené, zmazané), plne funkčný journal (archivácia zmien), SOAP služby ku všetkým metódam, filtrovanie zoznamu kontaktov na základe aktuálne zakliknutého nodu (alebo i vrátane childov) a vzájomné interakcie medzi časťami užívateľského rozhrania ak sa zmenia dáta... Teda kompletná a funkčná implementácia ktorá bola realizovaná za niečo málo cez 1h vývojárskeho času. To je myslím veľmi dobrý výsledok.
Pamätám si ešte na časy keď vytvorenie nového čistého projektu (domény) a konfigurácia v rámci Cyclone3 trvalo viac ako hodinu, dnes trvá od 5 do 15 minút podľa zložitosti. Tiež si pamätám ako inštalácia Cyclone3 bola úlohou pre administrátora na pol dňa, prípadne s detailnou konfiguráciou na celý deň. Dnes sme schopní inštalovať Cyclone3 i s konfiguráciou na ďalší server v priebehu 15 až 30 minút, len zriedkakedy pri detailnejších konfiguráciách dlhšie. To je trend ktorý ma presviedča o tom že naše úsilie vynaložené do vývoja vlastného riešenia má zmysel.
