A 2017.11.07-i Eclipse DemoCamp Budapest rendezvény "Fejlesztési kihívások a pénzügyi szektorban" című előadásának fóliái.
Vojácsek Pál
pal.vojacsek@ardinsys.eu
Ardinsys Zrt.
2. Bemutatkozás
• Több mint 20 éves szakmai tapasztalat
• Ipari múlt, aktuális ügyfeleink főként a pénzügyi szektorban találhatók (bankok, brókercégek, biztosítók)
• Fő tevékenységünk szoftvermegoldások tervezése, fejlesztése, támogatása
• További szolgáltatásaink a tanácsadás, projekt tervezés, projekt management, oktatás
• 50 fős fejlesztőcsapat (projektmenedzser, IT architekt, fejlesztő, UX specialista, tesztelő)
• ISO 9001:2009 minőségbiztosítási szabványnak megfelelő működés
5. Több felület, hasonló funkciók
• Komponensek használata
• Megrendelők, rendszerek, felületek -> sok komponens, sok hierarchikus függőség
• Kiemelés előtt mérlegelni kell (néha a kód duplikáció a kisebbik rossz)
• CI rendszer használata
• Hudson
• Specifikus, testre szabott build rendszer
• Apache Ant
• “Modern” dependencia kezelés
• Apache Ivy
• Saját ant komponensek
• Hash kalkuláció fordítás és ivy resolve előtt
7. Legacy core rendszer(ek)
• Rendszerek életkora > 20 év
• Leggyakrabban DB (pl. Oracle)
• Eredetileg dobozos termék
• Gyakorlatban 80% egyéni fejlesztés
• Nem szolgáltatás alapú interfészek
• Zárási és nyitási folyamatok (nem 24/7)
• Dokumentáció
• Hibakezelés
• Válaszidők
8. Legacy háttérrendszer(ek)
• Cache használata
• Üzleti funkciók átvétele
• Validációk
• Logikák (pl. díjszámítás) -> generátor
• Asszinkron folyamatok megvalósítása
• Tranzakciók kezelése (háttérrendszertől függetlenül)
• Több adatbázis használat (storage copy)
• Több szálú bedolgozás
• Konzisztens állapot fenntartása (széteső tranzakciók, parciális végrehajtások)
• Szolgáltatás keretrendszer amivel a fentiek megvalósíthatók
10. Élettartam
• Projekt kezdete
• 11 éve (2006)
• Java 1.6 TOP verzió
• GWT mint új technológia
• Eclipse Callisto (3.2)
• IBM Websphere 6
• Google chrome még nem volt (2 év a megjelenésig)
• Azóta
• 3 java main verzió
• 11 eclipse
• 53 GWT verzió
• 553 Google Chrome verzió
• Létrejött több 100 javascript framework
• Megszűnt több 100 javascript framework
• WAS 7 még mindig használatban van (támogatás: 2018.04.30)
11. Élettartam
• Saját fejlesztés vs. 3rd komponens
• Megfelelő 3rd party komponensek használata
• Nyílt forráskódú
• Sokak által használt
• Érthető
• Funkciók megfelelő szeparálása
• Megjelenés (HTML, CSS)
• UI logika (Screenflow, kliens / szerver oldali alkalmazás logika)
• Szolgáltatás réteg (interfész, szolgáltatás)
• DAL
• Generátorok használata
13. Volumen
• A projekt
• 250 Mb forrásfájl (45 000 darab, ~25% generált)
• 88 418 SVN revízió
• 1159 kiadott verzió
• 149 modul (+ tool-ok)
• 332 külső lib
• 70 külső rendszerrel áll kapcsolatban
• 5000 üzleti szolgáltatást biztosít
• Átlagosan napi 4 000 000 szolgáltatáshívást kezel
• Felhasználók
• 4000 darab napi 8 órában
• Internet (kampány jelleggel)
• Naplófájlok
• 10-20 Gb / nap
14. Volumen
• Coding standards
• Code review
• Post commit review
• ReviewBoard, apró módosításokkal
• Saját fejlesztésű ReviewAllocator tool
• Naplózás
• Standard megoldásokon alapul (slf4j / log4j)
• Nem a naplózási keretrendszer számít
• Automata tesztek (selenium, python)
• Működés elemző tool-ok
• Szolgáltatás statisztikák (nem használt szolgáltatások)
• Nem használt kódok, nem használható komponensek (pl. new Date())
15. Pénzügyi szoftverek jellemzői
• Több felület, hasonló funkciók
• Legacy core rendszer(ek)
• Élettartam
• Volumen
• Ad-hoc változtatási igények, rövid határidők
16. Saját fejlesztésű tool-ok
• A tool fejlesztés költséges – nem mindig térül meg
• Nem mindenhez szükséges tool (python, Haskell)
• Ha már fejleszteni kell, akkor sok 3rd lib, újrafelhasználható komponensek
• SWT keretrendszer használata
•Nem szükséges komplex rendszerismeret a használatához (gyakornokok)
• Van hozzá grafikus szerkesztő (WindowBuilder)
• Gyors
• Negatívum: platform függő platformfüggetlen alkalmazás
• Főbb tool-ok:
• tool_eclipse: eclipse fejlesztő környezet kiegészítései (Tortoise SVN, open/close projects)
• tool_auditloganal: logelemző (hierarchiák, több log fájl kezelése, index, reread, groovy)
• tool_kraken: DAL réteg generáló (validációk, diff, merge)
• tool_vulture: Kódelemző (szintaktikai elemzés, halott kód detektálás, gwt támogatás, spoon)
• tool_wfeditor: Screenflow folyamat szerkesztő alkalmazás