sobota 8. prosince 2007

Eclipse tipy a triky: inkrementální packaging

Náhodou jsem narazil na tento screencast, který ukazuje možnosti inkrementálního packagingu v Eclipse za použití JBoss Tools. Kromě komprimovaného módu zvládá i exploded (rozbalený) mód. Největší výhodu, kterou spatřuji, je možnost vlastní (custom) definice, které projektové soubory či souborové typy se mají kde ocitnout v daném výstupnim package(JAR, WAR, EAR atd.). JBoss Tools navíc umí držet automaticky projektové soubory v synchronizaci s daným packagem a s každou jejich změnou je inkrementálně přidávat. A tím pádem samozřejmě ušetřit volání Antu či Mavenu.

Plugin jsem zatím nezkoušel, čeká mě to následující tyden. Každopádně na první pohled přináši custom packaging s inkrementální synchronizací, což je vlastnost, po které jsem já osobně volal dlouhou dobu.

středa 5. prosince 2007

CZ podcast 19

Na tenhle pdocast jsem byl tak nabuzený, až byl můj záznam od druhé poloviny trochu přebuzený. Za to se omlouvám a slibuji, že se příští podcast polepšim. Taky jsem dnes slíbil Mikulášovi, že už nebudu dělat nejapné žerty na Roumenův účet a především NetBeans.

pondělí 3. prosince 2007

Neměňte jazyk, změňte infrastrukturu

Lehce jsem se orosil při poslechu posledního Javaposse podcastu. Pánové tam probírali změny do syntaxe a rozšiřování sémantiky jazyku Java. Nechci říkat, že mi všechny ty syntaktická cukrátka nejsou sympatická, ale vidím plno jiných oblastí, které by mohla Java 7 či 8 pokrýt a vývojáři by to dozajista ocenili také. Jednou z těchto oblastí je samotná infrastruktura Javy (kompilátaor, VM) , kterou lze rozšířit i bez toho, aby byla výrazně narušená zpětná kompatibilita. Tady jsou moje tipy.

Dynamický znovunačtení tříd

Každý kdo dělal webové aplikace vám potvrdí, že neustálý redeploy aplikace je peklo. Každá větší změna v třídách znamená redepoloy aplikace a to i v případě, že používáte hot swap funkcionalitu JVM. Nepředpokládám, že by byl problém rozšířit JVM o možnost dynamického znovunačtení tříd. Obzvláště když existují v tomto směru průkopníci JavaRebel Brings Class Reloading to Java.

Deklarativní modifikátory viditelnosti

Modifikátory viditelnosti (public, private, protected, implicitní) jsou nedostačující. Bylo by dobré mít možnost říci deklarativní cestou (anotace, descriptor), které třídy či metody chci exportovat k veřejnému použití. Inovátorem budiž OSGi a jeho bundle descriptory. Doufejme, že se z nich poučili všechny ty superpackage a JAMy.

Izolace uvnitř JVM

Koncept izolace uvnitř JVM je vypůjčen z Multitasking Virtual Machine. Jde o to, že více aplikací běžících v jedné VM by se mělo co nejméně ovlivňovat viz problém hostingů. To je typicky problém webových aplikací, běžících v jedné instanci JVM. Bylo by velice užitečné umožnit řízení míry ovlivnění mezi aplikacemi (nejlépe žádné). S tím souvisí i schopnost nastavení hranice prostředků (CPU, paměť, síťové IO), které může maximálně aplikace využít.

A tak by se jistě dalo pokračovat dále. Můžete si sami dosadit vaši oblíbenou funkčnost, kterou by měla infrastruktura Javy poskytovat. Bohužel obávám se, že místo investic do zlepšení infrastruktury nám ústa zalepí nějaká syntaktická cukrátka, což je jenom trochu levnější pozlátko.