JavaRush /Блоги Java /Random-TG /Eclipse, NetBeans ё IntelliJ IDEA? Интихоби IDE барои руш...
Bender
Сатҳи
Маунтин-Вью

Eclipse, NetBeans ё IntelliJ IDEA? Интихоби IDE барои рушди Java

Дар гурӯҳ нашр шудааст
Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 1Мо ба таваҷҷӯҳи шумо мутобиқсозии мақолаи Мартин Ҳеллер, барномасоз ва муҳаррири манбаи JavaWorld пешниҳод менамоем. Эҳтимол шумо аллакай дар бораи се IDE маъмултарин барои рушди Java шунидаед. 90 фоизи барномасозони саноатӣ ё Eclipse, NetBeans ё IntelliJ IDEA-ро истифода мебаранд ва ҳар яке аз ин IDEҳо бартарӣ ва нуқсонҳои худро доранд. Дар ин мақола мо кӯшиш мекунем, ки онҳоро тавсиф кунем, то шумо фаҳмед, ки кадоме аз онҳо барои шумо мувофиқ аст. Ҳарчанд, албатта, беҳтар аст, ки ҳар серо дар кор санҷед ва бифаҳмед, ки кадоме барои шумо беҳтар аст. Ҳеҷ як барраси наметавонад инро иваз кунад.

Муҳити рушд чист?

Ҷавоби хеле кӯтоҳ ин аст, ки муҳити рушд ин барнома ё барномаҳои сершуморест, ки шумо барои сохтани барномаҳо истифода мебаред. Ин раванд воқеан навиштани code, ислоҳи он, оғоз кардани он ва ҳамгироӣ бо системаҳои идоракунии versionро дар бар мегирад. Агар таҳиягарон қаблан аксар вақт муҳаррири оддии матниро (баъзан ҳатто бидуни равшанкунии синтаксис) истифода мекарданд, ба монанди Notepad ва сатри фармон, ҳоло онҳо аксар вақт протсессори ҳама дар як, муҳитҳои таҳияи ҳамгирошуда ё IDE-ро истифода мебаранд.

IDE чист?

Муҳити таҳияи интегратсионӣ ё ба забони англисӣ Муҳити ҳамгирошудаи рушд - IDE - барномаест, ки асбобҳои таҳияи нармафзорро дар бар мегирад. Одатан, муҳити муосири рушд инҳоро дар бар мегирад:
  • Муҳаррири матн бо равшансозии code;
  • тартибдиҳанда ё тарҷумон;
  • Браузери синф, Нозири an object ва Диаграммаи иерархияи синф;
  • асбобхои автоматикунонии монтаж;
  • ислоҳкунанда;
  • воситаҳо барои ҳамгироӣ бо системаҳои идоракунии version (Git);
  • воситаҳо барои содда кардани тарҳрезии интерфейси графикии корбар.
Ман қаблан бо ин IDEҳо кор карда будам, аммо барои ин омӯзиш ман IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE ва NetBeans 8.1 Java EE-ро дар ноутбуки MacBook Pro насб кардам. Ман IDE-ро дар якчанд лоиҳаҳои кушодаи Java озмоиш кардам.

Аз IDE чиро интизор шудан мумкин аст

IDE муосир барои "таҳиягари солими Java" бояд Java 8, Scala, Groovy ва инчунин дигар забонҳои мошини виртуалии Java-ро, ки ӯ мунтазам истифода мебарад, дастгирӣ кунад. Дастгирии serverҳои асосии барномаҳо ва чаҳорчӯбаҳои маъмултарини веб, аз ҷумла Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails ва Vaadin низ муфид хоҳад буд. IDE бояд бо ҳама гуна сохторҳои системаи идоракунии version, ба монанди Ant, Maven ё Gradle, дар якҷоягӣ бо Git, SVN, CVS, Mercurial ё Bazaar мувофиқ бошад. Илова бар ин, барои муҳити рушд муҳим аст, ки қобorяти кор кардан бо пойгоҳи додаҳо ва қабати муштарии стеки шумо, дастгирии JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate ва инчунин Java Persistence дошта бошед. API. Ниҳоят, умед кардан мантиқист, ки IDE ба шумо имкон медиҳад, ки системаҳоро бидуни фишори нолозим таҳрир, эҷод, ислоҳ ва озмоиш кунед. Идеалӣ, муҳити таҳия на танҳо ба итмом расонидани codeи интеллектуалӣ, балки рефакторинги интеллектуалӣ ва метрикаи codeро низ дастгирӣ мекунад. Дар бисёр ҳолатҳо, дастгирии чаҳорчӯбаҳои санҷишӣ ва нотаҳо муфид хоҳад буд. Агар дастаи шумо системаи чипта ва CI/CD-ро истифода барад, ба шумо IDE лозим аст, то тавонед ба онҳо пайваст шавед. Ва қарор диҳед, ки оё ба шумо дар контейнерҳо ва абрҳо ҷойгиркунӣ ва ислоҳот лозим аст. Мо танҳо интизориҳои асосиро номбар кардем (шояд шумо чизе барои илова кардан дошта бошед) ва ҳоло биёед ба рақибони худ бодиққат назар кунем.

IntelliJ IDEA

Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 2Дар робита ба хусусиятҳо ва нарх, IntelliJ IDEA дар ду version меояд: нашри ройгони Community ва нашри пулакии Ultimate бо функсияҳои васеъ. Нашри ҷомеа барои таҳияи JVM ва Android тарҳрезӣ шудааст. Версияи ройгон Java, Kotlin, Groovy ва Scala -ро дастгирӣ мекунад; Android; Maven, Gradle ва SBT; бо системаҳои назорати versionи Git, SVN, Mercurial ва CVS кор мекунад. Нашри ниҳоӣ барои рушди веб ва корхона мувофиқ аст. Ин versionи IDE на танҳо бо Git, SVN, Mercurial ва CVS, балки бо Perforce, ClearCase ва TFS кор мекунад; дар он шумо метавонед бо JavaScript ва TypeScript нависед; Табиист, ки Java EE, Spring, GWT, Vaadin, Play, Grails ва як қатор чаҳорчӯбаҳои дигар дастгирӣ карда мешаванд. Ва, албатта, мо бе SQL ва асбобҳо барои кор бо пойгоҳи додаҳо кор карда наметавонем. Идеяе, ки таҳиягарони ин IDE ҳангоми таҳияи сиёсати нархгузорӣ роҳнамоӣ мекунад, ин аст, ки versionи тиҷории он (Ultimate) дар компютерҳои мутахассисон ҷои худро ишғол мекунад, ки маҳсулнокии онҳо афзоиш меёбад. Агар як барномасози Java ҳар сол 50 ҳазор доллар (ё ҳатто бештар аз он) ба даст орад, баргардонидани сармоягузорие, ки барои IDE IntelliJ IDEA-и пулакӣ сарф шудааст ($500 барои обунаи солона) аз ҳисоби ҳатто андаке тезонидани кори ӯ хеле зуд сурат мегирад. Дар солҳои минбаъда, нарх барои тиҷорат коҳиш меёбад, барои стартапҳо ва фрилансерҳо он хеле пасттар аст ва барои донишҷӯён, муаллимон, чемпионҳои Java ва таҳиягарони кушодаасос он комилан ройгон аст. IntelliJ IDEA бо фаҳмиши амиқи code, эргономикаи оқилона, хусусиятҳои дарунсохташудаи таҳия ва дастгирии бисёрзабонаш ба ҳайрат меорад. Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 3
Расми 1. IntelliJ IDEA шумораи огоҳиҳо ва тахминҳоро дар асоси таҳлor омории codeи Java нишон медиҳад. Шумо метавонед тахминҳоро бо пахш кардани онҳо, тавре ки дар расм нишон дода шудааст, муфассалтар омӯзед; дар бисёр мавридҳо шумо рӯйхатеро бо интихобҳо ва имконоти ислоҳ мегиред.

Фаҳмиши амиқи code

Тавсифи синтаксис ва пуркунии оддии code барои ҳама муҳаррирони муосири Java маъмуланд. IDEA бо пешниҳоди "автопуркунии оқилона" пеш рафт. Ин истилоҳ маънои онро дорад, ки муҳити рушд рӯйхати рамзҳои мувофиқтаринро, ки дар контексти додашуда татбиқ мешаванд, нишон медиҳад. Рӯйхати рамзҳо на танҳо аз контекст, яъне контексти "умумӣ қабулшуда", балки аз услуби барномасозии таҳиякунанда, аз он ки ӯ чанд маротиба аз операторҳои муайян истифода мекунад, вобаста аст. "Анҷоми занҷир" ҳатто рӯйхати рамзҳои мувофиқро нишон медиҳад, ки тавассути усулҳо ё гирандагон дар шароити кунунӣ иҷозат дода мешаванд. Илова бар ин, барои аъзои статикӣ ё доимӣ, IDEA ба таври худкор ҳама гуна изҳороти зарурии воридотро илова мекунад. Дар ҳама ҳолатҳои худтамомкунӣ, IDEA кӯшиш мекунад, ки намуди рамзро дар вақти корӣ муайян кунад, интихоби онро дақиқ кунад ва ҳатто агар лозим бошад, намуди cast-ро татбиқ кунад. Рамзи Java аксар вақт порчаҳоро аз забонҳои дигар ҳамчун сатр дар бар мегирад. IDEA метавонад SQL, XPath, HTML, CSS ё JavaScript-ро ба сатри Java ворид кунад. Ба ин маъно, IDE метавонад codeро бо забонҳои гуногун рефактор кунад. Масалан, агар шумо номи синфро дар харитасозии JPA иваз кунед, IDEA an objectи мувофиқ ва синфи ифодаи JPA-ро нав мекунад. Ҳангоми рефакторизатсияи як порчаи code, таҳиякунанда як хоҳиши (хеле табиӣ) дорад: барои ҳамаи нусхаҳои ин code низ рефакторатсия карда мешавад. IDEA Ultimate нусхаҳо ва порчаҳои шабеҳро пайдо мекунад ва инчунин ба онҳо рефакторингро татбиқ мекунад. IntelliJ IDEA codeро ҳангоми боркунӣ ва бевосита ҳангоми ворид кардани он таҳлил мекунад. Он ба мушкилоти шубҳанок ишора мекунад (чунон ки дар тасвири мо дар боло) ва ихтиёрӣ рӯйхати ислоҳи эҳтимолии зудро ба мушкилоти пайдошуда пешниҳод мекунад.

Эргономика

Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 4IntelliJ IDEA тавре тарҳрезӣ шудааст, ки таҳиягарро аз ҳолати ҳосилнокии ҷорӣ берун накунад, вақте ки ӯ аллакай дар он аст. Равзанаи Лоиҳа, ки дар расми аввал дар тарафи чап нишон дода шудааст, бо пахши оддии муш нопадид мешавад, то барномасоз метавонад диққати худро ба равзанаи муҳаррири code равона кунад. Барои ҳама амалҳое, ки ҳангоми навиштани code заруранд, комбинатсияи калидӣ барои зуд занг задан, аз ҷумла муайян кардани аломатҳо дар равзанаҳои поп-ап мавҷуд аст. Дар аввал, ҳамаи ин комбинатсияҳоро дар хотир нигоҳ доштан душвор аст, аммо оҳиста-оҳиста шумо ба онҳо одат мекунед ва танҳо онҳоро истифода мебаред. Аммо, ҳатто агар барномасоз миёнабурҳои клавиатураро истифода набарад, чунон ки таҷриба нишон медиҳад, ӯ ба кор дар IDEA осон ва зуд одат мекунад. Ман мехоҳам бахусус ислоҳкунандаи IDEA-ро қайд намоям: арзишҳои тағирёбанда мустақиман дар равзанаи муҳаррир, дар паҳлӯи рамзи сарчашмаи мувофиқ нишон дода мешаванд. Вақте ки ҳолати тағирёбанда тағир меёбад, ранги равшанӣ низ тағир меёбад.

Воситаҳои дарунсохт

