Arenduskeskkondade võrdlus. Toimetaja või IDE? Järjekordne analüüsikatse. Ehitamine, silumine ja profileerimine

Pythonis IDLE või Python Shelli abil kirjutamine on lihtsate asjade puhul üsna mugav, kuid projektide mahu kasvades muutub programmeerimine piin. IDE või isegi hea koodiredaktori kasutamine võib teie elu palju lihtsamaks muuta. Kuid küsimus on – mida valida?

Selles artiklis käsitleme põhitööriistu, mis võimaldavad teil Pythonis kirjutada. Me ei vali teie eest parim variant, kuid vaatleme iga plusse ja miinuseid ning aitame teil teha teadliku otsuse.

Mis on IDE ja koodiredaktor?

IDE (või integreeritud arenduskeskkond) on tarkvara arendamiseks loodud programm. Nagu nimigi ütleb, koondab IDE mitu spetsiaalselt arendamiseks mõeldud tööriista. Need tööriistad sisaldavad tavaliselt koodiga töötamiseks mõeldud redaktorit (nt süntaksi esiletõstmine ja automaatne täitmine); ehitus-, käitus- ja silumistööriistad; ja mingi versioonikontrollisüsteem.

Enamik IDE-sid toetab mitut programmeerimiskeelt ja neil on palju funktsioone, mis tähendab, et need võivad olla suured, nende allalaadimine ja installimine võtab kaua aega ning nende õigeks kasutamiseks on vaja laialdasi teadmisi.

Teisest küljest on olemas koodiredaktorid, mis on süntaksi esiletõstmise ja koodi vormindamise võimalustega tekstiredaktorid. Enamik häid koodiredaktoreid saab koodi käivitada ja silurit kasutada ning parimad saavad isegi versioonihaldussüsteemidega suhelda. Võrreldes IDE-ga on hea koodiredaktor tavaliselt kergem ja kiirem, kuid sageli väiksema funktsionaalsuse hinnaga.

Nõuded heale arenduskeskkonnale

Mida me siis arenduskeskkonnast vajame? Erinevate keskkondade funktsioonide komplekt võib erineda, kuid programmeerimist lihtsustavad põhilised asjad:

  • Failide salvestamine. Kui IDE või redaktor ei anna teile võimalust oma tööd salvestada ja hiljem avada kõik samas olekus, milles see oli selle sulgemisel, siis pole see niivõrd IDE;
  • Koodi käivitamine keskkonnast. Sama asi, kui peate koodi käivitamiseks keskkonnast väljuma, pole see midagi muud kui lihtne tekstiredaktor;
  • Silumise tugi. Võimalus koodist läbi astuda on põhifunktsioon kõik IDE-d ja enamik häid koodiredaktoreid;
  • Süntaksi esiletõstmine. Võimalus kiiresti leida märksõnad, muutujad jne muudavad koodi lugemise ja mõistmise palju lihtsamaks;
  • Automaatne koodi vormindamine. Iga redaktor või IDE, mis tegelikult on üks, tunneb mõne aja pärast või väljenduse jaoks ära kooloni ja lisab järgmise rea automaatselt taande.

Muidugi on palju muid funktsioone, millest ei tahaks ilma jääda, kuid ülaltoodud on põhifunktsioonid, mis ühel heal arenduskeskkonnal olema peaksid.

Vaatame nüüd mõnda tööriista Üldine otstarve, mida saab kasutada Pythoni arendamiseks.

Pythoni toega toimetajad ja IDE-d

Eclipse + PyDev

Kui olete avatud lähtekoodiga kogukonnale lähedal, olete ilmselt kuulnud Eclipse'ist. Linuxi, Windowsi ja OS X jaoks saadaval olev Eclipse on de facto avatud lähtekoodiga IDE Java arendamiseks. Seal on palju laiendusi ja lisasid, mis muudavad Eclipse'i mitmesuguste ülesannete jaoks kasulikuks.

Üks selline laiendus on PyDev, mis pakub interaktiivset Pythoni konsooli ning silumis- ja koodilõpetamisvõimalusi. Selle installimine on lihtne: käivitage Eclipse, valige Abi → Eclipse Marketplace ja otsige PyDev. Klõpsake nuppu Installi ja vajadusel taaskäivitage Eclipse.

Eelised: Kui teil oli Eclipse juba installitud, on PyDevi installimine kiire ja sujuv. U kogenud kasutaja Eclipse'il pole selle laienduse õppimisega probleeme.

Puudused: Kui te alles hakkate Pythoni või üldiselt arendustööd õppima, võib Eclipse olla tohutu koorem. Pidage meeles, et me ütlesime, et IDE-d on suured ja vajavad rohkem kogemusi täielik kasutamine? Seda kõike võib öelda Eclipse’i kohta.

Ülev tekst

Tüüp: koodiredaktor
Veebisait: http://www.sublimetext.com

Sublime Text, mille on kirjutanud Google'i insener, kes unistab paremast tekstiredaktorist, on väga populaarne koodiredaktor. Kõikidel platvormidel saadaval oleval Sublime Textil on Pythoni koodi redigeerimise sisseehitatud tugi, samuti rikkalik laienduste komplekt, mida nimetatakse pakettideks, mis laiendavad süntaksi ja redigeerimisvõimalusi.

Täiendava Pythoni paketi installimine võib olla keeruline – kõik Sublime Text paketid on kirjutatud Pythonis, nii et kogukonnapakettide installimine võib sageli nõuda Pythoni skripti käivitamist otse redaktoris.

Eelised:y Ülev tekst suur hulk fännid. Koodiredaktorina on Sublime Text kiire, kerge ja hästi toetatud.

Puudused: Sublime Text ei ole tasuta, kuigi saate prooviperioodi kasutada nii kaua, kui soovite. Laienduste installimine võib muutuda teiseks ülesandeks. Lisaks ei toeta redaktor silumist ega koodi käivitamist.

Atom

Tüüp: koodiredaktor
Veebisait: https://atom.io/

Kõigil platvormidel saadaval olevat Atomit on nimetatud "21. sajandi häkitavaks tekstiredaktoriks". Atom on kirjutatud kasutades Electronit – raamistikku platvormideüleste töölauarakenduste loomiseks JavaScripti, HTML-i ja CSS-i abil – ning sellel on palju laiendusi. Pythoni tuge saab lubada ka laienduse abil, mille saab installida otse Atomi.

Eelised: tänu Electronile toetatakse kõigil platvormidel. Atom on kerge ja kiiresti allalaaditav ja laaditav.

Puudused: Ehitamise ja silumise tugi ei ole sisse ehitatud, vaid lisatakse laienduste kaudu. Kuna Atom on kirjutatud Electroni abil, töötab see alati JavaScripti protsessina, mitte kui a omarakendus.

GNU Emacs

Tüüp: koodiredaktor
Veebisait: https://www.gnu.org/software/emacs/

Ammu enne iPhone-Androidi sõda, enne Linuxi-Windowsi sõda, isegi enne PC-Maci sõda toimus toimetajate sõda, mille üheks võitlejaks oli GNU Emacs. GNU Emacs, mida kirjeldatakse kui "laiendatavat, kohandatavat, isedokumenteeruvat tekstiredaktorit", on eksisteerinud peaaegu sama kaua kui UNIX ja on kogunud märkimisväärset populaarsust.

Igal platvormil (ühel või teisel kujul) tasuta saadaval olev GNU Emacs kasutab kohandamiseks Lispi keelt. Muidugi on Pythoni jaoks ka kohandamisskripte.

Eelised: Olete Emacsiga tuttav, kasutate Emacsi, armastate Emacsit. Lisp on teie teine ​​keel ja teate, et saate sellega kõike teha.

Puudused: kohandamine hõlmab Lisp-koodi sisestamist (või kopeerimist ja kleepimist). erinevaid skripte. Kui neid pole, peate võib-olla selle välja selgitamiseks õppima Lispi.

Vi/Vim

Tüüp: koodiredaktor
Veebisait: https://www.vim.org/

Toimetajasõja teisel poolel on VI/VIM. Vaikimisi saadaval peaaegu kõigis UNIX-süsteemides ja Mac OS X-is, VI on võitnud sama palju fänne. VI ja VIM on modaalsed redaktorid, mis eraldavad faili vaatamise selle redigeerimisest. VIM sisaldab kõike, mis VI-l on, ning mõningaid täiustusi, näiteks laienduste kättesaadavust. Erinevat tüüpi Pythoni ülesannete jaoks saate kasutada VIMScripte.

Eelised: Sa oled VI-ga tuttav, kasutad VI-d, armastad VI-d. VIMScriptid ei hirmuta teid ja teate, kuidas neid oma tahte järgi painutada.

Puudused: Nagu ka Emacsi puhul, pole Pythoni arendusvõimaluste lisamiseks skriptide otsimine ega kirjutamine väga mugav ja teil pole aimugi, kuidas modaalredaktor üldse peaks töötama.

Visual Studio

Eelised: Nagu ka Eclipse'i puhul, kui teil on Visual Studio juba muuks otstarbeks installitud, pole PTVS-i installimine probleem.

Puudused: Nagu ka Eclipse'i puhul, on Visual Studio natuke palju kasulikum, kui vajate ainult Pythonit. Lisaks, kui kasutate Linuxit, siis olete hädas - selle platvormi jaoks pole Visual Studiot.

Visual Studio kood

Tüüp: koodiredaktor
Veebisait: https://code.visualstudio.com/
Pythoni tööriistad: https://marketplace.visualstudio.com/items?itemName=ms-python.python

Visual Studio Code (mitte segi ajada Visual Studioga) on täisfunktsionaalne koodiredaktor, mis on saadaval opsüsteemides Windows, Linux ja Mac OS X. VS Code on laiendatav avatud lähtekoodiga redaktor, mida saab kohandada iga ülesande jaoks. Nagu Atom, on ka VS Code üles ehitatud Electronile, seega on sellel samad eelised ja puudused.

Pythoni toe lisamine VS Code'ile ei saaks olla lihtsam – otsige Marketplace'ist "Python", klõpsake "Install" ja vajadusel taaskäivitage redaktor. VS-kood tuvastab automaatselt teie Pythoni tõlgi ja installitud teegid.

Eelised: Tänu Electronile on VS Code saadaval kõigil hämmastava funktsionaalsusega platvormidel. Lisaks võib lähtekoodi leida avalikult.

Puudused: Kuna Electron on kaasatud, tähendab see, et VS-kood ei ole kohalik rakendus. Lisaks takistab mõne inimese religioon neil Microsofti tooteid kasutamast.

Pythoni jaoks loodud toimetajad ja IDE-d

PyCharm

Üks parimaid täisfunktsionaalsusega IDE-sid, mis on spetsiaalselt Pythoni jaoks loodud, on PyCharm. Saadaval on nii tasuta avatud lähtekoodiga (Community) kui ka tasulised (professionaalsed) IDE valikud. PyCharm on saadaval opsüsteemides Windows, Mac OS X ja Linux.

PyCharm toetab Pythoni arendust juba karbist välja – avage uus fail ja alustage koodi kirjutamist. Saate koodi käivitada ja siluda otse PyCharmist. Lisaks on IDE-l projektide ja versioonikontrolli tugi.

Eelised: See on Pythoni arenduskeskkond, mis toetab kõike ja on hea kogukond. Selles saate Pythoni koodi redigeerida, käivitada ja siluda.

Puudused: PyCharmi laadimine võib olla aeglane ja vaikesätteid tuleb olemasolevate projektide jaoks kohandada.

Spyder

Spyder on Pythoni jaoks mõeldud avatud lähtekoodiga IDE, mis on optimeeritud andmeteadlastele. Spyder on komplektis Anaconda paketihalduriga, seega on võimalik, et see on juba installitud.

Spyderi puhul on huvitav see sihtgrupp on Pythonit kasutavad andmeteadlased. Näiteks töötab Spyder hästi selliste andmeteaduslike raamatukogudega nagu SciPy, NumPy ja Matplotlib.

Spyderil on funktsionaalsus, mida võite oodata standardselt IDE-lt, näiteks koodiredaktor koos süntaksi esiletõstmise, koodi lõpetamise ja isegi sisseehitatud dokumentatsioonibrauseriga.

Spyderi eripäraks on muutuva uurija olemasolu. See võimaldab teil vaadata muutujate väärtusi tabeli kujul otse IDE-s. Integratsioon IPythoni/Jupyteriga toimib samuti hästi.

Võime öelda Spyderi kohta, et see on rohkem "maalähedane" kui teised IDE-d. Seda võib vaadelda pigem konkreetse eesmärgi jaoks mõeldud tööriistana kui peamise arenduskeskkonnana. Selle suurepärane on see, et see on tasuta, avatud lähtekoodiga ja saadaval Windowsis, macOS-is ja Linuxis.

Eelised: olete andmeteadlane, kes kasutab Anacondat.

Puudused: Kogenumad Pythoni arendajad võivad leida, et Spyder pole igapäevaseks tööks piisavalt funktsioonirikas ja valivad funktsioonirikkama IDE või redaktori.

Thonny

Thonnyt kutsutakse algajatele mõeldud IDE-ks. Eesti Tartu Ülikooli Informaatika Instituudi poolt kirjutatud ja hooldatud Thonny on saadaval kõigil suurematel platvormidel.

Vaikimisi installib Tonny kaasasoleva Pythoni versiooniga, nii et te ei pea midagi muud installima. Kogenud kasutajad peavad võib-olla seda sätet muutma, et IDE leiaks ja kasutaks juba installitud teeke.

Eelised: olete algaja Pythoni programmeerija ja vajate IDE-d, millega saate otse tegevusse hüpata.

Puudused: Kogenud kasutajatel pole piisavalt funktsioone ja nad asendavad sisseehitatud tõlgi. Lisaks võib IDE uudsuse tõttu tekkida probleeme, mida ei saa lahendada. Sel hetkel Ei.

Millise siis valida?

  • Algavad Pythonistid peaksid valima midagi, millel on kõige vähem kohandamisvõimalusi. Mida vähem takistusi, seda parem;
  • Kui kasutate juba mõnda redaktorit muude ülesannete jaoks, siis vaadake koodiredaktoreid;
  • Noh, kui teil on juba mõne teise keele jaoks IDE, proovige lisada sellele Pythoni tugi.

Kas olete ka veebist huvitatud? Seejärel vaadake meie sarnast veebiarendust.

"Mõtlesin pidevalt, millal saabub hetk, mil ma pean ütlema stiilis "Jah, ma olen sinuvanune!... jne." Ja nüüd... See hetk on suure tõenäosusega kätte jõudnud. kuidas Nagu teie hiljutisest postitusest näha, olete 16-aastane ja positsioneerite end noorena, kes on huvitatud programmeerimisest. Kas kavatsete Go’d kasutada suuremahulise veebiprojekti jaoks või te ei leia värviskeem Sublime Text 3 redaktori programmeerimise alustamiseks, kus üks teema on päevatöö ja teine ​​öötöö jaoks. Ja seda kõike selleks, et nagu sa sellesse postitusse panid, lähitulevikus uuesti - hakkaks kirjutama golangi keeles. Nüüd on IDE ise küsimärgi all.

Teie vanuses, õigemini, 12. eluaastast kuni umbes 16. eluaastani istusin ma kodus sumiseva ES-1840 arvuti taga, mis oli varustatud must-valge “Elektroonika” monitoriga. Seal, uskuge mind, polnud teemasid – ei öö ega päev. Rääkimata sellest, et mõiste “graafika” taandati lihtsate geomeetriliste kujundite kuvamise algoritmidele, praktiliselt nii-öelda “piksli kohta”. Puudusid uhked IDE-d ja Nortonit peeti kasutajaliidese ergonoomika tipuks Volkov komandör. Windows ja GUI? Ei, me pole kuulnud... Seal oli MS-DOS kogu oma hiilguses.

Aga, mu noor sõber, seal olid Borland TurboPascal, Borland C++, Microsoft GW-BASIC ja teised – selles mõttes kõige lihtsamad graafiline kest(kui sellist kontseptsiooni sealt üldse leida võiks), aga MS-DOS-ile vajalikud arenduskeskkonnad, tänu millele said paljud professionaaliks ilma ühegi õhtuse teemata. Ahjaa, unustasin mainida: tol ajal internetti ei olnud ja Google'i abil ei leidnud vastust küsimusele "Kuidas ma saan seda teha nii, et...". Ja raamatuid polnud. Ainult et V. E. Figurnovi raamat “IBM PC kasutajale” on meie põlvkonna pea ainus piibel ja kasinad skaneeringud dokumentatsioonist, mis eelnimetatud programmide ametlike versioonidega kaasas olid ja mida peeti kullast väärtuslikumaks.

Nagu ma teile juba kirjutasin, tean inimesi (ja paljud inimesed seda teevad), kes on juba aastaid plaaninud Java õppimist, kuid ei suuda otsustada, kumb on parem - Eclipse või NetBeans. Selle tulemusel jäid nad sinna, kus nad olid, olles õppinud absoluutselt mitte midagi. Ja kõik sellepärast, et nad lähenesid protsessile valest küljest, uskudes selgelt, et nende programmeerimise põhitõdedest arusaamatuse põhjus oli seotud ebamugava IDE kasutamisega.

Soovin teile edusamme ja seetõttu palun: ärge korrake kaotajate kogemust ja ärge astuge nendele teiste kulunud rehadele. Õppige ja alustage programmeerimist ning jätke teemad hilisemaks.

Tahaksin veel kord tõstatada selle üsna vastuolulise teema.

Alates programmeerimise alustamisest on see küsimus mind kummitanud ning arvukad teemad foorumites ja jaoturites pole selgust toonud. Lisaks tundub mulle, et mõningaid argumente mõlema poole jaoks ei esitatud. Ja neile, mis on antud, on prioriteedid valesti seatud ja kontekst puudub.

Selles artiklis püüan seda puudujääki parandada ja täpiga e-tähele veidi rohkem lisada.

Kutsun kõiki osalema ideaalse instrumendi otsingus.

Minu kogemusest

Alustasin programmeerimist DOS-is. Turbo Pascalil. Pealegi kasutasime millegipärast IDE-d siis ainult silumiseks ja siis üsna harva. Koodi kirjutamiseks eelistasid nad koos Volkov Commanderiga kasutada mõnda nimetut edit.exe-d ilma süntaksi esiletõstmiseta. Ja sellest piisas. Hiljem õppisin sama meetodit kasutades assemblerit ja osaliselt ka C++.

C++ õppimist jätkates läksin üle Windowsile ja vastavalt Visual Studiole – kus ma oleksin ilma selleta. Leidsin versioonid, kui ma ei eksi, 5-7. Pärast lihtne toimetaja see oli midagi – koodi genereerimine ja automaatne lõpetamine pakkusid rõõmu. Tõsi, kõike seda genereeritud headust oli peaaegu võimatu mõista, kuid see tundus ebaoluline.

Mõne aja pärast läksin üle Linuxile ja alustasin veebiarendust PHP-s. Siin õppisin samal ajal vimi ja kasutasin arendamiseks ZendStudiot. Mingil hetkel hakkasin kõige jaoks kasutama ainult Vimi - muutsin selle vastavalt paljudele õpetustele väikeseks ideeks. Siin kirjutasin oma esimese ratta-CMS-i PHP-s.

Märgin, et enne seda programmeerimine ei olnud minu põhitegevus. Jah, ma kirjutasin töö jaoks erinevaid väikeseid utiliite, tegin WordPressi teemasid, kuid minu põhitegevuseks oli administreerimine.

Niipea kui hakkasin erialaselt arenema, ei piisanud minu jaoks enam vimi võimalustest. Kõigepealt oli eclipse, siis netbeans, nüüd - phpstorm.

Viimased pool aastat olen kangelaslikult püüdnud meisterdada emacsi, sh. peamise töökeskkonnana.

Nii et mul on millega võrrelda ja loodan, et minu arvamus on piisavalt põhjendatud ja hästi põhjendatud.

IDE? IDE...

Mõtlesin kaua, mis kujul esitada osapoolte eeliste ja puuduste võrdlus. Nimekiri ei ole selleks eriti sobiv, sest... lihtne loetelu ei kajasta täielikult probleemi olemust. Redaktor ja IDE ei ole vastandid, vaid pigem tööriistad, mille rakendused mõnes valdkonnas kattuvad. Toimetaja eelised ei ole alati keskkonna miinused ja vastupidi. Sel põhjusel järgnevad teemal enam-vähem struktureeritud arutelud.

Alustan ehk ühest redaktori vaieldamatust eelisest – selle rikkalikest võimalustest tekstiga töötamiseks ja võimalusest teha kõike ilma käsi klaviatuurilt ära võtmata. Enamik keskkondi ei saa seda teha. Kuid kas sellised funktsioonid on koodi kirjutamisel vajalikud? Artiklit või kirja kirjutades on minu arvates mugav ühe klahvivajutusega 2 sõna vahetada või lõik lehe ülaossa viia. Kuid programmi tekstis on see enamikul juhtudel mõttetu ja nõuab ümberkujundamist. Ja selle eest tuleb maksta kas näpuga tapvate emacsi kiirklahvidega või mitte vähem ajumurdvate käskudega vimis. Kuid seda kõike tuleb meeles pidada! See, mida saab lihtsalt ühe hiireliigutusega lahendada, näiteks akna liigutamine või selle suuruse muutmine, muutub terveks ülesandeks. Jah, hiirega teksti valimine on veelgi lihtsam - täpsemalt, kiiremini ja te ei pea loendama, kui palju sõnu tekstis soovitud kohta on. Ei, programmeerija ka saab Need funktsioonid võivad olla kasulikud, kuid tõsiasi on see, et koodi muutmisele kuluv aeg on tühine, nii et aja jooksul pole sellest praktiliselt mingit kasu. Kuid instrumendi oluline komplikatsioon on ilmne.

Programmeerija veedab 80% oma ajast kirjutatud koodi mõistmiseks ja selle läbimiseks. Veelgi enam, liikudes täpselt koodi, mitte teksti järgi! Ja siin ei saa toimetaja tema abistamiseks absoluutselt mitte midagi teha. Meetodi parameetrite loendit kohtspikris ei kuvata, see ei võimalda teil minna meetodi definitsiooni ja süntaksit ei kontrollita. Ja IDE-d, isegi kõige lihtsamad, saavad sellega lihtsalt ja elegantselt hakkama. Veetsin hiljuti umbes 10 minutit, et otsida emacsi silversearcheri abil projektis meetodi definitsiooni. Selgus, et klass oli defineeritud teises moodulis jne. 10 minutit ühe hiireklõpsu asemel! Ma pole emacsis muidugi piisavalt kogenud, nii et olgu 5 minutit, kasvõi minut. Kuid suhe on endiselt muljetavaldav.

Ja siin näitab IDE oma võib-olla ainsat, kuid väga julget eelist - programmeerimiskeele parseri olemasolu. Keskkond "saab aru", et redigeerib koodi. Toimetaja - ei. See hõlmab automaatset lõpetamist, navigeerimist, süntaktilist esiletõstmist ja mõnikord semantilised vead. Tundub üleliigsus, tore pisiasi, järeleandmine. Kuid see muutub vajalikuks pärast seda, kui projekti maht ületab teatud piiri. Ja võttes arvesse kaasaegseid mahukaid raamistikke, tuleb see piir peaaegu kohe.

Jah, kümnekonna faili ja paari tuhande reaga projekti puhul ei avaldu see pluss kogu oma hiilguses. Redigeerija saab teha ka sama automaatse lõpetamise, kuid see ei eemalda kunagi mõttetuid valikuid. Ja kui projekti suurus läheneb 100 tuhandele reale ja koosneb tuhandetest failidest, arvestamata teeke, muutub soovitud nime valimine muutujate nimede, teiste klasside meetodite ja lihtsalt kommentaaride sõnade hulgast problemaatiliseks ( Mul oli see vimis, ma ei tea, võib-olla nad parandasid selle). Arukad vihjed välistavad vajaduse nimesid meeles pidada vajalikud funktsioonid ja nende parameetrid. Sageli on see lihtsalt füüsiliselt võimatu.

Projektidest rääkides. Kõigil IDE-del on see kontseptsioon. Sellele on lisatud sätted, ressursid, saab otsida jne. Redigeerijates on see parimal juhul avatud failisüsteemi kataloog. Mõnikord natuke rohkem.

Samuti jätab palju soovida integreerimine redaktorite siluriga. Üksuse testimine ja logimine päästavad mingil määral olukorra, kuid mõnikord ei saa te seda ilma silurita teha.

Keegi võib väita, et tänapäevased toimetajad rakendavad juba paljusid neist funktsioonidest ega ole sugugi halvemad kui kõige keerukamad IDE-d. Ma ei nõustu. Esiteks puuduvad täieõiguslikud rakendused. Need ei tööta nii nagu peaksid. Teiseks on selle kõige paigaldamine juba üsna keeruline ülesanne. Jah, isegi redaktori sisemiste funktsioonide konfiguratsioon on juba ebatriviaalne. Proovige näiteks lubada emacsis ridade nummerdamist! Lisaks on sageli vajalikku funktsionaalsust rakendanud kümned pistikprogrammid, pole selge, kuidas need omavahel suhtlevad. Ja sageli on neil ka kümneid versioone ja harusid, mis alati ei ühildu, on veidralt seadistatud jne. Loomulikult võite kulutada kuu aega kõige seadistamisele ja installimisele (mis on ka entusiastide hulk), kuid see viib redaktori IDE tasemele ainult lähemale. Näiteks tuleme tagasi samade projektide juurde – proovisin Project all vim ja projectile emacsi ja veel mõne plugina all. Kui Project isegi enam-vähem vastab minu nõuetele (kuigi viimases versioonis ei saanud ma vigade tõttu projekti üldse luua), siis projektile jättis äärmiselt negatiivse mulje.

Sellegipoolest on toimetajatel mitmeid rakendusvaldkondi, kus nad pakuvad arenduskeskkondadele vähemalt väärilist konkurentsi.

Esiteks toimivad nad väikeste projektide puhul paremini. 10-20 failist koosneva projektiga töötamiseks pole mõtet laadida IDE-harvesterit. 3-4 rida on redaktoris lihtsam parandada.

Teiseks on mõnes konkreetses valdkonnas kõik IDE-de eelised tasandatud. Näiteks madala tasemega arendus Linuxi jaoks. Ma ei ole seda teinud, kuid otsustades koodi ülesehituse ja arendajate eelistuste järgi (umbes 70% - emacs ja kloonid, 25% - vim, 5% - mingi eksootika nagu jed), pole IDE-l midagi. seal teha. Kogu tööks vajalik kood kogutakse kokku, tavaliselt ühte või kahte faili ja pole vaja kogu projekti jooksul hüpata. Ja automaatne täitmine ei aita palju, kui valite tosina või kahe peaaegu identse nimega funktsiooni hulgast.

Kolmandaks saavad toimetajad töötada rohkem kui lihtsalt koodiga. Kogu nende võimsust saab kasutada csv- või xml-failidega töötamisel. Või midagi muud, mis mõnikord osutub vajalikuks, näiteks artikkel või kiri. Ja te ei pea uuesti õppima, otsima mugav programm või pidage meeles kiirklahve - kõik on käepärast, kõik on sama.

Neljandaks, võime töötada keeltega, mille jaoks pole mõistlikku IDE-d. Ütleme nii, et selle sama rubiiniga ei aidanud mind keskkond eriti. SublimeText osutus piisavaks. Kuigi ma pole suure rubiiniprojektiga töötanud, oleks IDE võib-olla seal end näidanud.

Ja viiendaks kurikuulus laienemisvõimalus. Heade pistikprogrammidega muutub redaktor väga mugavaks! Lisaks konkreetne nauding oma põhipilli ja tunde pidevast häälestusest täielik kontroll eespool on see palju väärt.

Kokku

Mulle IDE-d eriti ei meeldi, kuigi eelmise teksti põhjal võib nii tunduda. Pean neid üsna koletuteks, hunniku ebavajalike funktsioonidega, aeglasteks ja ressursinõudlikeks. Ja parimad neist on üsna kallid. Pealegi ma usun kasutades IDE-d lõdvestab ja seob sind iseendaga. Toimetajate puhul on asi vastupidi. Lisaks juurdepääsetavus ja peenhäälestuse võimalus vastavalt teie vajadustele. Vähemalt vim ja emacs. Lõpuks nad mulle lihtsalt meeldivad. Näiteks kirjutan seda artiklit Emacsis.

Kuid tööstus (ja juhtkond) dikteerib oma nõuded. Kui te IDE-d ei kasuta, väheneb jõudlus märkimisväärselt. Kuid keegi ei anna teile pool tundi aega, et leida 10 tuhande koodireal puuduv koma. Kõik see peaks toimuma automaatselt ja automaatselt parandatud. Mulle meeldib mõnikord ka ilma tööriistadeta koodi süveneda – aga tööl on see lubamatu ajaraiskamine.

Pärast kõiki katse-eksitusi jõudsin sellisele järeldusele – toimetaja Saab arenduseks kasutada, aga IDE-ga peale teatud piiri ei võrdle ja redaktori kasutamine millegi jaoks mille eest makstakse on kättesaamatu luksus. Jah, kui kasutate õigeid arendustavasid, kujundate/dokumendi koodi õigesti ja järgite standardeid, saate toimetajate olemuslikke puudujääke siluda. Kuid me ei ela ideaalses maailmas, seega on IDE kasutamine vajalik, olenemata meie soovist.

