Rok se s rokem sešel a přede mnou sena monitoru
usmívá nová uvítací obrazovka programovacího
prostředí IntelliJ IDEA firmy JetBrains. A že se
povedla! Uvítací obrazovka i verze samotná. Průvodcem
žhavými novinkami v komplexním vývojovém nástroji,
který udává trendy, bude opět Lukáš Zapletal.

idea8-about.png

Už při testování první veřejné betaverze jsem si
nemohl nevzpomenout na Paula Newmana a jehooskarový
(1987) debut Barva peněz, ve kterém po boku Toma
Cruise potápí jednu kouli za druhou. Ve filmu hrají
poolovou hru – tzv. osmičku, u které je důležitý
postřeh, intuice i štěstí. Středem pozornosti celé
hry je černá koule nesoucí číslo 8. A také IntelliJ
IDEA 8 bude středem zájmu tohoto článku, ovšem nebudu
se ji snažit během psaní potopit. Paul Newman zemřel
v září tohoto roku.

Hlavní síla programovacího prostředí nejen pro Javu
s názvem IntelliJ IDEA (dále jen IDEA) není ani tak v
široké škále nabízených jazyků a frameworků (která se
v nové verzi ještě více rozšířila), ale především v
ucelené koncepci práce, důmyslně vytvořených
klávesových zkratkách a podpůrných mechanismech,
které pomáhají programátorovi soustředit se na
problém a kódovat efektivně. Jeden příklad za všechny
– často nabádám členy týmu, aby prováděli commit
práce vícekrát denně. V prostředí IDEA stačí
kombinace Ctrl+K, Enter – do komentáře se předvyplní
poslední. Často pracuji i v jiných prostředích, v
jednom například nelze vůbec provést commit ve
standardním nastavení klávesnicí. A takových
drobností je mnoho, v následujících odstavcích se
podíváme na nové „drobnosti“ tohoto typu.

 

test

 

Podpora refaktoringu byla vždy silnou zbraní tohoto
produktu a v osmičce byla dále rozšířena. Nejvíc mne
zaujaly nové možnosti Introduce Parametr Object,
která obalí parametry metody do holder objektu, a
Wrap Return Value, která podobně obaluje návratovou
hodnotu. Zcela novou možností je pak Type Migration,
která předvádí doslova kouzla při konverzi typů
například mezi Integer a int, Collection<Typ> a
Typ[] – nejedná se tedy o obyčejné přejmenování, ale
kompletní „předělávka“ omáčky okolo.

Už dříve padlo rozhodnutí, že JBoss Seam bude
jednou z novinek verze 8. Dočkali jsme se. IDEA umí
nyní asistovat při editaci views, napovídat u
anotací, graficky zobrazovat navigaci nebo také find
usages, což je funkce, které nenechám u své instalace
na chvíli vydechnout. Zlepšení se také dočkal Struts,
konkrétně byla podpora povýšena na verzi 2.

Ani Spring 2.5 neunikl ze zaměřovačů vývojářů firmy
JetBrains, světlo světa spatřil nový floweditor pro
Spring Web. Za zmínku stojí také Spring Dynamic
Modules- doplňování, code inspections a higlighting.

Vytváření automatických testů jednotek nikdy nebylo
tak snadné – s verzí 8 můžete použít na třídě dobře
známou magickou klávesu Alt+Enter a nechat si
vygenerovat test pro JUnit 3, 4 a také pro TestNG.
Upraveno bylo také ladící okno, které nově nabízí
také Thread dumpanalyzer, což ocení ti, kteří
programují ve více vláknech. Tedy všichni.

 

idea8-jsdebug-nahled

 

Už minulá verze nabízela jednoduchý UML nástroj,
který byl nyní vylepšen o vytváření nových elementů
(tříd, metod), dědičnost a plnou podporu
refaktoringu. Mít v programovacím prostředí byť
zjednodušený editor na UML diagramy je skvělý nápad,
se kterým se ztotožňuji. Kroměround-trip engineeringu
musím vyzdvihnout také propracované layout diagramy.
Určitě nebude od věci v této oblasti produkt dále
rozšiřovat.

Pokud často pracujete s relačními databázemi, ať už
přímo, nebo přes další rozhraní (např. Hibernate),
jistě oceníte zcela novou JDBC konzoli. Přes okno
Database se nyní totiž dostanete k jakémusi SQL
„scratchpadu“(editoru), do kterého můžete psát SQL
příkazy. Vyhodnocení se provede stiskem Ctrl+Enter a
IDEA automaticky celý SQL skript označí, což
usnadňuje následné vkládání dalšího SQL příkazu
přepsáním. Výsledky jsou prezentovány na spodní
straně v JDBC konzoli a IDEA 8 nyní nově doplňuje SQL
kód nejen v ní, ale také při psaní jakéhokoli kódu (a
to až na úroveň tabulek a jejich jednotlivých
sloupců). Tato podpora se týká také dalších
databázových rozhraní, jako je například Hibernate.
Dodatečně je možné pracovat s doplňováním kódu i když
nemáte aktuálně přístup k databázi! IDEA totiž dokáže
načíst uložené DDL skripty, ze kterých si vytáhne
potřebné informace. Jednička s hvězdičkou.

