Ohjelmointi

Java IDE: n valitseminen

Päivitetty: joulukuussa 2018.

Jokainen Java-kehittäjä tarvitsee ohjelmointieditorin tai IDE: n, joka voi auttaa Java: n kirjoittamisen sekä luokan kirjastojen ja kehysten käyttämisessä. Päätös siitä, mikä toimittaja tai IDE sopii sinulle parhaiten, riippuu useista asioista, mukaan lukien kehitteillä olevien projektien luonne, roolisi organisaatiossa, kehitystiimin käyttämä prosessi sekä tasosi ja taitosi ohjelmoijana. Muita huomioita ovat se, onko joukkue standardoinut työkalut ja henkilökohtaiset mieltymyksesi.

Palvelinpuolen Java-kehitykseen valitaan useimmat kolme IDE: tä IntelliJ IDEA, Eclipse ja NetBeans. Nämä eivät kuitenkaan ole ainoita valintoja, ja tämä arvostelu sisältää myös joitain kevyitä IDE: itä.

Tätä yhteenvetoa varten tein tuoreet asennukset IntelliJ IDEA Ultimate 2018.3: sta, Eclipse IDE 2018-09 Java EE -kehittäjille ja Apache NetBeans (inkuboimalla) IDE 9: n Maciin. Tarkistin myös useita avoimen lähdekoodin Java-projekteja, jotta voisin testata kaikki IDE: t samoissa projekteissa.

Tietoja tästä päivityksestä

Tämä IDE-katsaus julkaistiin ensimmäisen kerran syyskuussa 2016, ja se on päivitetty joulukuussa 2018. Näinä välivaiheina Java-kieli, sovellusliittymät, JVM-ekosysteemi ja jotkut kehykset ovat kehittyneet merkittävästi. Java EE 8 esitteli tai päivitti monia Java-tekniikan spesifikaatioita, mukaan lukien JSON-B (JavaScript Object Notation Binding), Java EE Security, Servlet 4.0 ja JSF (JavaServer Faces) 2.3 palvelinpuolen käyttöliittymien rakentamiseen. Java EE 8 oli myös Oraclen viimeinen Java-yritysjulkaisu: Eclipse Foundation on ottanut vastuulleen teknologian hoitamisen, jonka se on muuttanut Jakarta EE: ksi. Samaan aikaan JUnit on edennyt versioon 5 ja rikkonut integraatiot; IDEA: lla ja Eclipseellä on molemmilla natiivi tuki JUnit 5: lle, mutta tämän kirjoituksen jälkeen NetBeans ei.

Kaikkien näiden muutosten tulisi olla osa IDE-arviointiasi yleiskäyttöön tai tiettyyn projektiin.

NetBeans 10 lisää tuen JUnit 5: lle ja JDK 11: lle

Tammikuussa 2019 julkaistu NetBeans 10 lisää tukea JDK 11: lle ja JUnit 5: lle.

Perustiedot: Mitä tarvitset Java IDE: stä

Toivot vähintään, että IDE tukee Java 8 ja / tai 11 (LTS-versiot), Scala, Groovy, Kotlin ja muita säännöllisesti käyttämiäsi JVM-kieliä. Haluat myös, että se tukee tärkeimpiä sovelluspalvelimia ja suosituimpia verkkokehyksiä, kuten Spring MVC, JSF, Struts, GWT, Play, Grails ja Vaadin. IDE: n tulee olla yhteensopiva minkä tahansa rakennus- ja versionhallintajärjestelmän kanssa, jota kehitystiimisi käyttää; esimerkkejä ovat Apache Ant Ivy, Maven ja Gradle sekä Git, SVN, CVS, Mercurial ja Bazaar. Lisäluottojen saamiseksi IDE: n tulisi pystyä käsittelemään pinon asiakas- ja tietokantakerroksia tukemalla upotettuja JavaScript-, TypeScript-, HTML-, SQL-, JavaServer-sivuja, horrostilaa ja Java-pysyvyys-sovellusliittymää.

Lopuksi toivot, että Java IDE: n avulla voit muokata, rakentaa, virheenkorjausta ja testata järjestelmiäsi helposti ja sulavasti. Ihannetapauksessa sinulla ei ole vain älykäs koodin täydennys, vaan myös korjaus ja koodimittarit. Jos olet myymälässä, joka kehittää testiohjattua kehitystä, haluat tukea testauskehyksillesi ja tunkeutumisellesi. Jos ryhmäsi käyttää lippujärjestelmää ja CI / CD-levyä, on parasta, jos IDE pystyy muodostamaan yhteyden niihin. Jos sinun on otettava käyttöön ja tarkistettava kontteja ja pilviä, IDE: n pitäisi auttaa sinua tekemään niin.

Tarkastelemme tätä perustaa mielessä kilpailijat.

IntelliJ IDEA

IntelliJ IDEA, johtava Java IDE sekä ominaisuuksien että hinnan suhteen, on saatavana kahtena versiona: ilmainen yhteisöversio ja maksettu Ultimate-versio, jolla on lisäominaisuuksia.

Yhteisöversio on tarkoitettu JVM: n ja Android: n kehittämiseen. Se tukee Java, Kotlin, Groovy ja Scala; Android; Maven, Gradle ja SBT; ja Git, SVN, Mercurial, CVS ja TFS.

Web- ja yrityskehitykseen tarkoitettu Ultimate-versio tukee Perforcea muiden versionhallintajärjestelmien lisäksi. tukee JavaScriptiä ja TypeScriptiä; tukee Java EE-, Spring-, GWT-, Vaadin-, Play-, Grails- ja muita kehyksiä; ja sisältää tietokantatyökalut ja SQL-tuen.

Ajatuksena on, että kaupallinen (Ultimate) painos ansaitsee paikkansa ammattilaisen työpöydällä, mikä oikeuttaa maksetun tilauksen lisäämällä ohjelmoijien tuottavuutta. Jos ansaitset 50--100 000 dollaria vuodessa Java-kehittäjänä, ei tarvitse suurta tuottavuuden lisäystä, jotta saat nopean ROI: n 500 dollaria vuodessa yrityksen IDEA-tilauksesta. Hinta laskee seuraavina vuosina yrityksille, on paljon alhaisempi startup-yrityksille ja yksityishenkilöille, ja on ilmainen opiskelijoille, opettajille, "Java-mestareille" ja avoimen lähdekoodin kehittäjille.

IntelliJ tarjoaa IDEA: lle syvällisen käsityksen koodistasi, kehittäjien ergonomiasta, sisäänrakennetuista kehittäjätyökaluista ja polyglot-ohjelmointikokemuksesta. Tarkastellaanpa, mitä nämä ominaisuudet tarkoittavat ja miten ne voivat auttaa sinua.

Martin Heller

Syvä kuvaus koodistasi

Syntaksin väritys ja yksinkertainen koodin täydennys on annettu Java-editorille. IDEA ylittää sen tarjotakseen "älykkään täydennyksen", mikä tarkoittaa, että se voi avata luettelon tärkeimmistä symboleista, joita sovelletaan nykyisessä yhteydessä. Nämä luokitellaan henkilökohtaisen käyttötiheytesi mukaan. "Ketjun valmistuminen" menee syvemmälle ja näyttää luettelon sovellettavista symboleistamenetelmien tai gettereiden kautta nykyisessä tilanteessa. IDEA täydentää myös staattisia jäseniä tai vakioita ja lisää tarvittavat tuontilausekkeet automaattisesti. Kaikissa koodin täydennyksissä IDEA yrittää arvata ajonaikaisen symbolin tyypin, tarkentaa valintojaan siitä ja lisätä luokan heittoja tarpeen mukaan.

Java-koodi sisältää usein muita kieliä merkkijonoina. IDEA voi injektoida fragmentteja SQL-, XPath-, HTML-, CSS- ja / tai JavaScript-koodista Java-merkkijono-literaaleihin. Siinä tapauksessa se voi korjata koodin useilla kielillä; Esimerkiksi, jos nimät luokan uudelleen JPA-käskyssä, IDEA päivittää vastaavat entiteettiluokan ja JPA-lausekkeet.

Kun muokkaat koodinpalaa, yksi tavallisista asioista, jotka yleensä haluat tehdä, on myös refraktoida kaikki kyseisen koodin kopiot. IDEA Ultimate pystyy tunnistamaan kaksoiskappaleet ja vastaavat fragmentit ja soveltamaan uudelleenrakentamista myös niihin.

IntelliJ IDEA analysoi koodisi, kun se latautuu ja kirjoitat. Se tarjoaa tarkastuksia mahdollisten ongelmien osoittamiseksi ja haluttaessa luettelon havaittujen ongelmien pikakorjauksista.

Kehittäjän ergonomia

