Programavimas

„Java IDE“ pasirinkimas

Atnaujinta: 2018 m. Gruodžio mėn.

Kiekvienam „Java“ kūrėjui reikalingas programavimo redaktorius arba IDE, kuris galėtų padėti atidžiau rašyti „Java“ ir naudoti klasės bibliotekas bei sistemas. Sprendimas, kuris redaktorius ar IDE jums labiausiai tiks, priklauso nuo kelių dalykų, įskaitant kuriamų projektų pobūdį, jūsų vaidmenį organizacijoje, kūrėjų komandos naudojamą procesą ir jūsų, kaip programuotojo, lygį ir įgūdžius. Papildomos aplinkybės yra tai, ar komanda standartizavo įrankius, ir jūsų asmenines nuostatas.

Trys IDE, dažniausiai pasirinktos serverio „Java“ plėtrai, yra „IntelliJ IDEA“, „Eclipse“ ir „NetBeans“. Tačiau tai nėra vieninteliai pasirinkimai, ir šioje apžvalgoje taip pat bus keletas lengvų IDE.

Šiam apibendrinimui atlikau naujus „IntelliJ IDEA Ultimate 2018.3“, „Eclipse IDE 2018‑09“, skirtus „Java EE“ kūrėjams, ir „Apache NetBeans“ (inkubavo) „IDE 9“ įdiegimus „Mac“. Taip pat patikrinau kelis atvirojo kodo „Java“ projektus, kad galėčiau išbandyti visus tų pačių projektų IDE.

Apie šį naujinimą

Ši IDE apžvalga pirmą kartą buvo paskelbta 2016 m. Rugsėjo mėn. Ir buvo atnaujinta 2018 m. Gruodžio mėn. Tais tarpais metais „Java“ kalba, API, JVM ekosistema ir kai kurios sistemos gerokai patobulėjo. „Java EE 8“ pristatė arba atnaujino daugybę „Java“ technologijos specifikacijų, įskaitant JSON-B („JavaScript Object Notation Binding“), „Java EE Security“, „Servlet 4.0“ ir JSF („JavaServer Faces“) 2.3, skirtus serverio vartotojo sąsajoms kurti. „Java EE 8“ taip pat buvo paskutinis „Java“ įmonės leidimas iš „Oracle“: „Eclipse Foundation“ perėmė atsakomybę už technologijos valdymą, kurį ji pervadino į „Jakarta EE“. Tuo tarpu „JUnit“ pateko į 5 versiją, sulaužė integracijas; IDEA ir „Eclipse“ palaiko JUnit 5, bet nuo šio rašymo „NetBeans“ to nepadaro.

Visi šie pakeitimai turėtų būti jūsų IDE vertinimo dalis, nesvarbu, ar jie skirti bendram naudojimui, ar konkrečiam projektui.

„NetBeans 10“ papildo JUnit 5 ir JDK 11 palaikymą

Išleistas 2019 m. Sausio mėn., „NetBeans 10“ papildo JDK 11 ir JUnit 5 palaikymą.

Pagrindai: ko jums reikia iš „Java IDE“

Jūs bent jau tikitės, kad jūsų IDE palaiko „Java 8“ ir (arba) „11“ (LTS versijas), „Scala“, „Groovy“, „Kotlin“ ir visas kitas JVM kalbas, kurias reguliariai naudojate. Taip pat norėtumėte, kad jis palaikytų pagrindinius programų serverius ir populiariausias žiniatinklio sistemas, įskaitant „Spring MVC“, „JSF“, „Struts“, „GWT“, „Play“, „Grails“ ir „Vaadin“. Jūsų IDE turėtų būti suderinamas su bet kokiomis versijų ir versijų valdymo sistemomis, kurias naudoja jūsų kūrėjų komanda; pavyzdžiai: Apache Ant su Ivy, Maven ir Gradle kartu su Git, SVN, CVS, Mercurial ir Bazaar. Norėdami gauti papildomų kreditų, jūsų IDE turėtų sugebėti tvarkyti kliento ir duomenų bazės sluoksnius, palaikančius įdėtus „JavaScript“, „TypeScript“, HTML, SQL, „JavaServer Pages“, „Hibernate“ ir „Java Persistence“ API.

Galiausiai tikitės, kad jūsų „Java IDE“ leidžia lengvai ir maloniai redaguoti, kurti, derinti ir išbandyti savo sistemas. Idealiu atveju turėtumėte ne tik protingą kodo užbaigimą, bet ir atnaujinimą bei kodų metriką. Jei esate parduotuvėje, kuriančioje bandomuosius kūrinius, norėtumėte palaikyti bandymų sistemas ir sugadinti. Jei jūsų grupė naudoja bilietų sistemą ir CI / CD, geriausia, jei jūsų IDE gali prisijungti prie jų. Jei jums reikia diegti ir derinti konteinerius ir debesis, jūsų IDE turėtų padėti tai padaryti.

Turėdami omenyje šį pagrindą, apsvarstykime pretendentus.

„IntelliJ“ IDĖJA

„IntelliJ IDEA“, pagrindinė „Java IDE“ tiek funkcijų, tiek kainos požiūriu, yra du leidimai: nemokamas bendruomenės leidimas ir mokamas „Ultimate“ leidimas, turintis papildomų funkcijų.

Bendruomenės leidimas skirtas kurti JVM ir „Android“. Jis palaiko „Java“, „Kotlin“, „Groovy“ ir „Scala“; „Android“; Mavenas, Gradle'as ir SBT; ir Git, SVN, „Mercurial“, CVS ir TFS.

„Ultimate“ leidimas, skirtas interneto ir įmonės plėtrai, palaiko „Perforce“, be kitų versijų valdymo sistemų; palaiko „JavaScript“ ir „TypeScript“; palaiko „Java EE“, „Spring“, GWT, „Vaadin“, „Play“, „Grails“ ir kitas sistemas; ir apima duomenų bazių įrankius ir SQL palaikymą.

Idėja yra ta, kad komercinis („Ultimate“) leidimas uždirbs vietą profesionalo darbalaukyje ir pateisins mokamą prenumeratą padidėjus programuotojo produktyvumui. Jei uždirbate 50–100 USD per metus kaip „Java“ kūrėjas, nereikia daug padidinti produktyvumo, kad galėtumėte greitai gauti IGN už 500 USD verslo IDEA prenumeratą. Vėlesniais metais kaina mažėja verslui, pradedantiesiems ir privatiems asmenims yra daug mažesnė ir nemokama studentams, mokytojams, „Java čempionams“ ir atvirojo kodo kūrėjams.

„IntelliJ“ reklamuoja IDEA, kad būtų galima įžvalgiai sužinoti apie jūsų kodą, kūrėjo ergonomiką, įmontuotus kūrėjo įrankius ir daugialypės programavimo patirtį. Panagrinėkime, ką šios funkcijos reiškia ir kaip jos gali jums padėti.

Martinas Helleris

Gili įžvalga apie jūsų kodą

„Java“ redaktoriams suteikiama sintaksės spalva ir paprastas kodo užbaigimas. IDEA peržengia tai, kad suteiktų „protingą užbaigimą“, o tai reiškia, kad ji gali iššokti svarbiausių simbolių, taikomų dabartiniame kontekste, sąrašą. Jie yra suskirstyti pagal jūsų asmeninį naudojimo dažnumą. „Grandinės užbaigimas“ pateikiamas giliau ir pateikiamas taikomų simbolių sąrašasprieinama taikant metodus ar getters dabartiniame kontekste. IDEA taip pat užbaigia statinius narius ar konstantas, automatiškai pridėdama visus reikalingus importavimo teiginius. Visų kodų užbaigimo metu IDEA bando atspėti vykdymo laiko simbolio tipą, patikslinti savo pasirinkimą ir prireikus pridėti klasių grupes.

„Java“ kode dažnai yra kitos kalbos kaip eilutės. IDEA gali įterpti SQL, XPath, HTML, CSS ir (arba) „JavaScript“ kodo fragmentus į „Java String“ pažodžius. Šiuo klausimu jis gali pertvarkyti kodą keliomis kalbomis; pavyzdžiui, jei JPA sakinyje pervadinsite klasę, IDEA atnaujins atitinkamą esybės klasę ir JPA išraiškas.

Kai pertvarkote kodo dalį, vienas iš dalykų, kuriuos paprastai norite padaryti, yra taip pat pertvarkyti visus to kodo dublikatus. „IDEA Ultimate“ gali aptikti dublikatus ir panašius fragmentus, taip pat pritaikyti jiems pertvarkymą.

„IntelliJ IDEA“ analizuoja jūsų kodą, kai jis įkeliamas ir kai rašote. Ji siūlo patikrinimus, kad būtų nurodytos galimos problemos, ir, jei norite, greito aptiktos problemos sprendimo būdų sąrašas.

Kūrėjo ergonomika

„IntelliJ“ sukūrė IDEA su kūrėjo kūrybiniu srautu -dar žinomas „buvimas zonoje“ - turėkite omenyje. 1 paveiksle kairėje parodytas projekto įrankio langas dingsta iš vaizdo paprastu pelės paspaudimu, kad galėtumėte sutelkti dėmesį į kodo rengyklę. Viskas, ką norite padaryti redaguodami, turi spartųjį klavišą, įskaitant iškylančiajame lange iškeltas simbolių apibrėžtis. Nors sparčiųjų klavišų išmokimas reikalauja laiko ir praktikos, galiausiai jie tampa antrąja prigimtimi. Net nežinodamas nuorodų, kūrėjas gali išmokti lengvai ir greitai naudotis IDEA.

IDEA derintuvo dizainas yra ypač gražus. Kintamosios vertės rodomos tiesiai redaktoriaus lange, šalia atitinkamo šaltinio kodo. Pasikeitus kintamojo būsenai, keičiasi ir jo paryškinimo spalva.

Integruoti kūrėjo įrankiai

„IntelliJ IDEA“ suteikia vieningą sąsają daugumai pagrindinių versijų valdymo sistemų, įskaitant „Git“, SVN, „Mercurial“, CVS, „Perforce“ ir TFS. Visą pakeitimų valdymą galite atlikti tiesiogiai IDE. Testuodamas IDEA norėjau, kad paskutinis pakeitimas šaltinio kodo blokas rodomas redaktoriaus lange kaip anotacija (kaip ir „Visual Studio“). Kaip paaiškėjo, tam yra papildinys.

IDEA taip pat integruoja kūrimo įrankius, bandomuosius bėgiklius ir aprėpties įrankius, taip pat įmontuotą terminalo langą. „IntelliJ“ neturi savo profilio, tačiau per papildinius palaiko kelis trečiųjų šalių profilius. Tai apima „YourKit“, kurį sukūrė buvęs „IntelliJ“ pagrindinis kūrėjas, ir „VisualVM“, kuri yra perpakuota „NetBeans“ profilio versija.

Derinimas su „Java“ gali būti kančia, kai paslaptingi dalykai vyksta klasėse, kuriose neturite šaltinio kodo. IDEA ateina su dekompiliatoriumi tais atvejais.

„Java“ serverio programavimas dažnai apima darbą su duomenų bazėmis, todėl „IDEA Ultimate“ apima SQL ir NoSQL duomenų bazių įrankius. Jei jums reikia daugiau, skirta SQL IDE („DataGrip“) yra visų produktų prenumeratos dalis, kuri yra tik šiek tiek brangesnė už „IDEA Ultimate“ prenumeratą.

„IntelliJ IDEA“ palaiko visus pagrindinius JVM programų serverius ir gali įdiegti serverius bei juos derinti, ištaisydamas pagrindinį „Enterprise Java“ kūrėjų skausmą. IDEA taip pat palaiko „Docker“ per įskiepį, kuris prideda „Docker“ įrankio langą. (Kalbant apie papildinius, „IntelliJ“ jų turi daug.)

„Polyglot“ programavimas

IDEA išplėtė „Spring“, „Java EE“, „Grails“, „Play“, „Android“, „GWT“, „Vaadin“, „Thymeleaf“, „Android“, „React“, „AngularJS“ ir kitų sistemų kodavimo pagalbą. Ne visi tai yra „Java“ sistemos. Be „Java“, IDEA supranta daugelį kitų kalbų, įskaitant „Groovy“, „Kotlin“, „Scala“, „JavaScript“, „TypeScript“ ir SQL. Jei jums reikia daugiau, šiuo metu yra šimtai „IntelliJ“ kalbos papildinių, įskaitant „R“, „Elm“, „Go“, „Rust“ ir „D“ papildinius.

Užtemimo IDE

„Eclipse“, ilgą laiką populiariausia „Java IDE“, yra nemokama ir atviro kodo programa, daugiausia parašyta „Java“, nors jos įskiepių architektūra leidžia „Eclipse“ išplėsti kitomis kalbomis. „Eclipse“ atsirado 2001 m. Kaip IBM projektas, pakeičiantis „Smalltalk“ pagrįstą „IBM Visual Age“ IDE šeimą nešiojamuoju „Java“ pagrindu sukurtu IDE. Projekto tikslas buvo užtemdyti „Microsoft Visual Studio“, taigi ir pavadinimą.

„Java“ perkeliamumas padeda „Eclipse“ būti kelioms platformoms: „Eclipse“ veikia „Linux“, „Mac OS X“, „Solaris“ ir „Windows“. „Java Standard Widget Toolkit“ (SWT) yra bent iš dalies atsakingas už „Eclipse“ išvaizdą ir gerą savijautą. Taip pat „Eclipse“ savo veikimą (arba, kai kurie sako, jo trūkumą) turi skolinti JVM. „Eclipse“ turi gerą vardą, kad veikia lėtai, o tai grįžta prie senesnės aparatūros ir senesnių JVM. Net ir šiandien jis gali jaustis lėtas, ypač kai jis atnaujina save fone su daugeliu įdiegtų papildinių.

Dalis „Eclipse“ vykdomų pridėtinių išlaidų yra jos integruotasis kompiliatorius, kuris veikia kaskart įkėlus failą ir atnaujinant kodą. Tai yra labai geras dalykas ir pateikia klaidų rodiklius, kai rašote.

Nepriklausomai nuo komponavimo sistemos, „Eclipse Java“ projektas taip pat palaiko savo turinio modelį, kuriame pateikiama informacija apie „Java“ elementų tipų hierarchiją, nuorodas ir deklaracijas. Tai taip pat yra geras dalykas ir įgalina keletą redagavimo ir naršymo padėjėjų bei kontūro rodinį.

Dabartinė „Eclipse“ versija yra 2018–09. Įdiegiau „Eclipse IDE“, skirtą „Java EE Developers“, tačiau yra daugybė kitų diegimo paketų, įskaitant galimybę įdiegti minimalų „Eclipse SDK“ ir pridėti papildinius tik prireikus. Paskutinis variantas nėra skirtas silpnai širdžiai: nesunku įvesti konfliktų tarp įskiepių, kurių iš tikrųjų nebuvosakyk jie buvo nesuderinami.

Martinas Helleris

Išplečiamų įrankių palaikymas

Įskiepių ekosistema yra viena iš „Eclipse“ stipriųjų pusių, taip pat kartais sukelia nusivylimą. „Eclipse“ prekyvietėje šiuo metu yra daugiau nei 1600 sprendimų, o bendruomenės prisidedami papildiniai gali veikti arba neveikti taip, kaip skelbiama. Vis dėlto „Eclipse“ papildiniuose palaikoma daugiau nei 100 programavimo kalbų ir beveik 200 programų kūrimo sistemų.

Taip pat palaikoma dauguma „Java“ serverių: jei „Eclipse“ nustatysite naują serverio ryšį, pateksite į tiekėjų aplankų sąrašą, po kuriuo rasite apie 30 programų serverių, įskaitant devynias „Apache Tomcat“ versijas. Komerciniai pardavėjai linkę sujungti savo pasiūlymus: pavyzdžiui, „Red Hat JBoss Middleware“ yra tik vienas elementas, įskaitant „WildFly“ ir „EAP Server Tools“, taip pat „JBoss AS“.

Redagavimas, naršymas, pertvarkymas ir derinimas

Pirmoji kūrėjo patirtis su „Eclipse“ gali kelti nerimą, netgi gluminti. Taip yra todėl, kad jūsų pirmoji užduotis yra prisitaikyti prie koncepcinės „Eclipse“ darbo vietų, perspektyvų ir rodinių architektūros, kurios funkcijas lemia tai, kokius papildinius įdiegėte. Pavyzdžiui, kurdami „Java“ serverį, greičiausiai naudosite „Java“, „Java EE“ ir „Java“ naršymo perspektyvas; paketų naršyklės rodinys; derinimo perspektyva; komanda sinchronizuoja perspektyvą; interneto įrankiai; duomenų bazės kūrimo perspektyva; ir duomenų bazės derinimo perspektyvą. Praktiškai visi šie dalykai pradės būti prasmingi, kai atidarysite jums reikalingas nuomones.

„Eclipse“ dažnai yra keli būdai atlikti tam tikrą užduotį. Pvz., Galite naršyti kodą naudodami projekto naršyklę ir (arba) „Java“ naršymo perspektyvą; kurį pasirenkate, yra skonio ir patirties reikalas.

„Java“ paieškos palaikymas leidžia jums rasti „Java“ paketų deklaracijas, nuorodas ir atvejus, tipus, metodus ir laukus. Taip pat galite naudoti „Greitąją prieigą“ ieškodami ir naudodami greituosius rodinius, kad pasirodytumėte, pvz., Klasės kontūrai.

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