Linux E X P R E S

Facebook

IntelliJ IDEA 7.0

Minulý týden spatřilo světlo javovského světa nové dítě firmy JetBrains, programovací prostředí nejen pro Javu: IntelliJ IDEA 7.0. V následující recenzi bych chtěl poukázat na nové vlastnosti, které opět posouvají tento nástroj o kousek dál před konkurenci.


Z mého pohledu zcela zásadní novinkou je integrace s Eclipse. IDEA 7 umí importovat i exportovat (!) projekty pro Eclipse IDE a když k tomu připočtu novinku minulé verze (podpora Eclipse RCP), pak musím konstatovat, že IDEA je nejlépe provázaným prostředím vzhledem k platformě Eclipse (nepočítaje v to pochopitelně Eclipse IDE, které je pro tuto platformu přímo vytvořené). Pokud bych se měl ještě zastavit u integrací, asi nemusím pracně vypisovat, s čím IDEA plně spolupracuje. Možná snad zmíním Ant, Maven (nově) a možnost importu projektů z JBuilderu.

Obrázek:  1.jpg

Splash screen verze 7.0

Jasnou jedničkou všech novinek verze 7.0 je pro mne jedna velmi jednoduchá věc -- při krokování programu pomocí funkce step into se na řádku s více metodami obvykle dostanete do té, kterou nechcete ladit. Obvykle je nejjednodušší nejprve skočit do dané metody a použít breakpoint. IDEA 7.0 se nyní při funkci step into již zeptá, do jakéže metody to vlastně chcete vstoupit. Jednoduché, geniální.

Do rodiny VCS přibyl nový bratříček: IBM Rational ClearCase, zařadil se mezi systémy Subversion, CVS, SourceSafe a jiné. Novinkou je funkce Shelve Changes -- využijete ji v případě, že máte konflikt, ale přesto potřebujete provést check-in do repozitáře. Takže si vytvoříte patch, který můžete aplikovat později. Novou věcí, které si osobně hodně cením, je možnost konfigurace automatického obnovování stavu VCS (implicitně 30 minut). Pokud pracujete na hodně živém projektu s mnoha aktivními vývojáři, jistě vám přijde vhod, když vás IDE automaticky upozorní na případné změny. Třeba na změnu na souboru, který se zrovna chystáte upravit, a tato informace zachrání možný konflikt, jenž by mohl způsobit, že byste byli ten den bez oběda.

Obrázek:  5.jpg

Pokud někdo změní soubor, IDEA vás může upozornit

Programování webových aplikací je jednou ze silných zbraní tohoto vývojářského prostředí. Výborná editace XML/HTML/XHTML, CSS, JSP, JavaScript a dalších formátů je samozřejmostí včetně doplňování kódu a rad (quick-fixes). Přepracována byla podpora webových služeb, editace WSDL a anotací pro WS, plně integrována podpora pro generování za pomocí technologií JAXB, XMLBeans, XML schémat a WSDL.

Co předchozí verze začala, dotahují nyní vývojáři o další kroky dále. Na mysli mám podporu Springu a O/M frameworku Hibernate. U prvně jmenované knihovny vývojáři zapracovali na AOP, IDEA nyní doplňuje metadata u AOP, přibylo mnoho rad a vylepšena byla také podpora editace konfiguračních souborů XML. Novinkou je také pěkný diagram závislostí komponent, který je generován na základě dané konfigurace. Co se týká Hibernate, v této oblasti bylo také zapracováno na konfiguračních souborech (lepší doplňování, kontroly a quick-fixy), možnost mapování datových zdrojů z IDE a hlavně editovatelné ER diagramy. Tyto je nutné brát spíše přehledově, IDEA není plnohodnotný designérský nástroj a tomu odpovídá i omezená práce s diagramy.

Obrázek:  4.jpg

Diagram závislostí ve Springu

IDEA byla vždy silná v inspekci a analýze kódu, verze 7.0 přidává Dependency Structure Matrix (DSM) -- nástroj, pomocí kterého je možné přehledně zobrazovat závislosti mezi třídami a balíčky v rámci projektů (doslova desítkami projektů). Vynikající nástroj pro rozsáhlé projekty či společnosti a organizace s mnoha malými projekty (např. Apache Software Foundation a podobně).

Těm skutečně nejžhavějším novinkám se budu věnovat až nyní, protože mne jako javovského programátora až tak nepřitahují, nicméně uznávám, že jsou to skvělé vlastnosti. Je to podpora skriptovacích jazyků, která začíná integrací Ruby a Groovy. V pojetí firmy JetBrains neznamená podpora skriptovacího jazyka jen zvýraznění syntaxe, možnost spouštění programu z prostředí či nějaká ta podpora pro debugger. V nové verzi IDEA 7.0 získáváte kompletní doplňování kódu, bublinovou nápovědu, plně funkční editor (doplňování závorek, folding, rady, opravy kódu), navigaci zdrojovým kódem (skoky na prvky, třídy, zdroje), šablony/zkratky, refaktoring, unit testing a další pomocníky (přetěžování metod). Oba jazyky jsou dostupné jako pluginy, které si můžete snadno do prostředí doinstalovat.

Firma JetBrains si plně uvědomuje, že platforma Java bude brzy nabízet mnoho různých programovacích jazyků (JavaFX, PHP, Python...) a IntelliJ IDEA by mohla být společným nástrojem pro všechny. Proto vývojáři obohatili možnosti rozšiřování, takže podpoře nových skriptovacích jazyků nic nestojí v cestě. Již nyní jich můžete najít v seznamu dostupných pluginů dost a dost.

Obrázek:  3.jpg

Přepracovaný dialog konfigurace projektu

Ti, co v programu IDE pracují od dřívějších verzí, zaznamenají další drobné změny, například možnost přepnutí více akcí na pozadí, přepracované okno pro nový projekt a dobře řešeným průvodcem knihovnami, přehlednější dialog pro nastavení projektu, možnost táhnutí bočních tool windows, nový prvek prostředí ("lítací" okno) a další drobné vychytávky. Možná jste znali skvělý plugin RefactorX určený pro refaktoring XML dokumentů, ten byl nyní vestavěn přímo do verze 7.0.

Obrázek:  2.jpg

Akce probíhající na pozadí

IntelliJ IDEA vždy patřila k těm nejrychlejším javovským IDE a ani verze 7.0 nebude výjimkou, i když autoři hlásají, že výrazně zrychlili start programu a otevírání projektů. Rychlejší start nemohu posoudit (nestopoval jsem to), ale projekty se otevírají zřetelně rychleji. Naštěstí práce v prostředí byla vždy svižná a vysoce efektivní. Tato nejnovější verze pracuje v běhovém prostředí Javy 6.0, která je patrně zatím nejrychlejší ze všech verzí.

Nedávno jsem předváděl studentům něco v tomto nástroji, používal jsem mnoho klávesových zkratek, doplňování a refaktoring. Viděl jsem na nich, že se jim líbilo, jak se mi kód přetváří pod rukama. Jak minimální úsilí musím vynaložit na to, abych vytvořil konstruktory, přístupové metody, přetížil metody, implementoval anonymní třídy či delegoval volání metody na jinou třídu. Po hodině se mě jeden student zeptal, jak je možné, že při psaní kódu name.equals( user.getName() ) IDEA při použití funkce inteligentního doplnění přesně odhadla, že chci volat metodu getName. Odpověděl jsem, že nevím. A nezajímá mě to. Co vím, že to prostě obvykle uhádne, takže mohu ihned zmáčknout klávesu Enter. Jaká magie za tím stojí (kontrola typů, podobnost názvů, statistiky používání metod, fuzzy porovnávání), nevím, motto firmy JetBrains ve své podstatě však nelže. IDEA je asi nejinteligentnějším programovacím prostředím pro Javu.

Diskuze (0) Nahoru