IntelliJ suunnitteli IDEAn kehittäjän luovalla virralla -alias "alueella oleminen" - mielessä. Kuvassa 1 vasemmalla näkyvä Projektityökalu-ikkuna katoaa näkymästä yksinkertaisella hiiren napsautuksella, jotta voit keskittyä koodieditoriin. Kaikella, mitä haluat tehdä muokkauksen aikana, on pikanäppäin, mukaan lukien symbolimääritelmien tuominen ponnahdusikkunaan. Vaikka pikakuvakkeiden oppiminen vie aikaa ja käytäntöä, lopulta niistä tulee toinen luonne. Jopa tietämättä pikavalintoja, kehittäjä voi oppia käyttämään IDEAa helposti ja nopeasti.

IDEA-virheenkorjaimen suunnittelu on erityisen mukavaa. Muuttujien arvot näkyvät suoraan muokkausikkunassa vastaavan lähdekoodin vieressä. Kun muuttujan tila muuttuu, myös sen korostusväri muuttuu.

Sisäänrakennetut kehittäjän työkalut

IntelliJ IDEA tarjoaa yhtenäisen käyttöliittymän useimmille tärkeimmille versionhallintajärjestelmille, mukaan lukien Git, SVN, Mercurial, CVS, Perforce ja TFS. Voit tehdä kaikki muutosten hallinnan suoraan IDE: ssä. Testatessani IDEAa halusin, että viimeinen mahdollisuus lähdekoodilohkossa näkyisi muokkausikkunassa merkinnänä (kuten Visual Studiossa). Kuten käy ilmi, siihen on olemassa laajennus.

IDEA integroi myös rakennustyökalut, testijuoksijat ja peittotyökalut sekä sisäänrakennetun pääteikkunan. IntelliJ: llä ei ole omaa profilointia, mutta se tukee useita kolmannen osapuolen profiloijia laajennusten avulla. Näihin kuuluvat YourKit, jonka on luonut entinen IntelliJ-pääkehittäjä, ja VisualVM, joka on uudelleenpakattu versio NetBeans-profilointilaitteesta.

Java-virheenkorjaus voi olla tuskaa, kun salaperäisiä asioita tapahtuu luokissa, joihin sinulla ei ole lähdekoodia. IDEAn mukana tulee dekompileri näihin tapauksiin.

Java-palvelinohjelmointi sisältää usein työskentelyn tietokantojen kanssa, joten IDEA Ultimate sisältää SQL- ja NoSQL-tietokantatyökalut. Jos tarvitset enemmän, erillinen SQL IDE (DataGrip) on saatavana osana kaikkien tuotteiden tilausta, joka on vain hieman kalliimpi kuin IDEA Ultimate -tilaus.

IntelliJ IDEA tukee kaikkia tärkeimpiä JVM-sovelluspalvelimia ja voi ottaa käyttöön palvelimia ja tehdä niistä virheenkorjauksia, mikä korjaa tärkeän kipupisteen Enterprise Java -kehittäjille. IDEA tukee myös Dockeria laajennuksen kautta, joka lisää Docker-työkaluikkunan. (Laajennuksista puhuen, IntelliJ: llä on paljon niitä.)

Polyglot-ohjelmointi

IDEA on laajentanut Spring-, Java EE-, Grails-, Play-, Android-, GWT-, Vaadin-, Thymeleaf-, Android-, React-, AngularJS- ja muiden kehysten koodausapua. Kaikki nämä eivät ole Java-kehyksiä. Java: n lisäksi IDEA ymmärtää alusta alkaen monia muita kieliä, mukaan lukien Groovy, Kotlin, Scala, JavaScript, TypeScript ja SQL. Jos tarvitset lisää, tällä hetkellä on satoja IntelliJ-kielilaajennuksia, mukaan lukien R-, Elm-, Go-, Rust- ja D-laajennukset.

Eclipse IDE

Eclipse, joka on kauan suosituin Java IDE, on ilmainen ja avoimen lähdekoodin kirjoitettu pääosin Java-kielellä, vaikka sen laajennusarkkitehtuurin ansiosta Eclipseä voidaan laajentaa muilla kielillä. Eclipse sai alkunsa vuonna 2001 IBM-projektina korvaamaan Smalltalk-pohjainen IBM Visual Age IDE-perhe kannettavalla Java-pohjaisella IDE: llä. Projektin tavoitteena oli peittää Microsoft Visual Studio, joten nimi.

