pátek 12. května 2006

Jak jsem vyměnil Eclipse za NetBeans: aneb cesta tam a zase zpět

Pro jeden ze svých článků jsme potřeboval vytvořit demostrační webovou aplikaci. Protože se ke mě dostaly pozitivní ohlasy na IDE Netbeans 5.0, rozhodl jsem se, že vyměním stávající IDE (Eclipse) právě za NetBeans a aplikaci v něm napíšu. Na následujících řádcích najdete několik postřehů, které jsem během práce s NetBeans zaznamenal.

Sžívání se

Rozložení kláves

Závislost na eclipsovských klávesových zkratkách mě donutila po několika marných pokusech dojít k zjištění, že bez přenastavení rozložení kláves, budu bušit do klávesnice jako hluchý do vrat. Naštěstí Netbeans obsahuje přednastavený keymap profil pro uživatele Eclipse viz Tools >> Options >> Keymap >> Profile >> Eclipse.

NetBeans - keymap nastavení

Plná velikost (cca 24KB)

Code completion

Kontrolní otázka:Co si myslíte, že stane, když napíšte string či Stringb a použijete code completion (ctrl+space)?. Kdo odpoví, že se nestane nic má právdu, code completion nic nenabídne. V Sunu totiž předpokládají, že výchozí nastavení code completion musí být case sensitive. Tohle stupidní nastavení lze naštestí změnit v Tools >> Options >> Editor >> Case Sensitive Code Completion.

NetBeans - Code completion

Plná velikost (cca 25KB)

Kompilace

Pokud jste zvyklí na automatickou kompilaci třídy při jejím uložení a to včetně závislostí na této třídě, pak na to můžete zapomenout. Musíte totiž explicitně zavolat kompilaci Build >> Compile.

Nastavení errors a warnings

Bohužel chybí nastaveni úrovně errors a warnings ala Eclipse Java Compiler Settings. To má za následek, že není možné nastavit např. warning pro nepoužíté proměnné, type unsafe operace a nebo pro nestatický přístup k statickým proměnným.

IDE v záběhu

Po nastavení IDE pro vlastní práci následoval vlastní proces kódování aplikace.

Pohledová chudokrevnost

Jedna z mých největších výtek se týká chybějících view (window, pohled) na základní artefakty kódu. Mám tím na mysli především view Problems (viz Eclipse), kde je možné vidět všchny chyby/warningy pro vybraný soubor/projekt a view Javadoc (viz Eclipse) - javadoc sám o sobě je téma na další odstavec.

Eclipse - view Problems

Plná velikost (cca 18KB)

Javadoc

Nevim jak jinak, ale jediná možnost k otevření javadocu se naskýtá při code comletion. Z kontextového menu by volba Show javadoc zřejmě fungovala, to bych ovšem musel mít adresář s vygenerovaným javadocem k JDK explicitně nastaven. Bohužel samostatný javadoc nemám, protože jsem zhýčkaný Eclipsem, který umí nabídnout javadoc pouhým poskytnutím zdrojových kódů. Když už používám samostatný javadoc, pak jen ve fromátu HTMLHelp.

Z Eclipse jsem navyknutý minimálně na dva způsoby zobrazení javadocu. Za prvé vlastní zadokované view Javadoc. Za druhé jako tool tip okno při najetí nad danou část (objekt, metoda) zdrojového kódu.

NetBeans - JavaDoc

Plná velikost (cca 25KB)

Eclipse - view JavaDoc

Plná velikost (cca 14KB)

Eclipse - tool tip JavaDoc

Plná velikost (cca 12KB)

Drobnosti, které by potěšily
  • code completion při psaní javadocu (návykové)
  • možnost přímo vygenerovat gettry a settry pro vybrané třídní proměnné (asi po deseti minutách jsem objevil, že lze použít Encapuslate Fields z menu Refactor)
  • pro ošetření výjímky nabízí pouze Surrond with try-catch a Add throws clause for ..., chybí tak možnost Add catch clause to surroding try
  • code completion nenabízí metody anonymní vnitřní třídy
  • nemožnost nastavení předka případně rozhraní v New Class wizardu
  • chybí možnost Link with editor tj. aktuálně editovaný zdroják je zároveň vybrán v stromové struktuře souborů projektu
Eclipse - JavaDoc code complemention

Plná velikost (cca 13KB)

Eclipse - new class wizzard

Plná velikost (cca 28KB)

Klady
  • integrovaný servletový kontejner (Tomcat) - včetně view pro prohlížení logu, HTTP monitoru apod.
  • připravený packaging a deployment webové aplikace
  • snadné debugování JSP
  • integrovaná podpora psaní JSP (validace, JSTL code completion, HTML help atd.)

Resume

S NetBeans jsem pracoval minimálně dvacet hodin čístého času a musím potvrdit starou pravdu, že si člověk prostě zvykne. Oproti Eclipse neni NetBeans tolik (skoro vůbec) komfortní v podpoře vlastního psaní kódu. To se týká především návaznosti na JavaDoc, code completion a takových drobností jako např. Link with Editor, které dělají ve výsledku velkou efektivitu. Na druhou stranu je potřeba vyzvednout dobře propracovaný deploy proces pro web projekty a vůbec celou web integraci tímto počínaje a debugováním JSP konče.