pátek 8. října 2004

Jak správně bastlit software

Tento spot nemusíte brát vážně, ale berte na vědomí, že vychází z mé frustrace nad vývojem software v jedné..., ale to je jedno.

Analýza

První a základní předpoklad je nemít v ruce žádnou a nebo chabou analýzu problému. Analýzu musíme zásadně posuzovat podle počtu stránek a počtu cizích slov nebo odstavců či kapitol, kterým nerozumíme. Úplně nejlepší je vytvořit analýzu bez klienta neboť mi sami nejlépe víme co si klient představuje. Takto připravenou analýzu je potřeba během vývojového procesu nejméně dvakrát až třikrát pozměnit.

Datový model

Rozhodně nenavrhovat domain model a nemodelovat vztah jednotlivých entit, začít se přece musí od databáze. Takže podle první verze analýzy, databázové tabulky a sloupečky můžeme přece dropnout, takzvaně "nastřelíme". Slovo nastřelíme společně se slovem překlopíme si zařaďte do vývojářského slovníku, budete jej často slyšet. Takto připravený datový model je potřeba s každou změnou analýzy upravit, chtěl jsem říci nastřelit.

Domain model

Domain model je třeba přišít na datový model tj. vytvořte domain objekty přesně podle datového modelu. Pokud datový model neobsahuje velké množství složených klíčů je to špatně. Surrogate klíčů se vyvarujte neb hlásat tuto viru rovná se kacířství. Vytvořte pro všechny domain objekty testy, jejichž úprava ruku v ruce se změnami datového modelu bude milým zpestřením vašich desetihodinových šicht.

Protože jdete ruku v ruce s moderními technologiemi použijte nějaký, pro vás neokoukaný, persistence framework. Nebojte, všemi zaludnotsmi mapování domain modelu na databázový, si dvakrát až třikrát projdete společně se změnou analýzy.

Service a DAO vrstva

Připravte rozhraní service a DAO vrstvy podle nejlepšího svědomí a vědomí, jeho změnu společně s implementací si ještě několikrát vyzkoušíte. Nastřelte si pro tyto vrstvy testovací objekty.

Co dodat závěrem?Vítejte v éře bastlení software, kde jakákoliv koncepce postrádá smysl. Má cenu se snažit o progresivní metody vývoje softwaru? Ne nemá, jediné co by nepostrádalo smysl, je zvážení další participace na neoddalitelného harakiri chlebodárného software house.

ABC synchronizace pro mírně pokročilé

Problematika vláken resp. synchronizace v Jave patří k mým oblíbeným tématům, o kterých si rád něco přečtu. Článek Java Tech: The ABCs of Synchronization, Part 2 Jeffa Friesena je psán tak, že není třeba dokonalá znalost problematiky a díky tomu je možné pochopit i složitější problémy.

Článek nás obeznámí s wait a notify mechanismem, předvede ukázkový příklad typu producent-odběratel, nastíní problém s lokálními kopiemi hodnot a k dobru přidá krátký popis nových tříd z package java.util.concurrent (J2SE 5.0). Na konci článku je navíc domácí cvičení, mimochodem velice zajímavé, které by mělo prověřit nabyté znalosti.

úterý 5. října 2004

Migrace na Javu 5.0, realita nebo utopie?

Asi nejsem sám komu se na disku hřeje nově vypuštěná Java 5.0. Otázkou těchto a příštích dnů je jestli na ni má cenu přejít. Nejde ani tak o Javu samotnou, ale o její podporu. Můžeme si dovolit přejít na verzi 5.0 a co nám to přinese?

Podle mého názoru bychom měli rozlišovat dva odlišné pohledy. První pohled je zaměřen na vlastní vývojovou stránku procesu. Máme v rukou nástroje, které dokáží využít potenciál nových vlastností platformy? Mám na mysli v první řadě vývojová prostředí.

Nebudu dalek od pravdy, když prohlásím, že většina IDE nepodporuje plně všechny novinky, které představila verze 5.0. Mnou používány Eclipse je toho důkazem. Z release notes verzí 3.1 M2 a 3.1 M2 lze přímo vyčíst, že příprava na plnou podporu je na začátku. Trochu lépe na tomu bude zřejmě IDE NetBeans resp verze 4.0 Beta 2. Komerční prostředí jako JBuilder a IntelliJ IDEA se sice chlubí plnou podporou, ale otázkou zůstává jestli to tak opravdu je?

Pokud bychom nechali stranou vývojová prostředí, zůstanou nám další nástroje a frameworky, které používáme. Na scéně se již začínají objevovat první vlaštovky, které se hrdě hlásí k verzi 5.0, například Tomcat 5.5. Na druhou stranu jsou to opravdu výjimky, které můžeme zanedbat.

Druhý pohled je zaměřen na vlastní nasazení produktů na verzi 5.0. Prozatím nejsou známy výsledky výkonových testů a porovnání verze 5.0 proti řadě 1.4.x případně 1.3.x. Důležitým faktorem je spolehlivost a bezpečnost, uběhlo málo času na to, aby byla verze 5.0 lépe řečeno JRE řádně otestováno mimo laboratoře Sunu.

Verze 5.0 je přelomová a prosadí se, ale z mého pohledu by byla migrace z pohledu vývoje tak i nasazení předčasná. Asi nemá cenu střílet od boku nějaká čísla a bylo by to zbytečné, ale já osobně bych počkal minimálně na první aktualizaci 5.0 update 1 a pak bych se rozhodoval podle aktuální situace.

Související články