Technologie, které používáme

Chtěl bych se s vámi všemi podělit o to, které technologie používáme pro psaní java web aplikací.

Začněme tím co teď aktuálně používáme:

  • Hibernate – ORM – persistentní vrstva – stará se o ukládání objektů do relační databáze. Jedná se de-facto o standard.
  • AndroMDA – Model Driven Architecture – nástroj, který nám z UML modelu (který obsahuje tagged values pro hibernate) generuje XML mapování pro hibernate a kostry objektů pro javu. Je to výborné hlavně když řešíte vazby mezi objekty. Opravdu to docela ušetří čas.
  • Maven – zatím jej používáme jen u části projektů, ale plánujeme, že časem zcela nahradí ant (u nás :-). Takové chytré "bildítko". Používáme stále verzi 1.0.x.
  • Freemarker – docela povedený šablonovací systém. Teď jej používáme pro generování tiskových sestav (pro UJAC) a jako "view" vrstvu u našeho frameworku.
  • UJAC – generátor PDF – používáme jej pro generování PDF dokumentů z javy.
  • OGNL – nástroj pro volání metod přes "reflection". Používáme jej pro vazbu mezi vizualizací a datovým modelem – přistupujeme pomocí toho k "properties" objektu.
  • Tomcat 5.0 – náš JSP kontainer. Sice prý není nejrychlejší, nám ale stačí.
  • USR – uživatelský systém – používáme jej k přihlašování/odhlašování. Jedná se o náš „proprietární“ systém, který používá i IInfo (slunecnice.cz, navrcholu.cz, root.cz, …).
  • PicoContainer – Inversion of Control (IoC) nebo také Dependency Injection (jiný název pro totéž). Nic jiného z něj nepoužíváme.
  • JUnit – Unit Testing framework
  • Eclipse a NetBeans jako naše IDE pro editaci zdrojáků.
  • Poseidon UML – jako UML kreslítko pro AndroMDA.
  • Subversion – naše úložiště zdrojáků.
  • CruiseControl – Continuous Integration system. No není sice ideální, ale funguje (občas).
  • xstream – Jednoduchá serializace objektů (skupiny objektů včetně cyklických závislostí) do a z XML. Pro používání je velmi jednoduché.
  • xom – alternativní API pro XML DOM. Pokud jste někdy pracovali přímo s DOM tak určitě oceníte tuto knihovnu. Pracuje se s ní výrazně lépe (také se Vám zdá, že DOM je ukázka jak nedělat API?).

časem bychom chtěli (a pracujeme na tom) používat i tyto technologie:

  • MyFaces – implementace JavaServerFaces. Toto bychom používali jako prezentační vrstvu (teď máme napsaný vlastní framework).
  • Facelets – toto je náhrada "render" vrstvy v MyFaces. Ještě není jisté jak toto bude fungovat (aneb scháze praktické zkušenosti v projektu).
  • Seam – toto je dalo by se řící "controller" vrstva, která je hezky integrovaná s Hibernate a JSF. Opět schází zkušenosti.
  • jBPM – toto je "Business Processing System" (jistě už jste slyšeli o jazyku BPEL). Možná bychom mohli toto používat pro definici business procesů v našich aplikacích. Uvidíme jak to nakonec dopadne. AndroMDA má modul pro jBPM a jBPM vyžaduje Hibernate.
  • Continuum – Continuous integration system (opět) – tento je ovšem dobře integrován s maven a přidání projektu je narozdíl do CruiseControl snadné (tam to trvá 5 minut). Uvidíme jak bude fungovat.

Tak to je snad všechno. Když na to koukám, není ta java příliš jednoduchá?

Aktualizováno: zapomněl jsem na freemarker, UJAC a OGNL

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *