Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vývoj clearingového systému CARDS EXCHANGE a aplikované nástroje softwarového inženýra Jiří Mareš ČSAD SVT Praha s.r.o

Podobné prezentace


Prezentace na téma: "Vývoj clearingového systému CARDS EXCHANGE a aplikované nástroje softwarového inženýra Jiří Mareš ČSAD SVT Praha s.r.o"— Transkript prezentace:

1 Vývoj clearingového systému CARDS EXCHANGE a aplikované nástroje softwarového inženýra Jiří Mareš ČSAD SVT Praha s.r.o. 2.12.2009

2 Něco o mě ● Vystudoval jsem FEL ČVUT ● 14 let vyvíjím software ● Posledních 7 let v SVT ● V SVT jsem se hodně zaměřil na kvalitu kódu Něco o SVT ● Existuje 30 let, od 1991 s.r.o. ● Více než 25 let zkušeností s AMS ● Od roku 2006 držitelem ISO 9001:2000

3 Clearingový systém CARDS EXCHANGE ● Motivace: umožnění křížového používání čipových karet mezi dopravci ve Středočeském kraji s vypočtením objemu plateb mezi dopravci ● Nyní – 6 systémů – 53 subjektů

4 Clearing CARDS – princip ● Cestující má kartu vydanou subjektem A ● Používá ji u různých subjektů (včetně A) ● Jedná se o platby (el. peněženka) i o kupóny ● Za měsíc vytvoříme závěrku ● Započteme toky peněz ● Zajistíme převod peněz

5 Clearing CARDS - architektura ● SaaS – Software as a Service ● Webová aplikace ● Žádné EJB ● OS SUSE Linux Enterprise Server ● Aplikační server Apache Tomcat ● Databázový server IBM DB2 ● Failover

6 Clearing CARDS jaký je to SW projekt ● Dlouhodobý – trvá již 6 let ● Velký – 1614 java, 988 xml, 180 jsp, 134 groovy souborů – cca. 8000 testů ● Multi-technologický ● Počítáme peníze – spolehlivost má vysokou prioritu

7 Nástroje SI – metodika vývoje ● Agile (Scrum) - jenom ne vodopád – Kritické věci se řeší nejdřív – Zákazník stále vidí kam se vývoj ubírá – Častá integrace – Agile & Iterative Developmen / Larman ● U nás – Hlavní release každý měsíc – Až 2 další opravné

8 Nástroje SI – evidence požadavků ● Systém JIRA ( www.atlassian.com ) www.atlassian.com – Každý požadavek má číslo – Evidují se podpožadavky a jiné závislosti – Plánujeme – kdo, v jakém releasu, s jakou prioritou – Víme v jakém stavu každý požadavek je – Tento přehled má kdokoliv z firmy – Máme k dispozici různé reporty

9 Nástroje SI – continuous integration ● CI server – u nás Hudson ( hudson.dev.java.net ) ● Automatizovaný build ● Gradle ( gradle.org ), Ant ( ant.apache.org ) ● Nutný version control repository – u nás Subversion ( subversion.tigris.org ) ● Často commitovat ● Okamžitě máme binárky na deploy ● Automatizovaný deployment ● Testování

10 Nástroje SI version control system ● Přístup ke kódu pro všechny ● Historie změn ● Větvení zdrojového kódu ● Tagování - release ● Lepší než CVS (transakční, verzuje i adresáře)

11 Nástroje SI – unit testy ● Automatizované testování, refactoring ● Návrh kódu s ohledem na otestovatelnost – Rozumné rozložení kódu – Dependency Injection ● Guice ( code.google.com/p/google-guice/ ) ● Spring ( www.springsource.org ) ● Používáme TestNG ( testng.org ) – ne jUnit ( www.junit.org ) www.junit.org ● Mock objekty – easymock ( www.easymock.org )

12 Nástroje SI – integrační testy ● Webová aplikace – Selenium ( seleniumhq.org ) ● Testy se dají de facto naklikat (SeleniumIDE) – problém se selektory ● Testy se dají spustit na různých OS i v různých prohlížečích (díky VMWare pouštíme v noci oproti Firefoxu i IE)

13 Nástroje SI – code coverage ● Použitelné pro kontrolu testů ● Představa, jak moc je otestováno ● 100% coverage není záruka

14 Nástroje SI – code review ● Proč? – Víc očí víc vidí – Víc mozků tomu rozumí – Předávání zkušeností – Neopakovat se ● Záruka kvality ● Děláme review každého nového kódu podle požadavků v systému JIRA

15 Nástroje SI – kvalita kódu ● Design by Contract – Contract4j ( www.contract4j.org ) ● FindBugs ( findbugs.sourceforge.net ) ● PMD ( pmd.sourceforge.net ) ● Checkstyle ( checkstyle.sourceforge.net ) ● Vrstvení aplikace vs. kód je tam kde jsou data

16 Nástroje SI - dokumentace ● Dokumentace neodpovídá skutečnosti ● Kód je dokumentace - generování dokumentace z kódu – Javadoc – GraphUML – SchemaSPY – Unit testy

17 Nástroje SI to celé nejenom v Javě ● Používáme HTML, CSS ● XML + XSLT + XSL-FO – Fop ( xmlgraphics.apache.org/fop/ ) – iText ( www.lowagie.com/iText/ ) ● Groovy ● JavaScript

18 Nástroje SI – proč opensource ● Mám zdrojáky – Mohu zjistit jak funguje – Mohu fungování změnit (opravit) ● Neplatím, ale občas problém s licencí

19 Děkuji za pozornost ● The Pragmatic Programmer / Hunt, Thomas ● Design Patterns Jiří Mareš ( jiri.mares@svt.cz, jirablog.blogspot.com ) jiri.mares@svt.cz ČSAD SVT Praha s.r.o. ( www.svt.cz )


Stáhnout ppt "Vývoj clearingového systému CARDS EXCHANGE a aplikované nástroje softwarového inženýra Jiří Mareš ČSAD SVT Praha s.r.o"

Podobné prezentace


Reklamy Google