Novinek se dočkaly HTML/XHTML/XML/CSS/JSP editory,
jako praktické považuji náhledy na barvy v CSS nebo
vylepšený CSS refaktoring. Podpora editace XML byla
již ve dřívějších verzích výborná a IDEA se může bez
problémů měřit s profesionálními XML editory, a to
vůbec nemám prostor pro bližší popis novinek
týkajících se editace XSLT a Xpath výrazů. Že IDEA
umí technologii Google Web Toolkit, kterou verze 8
vylepšuje, jste si asi již stačili všimnout u
minulých verzí. Co však považuji za tahák verze s
černou koulí ve spleshscreenuje možnost ladění
JavaScriptu a Adobe Flexu.

U první jmenované technologie IDEA umí automaticky
stáhnout komponentu od Mozilly, která toto umožňuje.
Debugger je plně integrován do prostředí se všemi
obvyklými věcmi, na které je programátor zvyklý.
Škoda jen, že IDEA nedovoluje spouštět (Run)
JavaScript soubory přímo (bez HTML), avšak JavaScript
se používá téměř výhradně naprogramování ve web
browseru. V případě technologie Adobe FlexIDEA
představuje patrně jednu z prvních plně vybavených
vývojových platforem, když pomineme originální
software od firmy Adobe. Funguje generování kódu,
refaktoring, nápověda, optimize imports a další
vlastnosti, na které jsou zvyklí programátoři v Javě.

Kdykoli potřebuji ve svém projektu generovat nějaký
obsah (například vzorové konfigurační soubory),
využiji služeb knihovny Freemaker. Doplňování kódu a
plná podpora zvýrazňování syntaxe – to byl vždy
trošku problém a není na trhu příliš mnoho nástrojů,
které to zvládají. Nová verze umí Freemaker i
Velocity, dva hlavní hráče na poli šablonových
knihoven. Kromě syntaxe je to také zvýrazňování chyb,
parameter info, quick documentation a další.

Jako uživatel Mavenu jsem zajásal nad novým
pomocníkem pro vytvoření nového projektu a také u
lépe propracovaným editorem pom.xml souborů,
například doplňování kódu. Stejné to bylo u vylepšení
podpory u Subversionu, kde je nyní možné lépe
pracovat se slučováním revizí.

 

idea8-sql-nahled

 

Na možnost efektivně pracovat s knihovnou Jersey
(implementace RESTu a JSR-311) jsem se těšil,protože
jsem s touto technologií ještě nikdy nepracoval.
Neměl jsem možnost, webové služby jsou stále hodně
populární (a řekl bych že popularita s integračním
boomem roste – alespoň v enterprise sféře). S verzí 8
je testování této technologie snazší – zvýrazňování,
doplňování anotací, quick fixes, generování WADLů a
také speciální REST klient. Teď už snad chybí jen
REST unit testy.

Není sporu o tom, že lepší editor na hity poslední
sezony – jazyk Groovy a webový framework Grails –
momentálně neexistuje. Není třeba závidět
programátorům skriptovacích jazyků, jako je například
Ruby, vysokou produktivitu práce. S novou verzí
prostředí IDEA je převálcujete,protože možnosti
dvojice Groovy – Grails jsou podobné, ovšem míra
podpory v prostředí IDEA a počet podpůrných nástrojů
hraje ve váš prospěch. Mimochodem Ruby/JRuby/Rails
zvládne IDEA už zdřívější verze.

Novinkou je statická analýza toku volání metod, kdy
na výběr z kontextového menu Analyze – Dataflowto
this na parametru metody IDEA zanalyzuje všechny
možnosti, za kterých je metoda volána (a s jakou
hodnotou parametru), přičemž se prostředí snaží
vyhodnotit všechny výrazy, pokud je to možné.

Co dodat? V minulé recenzi jsem se také hodně
věnoval stávající funkčnosti starších verzí, u
osmičky to nebylo možné. Je zde tolik novinek, že na
to prostě nezbývá místo, tak snad jen telegraficky.
Kromě jiného IDEA nabízí anotace kontraktů, detekce
duplicit kódu, statickou analýzu kódu, code
inspector, analýzu závislostí, code coverage tool,
lokální historii s diffem, Ant/Maven, aplikační
servery, integrace s continious integračním nástrojem
TeamCity, sdílení projekt konfigurací, IDETalk a
mnoho dalšího. A i s novou verzí 8stále platí, že
asistence při psaní kódu je tak nějak lepší než u
jiných nástrojů. To se těžko popisuje, musíte si to
zkusit na vlastní kůži.

 

Odkazy: