Egy keretrendszer bevezetése Affentáller László MarkCon Informatikai Kft.
MarkCon Csoport 1999 óta a piacon Online üzleti tartalom és szolgáltatásfejlesztés LAMP technológiák, Android, iOS 7 fős fejlesztőcsapat
Idejétmúlt technológiák WEBsys CMS és “keretrendszer” : 8 év Bizonytalan és elavult alapok, pl. PEAR, Smarty Innen-onnan integrált megoldások, könyvtárak Lényeges változás nem történt a verziók között (inkrementális fejlesztések) Kevés újrafelhasználható komponens, procedúrális kód Sok megkötés miatt az új ügyfél igényeket már nehezen tudtuk volna kiszolgálni PHP4, MySQL4-es alapok az “ötös” átálláskor csak a minimális követelmények teljesítése
Elhatározás a váltásra, a kiválasztás szempontjai Biztos finanszírozási háttér, aktív közösség Érthető, gyakorlati példákra épülő írott dokumentáció (API dokumentáció minimális elvárás) Stabil, kiforrott kódja legyen Könnyű bővíthetőség (pluginek, helperek, hookok) Támogassa a modern tervezési mintákat (MVC, Singleton, Decorator, Factory,...) Funkciógazdag legyen, all-in-one: I18N, ACL, cache, router, template, ajax, form, ORM, filter, validator, RPC, stb... Joomla, Wordpress, Drupal kizárva Az építőkockákat tartalmazza, ne a várat!
Milyen keretrendszerek jöttek szóba (2010)? CodeIgniter Symfony Yii Zend Framework
Pilot projekt Turisztikai CRM szoftver Több száz órás fejlesztési munka Teljes egészében Zend Framework alapú rendszer Rengeteg pozitív (és néhány kevésbé pozitív) tapasztalat A ZF komponensek nagyrésze felhasználásra került Kialakulóban egy saját osztály könyvtár (Shared Framework) Folyamatos belső oktatások, tréningek
Zend Framework - tapasztalatok Rengeteg időt spórolhatunk meg a monoton munkákkal Rövidebb idő alatt funkciógazdagabb és stabilabb kód írható Robosztus komponensek Egy komponens sokféleképpen paraméterezhető A komponensek összekapcsolhatóak TDD szemléletű fejlesztés, 80% feletti code coverage érték Minőségi, következetes kód, elégséges kód dokumentáció
A helyzet ma Három, Zend Frameworkre épülő saját fejlesztésű keretrendszer: Shared Fw, Cms Fw, Facebook Fw Minden munkánk a fentiek valamelyikére épül Folyamatosan vizsgáljuk az újrafelhasználás lehetőségét Rengeteg saját komponens Kizárólag objektum orientált kódok Központi kódbázis (hibajavítás, addon)
Mit csináltam volna másképp? 2.x branch probléma PHP 5.4 probléma (namespace-ek)
Várom a kérdéseket!
Köszönöm a figyelmet!