Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Vývoj clearingového systému
CARDS EXCHANGE
a
aplikované nástroje
softwarového inženýra
(www.slideshare.net/jiramares/20101...
Něco o mě
● Vystudoval jsem FEL ČVUT
● 17 let vyvíjím software
● Posledních 8 let v SVT
● V SVT jsem se hodně zaměřil na k...
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 kr...
Clearing CARDS – princip
● Cestující má kartu vydanou subjektem A
● Používá ji u různých subjektů (včetně A)
● Jedná se o ...
Clearing CARDS - architektura
● SaaS – Software as a Service
● Webová aplikace
● Žádné EJB
● OS SUSE Linux Enterprise Serv...
Clearing CARDS
jaký je to SW projekt
● Dlouhodobý – trvá již 7 let
● Velký – 2754 java, 1977 xml, 362 jsp, 157
groovy soub...
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...
Nástroje SI – evidence požadavků
● Systém JIRA (www.atlassian.com)
– Každý požadavek má číslo
– Evidují se podpožadavky a ...
Nástroje SI – continuous integration
● CI server – u nás Hudson (hudson.dev.java.net)
● Automatizovaný build
● Gradle (gra...
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í - re...
Nástroje SI – unit testy
● Automatizované testování, refactoring
● Návrh kódu s ohledem na otestovatelnost
– Rozumné rozlo...
Nástroje SI – integrační testy
● Webová aplikace – Selenium (seleniumhq.org)
● Testy se dají de facto naklikat
(SeleniumID...
Nástroje SI – code coverage
● Použitelné pro kontrolu testů
● Představa, jak moc je otestováno
● 100% coverage není záruka
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áru...
Nástroje SI – kvalita kódu
● Design by Contract – Contract4j
(www.contract4j.org)
● FindBugs (findbugs.sourceforge.net)
● ...
Nástroje SI - dokumentace
● Dokumentace neodpovídá skutečnosti
● Kód je dokumentace - generování
dokumentace z kódu
– Java...
Nástroje SI
to celé nejenom v Javě
● Používáme HTML, CSS
● XML + XSLT + XSL-FO
– Fop (xmlgraphics.apache.org/fop/)
– iText...
Nástroje SI – proč opensource
● Mám zdrojáky
– Mohu zjistit jak funguje
– Mohu fungování změnit (opravit)
● Vrátit zpět ně...
Nástroje SI – vlastní hlava
● Se učit, se učit, se učit
● Kolik jazyků umíš tolikrát jsi programátorem
● Nové jazyky = nov...
Děkuji za pozornost
● The Pragmatic Programmer / Hunt,
Thomas
● Design Patterns
Jiří Mareš (jiri.mares@svt.cz, jirablog.bl...
Prochain SlideShare
Chargement dans…5
×

20101124 Aplikované nástroje SW inženýra

525 vues

Publié le

Publié dans : Technologie
  • Identifiez-vous pour voir les commentaires

  • Soyez le premier à aimer ceci

20101124 Aplikované nástroje SW inženýra

  1. 1. Vývoj clearingového systému CARDS EXCHANGE a aplikované nástroje softwarového inženýra (www.slideshare.net/jiramares/20101124-matfyz) Jiří Mareš ČSAD SVT Praha s.r.o. 24.11.2010
  2. 2. Něco o mě ● Vystudoval jsem FEL ČVUT ● 17 let vyvíjím software ● Posledních 8 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. 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ů ● el. peněženky, kupóny
  4. 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. 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. 6. Clearing CARDS jaký je to SW projekt ● Dlouhodobý – trvá již 7 let ● Velký – 2754 java, 1977 xml, 362 jsp, 157 groovy souborů – cca. 10,5k testů ● Multi-technologický ● Počítáme peníze – spolehlivost má vysokou prioritu
  7. 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. 8. Nástroje SI – evidence požadavků ● Systém JIRA (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. 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. 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) ● Dnes nejlépe hg, git
  11. 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), Hamcrest (code.google.com/p/hamcrest/) ● Mock objekty – easymock (www.easymock.org) ● mockito(code.google.com/p/mockito/)
  12. 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 vs. Linuxu i Windows)
  13. 13. Nástroje SI – code coverage ● Použitelné pro kontrolu testů ● Představa, jak moc je otestováno ● 100% coverage není záruka
  14. 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. 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. 16. Nástroje SI - dokumentace ● Dokumentace neodpovídá skutečnosti ● Kód je dokumentace - generování dokumentace z kódu – Javadoc – UMLGraph (www.umlgraph.org) – SchemaSPY (schemaspy.sourceforge.net) – Unit testy
  17. 17. Nástroje SI to celé nejenom v Javě ● Používáme HTML, CSS ● XML + XSLT + XSL-FO – Fop (xmlgraphics.apache.org/fop/) – iText (itextpdf.com) ● Groovy (groovy.codehaus.org) ● JavaScript – jQuery (jquery.com)
  18. 18. Nástroje SI – proč opensource ● Mám zdrojáky – Mohu zjistit jak funguje – Mohu fungování změnit (opravit) ● Vrátit zpět něco komunitě pomocí patchů ● Neplatím, ale občas problém s licencí
  19. 19. Nástroje SI – vlastní hlava ● Se učit, se učit, se učit ● Kolik jazyků umíš tolikrát jsi programátorem ● Nové jazyky = nové finty ● Hackathon (wikipedia.org/wiki/Hackathon)
  20. 20. Děkuji za pozornost ● The Pragmatic Programmer / Hunt, Thomas ● Design Patterns Jiří Mareš (jiri.mares@svt.cz, jirablog.blogspot.com) ČSAD SVT Praha s.r.o. (www.svt.cz)

×