Programmēšana

Java IDE izvēle

Atjaunināts: 2018. gada decembrī.

Katram Java izstrādātājam ir nepieciešams programmēšanas redaktors vai IDE, kas var palīdzēt Java rakstīšanā un klases bibliotēku un ietvaru izmantošanā. Izlemšana, kurš redaktors vai IDE jums vislabāk piestāvēs, ir atkarīgs no vairākām lietām, tostarp izstrādājamo projektu rakstura, jūsu lomas organizācijā, izstrādes komandas izmantotā procesa un no jūsu kā programmētāja līmeņa un prasmēm. Papildu apsvērumi ir tas, vai komanda ir standartizējusi rīkus, un jūsu personīgās izvēles.

Trīs IDE, kas visbiežāk tiek izvēlēti servera puses Java izstrādei, ir IntelliJ IDEA, Eclipse un NetBeans. Tomēr šīs nav vienīgās izvēles iespējas, un šajā pārskatā būs iekļauti arī daži vieglie IDE.

Šajā kopsavilkumā es Mac instalēju jaunas IntelliJ IDEA Ultimate 2018.3, Eclipse IDE 2018‑09 Java EE izstrādātājiem un Apache NetBeans (inkubācijas) IDE 9 instalācijas. Es arī pārbaudīju vairākus atvērtā koda Java projektus, lai es varētu pārbaudīt visus IDE vienā un tajā pašā projektā.

Par šo atjauninājumu

Šis IDE pārskats pirmo reizi tika publicēts 2016. gada septembrī un tika atjaunināts 2018. gada decembrī. Šajos starplaikos Java valoda, API, JVM ekosistēma un dažas sistēmas ir ievērojami attīstījušās. Java EE 8 ieviesa vai atjaunināja daudzas Java tehnoloģiju specifikācijas, tostarp JSON-B (JavaScript Object Notation Binding), Java EE Security, Servlet 4.0 un JSF (JavaServer Faces) 2.3, lai izveidotu servera puses lietotāja saskarnes. Java EE 8 bija arī pēdējais Java uzņēmuma izlaidums no Oracle: Eclipse Foundation ir uzņēmies atbildību par tehnoloģijas pārvaldību, ko tā ir pārzīmējusi Jakarta EE. Tikmēr JUnit ir pārgājis uz 5. versiju, laužot integrācijas; IDEA un Eclipse abiem ir vietējais atbalsts JUnit 5, taču no šī rakstīšanas NetBeans nav.

Visām šīm izmaiņām vajadzētu būt daļai no jūsu IDE novērtējuma neatkarīgi no tā, vai tas paredzēts vispārīgai lietošanai vai konkrētam projektam.

NetBeans 10 papildina atbalstu JUnit 5 un JDK 11

NetBeans 10, kas izlaists 2019. gada janvārī, papildina atbalstu JDK 11 un JUnit 5.

Pamati: Kas jums nepieciešams no Java IDE

Jūs vismaz cerētu, ka jūsu IDE atbalsta Java 8 un / vai 11 (LTS versijas), Scala, Groovy, Kotlin un visas citas JVM valodas, kuras regulāri lietojat. Jūs arī vēlaties, lai tas atbalstītu lielākos lietojumprogrammu serverus un populārākās tīmekļa struktūras, tostarp Spring MVC, JSF, Struts, GWT, Play, Grails un Vaadin. Jūsu IDE jābūt saderīgam ar jebkādām būvēšanas un versiju kontroles sistēmām, kuras izmanto jūsu izstrādes komanda; Piemēri ir Apache Ant ar Ivy, Maven un Gradle kopā ar Git, SVN, CVS, Mercurial un Bazaar. Lai iegūtu papildu kredītu, jūsu IDE vajadzētu spēt apstrādāt jūsu kaudzes klienta un datu bāzes slāņus, atbalstot iegultos JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate un Java Persistence API.

Visbeidzot, jūs cerat, ka jūsu Java IDE ļauj jums viegli un žēlīgi rediģēt, veidot, atkļūdot un pārbaudīt savas sistēmas. Ideālā gadījumā jums būtu ne tikai saprātīga koda pabeigšana, bet arī pārstrādāšana un kodēšanas metrika. Ja atrodaties veikalā, kas veic testu balstītu izstrādi, vēlaties saņemt atbalstu savam testēšanas ietvaram un sīkumiem. Ja jūsu grupa izmanto biļešu sistēmu un CI / CD, vislabāk ir, ja jūsu IDE var izveidot savienojumu ar tām. Ja jums ir jāizvieto konteineri un mākoņi un jācenšas tos atkļūdot, jūsu IDE tam vajadzētu palīdzēt.

Ņemot vērā šo pamatu, ņemsim vērā pretendentus.

IntelliJ IDEJA

IntelliJ IDEA, kas ir galvenā Java IDE gan funkciju, gan cenas ziņā, ir divos izdevumos: bezmaksas Kopienas izdevumā un maksas Ultimate izdevumā, kuram ir papildu funkcijas.

Kopienas izdevums ir paredzēts JVM un Android izstrādei. Tas atbalsta Java, Kotlin, Groovy un Scala; Android; Maven, Gradle un SBT; un Git, SVN, Mercurial, CVS un TFS.

Ultimate izdevums, kas paredzēts tīmekļa un uzņēmuma attīstībai, atbalsta Perforce papildus citām versiju vadības sistēmām; atbalsta JavaScript un TypeScript; atbalsta Java EE, Spring, GWT, Vaadin, Play, Grails un citus ietvarus; un ietver datu bāzes rīkus un SQL atbalstu.

Ideja ir tāda, ka komerciālais (Ultimate) izdevums nopelnīs vietu profesionāļa darbvirsmā, attaisnojot apmaksātu abonementu ar paaugstinātu programmētāja produktivitāti. Ja kā Java izstrādātājs jūs nopelnāt 50–100 USD gadā, nav nepieciešams daudz palielināt produktivitāti, lai ātri iegūtu IA 500 USD biznesa IDEA abonementā gadā. Turpmākajos gados cena samazinās uzņēmumiem, jaunajiem uzņēmumiem un privātpersonām tā ir daudz zemāka, un tā ir bezmaksas studentiem, skolotājiem, "Java čempioniem" un atvērtā koda izstrādātājiem.

IntelliJ piedāvā IDEA padziļinātu ieskatu jūsu kodā, izstrādātāja ergonomikā, iebūvētos izstrādātāja rīkos un daudzlogu programmēšanas pieredzi. Apskatīsim, ko šīs funkcijas nozīmē un kā tās var jums palīdzēt.

Martins Hellers

Dziļš ieskats jūsu kodā

Java redaktoriem ir dota sintakses krāsošana un vienkārša koda pabeigšana. IDEA pārsniedz to, lai nodrošinātu "gudru pabeigšanu", kas nozīmē, ka tā var uznirst visatbilstošāko simbolu sarakstu, kas piemērojami pašreizējā kontekstā. Tie ir sakārtoti pēc jūsu personīgā lietošanas biežuma. "Ķēdes pabeigšana" ir dziļāka un parāda piemērojamo simbolu sarakstupieejama ar metodēm vai getteriem pašreizējā kontekstā. IDEA pabeidz arī statiskos dalībniekus vai konstantes, automātiski pievienojot visus nepieciešamos importēšanas paziņojumus. Visos koda papildinājumos IDEA mēģina uzminēt izpildlaika simbolu tipu, precizēt savas izvēles no tā un pēc vajadzības pievienot klases castus.

Java kods kā virknes bieži satur citas valodas. IDEA var ievadīt SQL, XPath, HTML, CSS un / vai JavaScript koda fragmentus Java virkņu literālos. Šajā ziņā tas var pārveidot kodu vairākās valodās; piemēram, ja JPA paziņojumā pārdēvējat klasi, IDEA atjauninās atbilstošo entītijas klasi un JPA izteiksmes.

Pārstrādājot koda fragmentu, viena no lietām, ko parasti vēlaties darīt, ir arī refaktorēt visus šī koda dublikātus. IDEA Ultimate var noteikt dublikātus un līdzīgus fragmentus un piemērot tiem arī pārstrukturēšanu.

IntelliJ IDEA analizē jūsu kodu, kad tas tiek ielādēts un kad rakstāt. Tas piedāvā pārbaudes, lai norādītu uz iespējamām problēmām, un, ja vēlaties, sarakstu ar ātrajiem konstatētās problēmas novēršanas veidiem.

Izstrādātāja ergonomika

IntelliJ izstrādāja IDEA ar izstrādātāja radošo plūsmu -aka "atrašanās zonā" - prātā. Projekta rīka logs, kas parādīts 1. attēlā pa kreisi, pazūd no skata ar vienkāršu peles klikšķi, lai jūs varētu koncentrēties uz kodu redaktoru. Visam, ko vēlaties darīt rediģēšanas laikā, ir īsinājumtaustiņš, tostarp uznirstošajā logā tiek parādīta simbolu definīcija. Kaut arī īsinājumtaustiņu apguve prasa laiku un praksi, galu galā tie kļūst par otro dabu. Pat nezinot saīsnes, izstrādātājs var iemācīties viegli un ātri izmantot IDEA.

Īpaši jauks ir IDEA atkļūdotāja dizains. Mainīgās vērtības tiek parādītas tieši redaktora logā blakus attiecīgajam avota kodam. Mainoties mainīgā stāvoklim, mainās arī tā izceltā krāsa.

Iebūvēti izstrādātāja rīki

IntelliJ IDEA nodrošina vienotu saskarni lielākajai daļai galveno versiju vadības sistēmu, tostarp Git, SVN, Mercurial, CVS, Perforce un TFS. Visu izmaiņu pārvaldību varat veikt tieši IDE. Pārbaudot IDEA, es vēlējos, lai pēdējās izmaiņas avota koda bloks redaktora logā parādīsies kā anotācija (tāpat kā Visual Studio). Kā izrādās, tam ir spraudnis.

IDEA integrē arī būvēšanas rīkus, testa skrējējus un pārklājuma rīkus, kā arī iebūvētu termināļa logu. IntelliJ nav sava profilētāja, taču tas atbalsta vairākus trešo pušu profilētājus, izmantojot spraudņus. To skaitā ir YourKit, kuru izveidojis bijušais IntelliJ vadošais izstrādātājs, un VisualVM, kas ir NetBeans profilētāja pārpakota versija.

Java atkļūdošana var sagādāt sāpes, ja klasēs, kurām nav avota koda, notiek noslēpumainas lietas. IDEA nāk ar dekompilatoru šiem gadījumiem.

Java serveru programmēšana bieži ietver darbu ar datu bāzēm, tāpēc IDEA Ultimate ietver SQL un NoSQL datu bāzes rīkus. Ja jums nepieciešams vairāk, īpaša SQL IDE (DataGrip) ir pieejama kā daļa no visu produktu abonementa, kas ir tikai nedaudz dārgāks nekā IDEA Ultimate abonements.

IntelliJ IDEA atbalsta visus galvenos JVM lietojumprogrammu serverus, un tos var izvietot serveros un atkļūdot tajos, novēršot galveno problēmu Java Java izstrādātājiem. IDEA atbalsta arī Docker, izmantojot spraudni, kas pievieno Docker rīka logu. (Runājot par spraudņiem, IntelliJ to ir daudz.)

Poliglotu programmēšana

IDEA ir paplašinājusi kodēšanas palīdzību Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS un citiem ietvariem. Ne visi no tiem ir Java ietvari. Papildus Java, IDEA saprot daudzas citas valodas, tostarp Groovy, Kotlin, Scala, JavaScript, TypeScript un SQL. Ja jums nepieciešams vairāk, pašlaik ir simtiem IntelliJ valodas spraudņu, tostarp spraudņi R, Elm, Go, Rust un D.

Aptumsuma IDE

Eclipse, kas ir vispopulārākais Java IDE, ir bezmaksas un atvērts avots, un tas galvenokārt tiek rakstīts Java valodā, lai gan tā spraudņu arhitektūra ļauj Eclipse paplašināt citās valodās. Eclipse radās 2001. gadā kā IBM projekts, lai aizstātu Smalltalk balstītu IBM Visual Age IDE saimi ar pārnēsājamu Java bāzes IDE. Projekta mērķis bija aptumšot Microsoft Visual Studio, tāpēc arī nosaukums.

Java pārnesamība palīdz Eclipse kļūt par starpplatformu: Eclipse darbojas uz Linux, Mac OS X, Solaris un Windows. Java Standard Widget Toolkit (SWT) ir vismaz daļēji atbildīgs par Eclipse izskatu un izjūtu, labu vai sliktu. Tāpat Eclipse parādā savu sniegumu (vai, kā saka daži, tā trūkumu) JVM. Eclipse ir slavena ar to, ka darbojas lēnām, un tas atgriežas pie vecākas aparatūras un vecākiem JVM. Pat šodien tas var justies lēns, it īpaši, ja tas atjaunina sevi fonā ar daudziem instalētiem spraudņiem.

Daļa no Eclipse notiekošajām pieskaitāmajām izmaksām ir tā iebūvētais inkrementālais kompilators, kas darbojas ikreiz, kad tiek ielādēts fails un kad atjaunināt kodu. Tas kopumā ir ļoti laba lieta un rakstīšanas laikā nodrošina kļūdu indikatorus.

Neatkarīgi no būvēšanas sistēmas, Eclipse Java projekts uztur arī tā satura modeli, kas ietver informāciju par Java elementu tipu hierarhiju, atsaucēm un deklarācijām. Tas ir līdzsvarā arī laba lieta, un tā nodrošina vairākus rediģēšanas un navigācijas asistentus, kā arī kontūras skatu.

Pašreizējā Eclipse versija ir 2018. – 2009. Es instalēju Eclipse IDE Java EE izstrādātājiem, taču ir daudz citu instalācijas pakotņu, tostarp iespēja instalēt minimālo Eclipse SDK un pievienot spraudņus tikai pēc nepieciešamības. Pēdējā iespēja nav domāta vājš sirdij: nav grūti ieviest konfliktus starp spraudņiem, kas patiesībā nebijasaki tie nebija saderīgi.

Martins Hellers

Paplašināmu rīku atbalsts

Spraudņa ekosistēma ir viena no Eclipse priekšrocībām, kā arī neregulāra neapmierinātība. Eclipse tirgū pašlaik ir vairāk nekā 1600 risinājumu, un kopienas atbalstītie spraudņi var darboties vai nedarboties atbilstoši reklamētajam. Tomēr Eclipse spraudņi ietver atbalstu vairāk nekā 100 programmēšanas valodām un gandrīz 200 lietojumprogrammu izstrādes ietvariem.

Tiek atbalstīta arī lielākā daļa Java serveru: ja Eclipse definēsit jaunu servera savienojumu, jūs nonāksit pie piegādātāju mapju saraksta, zem kura atradīsit apmēram 30 lietojumprogrammu serverus, tostarp deviņas Apache Tomcat versijas. Komerciālie pārdevēji mēdz apvienot savus piedāvājumus: piemēram, Red Hat JBoss starpprogrammatūrā ir tikai viens vienums, kurā ietilpst WildFly un EAP Server Tools, kā arī JBoss AS.

Rediģēšana, pārlūkošana, atjaunošana un atkļūdošana

Izstrādātāja pirmā pieredze ar Eclipse var būt satraucoša, pat mulsinoša. Tas ir tāpēc, ka jūsu pirmais uzdevums ir pielāgoties Eclipse konceptuālajai darbvietu, perspektīvu un skatu arhitektūrai, kuras funkcijas nosaka instalētie spraudņi. Piemēram, Java serveru izstrādei, visticamāk, izmantosiet Java, Java EE un Java pārlūkošanas perspektīvas; pakešu izpētes skats; atkļūdošanas perspektīva; komandas sinhronizācijas perspektīva; tīmekļa rīki; datu bāzes izstrādes perspektīva; un datu bāzes atkļūdošanas perspektīva. Praksē visiem tiem būs jēga, tiklīdz atvērsit vajadzīgos skatus.

Eclipse laikā doto uzdevumu bieži var veikt vairāk nekā vienā veidā. Piemēram, jūs varat pārlūkot kodu, izmantojot projekta pārlūku un / vai Java pārlūkošanas perspektīvu; kuru izvēlaties, ir gaumes un pieredzes jautājums.

Java meklēšanas atbalsts ļauj atrast Java pakotņu deklarācijas, atsauces un gadījumus, veidus, metodes un laukus. Varat arī izmantot ātro piekļuvi meklēšanai un ātros skatus, lai parādītu tādas lietas kā klases kontūras.

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