Programovanie

Výber vášho Java IDE

Aktualizované: december 2018.

Každý vývojár Java potrebuje programovací editor alebo IDE, ktoré môžu pomôcť s náročnejšími časťami písania Javy a používaním knižníc a rámcov tried. Rozhodnutie, ktorý editor alebo IDE vám bude najlepšie vyhovovať, závisí od niekoľkých vecí, vrátane povahy vyvíjaných projektov, vašej úlohy v organizácii, postupu použitého vývojovým tímom a úrovne a schopností programátora. Ďalej je potrebné vziať do úvahy, či má tím štandardizované nástroje, a vaše osobné preferencie.

Tri najčastejšie IDE vybrané pre vývoj Java na strane servera sú IntelliJ IDEA, Eclipse a NetBeans. Nie sú to však jediné možnosti a táto recenzia bude obsahovať aj niektoré ľahké IDE.

V tomto kole som vykonal čerstvé inštalácie IntelliJ IDEA Ultimate 2018.3, Eclipse IDE 2018-09 pre vývojárov Java EE a Apache NetBeans (inkubujúce) IDE 9 na počítačoch Mac. Skontroloval som tiež niekoľko projektov Java s otvoreným zdrojovým kódom, aby som mohol otestovať všetky IDE na rovnakých projektoch.

Informácie o tejto aktualizácii

Táto recenzia IDE bola prvýkrát zverejnená v septembri 2016 a bola aktualizovaná v decembri 2018. V uplynulých rokoch sa významne vyvinul jazyk Java, API, ekosystém JVM a niektoré rámce. Java EE 8 predstavil alebo aktualizoval mnoho technických špecifikácií Java, vrátane JSON-B (JavaScript Object Notation Binding), Java EE Security, Servlet 4.0 a JSF (JavaServer Faces) 2.3 pre vytváranie užívateľských rozhraní na strane servera. Java EE 8 bola tiež posledným podnikovým vydaním Java od spoločnosti Oracle: Nadácia Eclipse sa postarala o správu technológie, ktorú premenovala na Jakarta EE. Medzitým JUnit postúpil na verziu 5, prelomil integrácie; IDEA a Eclipse majú natívnu podporu pre JUnit 5, ale od tohto písania NetBeans nie.

Všetky tieto zmeny by mali byť súčasťou vášho hodnotenia IDE, či už pre všeobecné použitie alebo pre konkrétny projekt.

NetBeans 10 pridáva podporu pre JUnit 5 a JDK 11

Vydané v januári 2019, NetBeans 10 pridáva podporu pre JDK 11 a JUnit 5.

Základy: Čo potrebujete od Java IDE

Minimálne by ste dúfali, že vaše IDE podporuje Java 8 a / alebo 11 (verzie LTS), Scala, Groovy, Kotlin a ďalšie jazyky JVM, ktoré pravidelne používate. Tiež by ste chceli, aby podporoval hlavné aplikačné servery a najpopulárnejšie webové rámce vrátane Spring MVC, JSF, Struts, GWT, Play, Grails a Vaadin. Vaše IDE by malo byť kompatibilné s akýmikoľvek systémami zostavovania a správy verzií, ktoré používa váš vývojový tím; príklady zahŕňajú Apache Ant s Ivy, Maven a Gradle, spolu s Git, SVN, CVS, Mercurial a Bazaar. Ak chcete získať viac kreditu, vaše IDE by malo byť schopné zvládnuť klientske a databázové vrstvy vášho zásobníka, pričom podporuje vložený JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate a Java Persistence API.

Na záver by ste dúfali, že vaše Java IDE vám umožní ľahko a s ľahkosťou upravovať, zostavovať, ladiť a testovať vaše systémy. V ideálnom prípade by ste nemali len inteligentné dokončenie kódu, ale aj refaktoring a metriky kódu. Ak sa nachádzate v obchode, ktorý sa venuje vývoju na základe testov, potrebujete podporu pre svoje testovacie rámce a podporu. Ak vaša skupina používa systém lístkov a CI / CD, je najlepšie, ak sa k nim môže pripojiť vaše IDE. Ak potrebujete nasadiť a odladiť kontajnery a cloudy, váš IDE by vám s tým mal pomôcť.

Ak vezmeme do úvahy tento základ, zvážme uchádzačov.

IntelliJ IDEA

IntelliJ IDEA, popredné Java IDE, čo sa týka funkcií aj ceny, prichádza v dvoch vydaniach: bezplatná komunitná edícia a platená edícia Ultimate, ktorá má ďalšie funkcie.

Komunitná edícia je určená pre vývoj aplikácií JVM a Android. Podporuje Java, Kotlin, Groovy a Scala; Android; Maven, Gradle a SBT; a Git, SVN, Mercurial, CVS a TFS.

Vydanie Ultimate určené pre webový a podnikový vývoj podporuje okrem iných systémov riadenia verzií aj Perforce; podporuje JavaScript a TypeScript; podporuje rámce Java EE, Spring, GWT, Vaadin, Play, Grails a ďalšie; a obsahuje databázové nástroje a podporu SQL.

Ide o to, že komerčná verzia (Ultimate) si získa miesto na pracovnej ploche profesionála, čo odôvodňuje platené predplatné zvýšením produktivity programátora. Ak ako vývojár v prostredí Java zarábate 50 000 - 100 000 dolárov ročne, nevyžaduje si veľa zvýšenia produktivity, aby vám poskytla rýchlu návratnosť investícií pri predplatnom obchodného IDEA na 500 dolárov ročne. Cena klesá v nasledujúcich rokoch pre podniky, je oveľa nižšia pre začínajúce podniky a jednotlivcov a je bezplatná pre študentov, učiteľov, „šampiónov Java“ a vývojárov otvorených zdrojov.

IntelliJ ponúka IDEA pre hlboký vhľad do vášho kódu, ergonómiu pre vývojárov, zabudované vývojárske nástroje a skúsenosti s programovaním polyglotov. Poďme na to a pozrime sa, čo tieto funkcie znamenajú a ako vám môžu pomôcť.

Martin Heller

Hlboký prehľad o vašom kóde

Syntaxové zafarbenie a jednoduché dokončenie kódu sú pre editorov Java samozrejmosťou. IDEA ide nad rámec toho, aby poskytovala „inteligentné dokončenie“, čo znamená, že môže zobraziť zoznam najrelevantnejších symbolov použiteľných v súčasnom kontexte. Sú zoradené podľa osobnej frekvencie používania. „Dokončenie reťazca“ ide hlbšie a zobrazuje zoznam použiteľných symbolovprístupné metódami alebo getrami v súčasnom kontexte. IDEA tiež dokončuje statické členy alebo konštanty a automaticky pridáva všetky potrebné vyhlásenia o importe. Pri všetkých dokončeniach kódu sa IDEA snaží uhádnuť typ symbolu runtime, z toho spresniť svoje voľby a podľa potreby pridať obsadenie triedy.

Kód Java často obsahuje iné jazyky ako reťazce. IDEA môže vložiť fragmenty kódu SQL, XPath, HTML, CSS alebo JavaScript do literálov Java String. Z tohto dôvodu dokáže refaktorovať kód vo viacerých jazykoch; napríklad ak premenujete triedu vo výpise JPA, IDEA aktualizuje zodpovedajúcu triedu entít a výrazy JPA.

Keď refaktorujete časť kódu, jednou z vecí, ktoré zvyčajne chcete urobiť, je tiež refaktorovať všetky duplikáty tohto kódu. IDEA Ultimate dokáže zistiť duplikáty a podobné fragmenty a použiť na ne tiež refaktoring.

IntelliJ IDEA analyzuje váš kód pri načítaní a pri zadávaní. Ponúka kontroly, ktoré upozorňujú na možné problémy, a ak chcete, zoznam rýchlych riešení zisteného problému.

Ergonómia vývojárov

IntelliJ navrhol IDEA s kreatívnym tokom vývojára -alias „byť v zóne“ - na mysli. Okno nástroja Project zobrazené vľavo na obrázku 1 zmizne z pohľadu jednoduchým kliknutím myši, aby ste sa mohli sústrediť na editor kódu. Všetko, čo chcete pri úpravách robiť, má klávesovú skratku vrátane otvorenia definícií symbolov v rozbaľovacom okne. Aj keď si osvojovanie skratiek vyžaduje čas a prax, nakoniec sa stanú druhou prirodzenosťou. Aj bez znalosti skratiek sa vývojár môže naučiť IDEA používať ľahko a rýchlo.

Dizajn ladiaceho nástroja IDEA je obzvlášť pekný. Hodnoty premenných sa zobrazia priamo v okne editora vedľa príslušného zdrojového kódu. Keď sa zmení stav premennej, zmení sa aj jej farba zvýraznenia.

Vstavané vývojárske nástroje

IntelliJ IDEA poskytuje jednotné rozhranie pre väčšinu hlavných systémov riadenia verzií, vrátane Git, SVN, Mercurial, CVS, Perforce a TFS. Celú svoju správu zmien môžete robiť priamo v IDE. Keď som testoval IDEA, prial som si, aby posledná zmena v bloku zdrojového kódu by sa v okne editora zobrazil ako anotácia (ako je to v Visual Studio). Ako sa ukázalo, na to existuje doplnok.

IDEA tiež integruje nástroje na zostavenie, testovacie bežce a nástroje na pokrytie, ako aj vstavané okno terminálu. IntelliJ nemá vlastný profiler, ale podporuje niekoľko profilov tretích strán prostredníctvom doplnkov. Medzi ne patrí YourKit, ktorý vytvoril bývalý hlavný vývojár IntelliJ, a VisualVM, čo je prebalená verzia profilovača NetBeans.

Ladenie Javy môže byť bolesťou, keď sa v triedach, pre ktoré nemáte zdrojový kód, stanú záhadné veci. IDEA pre tieto prípady prichádza s dekompilátorom.

Programovanie serverov Java často zahŕňa prácu s databázami, takže IDEA Ultimate obsahuje databázové nástroje SQL a NoSQL. Ak potrebujete viac, v rámci predplatného na všetky produkty je k dispozícii vyhradené IDE SQL (DataGrip), ktoré je len o niečo nákladnejšie ako predplatné IDEA Ultimate.

IntelliJ IDEA podporuje všetky hlavné aplikačné servery JVM a je možné ich nasadiť a ladiť na serveroch, čo opravuje hlavný problém pre vývojárov Enterprise Java. IDEA podporuje Dockera aj prostredníctvom doplnku, ktorý pridáva okno nástroja Docker. (Keď už hovoríme o pluginoch, IntelliJ ich má veľa.)

Polyglotové programovanie

IDEA rozšírila pomoc pri kódovaní pre platformy Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS a ďalšie. Nie všetky sú to rámce Java. Okrem Javy rozumie IDEA po vybalení aj mnohým ďalším jazykom, napríklad Groovy, Kotlin, Scala, JavaScript, TypeScript a SQL. Ak potrebujete viac, v súčasnosti existujú stovky jazykových doplnkov IntelliJ vrátane doplnkov pre R, Elm, Go, Rust a D.

Zatmenie IDE

Eclipse, dlho najobľúbenejšie Java IDE, je zadarmo a otvorený zdroj a je písané väčšinou v jazyku Java, hoci jeho architektúra doplnkov umožňuje rozšírenie Eclipse v iných jazykoch. Eclipse vznikol v roku 2001 ako projekt IBM, ktorý mal nahradiť rodinu IDE založenú na Smalltalku IBM Visual Age prenosným IDE na báze Java. Cieľom projektu bolo zatmenie Microsoft Visual Studio, odtiaľ názov.

Prenosnosť jazyka Java pomáha Eclipse naprieč platformami: Eclipse funguje v systémoch Linux, Mac OS X, Solaris a Windows. Sada Java Standard Widget Toolkit (SWT) je aspoň čiastočne zodpovedná za dobrý a zlý vzhľad a pôsobenie Eclipse. Rovnako Eclipse vďačí za svoj výkon (alebo niekto hovorí o jeho nedostatku) JVM. Eclipse má povesť pomalého chodu, čo sa vracia k staršiemu hardvéru a starším JVM. Aj dnes sa však môže zdať pomalý, najmä keď sa aktualizuje na pozadí s mnohými nainštalovanými doplnkami.

Súčasťou réžie prebiehajúcej v Eclipse je jeho vstavaný inkrementálny kompilátor, ktorý sa spúšťa vždy, keď načíta súbor a kedykoľvek aktualizujete svoj kód. To je na rovnováhe veľmi dobrá vec a poskytuje chybové hlásenia už pri písaní.

Nezávisle na systéme zostavovania udržuje projekt Eclipse Java model obsahu, ktorý obsahuje informácie o hierarchii typov, odkazoch a deklaráciách prvkov Java. To je tiež na vyvážení, dobré, a umožňuje niekoľko editačných a navigačných asistentov, ako aj obrysový pohľad.

Aktuálna verzia aplikácie Eclipse je 2018-09. Nainštaloval som Eclipse IDE pre vývojárov Java EE, ale existuje veľa ďalších inštalačných balíkov vrátane možnosti nainštalovať minimálnu sadu Eclipse SDK a pridať doplnky iba podľa potreby. Posledná možnosť však nie je pre slabé povahy: nie je ťažké zaviesť konflikty medzi doplnkami, ktoré v skutočnosti nebolipovedať boli nezlučiteľné.

Martin Heller

Podpora rozšíriteľného náradia

Ekosystém zásuvných modulov je jednou zo silných stránok Eclipse a je zdrojom občasnej frustrácie. Trhovisko Eclipse v súčasnosti obsahuje viac ako 1 600 riešení a doplnky od komunity môžu alebo nemusia fungovať tak, ako sú inzerované. Aj napriek tomu doplnky Eclipse obsahujú podporu pre viac ako 100 programovacích jazykov a takmer 200 rámcov na vývoj aplikácií.

Väčšina serverov Java je tiež podporovaná: ak definujete nové pripojenie k serveru od Eclipse, dostanete sa k zoznamu priečinkov dodávateľov, pod ktorými nájdete asi 30 aplikačných serverov, vrátane deviatich verzií Apache Tomcat. Komerční predajcovia majú tendenciu zhromažďovať svoje ponuky spoločne: napríklad v Red Hat JBoss Middleware je len jedna položka, ktorá obsahuje WildFly a EAP Server Tools, ako aj JBoss AS.

Úpravy, prehliadanie, refaktoring a ladenie

Prvá skúsenosť vývojára s Eclipse môže byť znepokojujúca, dokonca mätúca. Je to preto, že vašou prvou úlohou je prispôsobiť sa koncepčnej architektúre pracovných priestorov, perspektív a pohľadov Eclipse, ktorých funkcie sú určené tým, aké doplnky ste nainštalovali. Napríklad pri vývoji servera Java budete pravdepodobne používať perspektívy prehliadania Java, Java EE a Java; pohľad na prehliadač balíkov; perspektíva ladenia; perspektíva synchronizácie tímu; webové nástroje; perspektíva vývoja databázy; a perspektívu ladenia databázy. V praxi to všetko začne mať zmysel, až keď otvoríte potrebné pohľady.

V Eclipse existuje často viac ako jeden spôsob, ako vykonať danú úlohu. Môžete napríklad prechádzať kód pomocou prieskumníka projektu alebo perspektívy prehliadania Java; ktoré si vyberiete, je vecou vkusu a skúseností.

Podpora vyhľadávania Java vám umožňuje vyhľadať vyhlásenia, referencie a výskyty balíkov Java, typov, metód a polí. Môžete tiež použiť Rýchly prístup na vyhľadávanie a pomocou rýchlych zobrazení vyskakovacie okná, napríklad obrysy triedy.

$config[zx-auto] not found$config[zx-overlay] not found