Javan siirrettävyys auttaa Eclipsiä olemaan monitasoinen: Eclipse toimii Linuxissa, Mac OS X: ssä, Solarisissa ja Windowsissa. Java Standard Widget Toolkit (SWT) on ainakin osittain vastuussa Eclipsen ulkoasusta, hyvistä tai huonoista. Samoin Eclipse on velkaa suorituskykynsä (tai jotkut sanovat sen puutteen) JVM: lle. Eclipseellä on maine juosta hitaasti, mikä haastaa takaisin vanhempiin laitteistoihin ja vanhempiin JVM: iin. Vielä nykyäänkin se voi tuntua hitaalta, varsinkin kun se päivittää itseään taustalla monien asennettujen laajennusten kanssa.

Osa Eclipse-ohjelmassa tapahtuvasta yleiskustannuksesta on sen sisäänrakennettu inkrementaalinen kääntäjä, joka toimii aina, kun se lataa tiedoston ja kun päivität koodisi. Tämä on tasapainossa erittäin hyvä asia ja tarjoaa virheilmoituksia kirjoittaessasi.

Rakennusjärjestelmästä riippumatta Eclipse Java -projekti ylläpitää myös mallia sen sisällöstä, joka sisältää tietoja Java-elementtien tyyppihierarkiasta, viitteistä ja ilmoituksista. Tämä on myös tasapainossa hyvä asia, ja se mahdollistaa useita muokkaus- ja navigointiavustajia sekä ääriviivanäkymän.

Eclipsen nykyinen versio on 2018-09. Asensin Eclipse IDE Java EE -kehittäjille, mutta on olemassa monia muita asennuspaketteja, mukaan lukien mahdollisuus asentaa minimaalinen Eclipse SDK ja lisätä laajennuksia vain tarpeen mukaan. Viimeinen vaihtoehto ei kuitenkaan ole heikkohermoisille: ei ole vaikea ottaa käyttöön ristiriitoja laajennusten välillä, jotka eivät todellisuudessa olesanoa ne eivät olleet yhteensopivia.

Martin Heller

Laajennettavat työkalut tukevat

Laajennusten ekosysteemi on yksi Eclipsen vahvuuksista, ja se on myös satunnaista turhautumista. Eclipse-markkinapaikka sisältää tällä hetkellä yli 1600 ratkaisua, ja yhteisön tukemat laajennukset voivat toimia tai olla toimimatta mainostetulla tavalla. Silti Eclipse-laajennukset sisältävät tuen yli 100 ohjelmointikielelle ja lähes 200 sovelluskehityskehykselle.

Useimpia Java-palvelimia tuetaan myös: jos määrität uuden palvelinyhteyden Eclipse-palvelusta, pääset luetteloon toimittajien kansioista, joiden alla on noin 30 sovelluspalvelinta, mukaan lukien yhdeksän Apache Tomcatin versiota. Kaupallisilla toimittajilla on taipumus koota tarjontaansa yhteen: esimerkiksi Red Hat JBoss Middleware -ohjelmassa on vain yksi tuote, joka sisältää WildFly- ja EAP Server Tools -työkalut sekä JBoss AS: n.

Muokkaus, selaaminen, korjaaminen ja virheenkorjaus

Kehittäjän ensimmäinen kokemus Eclipse-ohjelmasta voi olla hämmentävä, jopa hämmentävä. Tämä johtuu siitä, että ensimmäinen tehtäväsi on sopeutua Eclipsen työtilojen, perspektiivien ja näkymien käsitteelliseen arkkitehtuuriin, jonka toiminnot määräävät asennetut laajennukset. Esimerkiksi Java-palvelinkehityksessä käytät todennäköisesti Java-, Java EE- ja Java-selausnäkymiä; paketinhallintanäkymä; virheenkorjausnäkökulma; tiimin synkronoiva näkökulma; Web-työkalut; tietokannan kehittämisen näkökulma; ja tietokannan virheenkorjausnäkökulma. Käytännössä kaikilla näillä on järkevää, kun avaat tarvitsemasi näkymät.

Eclipse-ohjelmassa on usein useampi kuin yksi tapa suorittaa tietty tehtävä. Voit esimerkiksi selata koodia projektinhallinnalla ja / tai Java-selausnäkymällä; valitsemasi maku ja kokemus.

Java-haun tuen avulla voit etsiä Java-pakettien ilmoituksia, viitteitä ja esiintymiä, tyyppejä, menetelmiä ja kenttiä. Voit myös käyttää pikahakua hakuun ja käyttää pikanäkymiä esiin esimerkiksi kurssin ääriviivat.

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