Tutvustame teie tähelepanu Martin Helleri, programmeerija ja JavaWorldi ressursi toimetaja artikli adaptsiooni. Tõenäoliselt olete juba kuulnud kolmest kõige populaarsemast arendatavast IDE-st Java keel. 90 protsenti tööstuslikest programmeerijatest kasutavad kas Eclipse'i, NetBeansi või IntelliJ IDEA-d ning igal neist IDE-dest on oma eelised ja puudused. Selles artiklis proovime neid kirjeldada, et mõistaksite, milline neist on teie jaoks õige. Kuigi loomulikult on parem kõiki kolme tööl proovida ja teada saada, mis teile kõige paremini sobib. Ükski ülevaade ei saa seda asendada. Olen nende IDE-dega varem töötanud, kuid selle uuringu jaoks installisin MacBook Pro sülearvutisse IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE ja NetBeans 8.1 Java EE. Testisin IDE-d mitme avatud lähtekoodiga Java projektiga.

Mida IDE-lt oodata

Kaasaegne IDE "tervele Java-arendajale" peaks toetama Java 8, Scala, Groovy ja ka teisi virtuaalseid keeli Java masinad mida ta regulaarselt kasutab. Kasuks tuleks ka peamiste rakendusserverite ja populaarsemate veebiraamistike tugi, sealhulgas Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails ja Vaadin. IDE peab ühilduma mis tahes versioonihaldussüsteemi järguga, nagu Ant, Maven või Gradle, ning Git, SVN, CVS, Mercurial või Bazaar. Lisaks on arenduskeskkonna jaoks oluline osata töötada andmebaaside ja oma virna kliendikihiga, omada sisseehitatud JavaScripti, TypeScripti, HTML-i, SQL-i, JavaServer Pages, Hibernate'i, aga ka Java Persistence'i tugi. API. Lõpuks on loogiline loota, et IDE võimaldab teil süsteeme redigeerida, luua, siluda ja testida ilma tarbetu stressita. Ideaalis ei toeta arenduskeskkond mitte ainult intelligentset koodi lõpetamist, vaid ka intelligentset ümberkujundamist ja koodimõõdikuid. Paljudel juhtudel on kasulik toetada raamistike ja tünnide testimist. Kui teie meeskond kasutab piletisüsteemi ja CI/CD-d, vajate nendega ühenduse loomiseks IDE-d. Ja otsustage, kas vajate juurutamist ja silumist konteinerites ja pilvedes. Oleme välja toonud vaid põhilised ootused (võib-olla on teil midagi lisada) ja vaatame nüüd oma konkurente lähemalt.

IntelliJ IDEE


Funktsioonide ja hinna osas on IntelliJ IDEA saadaval kahes versioonis: tasuta kogukonna väljaanne ja laiendatud funktsionaalsusega tasuline Ultimate väljaanne. Kogukonna väljaanne on mõeldud JVM-i ja Androidi arendamiseks. Tasuta versioon toetab Java, Kotlin, Groovy ja Scala; Android; Maven, Gradle ja SBT; töötab versioonikontrollisüsteemidega Git, SVN, Mercurial ja CVS. Ultimate väljaanne sobib veebi ja ettevõtte arendamiseks. See IDE versioon ei tööta mitte ainult Giti, SVN-i, Mercuriali ja CVS-iga, vaid ka Perforce'i, ClearCase'i ja TFS-iga; sellesse saab kirjutada JavaScriptis ja TypeScriptis; loomulikult on olemas Java tugi EE, Spring, GWT, Vaadin, Play, Grails ja mitmed teised raamistikud. Ja loomulikult ei saanud me hakkama ilma SQL-i ja andmebaasidega töötamise tööriistadeta. Idee, mis juhib selle IDE arendajaid hinnapoliitika kujundamisel, on see, et selle kommertsversioon (Ultimate) võtab oma koha professionaalide arvutites, tänu millele tõuseb nende tootlikkus. Kui Java programmeerija teenib 50 tuhat dollarit aastas (või isegi rohkem), siis on ta kulutatud tulu tasuline IDE IntelliJ IDEA investeering (500 dollarit aastatellimuse eest) toimub väga kiiresti isegi selle töö väikese kiirendamise tõttu. Järgnevatel aastatel hind ettevõtetele langeb, idufirmadele ja vabakutselistele on see oluliselt madalam ning õpilastele, õpetajatele, Java meistritele ja avatud lähtekoodiga arendajatele täiesti tasuta. IntelliJ IDEA avaldab muljet oma sügava koodimõistmise, nutika ergonoomika, sisseehitatud arendusfunktsioonide ja mitmekeelse toega.
Joonis 1. IntelliJ IDEA näitab Java koodi statistilise analüüsi põhjal tehtud hoiatuste ja oletuste arvu. Eeldusi saab täpsemalt uurida klikkides, nagu pildil näidatud; paljudel juhtudel saate nimekirja valikute ja parandusvõimalustega.

Koodi sügav mõistmine

Süntaksi esiletõstmine ja lihtne koodi lõpetamine on kõigi kaasaegsete Java-redaktorite jaoks tavalised. IDEA läks kaugemale, pakkudes nutikat automaatset lõpetamist. See termin tähendab, et arenduskeskkond näitab nimekirja kõige asjakohasematest sümbolitest, mida antud kontekstis rakendatakse. Sümbolite loend ei sõltu mitte ainult kontekstist kui sellisest, "üldtunnustatud", vaid ka arendaja programmeerimisstiilist, sellest, kui sageli ta teatud operaatoreid kasutab. "Keti lõpetamine" näitab isegi loendit kohaldatavatest sümbolitest, mis on praeguses kontekstis meetodite või getterite kaudu lubatud. Lisaks lisab IDEA staatiliste liikmete või konstantide jaoks automaatselt kõik vajalikud impordilaused. Kõigil automaatse lõpetamise juhtudel püüab IDEA ära arvata sümboli tüübi käitusajal, täpsustada selle valikut ja vajadusel isegi rakendada tüübivalikut. Java kood sisaldab sageli stringidena katkendeid teistest keeltest. IDEA saab sisestada SQL-i, XPathi, HTML-i, CSS-i või JavaScripti koodi Java stringiliteraalidesse. Selles mõttes suudab IDE koodi ümber kujundada mitmes keeles. Näiteks kui nimetate klassi ümber JPA vastenduses, värskendab IDEA vastavat JPA olemit ja avaldiseklassi. Kooditüki ümbertegemisel on arendajal üks (üsna loomulik) soov: et kõik selle koodi duplikaadid saaksid ka ümber. IDEA Ultimate leiab duplikaadid ja sarnased fragmendid ning rakendab neile ka ümbertöötlust. IntelliJ IDEA analüüsib koodi laadimisel ja otse selle sisestamisel. See juhib tähelepanu kahtlustatavatele probleemidele (nagu meie ülaltoodud pildil) ja pakub valikuliselt loendit leitud probleemide tõenäolistest kiirparandustest.

Ergonoomika


IntelliJ IDEA on loodud nii, et see ei lükkaks arendajat välja voolavast tootlikkuse seisundist, kui ta juba selles on. Esimesel vasakpoolsel pildil näidatud projektiaken kaob lihtsa hiireklõpsuga, et programmeerija saaks keskenduda koodiredaktori aknale. Kõigi koodi kirjutamise ajal vajalike toimingute jaoks on nende jaoks olemas kiirklahvid. kiire kõne, sealhulgas sümbolite määratlused hüpikakendes. Esialgu on kõiki neid kombinatsioone raske meelde jätta, kuid tasapisi harjud nendega ja kasutad ainult neid. Kuid isegi kui programmeerija ei kasuta kiirklahve, nagu praktika näitab, harjub ta IDEA-s töötama lihtsalt ja kiiresti. Eriti tahaksin märkida IDEA silurit: muutujate väärtused kuvatakse otse redaktori aknas vastava lähtekoodi kõrval. Kui muutuja olek muutub, muutub ka esiletõstmise värv.

Sisseehitatud tööriistad

IntelliJ IDEA pakub ühtset liidest enamikule versioonihaldussüsteemidele, sealhulgas Git, SVN, Mercurial, CVS, Perforce ja TFS. Saate muudatusi hallata otse IDE-s, mis on väga mugav. IDEA testimisel tekkis mul soov, et viimane lähtekoodi muudatus ilmuks redaktori aknas annotatsioonina (nagu juhtub näiteks Visual Studios). Nagu selgub, on IDEA-l selleks spetsiaalne pistikprogramm. IDEA-ga on kaasas ka ehitustööriistad, testimisaeg, katvustööriistad ja sisseehitatud terminaliaken. IntelliJ-l pole oma profileerijat, kuid sellega saab pluginate abil ühendada kolmandate osapoolte oma. Näiteks YourKit, mille on loonud endine JetBrainsi juhtivarendaja, või VisualVM (mis on NetBeansi profileerija ümberpakendatud versioon). Java silumine võib olla piin, kui klassidega juhtub igasuguseid salapäraseid asju, mille allikat teil pole. IDEA sisaldab selliste juhtumite jaoks dekompilaatorit. Java serveripoolne programmeerimine nõuab sagedast suhtlemist andmebaasidega, nii et IDEA Ultimate programmeerijad hindavad SQL-i ja andmebaasidega töötamise tööriistade mugavust. Kui aga kellegi jaoks nende võimalustest ei piisa, saate osta IDEA Ultimate versiooni koos sisseehitatud SQL IDE-ga (DataGrip). See on aga veidi kallim kui tavaline IDEA Ultimate tellimus. IntelliJ IDEA toetab kõiki suuremaid JVM-i rakendusservereid ning võimaldab teil nendes serverites juurutada ja siluda, mis välistab tuttava Java programmeerijad Ettevõtlusraskused. IDEA toetab ka Dockerit (plugina kaudu, mis lisab arenduskeskkonda spetsiaalse Dockeri tööriistaakna. Muide, IDEA-l on tohutult pluginaid.

Tõeline polüglott

IDEA on laiendanud koodituge Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS ja muudele raamistikele. Tõenäoliselt olete märganud, et mitte kõik neist pole Java-spetsiifilised. IDEA “mõistab” teisi keeli – Groovy, Kotlin, Scala, JavaScript, TypeScript ja SQL. Kui te ei leia sellest loendist vajalikku keelt, praegu Seal on 19 IntelliJ keele pluginat, mis toetavad konkreetselt R, Elm ja D.


Palju aastaid hoidis Eclipse Java IDE-de seas enesekindlalt populaarsust. See keskkond on täiesti tasuta, avatud lähtekoodiga, kirjutatud peamiselt Java keeles. Kuid selle modulaarne arhitektuur võimaldab Eclipse'i kasutada teiste keeltega. IBMi algatatud Eclipse projekt ilmus 2001. aastal. Nad soovisid välja vahetada Smalltalkil põhineva IBM Visual Age'i arenduskeskkondade perekonna. Noh, peamine eesmärk, nagu isegi nimi viitab, oli Microsoft Visual Studio edestada (inglise keeles eclipse tähendab eclipse). Java teisaldatavus aitab Eclipse'il olla platvormideülene keskkond: see IDE töötab operatsioonisüsteemides Linux, Mac OS X, Solaris ja Windows. Paremal või halvemal juhul vastutab vähemalt osaliselt Java Standard Widget Toolkit (SWT). välimus Varjutus. Eclipse võlgneb oma jõudluse (või, nagu mõned heasoovijad ütlevad, selle puudumise) JVM-ile. Eclipse töötab üsna aeglaselt, kuna see on juurdunud üsna vanasse riistvarasse ja JVM-i iidsetesse versioonidesse. Isegi täna tundub see aeglane, eriti kui lisate sellele palju pistikprogramme. Osa Eclipse'i ressursside kuludest võib omistada selle sisseehitatud kompilaatorile, mis töötab alati, kui fail laaditakse või koodi värskendatakse. See on kasulik asi, see tabab teksti sisestamisel vigu. Olenemata järgust haldab Eclipse'i projekt sisumudelit, mis sisaldab teavet Java elementide tüüpide, viidete ja deklaratsioonide hierarhia kohta. Eclipse'i praegune versioon kannab nime Neon (4.6.0). Installisin veebiarendajatele mõeldud Eclipse Java EE IDE (see pole ainus võimalus, saab valida midagi muud). See sisaldab minimaalselt Eclipse SDK, ja soovi korral lisatakse pluginaid. Muide, selles IDE-s pole pistikprogrammidega töötamine nõrganärvilistele. Kolmandate osapoolte pistikprogrammid on sageli üksteisega vastuolus, kuigi nende ametlikud spetsifikatsioonid ei ütle selle kohta midagi.
Joonis 2: Vasakult paremale on neli paneeli tööriistad Eclipse: Package Explorer, Java redaktor, Java klassi struktuur ja ülesannete loend. Sellel pildil Eclipse'i laaditud projekt on JUniti testraamistik. Paneele saab kergesti vahetada.

Plugina tugi

Eclipse'i pistikprogrammi ökosüsteem on mõlemad tugev külg see IDE ja üks selle peamisi probleeme. Pistikprogrammide kokkusobimatuse tõttu jooksevad mõnikord kokku terved koostud ja programmeerijad peavad alustama tööd otsast peale. Praegu on Eclipse'i jaoks kirjutatud üle 1700 ametliku ja mitteametliku pistikprogrammi, mis võivad suurepäraselt töötada, kuid ei pruugi. Eclipse'i pistikprogrammid toetavad enam kui 100 programmeerimiskeelt ja peaaegu 200 rakenduste arendusraamistikku. Toetatakse ka enamikku Java-servereid: kui määrate Eclipse'i kaudu uue serveriühenduse, suunatakse teid hankijate kaustade loendisse, kust leiate umbes 30 rakendusserverit. Ainult valikud Apache Tomcat tuleb koguni üheksa tükki. Kaubanduslikud müüjad kipuvad oma lahendusi kokku panema: näiteks on ainult üks Red Hat JBossi vahevara üksus ning seest leiate WildFly ja EAP serveri tööriistad ning JBoss AS.

Redigeerimine, refaktoreerimine ja silumine

Teie esimene kogemus Eclipse'iga võib olla segane ja isegi segane. Esimene samm on Eclipse'i seadistamine ja selle tööruumide, vaadete ja vaadete kontseptuaalse arhitektuuriga harjumine. Selle kõik määravad teie installitud pistikprogrammid. Serveripoolse Java arendamiseks kasutate tõenäoliselt Java, Java EE ja Java sirvimisvaateid, Package Exploreri vaadet, silumisvaadet, veebitööriistade käskude sünkroonimisvaadet, andmebaasi arendusvaadet ja andmebaasi silumisvaadet. Praktikas on kõik mõttekas, kui avate vajalikud aknad. Eclipse pakub peaaegu alati mitmeid viise konkreetse probleemi lahendamiseks. Näiteks saate koodi vaadata Java sirvimisperspektiivi kasutades. Mida valida, on maitse ja valiku küsimus. Spetsiaalne Java-otsing võimaldab leida deklaratsioone, viiteid ja Java pakettide, tüüpide, meetodite, väljade esinemisi. Samuti saate kasutada kiirotsingu juurdepääsu ja eelvaadet. Tavalisi koodimustreid saab genereerida koodimallidest. Java Refaktoring Eclipse'is toetab 23 toimingut, alates tavalistest ümbernimetamistoimingutest kuni vähem ilmsemate teisendusteni (nagu Martin Fowleri raamatus). Eclipse toetab nii kohalikku kui ka kaugsilumist, eeldusel, et kasutate JVM-i, mis toetab kaugsilumist. Silumine on üsna standardne: teie määratlete kontrollpunktid ja seejärel vaadake muutujaid silumisvahekaardil. Muidugi saate oma koodist läbi astuda ja avaldisi hinnata. Eclipse'il on ulatuslik dokumentatsioonibaas erinevas vanuses, väärtus ja kasulikkus. Kahjuks on selle IDE puhul tavaline juhtum, et juhistest leitakse pilt, mis ei vasta praegusele versioonile, näiteks vananenud liidese ja nuppude paigutusega. Kahjuks on hilinenud dokumentatsioonivärskenduste probleem kõigi lähtekoodiprojektide puhul väga levinud.


NetBeans sai alguse ülikooli üliõpilasprojektina Prahas 1996. aastal. 1997. aastal sai IDE-st kommertstoode ja 1999. aastal ostis selle Sun Microsystems (Java vanemad) ning järgmisel aastal esitles see avatud lähtekoodiga väljalaset. Praegune versioon 8.1 töötab masinates, kus töötab Windows, Mac OS X, Linux ja Solaris. Kaasaskantavat paketti saab käivitada mis tahes süsteemis, mille jaoks on olemas Java-masin. Laadisin enda jaoks alla Java EE paketi, see on üks kuuest võimalikust allalaadimispaketist. See pakett toetab JavaScripti ja HTML-i, GlassFishi ja Tomcati, kuid ei toeta PHP-d, C/C++/Fortrani, Groovyt ja Graili: need on saadaval paketis "Kõik hinnas" (või lihtsalt "Kõik"). Soovi korral saan aga ülaltoodud keelte toe igal ajal alla laadida, valides sobiva pistikprogrammi (või mõne muu). NetBeansil on neid vähem kui Eclipse'is, kuid need ei lähe tavaliselt üksteisega vastuollu. Sel sügisel otsustas Oracle (mis omandas NetBeansi pärast Sun Microsystemsi omandamist) anda selle arenduskeskkonna koos kõigi õiguste, lähtekoodi, kaubamärgi, domeeni "netbeans.org" ja mitme muu infrastruktuuriga üle Apache Software Foundationi tiiva alla. elemendid. Seetõttu on projekti tulevik veel ebamäärane, kuigi süsteemil olid varem teatud sellega seotud privileegid. Seega oli NetBeans esimene, kes sai Java 8-le toe peaaegu kohe pärast värskendatud platvormi väljaandmist, ja seda nimetati "Java 8 ametlikuks IDE-ks". Kuu aega pärast ilmumist see eelis aga kadus: just siis said Java 8-le toe ka teised IDE-d. Siiski tahan märkida, et NetBeansi Java 8 tugi on tõesti hea ja IDE sobib suurepäraselt Java 8 trikkide "vanasse" koodi põimimiseks. Selle toimetajad, koodianalüsaatorid ja muundurid aitavad programmeerijal koodi uuendada, kasutades Java 8-le iseloomulikke konstruktsioone - lambda-avaldisi, funktsionaalseid operaatoreid ja meetodiviiteid. JavaScripti pistikprogrammid NetBeans 8-s teevad suurepärast tööd, toetades Node.js ja uusimad tööriistad JavaScript, nagu Gulp ja Mocha, samuti Nashorni JavaScripti tõlgi tugi.
Joonis 3. Siin käitab NetBeans sama Maven-põhist projekti, mis IntelliJ IDEA avati joonisel 1. Pange tähele täiustatud funktsioone kontekstimenüü ja refaktoreerimise alammenüü

Redigeerimine ja ümbertöötamine

NetBeans Editor toetab keeli, tuvastab trükkimise ajal vigu ning aitab teid vihjete ja nutika koodi lõpetamisega. Subjektiivse tunnetuse kohaselt saab IDE selle ülesandega kiiremini hakkama kui Eclipse, kuid mõnevõrra aeglasemalt kui IntelliJ IDEA. Lisaks on NetBeansil täisspekter refaktoreerimistööriistad (nagu on näidatud joonisel 3), mis võimaldavad programmeerijal koodi ümber struktureerida ilma seda purustamata, teostada allikaanalüüsi ning pakkuda ka laia valikut vihjeid kiirparandusteks või koodilaiendusteks. NetBeans sisaldab Swing GUI disainitööriista, mida varem tunti kui "Project Matisse". Arendajad hindavad kõrgelt NetBeans 7.1-s kasutusele võetud automatiseeritud ümbertöötlustööriista Inspect & Transform. See võimaldab teil analüüsida projekti koodi ja teha soovituslikke parandusi. Kuigi isiklikult eelistan kõigepealt testida kogu oma koodi ühikutestidega ja alles seejärel käivitada tööriistu, mis võivad radikaalseid muudatusi teha. Olen korduvalt kannatanud igasuguste automaatsed parandused mis tõi kaasa korvamatuid tagajärgi.

Ehitamine, silumine ja profileerimine

NetBeansil on suurepärane tugi Mavenile ja Antile, samuti Gradle'i pistikprogramm. Mul oli väga hea meel, kui avastasin, et süsteem käsitles Maveni projekte "natiivsena". See tähendab, et neid saab importimise asemel lihtsalt avada. NetBeans sisaldab ka atraktiivset (ja kasulikku) graafilist kuva Maveni sõltuvuste jaoks. NetBeansi Java silur pole halb, kuid sellel on mõned hoiatused. Eraldi visuaalne silur võimaldab programmeerijal teha kasutaja graafilisest liidesest ekraanipilte ning uurida JavaFX-i ja Swingi abil tehtud rakenduste liideseid. NetBeansi profiilija muudab CPU ja mälu kasutamise selgemaks ning sellel on suurepärased tööriistad mälulekke leidmiseks.

Hiiglaste kolmiku võrdlus

Olen aastate jooksul kasutanud kõiki kolme IDE-d, Eclipse, NetBeans ja IntelliJ IDEA, loetletud kronoloogilises järjekorras. Iga kord, kui vahetasin teisele IDE-le, tundsin, et mu tootlikkus kasvas. Kuid isegi kui olin kindlalt veendunud, et IDEA on minu lõplik valik, pidin mõnikord pöörduma tagasi ühe kahest allesjäänud IDE-st. Nii oli see näiteks ajal, mil Eclipse oli ainus tööriist, mis toetas Androidi arendust (tänapäeval on Android Studio, praegune ametlik Androidi IDE, see põhineb IntelliJ IDEA-l). Loomulikult on kõigil kolmel IDE-l oma fännid ja halvustajad. Tean paljusid Java-arendajaid, kes armastavad IntelliJ IDEA, aga ka lojaalseid Visual Studio C++ ja C# fänne. Enamasti on need inimesed rahul sellega, et nende tootlikkus on tõusnud ja aastatellimuse maksumus tagastatakse juba mõnenädalase IDEA tasulise versiooni kasutamise järel. Kuid NetBeansi ja Eclipse'i kasutajad on sageli oma tööriistadega seotud ja imestavad, miks teised programmeerijad on nõus IDEA eest raha maksma. Soovitaksin uutel Java arendajatel Eclipse'ist eemale hoida. Hoolimata asjaolust, et see on Java jaoks endiselt kõige populaarsem IDE, on see algajatele keeruline: Eclipse'i metsikusse loodusesse on lihtne eksida nii süsteemi juurutamise kui ka igapäevatöö ajal. Eclipse'il on kõigist IDE-dest kõige ulatuslikum pistikprogrammide ökosüsteem ja see jookseb ka kõige tõenäolisemalt kokku nende samade pistikprogrammide ühildumatu komplekti installimise tõttu. Kahjuks pidin Eclipse'i kasutamise ajal korduvalt eemaldama selle IDE katkise koostu ja installima "puhta" komplekti. NetBeans sobib enamikule arendajatele, sellel on suurepärane profileerija ja ma kasutan seda mõnikord. Eelistan siiski IntelliJ IDEA Ultimate eest maksta. Ja NetBeansi tulevik on endiselt ebaselge. Uutel Java arendajatel, kellel pole veel eelarvet tööriistade ostmiseks, soovitan vastavalt vajadustele kasutada NetBeansi või IntelliJ IDEA Community Editioni. Esimene tasub valida neil, kes kodeerivad Java servereid, kuid ainult siis, kui te ei kuulu nende kategooriasse, kes saavad IntelliJ IDEA Ultimate'i tasuta või suure allahindlusega (üliõpilased või need programmeerijad, kes arendavad avatud lähtekoodiga projekt).

"Kerge" Java IDE

Tänapäeval kasutab enamik Java arendajaid IDEA-d, NetBeansi või Eclipse'i, kuid mõnikord on vaja kergemaid arenduskeskkondi või isegi koodiredaktoreid, nagu Sublime Text, emacs või vim, mis toetavad Java pluginaid. Allpool on loetletud mõistlikud võimalused neile, kes otsivad midagi veidi kergemat:
  • DrJava - väike vaba keskkond arengut. See loodi Rice'i ülikooli üliõpilastele ja see on muutunud üsna populaarseks: DrJavat on alla laaditud juba üle 2 miljoni korra. DrJava eesmärk on edendada testipõhist arendust. Raamistik sisaldab nutikat koodiredaktorit, interaktsioonipaneeli rakenduse koodi hindamiseks, allikataseme silurit ja üksuse testimise tööriistu.
  • BlueJ on Kenti ülikooli spetsialistide loodud tasuta Java arenduskeskkond algajatele programmeerijatele. Seda keskkonda toetab Oracle. BlueJ-l on palju puhtam ja lihtsam liides kui professionaalsetel IDE-del, nagu NetBeans või Eclipse, ning see sisaldab isegi spetsiaalset õpetust OOP-i põhitõdede kohta.
  • JCreator on veel üks väike Java IDE Windowsile, mis on kirjutatud C++ keeles (jõudluse huvides). Tasuline versioon Pro on varustatud siluriga, Ant- ja koodiviisardite toega ning tasuta versioon(LE) – ei.
  • Eclipse Che on brauseripõhine pilve-IDE, mis toetab Java, C++, JavaScripti, Pythoni, PHP, Ruby ja SQL-i.

Java IDE valimine olenevalt projektist

Olen püüdnud kirjeldada kõigi kolme kõige olulisema Java IDE olulisi eeliseid ja maininud lühidalt nende kasulikke väikeseid rivaale. Õige IDE valimiseks peate kaaluma plusse ja miinuseid ning võrdlema neid oma vajaduste ja projektide vajadustega. Kui liitute meeskonnaga, on hea mõte kasutada sama IDE-d, mida teised arendajad, kuigi see pole vajalik. Kui teie meeskond hostib GitHubis allikaid, on loomulikult mugavam, kui teie IDE toetab GitHubi. Jah, saate koodi edastamisega hakkama ilma IDE-ta, kasutades GitHubi klienti või käsurida git. Aga kui tõhusad on sellised hüpped erinevate süsteemide vahel? Samuti on oluline, et IDE toetaks ehitussüsteemi. Näiteks kui see on Maven, ei soovi te tõenäoliselt süsteemi Ant for-is uuesti üles ehitada kohalik testimine. Õnneks toetavad kõik kolm suurt Java IDE-d Ant, Maven ja Gradle kas karbist või pistikprogrammiga. Kuid "väikeste" IDE-de puhul ei pruugi see tõsi olla. See on loomulik soov, et arenduskeskkond toetaks projektis kasutatavat JRE versiooni. Kui versioonid ei ühti, on suur tõenäosus saada palju lisavigu, mis näiteks sinus ilmnevad, aga teistes tiimiliikmetes mitte. On ebatõenäoline, et selline olukord teie karmale hästi mõjub. Ausalt öeldes ilmneb JRE ebakõla tõenäolisemalt konfiguratsioonivigade kui IDE toe puudumise tõttu, välja arvatud juhul, kui IDE pole veel värskendatud uus versioon Java. Uskuge lihtsalt, et kui teie IDE toetab täielikult projektis kasutatavaid raamistikke ja tehnoloogiaid, aitab see tõesti tööd kiirendada. Suure tõenäosusega saad sellega niikuinii hakkama. Kuid kui IDE mõistab, kuidas JPA avaldused on seotud JPA olemi ja väljendiklassidega (nagu IntelliJ), kulutate JPA-ga seotud koodile palju vähem aega kui siis, kui saate täiesti valesti aru. Noh, kui IDE toetab projekti jaoks kasutatavat testimisraamistikku ja kooditäitjat, saate teste käivitada ilma töökeskkonda muutmata. See kiirendab ka arendusprotsessi. Lõpuks läheb töö kiiremini, kui IDE ühildub projekti vigade jälgimise ja piletisüsteemiga. Jällegi võite kasutada eraldiseisvat või veebiklienti, näiteks JIRA, kuid on raske nõustuda sellega, et piletite kontrollimine on palju kiirem ilma akent muutmata, jäädes otse IDE-sse.

Tasuta või tasuline?

Pärast IntelliJ IDEA Ultimate testimist sain õige arenduskeskkonna tunde. Omamoodi Cadillac IDE maailmast. Jällegi, kuigi see pole tasuta, arvan, et selle kasutamisest tulenev tootlikkuse kasv on iga-aastast tellimust väärt. Algajatele, kes ei saa endale lubada iga-aastast IntelliJ IDEA Ultimate tellimust, soovitan kasutada pigem NetBeansi kui Eclipse'i. Muidugi on Eclipse'i pistikprogrammide ökosüsteem tänapäeval palju arenenum kui ükski teine ​​IDE, kuid see on väga võsastunud ja kasutu: algaja arendaja riskib töösse uppumise asemel IDE džunglisse kinni jääda. Samuti puudutasin "kergekaalulisi" alternatiive, millest kaks olid mõeldud spetsiaalselt hariduslikel eesmärkidel. Noh, kui te alles hakkate keeli õppima ja eelistate minimalistlikku keskkonda - miks mitte?