IntelliJ IDEA интерфейси ягонаро барои ҳамкорӣ бо аксари системаҳои идоракунии versionҳо, аз ҷумла Git, SVN, Mercurial, CVS, Perforce ва TFS таъмин мекунад. Шумо метавонед тағиротро мустақиман дар IDE идора кунед, ки ин хеле қулай аст. Вақте ки ман IDEA-ро озмоиш мекардам, ман мехостам, ки тағироти охирин дар codeи манбаъ дар равзанаи муҳаррир ҳамчун эзоҳ нишон дода шавад (масалан, дар Visual Studio). Тавре маълум мешавад, IDEA барои ин плагини махсус дорад. IDEA инчунин бо асбобҳои сохтан, вақти санҷиш, асбобҳои фарогирӣ ва равзанаи дарунсохташуда меояд. IntelliJ профor худро надорад, аммо шахсони сеюм метавонанд бо истифода аз плагинҳо ба он пайваст шаванд. Масалан, YourKit, ки аз ҷониби як таҳиягари пешбари JetBrains ё VisualVM сохта шудааст (ки versionи дубора бастабандии профor NetBeans аст). Debugging дар Java метавонад дардовар бошад, вақте ки ҳама гуна чизҳои пурасрор бо дарсҳое рух медиҳанд, ки шумо сарчашмаи онро надоред. IDEA барои чунин ҳолатҳо як декомпиляторро дар бар мегирад. Барномасозии паҳлӯи server дар Java ҳамкории зуд-зуд бо пойгоҳи додаҳоро талаб мекунад, аз ин рӯ барномасозони IDEA Ultimate бароҳатии асбобҳоро барои кор бо SQL ва пойгоҳи додаҳо қадр хоҳанд кард. Аммо агар имкониятҳои онҳо барои касе кифоя набошанд, шумо метавонед versionи IDEA Ultimate-ро бо IDE дарунсохти SQL (DataGrip) харед. Аммо, он назар ба обунаи муқаррарии IDEA Ultimate каме гаронтар хоҳад буд. IntelliJ IDEA ҳама serverҳои асосии барномаҳои JVM-ро дастгирӣ мекунад ва ба шумо имкон медиҳад, ки дар ин serverҳо ҷойгир кунед ва ислоҳ кунед, ки мушкилотеро, ки барои ҳамаи барномасозони Java Enterprise шинос мешаванд, бартараф мекунад. IDEA инчунин Docker-ро дастгирӣ мекунад (тавассути плагин, ки равзанаи асбоби махсуси Docker-ро ба муҳити таҳия илова мекунад. Дар омади гап, IDEA як тонна плагинҳо дорад.  

Як полиглоти ҳақиқӣ

IDEA дастгирии рамзиро барои Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS ва чаҳорчӯбаҳои дигар васеъ кардааст. Шумо эҳтимол пай бурдед, ки на ҳамаашон ба Java хосанд. IDEA забонҳои дигарро мустақиман "мефаҳмад" - Groovy, Kotlin, Scala, JavaScript, TypeScript ва SQL. Агар шумо забонеро, ки дар ин рӯйхат ҷустуҷӯ мекунед, набинед, дар айни замон 19 плагинҳои забони IntelliJ мавҷуданд, ки махсусан R, Elm ва D-ро дастгирӣ мекунанд.

Eclipse IDE

Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 5 Тақрибан 10 сол пеш, вақте ки дар бораи беҳтарин IDE пурсиданд, як таҳиягари Java бо итминон ҷавоб дод: Eclipse. Дар тӯли солҳои зиёд, ин муҳити рушд дар байни Java IDE-ҳои Java эътимоднок буд. Ин муҳит комилан озод ва манбаи кушода аст, ки асосан дар Java навишта шудааст. Аммо, меъмории модулии он имкон медиҳад, ки Eclipse бо забонҳои дигар истифода шавад. Лоиҳаи Eclipse, ки аз ҷониби IBM оғоз шудааст, соли 2001 пайдо шуд. Онҳо мехостанд, ки оилаи IBM Visual Age муҳитҳои рушдро дар асоси Smalltalk иваз кунанд. Хуб, ҳадафи асосӣ, тавре ки ҳатто аз номаш бармеояд, бартарӣ додани Microsoft Visual Studio буд (Elipse дар забони англисӣ маънои eclipse аст). Интиқолпазирии Java ба Eclipse кӯмак мекунад, ки муҳити байнисоҳавӣ бошад: ин IDE дар Linux, Mac OS X, Solaris ва Windows кор мекунад. Барои беҳтар ё бадтар, Java Standard Widget Toolkit (SWT) ҳадди аққал қисман барои намуди зоҳирӣ ва эҳсоси Eclipse масъул аст. Eclipse аз иҷрои худ (ё тавре ки баъзе хайрхоҳон мегӯянд, набудани он) аз JVM қарздор аст. Eclipse хеле суст кор мекунад, зеро он дар сахтафзори хеле кӯҳна ва versionҳои қадимии JVM реша гирифтааст. Ҳатто имрӯз он суст ба назар мерасад, хусусан агар шумо ба он плагинҳои зиёде замима кунед. Баъзе сарбории захираҳои Eclipse-ро метавон ба компилятори афзояндаи дарунсохт мансуб кард, ки ҳар вақте ки файл бор карда мешавад ё code навсозӣ мешавад, кор мекунад. Ин як чизи муфид аст; он ҳангоми ворид кардани матн хатогиҳоро ошкор мекунад. Новобаста аз сохтмон, лоиҳаи Eclipse модели мундариҷаро нигоҳ медорад, ки дорои маълумот дар бораи иерархияи намудҳо, истинодҳо ва эъломияҳои унсурҳои Java мебошад. Версияи кунунии Eclipse Neon (4.6.0) номида мешавад. Ман Eclipse Java EE IDE-ро барои таҳиягарони веб насб кардам (ин ягона вариант нест, шумо метавонед чизи дигареро интихоб кунед). Он дорои ҳадди ақали Eclipse SDK мебошад ва плагинҳо мувофиқи талабот илова карда мешаванд. Дар омади гап, кор бо плагинҳо дар ин IDE барои одамони сустӣ нест. Плагинҳои тарафи сеюм аксар вақт бо ҳамдигар мухолифанд, гарчанде ки мушаххасоти расмии онҳо дар ин бора чизе намегӯянд. Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 6
Расми 2. Аз чап ба рост чор панели абзорҳои Eclipse мавҷуд аст: Explorer Package, Java Editor, Java Class Structure ва Task List. Лоиҳае, ки дар ин расм ба Eclipse бор карда шудааст, чаҳорчӯбаи санҷиши JUnit мебошад. Панелҳоро ба осонӣ иваз кардан мумкин аст.

Дастгирии плагин

Экосистемаи плагинҳои Eclipse ҳам қувваи IDE ва ҳам яке аз мушкилоти асосии он мебошад. Маҳз аз сабаби номувофиқ будани плагинҳо аст, ки баъзан тамоми ассамблеяҳо ба кор медароянд ва барномасозон бояд корро аз нав оғоз кунанд. Дар айни замон зиёда аз 1,700 плагинҳо барои Eclipse, расмӣ ва ғайрирасмӣ навишта шудаанд, ки метавонанд хуб кор кунанд ё не. Плагинҳои Eclipse зиёда аз 100 забони барномасозӣ ва тақрибан 200 чаҳорчӯбаи таҳияи барномаҳоро дастгирӣ мекунанд. Аксари serverҳои Java низ дастгирӣ мешаванд: агар шумо пайвасти нави serverро аз Eclipse таъин кунед, шумо ба рӯйхати ҷузвдонҳои фурӯшанда бурда мешавед, ки дар он шумо тақрибан 30 serverҳои барномаро хоҳед ёфт. Танҳо нӯҳ варианти Apache Tomcat вуҷуд хоҳад дошт. Фурӯшандагони тиҷоратӣ одатан ҳалли худро якҷоя мекунанд: масалан, танҳо як ҷузъи Red Hat JBoss Middleware мавҷуд аст ва дар дохor шумо асбобҳои serverии WildFly ва EAP, инчунин JBoss AS-ро хоҳед ёфт.

Таҳрир, рефакторинг ва ислоҳи хатогиҳо

Таҷрибаи аввалини шумо бо Eclipse метавонад печида ва ҳатто печида бошад. Қадами аввал ин насб кардани Eclipse ва одат кардан ба меъмории консептуалии фазои корӣ, намудҳо ва намудҳо мебошад. Ин ҳама аз ҷониби плагинҳои насбкардаатон муайян карда мешавад. Барои таҳияи Java дар server, шумо эҳтимолан намуди дидани Java, Java EE ва Java, Намоиши Explorer Package, намуди ислоҳи хатогиҳо, намуди ҳамоҳангсозии фармони абзорҳои веб, намуди таҳияи пойгоҳи додаҳо ва намуди ислоҳи пойгоҳи додаҳоро истифода хоҳед бурд. Дар амал, вақте ки шумо тирезаҳои лозимиро мекушоед, ҳама чиз маъно дорад. Eclipse қариб ҳамеша якчанд роҳҳои ҳалли мушкилоти мушаххасро пешниҳод мекунад. Масалан, шумо метавонед codeро бо истифода аз дурнамои дидани Java дидан кунед. Чиро интихоб кардан, ин масъалаи таъм ва интихоб аст. Ҷустуҷӯи махсуси Java ба шумо имкон медиҳад, ки эъломияҳо, истинодҳо ва рӯйдодҳои бастаҳои Java, намудҳо, усулҳо, майдонҳоро пайдо кунед. Шумо инчунин метавонед дастрасии зуд ҷустуҷӯ ва пешнамоишро истифода баред. Намунаҳои codeи умумиро метавон аз қолабҳои code тавлид кард. Java Refactoring дар Eclipse 23 амалиётро дастгирӣ мекунад, ки аз амалиёти маъмулии тағир додани ном то тағироти камтар возеҳ (ба монанди китоби Мартин Фаулер). Eclipse ислоҳи маҳаллӣ ва дурдастро дастгирӣ мекунад, ба шарте ки шумо JVM-ро истифода баред, ки ислоҳи дурдастро дастгирӣ мекунад. Debugging хеле стандартӣ аст: шумо нуқтаҳои шикастаро муайян мекунед ва сипас тағирёбандаҳоро дар ҷадвали хатогиҳо мебинед. Албатта, шумо метавонед рамзи худро гузаред ва ифодаҳоро арзёбӣ кунед. Eclipse дорои махзани васеи ҳуҷҷатҳои синну сол, арзишҳо ва фоиданокии гуногун мебошад. Мутаассифона, дар дастурҳо пайдо кардани тасвире, ки ба versionи ҷорӣ мувофиқат намекунад, масалан, бо интерфейси кӯҳна ва тарҳбандии тугмаҳо, як ҳодисаи маъмул барои ин IDE аст. Мутаассифона, мушкилоти дер навсозии ҳуҷҷатҳо барои ҳама гуна лоиҳаҳои codeи сарчашма хеле маъмул аст.

NetBeans

Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 7NetBeans ҳамчун лоиҳаи донишҷӯёни донишгоҳ дар Прага дар соли 1996 оғоз ёфт. Дар соли 1997, IDE ба маҳсулоти тиҷоратӣ табдил ёфт ва дар соли 1999 онро Sun Microsystems (волидони Java) харидорӣ кард ва соли дигар нашри сарчашмаи кушодро пешниҳод кард. Версияи кунунии 8.1 дар мошинҳое кор мекунад, ки Windows, Mac OS X, Linux ва Solaris доранд. Хуб, бастаи сайёрро дар ҳама гуна системае, ки барои он мошини Java мавҷуд аст, иҷро кардан мумкин аст. Ман бастаи Java EE-ро барои худам зеркашидам, он яке аз шаш бастаи имконпазири зеркашиҳо мебошад. Ин баста JavaScript ва HTML, GlassFish ва Tomcat-ро дастгирӣ мекунад, аммо PHP, C/C++/Fortran, Groovy ва Grails -ро дастгирӣ намекунад: онҳоро дар бастаи "Ҳама Inclusive" (ё танҳо "Ҳама") дастрас кардан мумкин аст. Аммо, агар ман мехоҳам, ман метавонам дастгирии забонҳои дар боло зикршударо дар вақти дилхоҳ тавассути интихоби плагини мувофиқ (ё ягон дигар) зеркашӣ кунам. NetBeans шумораи онҳо нисбат ба Eclipse камтар аст, аммо онҳо одатан бо ҳамдигар мухолифат намекунанд. Тирамоҳи имсол, Oracle (ки NetBeans-ро пас аз ба даст овардани Sun Microsystems ба даст овардааст) тасмим гирифт, ки ин муҳити рушдро дар якҷоягӣ бо тамоми ҳуқуқҳо, codeи сарчашма, тамғаи молӣ, домени "netbeans.org" ва як қатор инфрасохтори дигар зери ҷиноҳи Бунёди нармафзори Apache интиқол диҳад. унсурҳо. Аз ин рӯ, ояндаи лоиҳа ҳанӯз норавшан аст, гарчанде ки система қаблан имтиёзҳои муайяни марбутро дошт. Ҳамин тариқ, маҳз NetBeans буд, ки аввалин шуда қариб дарҳол пас аз баровардани платформаи навшуда дастгирии Java 8-ро гирифт ва «IDE расмии Java 8» номида шуд. Бо вуҷуди ин, як моҳ пас аз озод шудан, ин бартарият аз даст рафт: он вақт дигар IDE-ҳо низ Java 8-ро дастгирӣ карданд. Аммо, ман мехоҳам қайд намоям, ки дастгирии NetBeans 'Java 8 воқеан хуб аст ва IDE барои бофтани ҳилаҳои Java 8 ба рамзи "кӯҳна" бузург аст. Муҳаррирон, таҳлилгари codeҳо ва конвертерҳои он ба барномасоз дар такмил додани code бо истифода аз конструксияҳои хоси Java 8 - ифодаҳои лямбда, операторҳои функсионалӣ ва истинодҳои методӣ кӯмак мекунанд. Васлкунакҳои JavaScript дар NetBeans 8 барои дастгирии Node.js ва абзорҳои навтарини JavaScript ба монанди Gulp ва Mocha ва инчунин дастгирии тарҷумони JavaScript Nashorn кори хуб мекунанд. Eclipse, NetBeans ё IntelliJ IDEA?  Интихоби IDE барои рушди Java - 8
Расми 3. Дар ин ҷо NetBeans ҳамон лоиҳаи асоси Maven-ро иҷро мекунад, ки IntelliJ IDEA дар расми 1 кушода шудааст. Ба функсияҳои мукаммалшуда дар менюи контекстӣ ва зерменюи рефакторинг аҳамият диҳед.

Таҳрир ва рефакторинг

NetBeans Editor забонҳоро дастгирӣ мекунад, ҳангоми навиштани шумо хатогиҳоро ошкор мекунад ва ба шумо дар маслиҳатҳои абзор ва анҷоми codeи интеллектуалӣ кӯмак мекунад. Тибқи эҳсоси субъективӣ, IDE ин вазифаро нисбат ба Eclipse тезтар иҷро мекунад, аммо нисбат ба IntelliJ IDEA каме сусттар аст. Илова бар ин, NetBeans дорои маҷмӯи пурраи абзорҳои рефакторинг аст (тавре ки дар расми 3 нишон дода шудааст), ки ба барномасоз имкон медиҳад, ки codeро бидуни вайрон кардани он таҷдиди сохтор кунад, таҳлor манбаъҳоро анҷом диҳад ва инчунин доираи васеи маслиҳатҳоро барои ислоҳи зуд ё васеъ кардани code пешниҳод кунад. NetBeans асбоби тарроҳии Swing GUI-ро дар бар мегирад, ки қаблан бо номи "Project Matisse" маъруф буд. Таҳиягарон абзори автоматии рефакторинги Inspect & Transform-ро, ки дар NetBeans 7.1 ҷорӣ шудааст, хеле қадр мекунанд. Он ба шумо имкон медиҳад, ки рамзи лоиҳаро таҳлил кунед ва такмor пешниҳодшударо такмил диҳед. Ҳарчанд шахсан, ман бартарӣ медиҳам, ки тамоми codeи шахсии худро бо санҷишҳои воҳиди аввал санҷам ва танҳо пас аз он асбобҳоеро иҷро кунам, ки метавонанд тағироти куллӣ ворид кунанд. Ман борҳо аз ҳама гуна ислоҳоти худкор, ки ба оқибатҳои ҷуброннопазир оварда буданд, азоб кашидам.

Сохтмон, ислоҳкунӣ ва профилсозӣ

NetBeans дорои дастгирии хуби модарӣ барои Maven ва Ant ва инчунин плагин барои Gradle мебошад. Вақте ки ман фаҳмидам, ки лоиҳаҳои Maven аз ҷониби система ҳамчун "модарӣ" муносибат мекунанд, ман хеле шод будам. Ин маънои онро дорад, ки онҳо метавонанд ба ҷои воридотӣ кушода шаванд. NetBeans инчунин дорои намоиши графикии ҷолиб (ва муфид) барои вобастагии Maven мебошад. Debuger Java NetBeans бад нест, аммо он бо баъзе огоҳиҳо меояд. Debuger визуалии алоҳида ба барномасоз имкон медиҳад, ки скриншотҳои интерфейси графикии корбарро бигирад ва интерфейсҳои замимаҳои бо истифода аз JavaFX ва Swing сохташударо биомӯзад. Профor NetBeans равшантар мекунад, ки CPU ва хотира чӣ гуна истифода мешаванд ва дорои асбобҳои олӣ барои дарёфти ихроҷи хотира мебошад.

Кадом Java IDE беҳтарин аст? Муқоисаи сегонаи бузургҷуссаҳо

Ман ҳар се IDE, Eclipse, NetBeans ва IntelliJ IDEA-ро дар тӯли солҳо бо тартиби хронологии дар рӯйхат овардашуда истифода кардам. Ҳар дафъае, ки ман ба IDE-и дигар мегузарам, ман ҳис мекардам, ки ҳосилнокии ман афзоиш ёфтааст. Аммо ҳатто вақте ки ман боварӣ доштам, ки IDEA интихоби ниҳоии ман аст, ман баъзан маҷбур шудам ба яке аз ду IDE-и боқимонда баргардам. Чунин буд, масалан, дар замоне, ки Eclipse ягона абзоре буд, ки рушди Android-ро дастгирӣ мекард (имрӯз Android Studio мавҷуд аст, IDE-и расмии кунунии Android, он ба IntelliJ IDEA асос ёфтааст). Албатта, ҳар се IDE мухлисон ва мухолифони худро доранд. Ман бисёр таҳиягарони Java-ро медонам, ки IntelliJ IDEA, инчунин мухлисони содиқи Visual Studio C++ ва C# -ро дӯст медоранд. Аксар вақт ин одамон аз он шоданд, ки ҳосилнокии онҳо афзоиш ёфтааст ва арзиши обунаи солона пас аз чанд ҳафтаи истифодаи versionи пулакии IDEA баргардонида мешавад. Аммо, корбарони NetBeans ва Eclipse низ аксар вақт ба асбобҳои худ пайваст мешаванд ва ҳайрон мешаванд, ки чаро барномасозони дигар омодаанд барои IDEA пул пардохт кунанд. Ман ба таҳиягарони нави Java маслиҳат медиҳам, ки аз Eclipse дурӣ ҷӯянд. Сарфи назар аз он, ки он то ҳол маъмултарин IDE барои Java аст, барои шурӯъкунандагон мушкил аст: дар ваҳшӣ аз Eclipse гум шудан ҳам ҳангоми густариши система ва ҳам ҳангоми кори ҳаррӯза осон аст. Eclipse дорои экосистемаи густурдаи плагинҳои ҳама IDE мебошад ва инчунин эҳтимоли он аст, ки бо сабаби насб кардани маҷмӯи номувофиқи ин плагинҳо суқут кунад. Мутаассифона, ҳангоми истифодаи Eclipse, ман борҳо маҷбур шудам, ки дигар маҷмӯаи шикастаи ин IDE-ро хориҷ кунам ва бастаи "тоза" насб кунам. NetBeans барои аксари таҳиягарон хуб аст, он дорои профor олӣ аст ва ман баъзан онро истифода мебарам. Аммо, ман бартарӣ медиҳам, ки барои IntelliJ IDEA Ultimate пардохт кунам. Ва ояндаи NetBeans ҳанӯз рӯшан нест. Барои таҳиягарони нави Java, ки барои харидани асбобҳо буҷа надоранд, ман тавсия медиҳам, ки вобаста ба эҳтиёҷоти онҳо NetBeans ё IntelliJ IDEA Community Edition -ро истифода баранд. Якумро барои онҳое, ки serverҳои Java-ро рамзгузорӣ мекунанд, интихоб кардан лозим аст, аммо танҳо агар шумо ба категорияи онҳое дохил нашавед, ки IntelliJ IDEA Ultimate-ро ройгон ё бо тахфифи калон дастрас карда метавонанд (донишҷӯён ё он барномасозоне, ки манбаи кушодаро таҳия мекунанд) лоиҳа).

"Нур" Java IDE

Имрӯз, аксари таҳиягарони Java IDEA, NetBeans ё Eclipse -ро истифода мебаранд, аммо баъзан ниёз ба муҳити сабуктари рушд ё ҳатто муҳаррирони codeҳо ба монанди Sublime Text, emacs ё vim, ки плагинҳои Java-ро дастгирӣ мекунанд, вуҷуд дорад. Ман дар зер имконоти оқилонаро барои онҳое, ки чизи каме сабуктар меҷӯянд, номбар кардам:
  • DrJava — небольшая бесплатная среда разработки. Её создали для студентов Университета Райса, и она стала довольно популярной: DrJava загрузor уже более 2 млн раз. DrJava призвана развивать разработку, основанную на тестировании (test-driven development). Среда содержит «умный» редактор codeа, панель взаимодействия для оценки codeа applications, отладчик уровня источника и инструменты модульного тестирования.
  • BlueJ бесплатная среда разработки Java, созданная специалистами Кентского университета для начинающих программистов. Эта среда поддерживается Oracle. BlueJ отличается гораздо более лаконичным и простым интерфейсом, чем профессиональные IDE, такие, How NetBeans or Eclipse, и даже содержит специальный учебник по основам ООП.
  • JCreator — ещё одна небольшая Java IDE для Windows, написанная на C++ (из соображений увеличения производительности). Платная version Pro оснащена отладчиком, поддержкой Ant и code wizards, ну а бесплатная version (LE) — нет.
  • Eclipse Che — браузерная облачная IDE: Java, C++, JavaScript, Python, PHP, Ruby и SQL — список языков, которые она поддерживает. .

Выбор Java IDE в зависимости от проекта

Ман кӯшиш кардам, ки манфиатҳои муҳими ҳар яке аз се муҳимтарини Java IDE-ро тавсиф кунам ва рақибони хурди муфиди онҳоро мухтасар зикр намоям. Барои интихоби дурусти муҳити таҳияи Java, шумо бояд ҷиҳатҳои мусбӣ ва манфиро баркашед ва онҳоро бо ниёзҳои худ ва ниёзҳои лоиҳаҳои худ мувофиқ созед. Агар шумо ба як даста ҳамроҳ шавед, хуб аст, ки ҳамон IDE-ро мисли дигар таҳиягарон истифода баред, гарчанде ки он талаб карда намешавад. Агар дастаи шумо манбаъҳоро дар GitHub ҷойгир кунад, табиатан қулайтар хоҳад буд, агар IDE-и шумо GitHub-ро дастгирӣ кунад. Бале, шумо метавонед интиқоли codeро бе IDE бо истифода аз муштарии GitHub ё сатри фармони git идора кунед. Аммо ин гуна ҷаҳишҳо байни системаҳои гуногун то чӣ андоза муассир хоҳанд буд? Инчунин муҳим аст, ки IDE системаи сохтмонро дастгирӣ кунад. Масалан, агар он Maven бошад, шумо гумон нестед, ки системаро дар Ant барои санҷиши маҳаллӣ барқарор кунед. Хушбахтона, ҳар се IDE бузурги Java Ant, Maven ва Gradle -ро аз қуттӣ ё бо плагин дастгирӣ мекунанд. Аммо барои IDE-ҳои "хурд" ин метавонад дуруст набошад. Ин як хоҳиши табиии муҳити рушд барои дастгирии versionи JRE мебошад, ки дар лоиҳа истифода мешавад. Агар versionҳо мувофиқат накунанд, эҳтимоли зиёд пайдо шудани хатогиҳои иловагӣ вуҷуд дорад, ки масалан, дар шумо пайдо мешаванд, аммо на дар дигар аъзоёни даста. Ба гумон аст, ки чунин вазъият ба кармаи шумо таъсири хуб расонад. Рости гап, номувофиқатии JRE эҳтимоли бештар аз сабаби хатогиҳои конфигуратсия ба вуҷуд меояд, на аз набудани дастгирии IDE, ба шарте ки IDE то ҳол ба versionи нави Java навсозӣ нашуда бошад. Танҳо бовар кунед, ки агар IDE-и шумо чаҳорчӯбаҳо ва технологияҳои дар лоиҳа истифодашударо пурра дастгирӣ кунад, он воқеан ба суръатбахшии кор кӯмак мекунад. Ба ҳар ҳол шумо эҳтимол онро идора мекунед. Аммо, агар IDE дарк кунад, ки чӣ гуна изҳороти JPA ба an object ва синфҳои ифодаи JPA (ба монанди IntelliJ) алоқаманд аст, шумо нисбат ба он ки шумо комилан нодуруст фаҳмед, барои codeи марбут ба JPA вақти хеле камтар сарф мекунед. Хуб, агар IDE чаҳорчӯбаи санҷиш ва иҷрокунандаи codeеро, ки барои лоиҳа истифода мешавад, дастгирӣ кунад, шумо метавонед бидуни тағир додани муҳити корӣ санҷишҳоро иҷро кунед. Ин инчунин раванди рушдро метезонад. Ниҳоят, кор тезтар пеш меравад, агар IDE бо пайгирии хатогиҳои лоиҳа ва системаи чипта мувофиқ бошад. Боз ҳам, шумо метавонед як муштарии мустақил ё вебро истифода баред, бигӯед JIRA, аммо бо он розӣ шудан душвор аст, ки тафтиши чиптаҳо бидуни тағир додани тиреза, дар ҳоле ки мустақиман дар IDE боқӣ мемонад, хеле зудтар аст.

Озод ё пулакӣ?

Пас аз санҷиши IntelliJ IDEA Ultimate, ман ҳисси муҳити дурусти рушдро пайдо кардам. Як навъ Cadillac аз ҷаҳони IDE. Ман ба таври возеҳ намегӯям, ки IDEA беҳтарин IDE барои Java аст, аммо барои ман чунин аст. Боз ҳам, дар ҳоле ки он ройгон нест, ман фикр мекунам, ки ҳосилнокӣ аз истифодаи он ба маблағи обунаи солона аст. Барои шурӯъкунандагоне, ки имкони обунаи солонаи IntelliJ IDEA Ultimate надоранд, ман тавсия медиҳам, ки NetBeans на аз Eclipse истифода баранд. Албатта, экосистемаи плагинҳои Eclipse имрӯз нисбат ба ҳама гуна IDE-ҳои дигар хеле пешрафтатар аст, аммо он хеле калон ва ноустувор аст: як таҳиягари навкор хатари дар ҷангали IDE, Java часпида ва ба кор ҷалб шудан ба замина пажмурда мешавад. . инчунин ба алтернативаҳои «сабук» дахл кард, ки дутои онҳо махсус барои мақсадҳои таълимӣ таҳия шудаанд. Хуб, агар шумо нав ба омӯзиши забонҳо шурӯъ карда бошед ва муҳити минималистиро афзалтар донед, чаро не?
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION