Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • Eclipse, NetBeans ili IntelliJ IDEA? Odabir IDE-a za Java razvoj. Java programsko okruženje

Eclipse, NetBeans ili IntelliJ IDEA? Odabir IDE-a za Java razvoj. Java programsko okruženje

Predstavljamo vašoj pozornosti adaptaciju članka Martina Hellera, programera i urednika resursa JavaWorld. Vjerojatno ste već čuli za tri najbolja IDE-a za razvoj Jave. Oko 90 posto industrijskih programera koristi Eclipse, NetBeans ili IntelliJ IDEA, a svaki IDE ima svoje prednosti i nedostatke. U ovom članku pokušat ćemo ih opisati kako biste razumjeli koji je pravi za vas. Iako je, naravno, najbolje isprobati sve tri na poslu i otkriti što vam najviše odgovara. To se ne može zamijeniti nikakvom recenzijom. Već sam radio s ovim IDE-ovima, ali za ovo istraživanje instalirao sam IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE i NetBeans 8.1 Java EE na prijenosno računalo MacBook Pro. Testirao sam IDE na nekoliko Java projekata otvorenog koda.

Što očekivati ​​od IDE-a

Moderni "zdravi Java developer" IDE trebao bi podržavati Java 8, Scala, Groovy i druge jezike Java virtualnih strojeva koje redovito koristi. Podrška za glavne poslužitelje aplikacija i najpopularnije web okvire, uključujući Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails i Vaadin, ne bi bila suvišna. IDE mora biti kompatibilan sa svim verzijama sustava kontrole verzija kao što su Ant, Maven ili Gradle, zajedno s Git, SVN, CVS, Mercurial ili Bazaar. Osim toga, važno je da razvojno okruženje može raditi s bazama podataka i klijentskim slojem vašeg stoga, imati podršku za ugrađeni JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate, kao i Java Persistence API. Konačno, logično je nadati se da će vam IDE omogućiti uređivanje, izgradnju, ispravljanje pogrešaka i testiranje sustava bez nepotrebnog stresa. Idealno je ako razvojno okruženje podržava ne samo pametno dovršavanje koda, već i pametno refaktoriranje i metriku koda. U mnogim slučajevima, podrška za testiranje okvira i stubova bit će korisna. Ako vaš tim koristi sustav ulaznica i CI/CD, potreban vam je IDE da biste se mogli povezati s njima. Također, odlučite trebate li implementaciju i otklanjanje pogrešaka u kontejnerima i oblacima. Naveli smo samo glavna očekivanja (možda imate što dodati), a sada pogledajmo pobliže naše suparnike.

IntelliJ IDEJA


IntelliJ IDEA dolazi u dvije varijante u pogledu značajki i cijene: besplatno izdanje zajednice i plaćeno izdanje Ultimate s proširenom funkcionalnošću. Community Edition je za razvoj JVM-a i Androida. Besplatna verzija podržava Javu, Kotlin, Groovy i Scalu; Android; Maven, Gradle i SBT; radi sa sustavima kontrole verzija Git, SVN, Mercurial i CVS. Ultimate izdanje je prilagođeno za razvoj weba i poduzeća. Ova verzija IDE-a ne radi samo s Git, SVN, Mercurial i CVS, već i s Perforce, ClearCase i TFS; u njemu možete pisati u JavaScriptu i TypeScript-u; naravno, postoji podrška za Java EE, Spring, GWT, Vaadin, Play, Grails i niz drugih okvira. I, naravno, ne bez SQL-a i alata za baze podataka. Ideja kojom se vode programeri ovog IDE-a pri formiranju politike cijena je da njegova komercijalna verzija (Ultimate) zauzme svoje mjesto na računalima profesionalaca, zbog čega će se povećati njihova produktivnost. Ako Java programer zarađuje 50 tisuća dolara (ili čak i više) godišnje, povrat ulaganja u plaćeni IntelliJ IDEA IDE (500 dolara po godišnjoj pretplati) dogodit će se vrlo brzo zbog čak i blagog ubrzanja njegovog rada. Sljedećih godina cijena poslovanja pada, za startupe, freelancere je znatno niža, a za studente, nastavnike, Java prvake i open source programere potpuno je besplatna. IntelliJ IDEA impresionira svojim dubokim razumijevanjem koda, pametnom ergonomijom, ugrađenim razvojnim funkcijama i podrškom za mnoge jezike.
Slika 1. IntelliJ IDEA prikazuje broj upozorenja i pretpostavki na temelju statističke analize Java koda. Pretpostavke možete detaljnije istražiti klikom na njih, kao što je prikazano na slici; u mnogim slučajevima dobit ćete popis s izborom i opcijama za ispravke.

Duboko razumijevanje koda

Isticanje sintakse i jednostavno dovršavanje koda uobičajeni su u svakom modernom Java uređivaču. IDEA je napravila korak dalje nudeći "pametno dovršavanje". Ovaj izraz znači da razvojno okruženje prikazuje popis najrelevantnijih simbola koji su primjenjivi u danom kontekstu. Popis simbola ne ovisi samo o kontekstu kao takvom, "općeprihvaćenom", već o programskom stilu programera, o tome koliko često koristi određene operatore. "Kraj lanca" zapravo pokazuje popis primjenjivih znakova koji su dopušteni putem metoda ili gettera u trenutnom kontekstu. Osim toga, u slučaju statičkih članova ili konstanti, IDEA automatski dodaje sve potrebne naredbe za uvoz. U svim slučajevima automatskog dovršavanja, IDEA pokušava pogoditi vrstu simbola tijekom izvođenja, precizirati njegov izbor, pa čak i primijeniti cast ako je potrebno. Java kod često uključuje isječke iz drugih jezika kao nizove. IDEA može ubaciti SQL, XPath, HTML, CSS ili JavaScript kod u Java string literale. U tom smislu, IDE može refaktorirati kod na više jezika. Na primjer, ako preimenujete klasu u JPA mapiranju, IDEA će ažurirati odgovarajući JPA entitet i klasu izraza. Kada refaktorira dio koda, programer ima jednu (sasvim prirodnu) želju: da se svi duplikati ovog koda također refaktoriraju. IDEA Ultimate pronalazi duplikate i slične fragmente te ih također refaktorira. IntelliJ IDEA analizira kod pri učitavanju i izravno na ulazu. Ukazuje na sumnjive probleme (kao na našoj gornjoj slici) i opcionalno nudi popis mogućih brzih rješenja za otkrivene probleme.

Ergonomija


IntelliJ IDEA je dizajnirana tako da ne izbaci developera iz stanja produktivnosti streaminga ako je već u tome. Prozor projekta, prikazan na prvoj slici lijevo, nestaje jednostavnim klikom miša tako da se programer može usredotočiti na prozor uređivača koda. Za sve radnje koje su potrebne tijekom pisanja koda, postoje tipkovnički prečaci za njihov prečac, uključujući definiciju simbola u skočnim prozorima. U početku je sve ove kombinacije teško pamtiti, ali postupno se naviknete na njih i samo ih koristite. Ipak, čak i ako programer ne koristi kombinacije tipki, kao što praksa pokazuje, brzo se i jednostavno navikne na rad u IDEA-i. Posebno bih želio napomenuti IDEA debugger: vrijednosti varijabli prikazuju se izravno u prozoru uređivača, pored odgovarajućeg izvornog koda. Kada se stanje varijable promijeni, mijenja se i boja isticanja.

Ugrađeni alati

IntelliJ IDEA pruža dosljedno sučelje za interakciju s većinom sustava kontrole verzija, uključujući Git, SVN, Mercurial, CVS, Perforce i TFS. Možete upravljati promjenama izravno u IDE-u, što je vrlo zgodno. Kada sam testirao IDEA-u, imao sam želju da se posljednja promjena u izvornom kodu prikaže u prozoru editora kao bilješka (kao što se događa, na primjer, u Visual Studiju). Kako se pokazalo, IDEA ima poseban dodatak za to. IDEA također ima alate za izgradnju, testno vrijeme rada, alate za pokrivenost i ugrađeni prozor terminala. IntelliJ nema svoj profiler, ali se na njega mogu povezati dodaci treće strane. Na primjer, YourKit bivšeg glavnog programera JetBrains ili VisualVM (ovo je prepakirana verzija NetBeans Profilera). Otklanjanje pogrešaka u Javi može biti mučno kada se čudne stvari dogode klasama za koje nemate izvor. IDEA dolazi s dekompilatorom za takve slučajeve. Java programiranje na strani poslužitelja uključuje česte interakcije baze podataka, tako da će programeri IDEA Ultimate cijeniti praktičnost SQL-a i alata za baze podataka. Ali ako nekome nisu dovoljne njihove mogućnosti, možete kupiti verziju IDEA Ultimate s ugrađenim SQL IDE-om (DataGrip). Istina, bit će nešto skuplji od obične pretplate na IDEA Ultimate. IntelliJ IDEA podržava sve glavne JVM poslužitelje aplikacija i omogućuje vam postavljanje i ispravljanje pogrešaka na tim poslužiteljima, eliminirajući poznate poteškoće s kojima su Java Enterprise programeri upoznati. IDEA također podržava Docker (koristeći dodatak koji dodaje poseban prozor Docker alata u razvojno okruženje. Inače, IDEA ima more dodataka).

Pravi poliglot

IDEA ima proširenu podršku koda za Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS i druge okvire. Vjerojatno ste primijetili da nisu svi specifični za Javu. IDEA izravno iz kutije "razumije" druge jezike - Groovy, Kotlin, Scala, JavaScript, TypeScript i SQL. Ako na ovom popisu ne pronađete jezik koji želite, trenutno postoji 19 jezičnih dodataka IntelliJ, posebno za podršku R, Elm i D.


Dugi niz godina Eclipse je pouzdano držao dlan popularnosti među Java IDE-ovima. Ovo okruženje je potpuno besplatno, otvorenog koda, napisano prvenstveno na Javi. Međutim, njegova modularna arhitektura omogućuje da se Eclipse koristi i s drugim jezicima. Projekt Eclipse, koji je pokrenuo IBM, pojavio se 2001. godine. Željeli su zamijeniti obitelj IBM Visual Age razvojnih okruženja temeljenih na Smalltalku. Pa, glavni cilj, kao što i samo ime kaže, bio je nadmašiti Microsoft Visual Studio (eclipse na engleskom znači pomrčina). Prenosivost Java pomaže da Eclipse bude višeplatformski: ovaj IDE radi na Linuxu, Mac OS X, Solarisu i Windows. Za bolje ili gore, Java Standard Widget Toolkit (SWT) barem je djelomično odgovoran za izgled i dojam Eclipsea. Eclipse duguje svoju izvedbu (ili, kako neki dobronamjernici kažu, nedostatak) JVM-u. Eclipse je prilično spor jer ima svoje korijene u prilično starom hardveru i starim verzijama JVM-a. Čak i danas djeluje tromo, pogotovo s puno dodataka koji su na njega povezani. Dio troškova Eclipsea može se pripisati njegovom ugrađenom inkrementalnom kompajleru, koji se pokreće kad god se datoteka učita ili ažurira kod. Korisna stvar, ona je ta koja hvata pogreške prilikom unosa teksta. Bez obzira na sklapanje, projekt Eclipse održava model sadržaja koji sadrži informacije o hijerarhiji tipova, referencama i deklaracijama Java elemenata. Trenutna verzija Eclipsea nosi naziv Neon (4.6.0). Instalirao sam Eclipse Java EE IDE za web programere (ovo je daleko od jedina opcija, možete odabrati nešto drugo). Sadrži minimalni Eclipse SDK i dodaci se dodaju na zahtjev. Usput, rad s dodacima u ovom IDE-u nije za one slabog srca. Dodaci trećih strana često su međusobno sukobljeni, iako njihove službene specifikacije ne govore ništa o tome.
Slika 2. S lijeva na desno, postoje četiri alatne trake u Eclipseu: Package Explorer, Java Editor, Java Class Structure i Task List. Projekt učitan u Eclipse na ovoj slici je JUnit testni okvir. Ploče se mogu lako zamijeniti.

Podrška za dodatak

Ekosustav dodataka Eclipse je i jača strana ovog IDE-a i jedan od njegovih glavnih problema. Zbog nekompatibilnosti dodataka ponekad se cijeli sklopovi padaju, a programeri moraju početi ispočetka. Trenutno postoji preko 1700 dodataka napisanih za Eclipse, službenih i neslužbenih, koji mogu, ali i ne moraju raditi jako dobro. Eclipse dodaci podržavaju preko 100 programskih jezika i gotovo 200 razvojnih okvira aplikacija. Većina Java poslužitelja također je podržana: ako odredite novu poslužiteljsku vezu iz Eclipsea, bit ćete preusmjereni na popis mapa dobavljača, gdje ćete pronaći oko 30 poslužitelja aplikacija. Bit će devet varijanti samo Apache Tomcata. Komercijalni dobavljači obično spajaju svoja rješenja zajedno: na primjer, postoji samo jedan Red Hat JBoss Middleware, a unutra ćete pronaći alate WildFly i EAP poslužitelja, kao i JBoss AS.

Uređivanje, refaktoriranje i ispravljanje pogrešaka

Prvo iskustvo s Eclipseom može biti zbunjujuće, pa čak i zbunjujuće. Prvo morate postaviti Eclipse i naviknuti se na njegovu konceptualnu arhitekturu za radne prostore, poglede i poglede. Sve to određuju dodaci koje ste instalirali. Za razvoj Jave na strani poslužitelja, vjerojatno ćete koristiti poglede pregledavanja Java, Java EE i Java, pregled Package Explorer, prikaz za otklanjanje pogrešaka, prikaz sinkronizacije naredbi web alata, prikaz razvoja baze podataka i prikaz za otklanjanje pogrešaka u bazi podataka. .. U praksi, sve ima smisla kada otvorite prozore koje želite. Eclipse gotovo uvijek nudi nekoliko načina za postizanje zadanog zadatka. Na primjer, možete vidjeti kôd koristeći Java perspektivu pregledavanja. Što odabrati, stvar je ukusa i izbora. Java prilagođeno pretraživanje omogućuje vam da pronađete deklaracije, reference i pojavljivanja Java paketa, tipova, metoda, polja. Također možete koristiti brzi pristup za pretraživanje i pregled. Uobičajeni obrasci koda mogu se generirati iz uzoraka koda. Java refaktoriranje u Eclipseu podržava 23 operacije, u rasponu od uobičajenih operacija preimenovanja do manje očitih konverzija (kao u knjizi Martina Fowlera). Eclipse podržava i lokalno i udaljeno otklanjanje pogrešaka, pod uvjetom da koristite JVM koji podržava udaljeno otklanjanje pogrešaka. Otklanjanje pogrešaka je prilično standardno: definirate prijelomne točke, a zatim pregledavate varijable na kartici za otklanjanje pogrešaka. Naravno, možete koračati kroz svoj kod i procjenjivati ​​izraze. Eclipse ima ogromnu bazu podataka dokumentacije svih dobi, vrijednosti i korisnosti. Jao, pronaći sliku u priručniku koja ne odgovara trenutnoj verziji, na primjer, sa zastarjelim sučeljem i rasporedom gumba, uobičajena je stvar za ovaj IDE. Nažalost, problem kasnog ažuriranja dokumentacije vrlo je čest za sve projekte s izvornim kodom.


NetBeans je započeo kao projekt studentskog sveučilišta u Pragu 1996. godine. Godine 1997. IDE je postao komercijalni proizvod, a 1999. kupio ga je Sun Microsystems (roditelji Jave) i sljedeće godine predstavio open source izdanje. Trenutna verzija 8.1 radi na strojevima sa sustavom Windows, Mac OS X, Linux i Solaris. Pa, prijenosni paket može se pokrenuti na bilo kojem sustavu za koji postoji Java stroj. Za sebe sam preuzeo Java EE bundle, koji je jedan od šest mogućih paketa za preuzimanje. Ovaj paket podržava JavaScript i HTML, GlassFish i Tomcat, ali ne podržava PHP, C / C ++ / Fortran, Groovy i Grails: možete ih nabaviti u All Inclusive (ili samo All) paketu. Ipak, ako želim, mogu u bilo kojem trenutku preuzeti podršku za gore navedene jezike odabirom odgovarajućeg dodatka (i bilo kojeg drugog). NetBeans ih ima manje od Eclipsea, ali obično se međusobno ne sukobljavaju. Ove jeseni, Oracle (naslijedio je NetBeans nakon preuzimanja Sun Microsystemsa) odlučio je ovo razvojno okruženje premjestiti pod okrilje Apache Software Foundation, zajedno sa svim pravima, izvornim kodom, zaštitnim znakom, domenom netbeans.org i nizom druge infrastrukture elementi. Stoga je budućnost projekta još uvijek nejasna, iako je ranije sustav imao određene srodne privilegije. Dakle, upravo je NetBeans prvi dobio podršku za Javu 8 gotovo odmah nakon izlaska ažurirane platforme, te je nazvan "službenim IDE-om za Javu 8". Međutim, mjesec dana nakon izlaska, ova prednost je izgubljena: tada su i drugi IDE-ovi također dobili podršku za osmu Javu. Međutim, želim istaknuti da je NetBeansova podrška za Java 8 stvarno dobra, a ovaj IDE je odličan za utkanje trikova verzije 8 u "naslijeđeni" kod. Njegovi uređivači, analizatori koda i pretvarači pomoći će programeru da nadogradi kod koristeći konstrukcije tipične za Javu 8 - lambda izraze, operatore funkcija i reference metoda. JavaScript dodaci u NetBeans 8 izvrsno podržavaju Node.js i najnovije JavaScript alate kao što su Gulp i Mocha, kao i podržavaju Nashorn JavaScript interpreter.
Slika 3. Ovdje NetBeans radi s istim projektom baziranim na Mavenu kao što je IntelliJ IDEA otvoren na slici 1. Obratite pažnju na proširenu funkcionalnost u kontekstnom izborniku i podizbornicima za refaktoriranje

Uređivanje i refaktoriranje

NetBeans Editor podržava jezike, otkriva pogreške dok tipkate i pomaže vam s opisima alata i pametnim dovršavanjem koda. Subjektivno, IDE se s tim zadatkom nosi brže od Eclipsea, ali nešto sporije od IntelliJ IDEA. Osim toga, NetBeans ima cijeli niz alata za refaktoriranje (prikazan na slici 3) koji programeru omogućuju restrukturiranje koda bez da ga razbije, izvođenje analize izvora i nudi širok raspon savjeta za brze popravke ili proširenja koda. NetBeans uključuje alat za dizajn za Swing GUI, ranije poznat kao "Project Matisse". Programeri cijene automatizirani alat za refaktoriranje Inspect & Transform uveden u NetBeans 7.1. Omogućuje vam analizu koda projekta i predložena poboljšanja. Osobno, ipak, radije prvo testiram sav svoj vlastiti kod s jediničnim testovima, a tek onda pokrećem alate koji mogu napraviti radikalne promjene. Više puta sam patio od svih vrsta automatskih popravaka, što je dovelo do nepopravljivih posljedica.

Izrada, uklanjanje pogrešaka i profiliranje

NetBeans ima sjajnu ugrađenu podršku za Maven i Ant, kao i dodatak za Gradle. Bio sam presretan kada sam otkrio da Maven projekte sustav doživljava kao izvorne. To znači da se mogu jednostavno otvoriti i ne uvoziti. NetBeans također sadrži atraktivan (i koristan) grafički prikaz za ovisnosti o Mavenu. NetBeans Java Debugger nije loš, ali s upozorenjima. Zasebni vizualni debugger omogućuje programeru da napravi snimke zaslona GUI-ja i ispita sučelja aplikacija napravljenih s JavaFX-om i Swingom. NetBeans Profiler čini očitijim kako se CPU i memorija koriste i ima izvrsne alate za pronalaženje curenja memorije.

Usporedba tri diva

Koristio sam sva tri IDE-a, Eclipse, NetBeans i IntelliJ IDEA, tijekom godina, kronološkim redom. Kad god sam se prebacio na drugi IDE, osjećao sam da se moja produktivnost povećava. Ali čak i kada sam bio čvrsto uvjeren da je moj konačni izbor IDEJA, ponekad sam se morao vratiti jednom od dva preostala IDE-a. To je bio slučaj, primjerice, u vrijeme kada je Eclipse bio jedini alat koji je podržavao razvoj za Android (danas postoji Android Studio, trenutni službeni IDE za Android, baziran je na IntelliJ IDEA). Naravno, sva tri IDE-a imaju svoje obožavatelje i protivnike. Poznajem mnoge Java programere koji vole IntelliJ IDEA, kao i vjerne obožavatelje Visual Studio C++ i C#. Često su ti ljudi zadovoljni činjenicom da im je povećana produktivnost, a trošak godišnje pretplate se vraća u samo nekoliko tjedana korištenja plaćene verzije IDEA-e. Međutim, korisnici NetBeansa i Eclipsea također su često vezani za svoje alate i pitaju se zašto bi drugi programeri plaćali novac za IDEA-u. Za nadobudne Java programere, savjetovao bih vam da se klonite Eclipsea. Unatoč činjenici da je ovo još uvijek najpopularniji IDE za Javu, početnicima je teško s njim: lako se izgubiti u divljini Eclipsea, kako tijekom postavljanja sustava tako i tijekom svakodnevnog rada. Eclipse ima najopsežniji ekosustav dodataka među svim IDE-ovima, a također i najvjerojatniji pad sustava zbog instalacije nekompatibilnog skupa tih istih dodataka. Nažalost, dok sam koristio Eclipse, morao sam više puta uklanjati još jedan pokvareni sklop ovog IDE-a i instalirati "čisti" paket. NetBeans je dobar za većinu programera, ima odličan profiler i povremeno ga koristim. Međutim, radije plaćam za IntelliJ IDEA Ultimate. A budućnost NetBeansa je još uvijek nejasna. Za početnike u Javi koji još nemaju alate za kupnju alata, preporučam korištenje NetBeansa ili IntelliJ IDEA Community Edition ovisno o njihovim potrebama. Prvi bi trebali izabrati oni koji se bave kodiranjem Java poslužitelja, ali samo ako ne spadate u kategoriju onih koji IntelliJ IDEA Ultimate mogu dobiti besplatno ili uz ogroman popust (studenti ili oni programeri koji razvijaju open source projekt).

Lagani Java IDE-ovi

Većina Java programera danas koristi IDEA, NetBeans ili Eclipse, ali ponekad se javlja potreba za lakšim IDE-ovima ili čak uređivačima koda kao što su Sublime Text, emacs ili vim koji podržavaju Java dodatke. U nastavku sam naveo razumne opcije za one koji traže nešto lakše:
  • DrJava je malo besplatno razvojno okruženje. Stvoren je za studente Sveučilišta Rice, a postao je prilično popularan: DrJava je već preuzeta preko 2 milijuna puta. DrJava je predana razvoju vođenom testovima. Okruženje sadrži pametni uređivač koda, interaktivnu ploču za procjenu koda aplikacije, program za ispravljanje pogrešaka na razini izvora i alate za testiranje jedinica.
  • BlueJ je besplatno Java razvojno okruženje koje je stvorilo Sveučilište Kent za programere koji žele. Ovo okruženje podržava Oracle. BlueJ ima mnogo sažetije i jednostavnije sučelje od profesionalnih IDE-a kao što su NetBeans ili Eclipse, a čak sadrži i namjenski vodič o osnovama OOP-a.
  • JCreator je još jedan mali Java IDE za Windows napisan na C ++ (iz razloga performansi). Plaćena Pro verzija ima program za ispravljanje pogrešaka, Ant podršku i čarobnjake za kod, ali besplatna verzija (LE) ne.
  • Eclipse Che je IDE u oblaku baziran na pregledniku koji podržava Java, C ++, JavaScript, Python, PHP, Ruby i SQL.

Odabir Java IDE ovisno o projektu

Pokušao sam opisati važne prednosti svakog od tri najznačajnija Java IDE-a i usputno spomenuo njihove korisne male suparnike. Da biste odabrali pravi IDE, morate odvagnuti prednosti i nedostatke i uskladiti ih sa svojim potrebama i potrebama svojih projekata. Ako se pridružujete timu, bilo bi mudro koristiti isti IDE kao i drugi programeri, iako to nije potrebno. Ako vaš tim hostira izvor na GitHubu, prirodno će biti praktičnije ako vaš IDE podržava GitHub. Da, možete upravljati prijenosima koda bez IDE-a pomoću GitHub klijenta ili naredbenog retka git. Ali koliko će takvi skokovi između različitih sustava biti učinkoviti? Također je važno da IDE održava sustav izgradnje. Na primjer, ako je to Maven, vjerojatno nećete htjeti obnoviti sustav u Antu za lokalno testiranje. Srećom, sva tri velika Java IDE-a podržavaju Ant, Maven i Gradle, bilo izvan kutije ili s dodatkom. Ali za "male" IDE, to možda nije točno. Prirodna je želja da razvojno okruženje podržava verziju JRE-a koja se koristi u projektu. Ako se verzije ne podudaraju, vrlo je vjerojatno da ćete dobiti puno nepotrebnih bugova, koji će vam se, primjerice, pojaviti, dok drugi članovi tima neće. Malo je vjerojatno da će takva situacija dobro utjecati na vašu karmu. Iskreno govoreći, vjerojatnije je da će se nedosljednosti u JRE-u pojaviti s konfiguracijskim pogreškama nego bez podrške za IDE, osim ako se IDE tek treba ažurirati na novu verziju Jave. Samo mi vjerujte: ako vaš IDE u potpunosti podržava okvire i tehnologije koje se koriste u projektu, to će vam zaista pomoći da ubrzate svoj rad. Vjerojatno to ipak možete učiniti. Ali ako IDE razumije kako se JPA izjave odnose na JPA entitete i klase izraza (kao što je IntelliJ), potrošit ćete mnogo manje vremena na kod povezan s JPA nego u slučaju potpunog nesporazuma. Pa, ako IDE podržava okvir za testiranje i pokretač koda koji se koristi za projekt, možete izvoditi testove bez promjene radnog okruženja. Što će također ubrzati proces razvoja. Konačno, stvari postaju brže ako je IDE kompatibilan s projektnim sustavima za praćenje bugova i ulaznica. Opet, možete koristiti samostalni ili web klijent, recimo, JIRA, ali teško je ne složiti se da je provjera tiketa mnogo brža bez promjene prozora i boravka izravno u IDE-u.

Besplatno ili plaćeno?

Nakon što sam ga testirao s IntelliJ IDEA Ultimate, dobio sam osjećaj pravog razvojnog okruženja. Svojevrsni Cadillac iz IDE svijeta. Opet, iako nije besplatan, mislim da je dobit od njegove upotrebe vrijedna godišnje pretplate. Za početnike koji si ne mogu priuštiti jednogodišnju pretplatu IntelliJ IDEA Ultimate, preporučam korištenje NetBeansa preko Eclipsea. Naravno, ekosustav dodataka Eclipse danas je mnogo razvijeniji od bilo kojeg drugog IDE-a, ali je vrlo zarastao i neuredan: programer početnik riskira da zaglavi u IDE džungli umjesto da se uroni u posao. Dotaknuo sam se i "lakih" alternativa, od kojih su dvije bile dizajnirane posebno u obrazovne svrhe. Pa, ako tek počinjete s jezicima i više volite minimalističko okruženje, zašto ne?

Gotovo svaki vlasnik najprimitivnijeg mobitela upoznat je s konceptom Java platforme. Java razvojno okruženje pretpostavlja stvaranje univerzalnih aplikacija koje se mogu koristiti za pokretanje, bez obzira na instalirani operativni sustav. Razmotrimo glavne aspekte njegova funkcioniranja i primjene.

Java razvoj?

Zapravo, razvojno okruženje je samo programski jezik koji se temelji na generičkim naredbama koje prepoznaje Java Runtime.

Grubo govoreći, razvojno okruženje jezika Java neće raditi bez početno instalirane platforme na istom Windowsu. Ali takva podrška je u početku osigurana, što svakog korisnika štedi od potrebe za instaliranjem dodatnih komponenti.

Primjena u računalnoj tehnologiji

Ovaj projekt je izvorno razvio Sun Microsystems, koji je kasnije podržao Oracle.

U konačnici, međutim, Java razvojno okruženje potpuno je neovisno o računalnim ili mobilnim sustavima.

Ugrađeni moduli mobilnih sustava

Kada govorimo o pametnim telefonima i tabletima, ista verzija Jave) odnosi se samo na korištenje grafičke aplikacije koja vam omogućuje izradu Java aplikacije u nekoliko minuta.

Zapravo, u samoj aplikaciji se vrši neka vrsta adresiranja ili zahtjeva čije su funkcije predviđene u operativnom sustavu.

I to se odnosi na mobilne uređaje. Jeste li primijetili da ponekad s vremenom Windows Phone ili Android počne "pljunuti" u smislu ponude trenutnog ažuriranja? To nisu ništa više od dvije komponente:

  • Java Runtime;
  • Microsoft .NET Framework.

Najtužnije je što prva komponenta nije povezana s pogreškama sustava. Ova je platforma potpuno neovisna i prema zadanim postavkama može se izvršiti naredba.

JAVA IDE: Najjednostavnija aplikacija

Nitko ne sumnja da se ovaj sustav koristi u mobilnim verzijama. Podržano je razvojno okruženje Java Android, a da ne govorimo o "apple" proizvodima.

Međutim, što se tiče izvršnih aplikacija, stvari nisu tako jednostavne. I zato.

Izvršni apleti

Prvo, trebali biste odmah obratiti pozornost na sustav u koji se mora instalirati odgovarajući arhiver (WinRAR - barem bolje - 7-Zip).

Razvojno okruženje za Java programe odnosi se na činjenicu da se podaci spremaju u obliku arhive koja se ne može otvoriti standardnim Windows alatima.

Arhivirani podaci

U najboljem slučaju, možete koristiti ekstraktore kao što je gore. Ali ako su se tijekom formiranja arhive koristile tehnologije dodatne (maksimalne) metode kompresije, nema što pomoći.

Čak i ažuriranje arhivera neće moći izvršiti potrebne promjene. Ovdje ćete morati primijeniti ažuriranje cijele platforme, iako u početku poruka o dostupnom ažuriranju "visi" u traci sustava.

Ažuriranje platforme

Ažuriranje je dovoljno jednostavno. Dovoljno je samo kliknuti na trepćuću ikonu u traci koja nudi instaliranje dostupnog ažuriranja. Vrijeme prepoznavanja može potrajati i do nekoliko minuta. Ovo je u redu.

Ako ne želite čekati, nema problema - idite na službeni Microsoftov resurs i preuzmite program od tamo. Ne sviđa vam se ova metoda? Instalirajte JDK ili J2SE, koji je Java ekstenzija, a zatim instalirajte potrebni modul od odabranih, nakon čega dolazi do aktivacije automatski. Na kraju procesa može biti potrebno potpuno ponovno pokretanje sustava.

Zašto je Java OS neovisan?

Kao što je već spomenuto, ovaj programski jezik je objektno orijentiran (slično C + / C ++, na kojem je programiran Windows).

No, njegova je bit u tome da je Java virtualni stroj sposoban prevesti naredbe izvršnih aplikacija u posebne bajtkodove koje može prepoznati bilo koji računalni sustav, bez obzira na njegov razvojni program. Razvojno okruženje za Java programe jednako se dobro koristi na računalima, Intel platformama i mobilnim sustavima Android, Blackberry, iOS i drugima.

U softverskom okruženju samog "operativnog sustava" već postoji ugrađeni modul odgovoran za izvršavanje jezičnih naredbi. I to ni na koji način ne dotiče specifične okvire poput Microsoft .NET Frameworka ili bilo kojeg drugog koji proizvođači operativnih sustava razvijaju za pokretanje vlastitih apleta.

Mobilni uredaji

Što se tiče čak i običnih mobitela bez ugrađenog operativnog sustava, oni također imaju izvornu podršku za ovu platformu. Instalateri u pravilu imaju JAR ili JAD ekstenzije i mogu se jednostavno instalirati čak i na primitivnim telefonima.

U operativnim sustavima mogu se koristiti arhiveri poput WinRAR-a koji bez problema prepoznaju takve samoraspakirajuće arhive poput SFX datoteka. Kada dvaput kliknete na takvu datoteku, njen sadržaj će se automatski raspakirati, a arhivator zajedno s Java platformom, u ovom slučaju, radi u pozadini.

Nepotrebno je reći da se čak i stare igre na najjednostavnijim telefonima mogu jednostavno instalirati. Iako se vjeruje da ne koriste “napredne” operativne sustave, to nije tako.

Čak i najstariji modeli ovog tipa imaju platformu. Kako bi inače funkcionirao telefon? U istom sustavu, kao što je već jasno, ugrađena je i podrška koja je zaslužna za razvojno okruženje Java.

Što se tiče samih naredbi koje se koriste za izradu aplikacija, njihov opis može potrajati predugo. Ali ako se ideja o stvaranju aplikacije temeljene na ovom jeziku ipak pojavila, bolje je instalirati specijalizirani program kao što je platforma koju nudi okruženje Delphi vrlo slična).

Zaključak

Kao što možete vidjeti, Java razvojno okruženje je univerzalno i kompatibilno sa svim sustavima. Ali radi puno brže od prijevoda naredbi na temelju C + / C ++. Prema nekim studijama, brzina može biti 20-30 puta veća, iako je potrošnja memorije u rangu više.

Ali da rezimiramo, vrijedi napomenuti stvarnu svestranost koju nudi Java IDE. Zapravo, kompatibilan je sa svim sustavima, što ga čini najpopularnijim pri izradi istih multimedijskih aplikacija ili igrica.

Zasebno, treba reći da se najnovije verzije Jave temelje na podršci za generičke programske alate, koji se temelje na Eiffelovoj i C# tehnologijama, koje se bitno razlikuju od C++ alata. Ovdje možete koristiti automatsku konverziju skalarnih tipova podataka i uvoz tzv. statičkih polja, a da ne spominjemo mogućnost izrade prateće dokumentacije s izvornim kodom.

Java SE 6 donosi mnoge nove značajke, uključujući čak i japansko i budističko prepoznavanje kalendara, mogućnost stvaranja potpunog HTTP poslužitelja, brži prijenos klasa i komprimirani prijenos podataka uz poboljšanje performansi do 70%, da ne spominjemo nadzornu ploču JConsole. koja podržava OpenGL i DirectX.

To se uglavnom odnosi na grafičke adaptere, iako se može odnositi čak i na korištenje audio uređaja (najčešće virtualnih koji se temelje na ASIO4ALL drajverima). Isto vrijedi i za neke softverske sintisajzere ili MIDI klavijature. Međutim, nije uvijek predviđena upotreba izvršnih Java apleta.

Od autora: Od svih jezika koji se koriste u web razvoju, Java je najosjetljivija. Ovaj PL karakterizira složena sintaksa, visoko tipizirani podaci i otpornost na pogreške. Zato je ovaj alat za Javu - IDE toliko tražen. Razvojno okruženje pomaže zaobići zamke koje čekaju programera koji piše u uređivaču teksta. Ako ne želite ići dugim i trnovitim putem pisca teksta, dobrodošli u pregled vrhunskih razvojnih okruženja najprikladnijih za jezik kave.

Za razvoj je potreban IDE

Java je jedan od onih jezika za koje razvojno okruženje nije hir pojedinih stručnjaka, već pravo sredstvo za preživljavanje. Složeni jezik se ne može čitati i izvršavati sve dok svi elementi sustava nisu ispravno konfigurirani. Ponekad je web developeru teško razumjeti zašto mu je potreban tako glomazan i produktivan softver. Svi web jezici poput HTML / CSS, JavaScript i PHP mogu se implementirati bez dodatnog softvera (iako postoji čak i najbolje plaćeni IDE za potonje - PHPStorm). No, kada dođe do Jave, sve dolazi na svoje mjesto. Dugi i složeni kodni dokumenti ne podliježu ručnoj sistematizaciji.

Ali, kao i uvijek, postoje protivnici ideologije. Neki programeri IDE nazivaju "štakama", koje su potrebne samo manje obučenim programerima. Za njih je preuzimanje razvojnog okruženja poput varanja o osnovama. Nažalost, ovaj pristup može ostaviti razvojnog programera iza evolucije programiranja: veliki poslovni projekti, poput visoko funkcionalnih web aplikacija, zahtijevaju blisku interakciju između članova tima, brzo pokretanje i otklanjanje pogrešaka koda. Štoviše, vještina rada s osnovnim IDE-ima je kriterij za zapošljavanje na najboljim pozicijama.

Naravno, postoje oni koji znaju kako fino podesiti svoje programerske alate tako dobro da punopravni IDE postaje nepotreban. Kako god bilo, razvojno okruženje troši resurse uređaja koji su potrebni za napajanje ostalih razvojnih alata. To je posebno vidljivo u zastarjelim verzijama Windows/Linuxa - čim se razvojno okruženje pokrene, ostatak resursa doživljava stagnaciju.

Programeri na webu gotovo uvijek preferiraju uređivače teksta. Lakši su i omogućuju vam stvaranje rješenja na koljenu. Nema dodatnih alata, nije potrebna duboka prilagodba, a raspon softvera je puno širi. Ovo je pogled koji imaju web programeri dok ne počnu s Javom.

Želim odabrati program

Industrija programiranja nudi mnoga rješenja za generiranje cjelovitog koda. To posebno vrijedi za različita razvojna okruženja. Velike tvrtke poput Oraclea nisu jedine koje grade IDE. Rad na takvom softveru u pravilu je prerogativ profesionalaca koji žele optimizirati svoje aktivnosti. Upravo se to dogodilo s Visual Studiom: jednim od najboljih IDE-a svih vremena. Microsoft, koji se spremao uvesti verziju Windowsa u novo stoljeće, jednostavno je predstavio svoje alate u jednoj aplikaciji. Sada je VS izbor milijuna.

Nažalost, ne može se nazvati "za Java programere". Ne, to uopće ne znači da u ovom razvojnom okruženju neće biti moguće napisati nešto na Javi: postoje čak i posebna proširenja. Samo je više fokusiran na C, C# i neke druge Microsoftove proizvode. Java ima svoj vrhunski IDE, koji ćemo danas predstaviti. Ali, prvo, morate razumjeti što želimo vidjeti idealni IDE (suglasnik).

Prvo, možete odmah odlučiti da oni koji rade na mreži nisu prikladni za Java programera. Oni će stvoriti probleme s interpretacijom, a stalne ovisnosti samo će obeshrabriti želju za programiranjem. Razumnije rješenje bilo bi preuzimanje jednog od danas predstavljenih softvera. Bolje je jednom kliknuti za preuzimanje nego stalno trpjeti greške. Era IDE-a temeljenih na oblaku tek dolazi.

Također, Java IDE mora podržavati brojne tehnologije koje su potrebne za učinkovito kodiranje. To uključuje jezike virtualnih strojeva Java: prvenstveno Java 10, kao i Groovy i Scala. Kontrola verzija također je jedna od ključnih točaka. Sam Git neće biti dovoljan: trebate Mercurial, SVN i još mnogo toga. Nemoguće je pogoditi koji će biti popularan za koju godinu (Git, naravno ☺). Web programer će imati koristi od podrške širokom rasponu jezika, uključujući PL baze podataka, web jezike, i front (TS, JS, HTML) i backend (jedan od popularnih jezika opće namjene). Budući da je JVM poseban za pretvaranje riječi programskog jezika u bajt kod, potrebni su i moćni tumači. Oni mogu učiniti Javu brzom u teoriji, brzom u praksi.

Pa, i naravno, kao i sam jezik Java, razvojno okruženje za njega mora biti višeplatformsko. Sve ostale odluke ometaju razvoj programera. Budući da je odabrao Javu, onda je odabrao svestranost.

Tri slona razvoja Jave

Kao i uvijek, tri su najbolja i svi ostali. Industrija web razvoja je na to već navikla, a tradiciju nećemo mijenjati. Prednost naše recenzije je što neće biti plaćenog softvera (gotovo). Svako razvojno okruženje možete besplatno preuzeti sa službene stranice. Također, bit će to jedna od onih top ljestvica na kojoj ćemo subjektivno birati pobjednika. Pa, i možete dodati svoju odluku, na temelju svog iskustva i naših zaključaka.

Ideja za web razvoj

IntelliJ IDEA je IDE koji je izdao JetBrains na temelju Java Virtual Machine. Sama okolina također je napisana na Javi i dijelom u Pythonu, i namijenjena je njima. Odmah su se identificirali kao okruženje za Javu, još 2001. Tada je razvojno okruženje predstavilo cijelu biblioteku alata za refaktoriranje, što je IDEA-u odmah dovelo do vrha. Programeri su odabrali ne toliko u korist praktičnosti koliko u korist produktivnosti. Neke rutinske operacije u potpunosti izvodi razvojno okruženje.

Obećali smo da danas neće biti plaćenog softvera. Ali istina je da ultimativna verzija IDEA-e ima svoju cijenu, iako beznačajnu (do 500 dolara), kao za IDE. Ako ste profesionalni javist koji zarađuje od 20$ po satu, ovo je sitnica. Inače, samo u paketu Ultimate programer će moći raditi s Java EE platformom.

Ali postoji i besplatna verzija IDEA-e, koja se ne može nazvati skraćenom verzijom. Da, neke značajke nedostaju, ali jezična podrška slična je komercijalnoj verziji. Zgodno je na njemu napisati svoje prve retke koda i proširiti ga dodacima.

Suvremeni trendovi i pristupi u web razvoju

Naučite algoritam brzog rasta od nule u izgradnji web mjesta

IDEA je jedno od onih razvojnih okruženja koje se može nazvati uistinu pametnim. Umjesto popravaka i isticanja koje ima čak i najjednostavniji uređivač teksta, IDEA nudi autodovršavanje: fragmenti gotovog programa generiraju se u rukama programera. Nepotrebno je reći da će se sve zagrade i drugi sintaktički dodaci automatski zatvoriti. A ako nešto krene po zlu i IDEA se ne nosi s problemom, odmah će signalizirati Java developeru s druge strane ekrana.

Refaktoring, koji se odvija na nekoliko jezika odjednom, također osvaja. Javisti znaju da kod nikada nije u čistoj Javi, pogotovo kada je u pitanju razvoj weba. To uključuje jezike baze podataka, hipertekst i tako dalje. U ovom trenutku, IDEA radi ono što mnogi još nisu sposobni: analizirajući napisani program, IDE odvaja jezike jedan od drugog i analizira ih zasebno.

Program ima dobro implementirane prečice na koje ćete se, naravno, morati naviknuti. Ali kada se sve ovo dogodi, produktivnost je izvan plana. Oni također mogu uzrokovati otklanjanje pogrešaka koda, što se događa u susjednom prozoru.

Razvojno okruženje ističe se i po tome što konstantno širi broj podržanih tehnologija. Međutim, programeri nisu jako ovisni o ovim ažuriranjima. U bilo kojem trenutku mogu preuzeti odgovarajući dodatak.

IDE Eclipse

Ovo razvojno okruženje popularno je ne samo među publicistima, već i među web developerima općenito. Cijena će svakako postati značajna prednost u odnosu na IDEA – Eclipse je potpuno besplatan, kao i dodaci za njega. Inače, u planovima kreatora razvojnog okruženja nije bilo rivalstva s IDEA-om: htjeli su zasjeniti uspjeh koji je Visual Studio ostvario. Donekle su i uspjeli: prosječni web programeri gotovo uvijek preferiraju Eclipse.

Što je još bolje od IDEJE? Besplatan pristup Javi EE. Dostupan je odmah, bez dodatnih plaćanja i instaliranja dodataka. Usput, o potonjem. Njihova instalacija u Eclipse značajan je zadatak. Mogu se "svađati" među sobom, uzrokujući neugodnosti programeru. Ali pozitivna stvar je njihov broj. Savjetujemo vam da odaberete službene, jer je na taj način manja vjerojatnost da će početi u sukobu s razvojnim okruženjem.

Eclipse je dizajniran za vas da ga personalizirate za sebe. Stoga vas prvo iskustvo s IDE-om može odgurnuti od daljnje upotrebe. Ovo je rijedak slučaj kada jednom od najboljih razvojnih okruženja treba priručnik. Na sreću, na YouTubeu ih ima puno.

NetBeans

Riječ je o razvojnom okruženju koje je rođeno iz pera kreatora Jave - Sun Microsystema. Željeli su stvoriti najbolje rješenje za svoj jezik, pa su dizajnirali IDE koji nije samo Windows friendly.

To je većina platformi na našem popisu. NetBeans se može pokretati ne samo na gornjim osovinama, već i na bilo kojem drugom uređaju koji je opremljen JVM-om. Sunov pristup je odmah vidljiv: htjeli su da njihov jezik radi na svim uređajima (od računala do perilica). Naravno, "grah" se naziva službenim Java razvojnim okruženjem, iako nije tako sjajno. Danas NetBeans razvija Oracle, koji je kupio Sun.

NetBeans je pametan kao IDEA, sposoban za pametno refaktoriranje. Sustav se s tim zadatkom nosi puno bolje od Eclipsea, ali lošije od IDEA-e.

Kao što možete razumjeti iz obima rečenog, najbolji će biti imenovan IDEJA. Evo popisa razloga:

razumijevanje programiranja. Nitko ne popunjava kod niti ispravlja greške tako brzo kao IDEA;

učinkovitost refaktoriranja;

cijena. Da, Eclipse je potpuno besplatan. Ali ne biste kupili lošu hranu samo zato što je jeftinija?

Ovo je naša vizija! Inače, Oracle u svom arsenalu ima još jedan IDE, koji se zove JDeveloper, koji je potpuno izoštren za Javu. Pokušajte i vi, pa sami donesite zaključke. A imamo sve!

Suvremeni trendovi i pristupi u web razvoju

Naučite algoritam brzog rasta od nule u izgradnji web mjesta

Tijekom više od deset godina povijesti jezika Java, nije se promijenila niti jedna generacija integriranog razvojnog okruženja (IDE). Evolucija IDE alata posljedica je brojnih čimbenika, čija se ukupnost naziva informacijskim tehnologijama, koje uključuju softverske i hardverske komponente, kao i razvoj samog jezika, koji se događa ne samo dubinski, optimizacija nekih značajki, što jasno demonstrira dolazak novih Swing biblioteka umjesto zastarjelih AWT, ali i „u širinu“, je pojava JSP tehnologija, veća integracija s DBMS i aplikacijskim poslužiteljima, podrška za Spring tehnologije, Hibernate itd.

I ako su prvi IDE alati, u današnjem shvaćanju, predstavljali primitivni uređivač teksta koji je služio samo za skup izvornih kodova, a sav ostatak posla, od kompilacije do završnog sastavljanja projekta, morao se obavljati ručno, onda su današnji moderni zapravo višenamjenski uređaji koji preuzimaju ne samo poznate funkcije, već i niz dodatnih, počevši od automatske izrade Javadoc-a, refaktoriranja, profiliranja, UML-dizajna, klijenta za spajanje na bilo koji DBMS, pa sve do takvih egzotično, nije povezano s procesom razvoja, kao što je provjera pravopisa.

Podrazumijeva se da su plaćanje za sve te "pogodnosti" povećani zahtjevi za računalnim resursima. Postoji mišljenje da 80% korisnika koristi mogućnosti postojećeg softvera samo 20%, to se također može projicirati na IDE - alate. Budući da sve njihove prednosti može procijeniti samo programer koji se više od godinu dana razvija na odgovarajućoj tehnologiji. A programerima početnicima teško je adekvatno procijeniti ovaj ili onaj alat, pa se u pravilu njegov neovisni izbor događa prema dva kriterija - intuitivnoj jasnoći sučelja i raznim vremenskim i resursnim karakteristikama, kao što su učitavanje, sastavljanje, pokretanje , zauzeta količina RAM-a. Uostalom, u početku su vam potrebni samo prevodilac, program za ispravljanje pogrešaka i sam Java stroj.

Stoga je svrha ovog članka sagledati postojeće tržište IDE alata za razvoj programa na jeziku Java, identificirajući prednosti i nedostatke svakog prema različitim kriterijima, na temelju analize rezultata projekta: „Testiranje i analiza softverska razvojna okruženja za Javu" ("Testiranje i analiza IDE za Javu" (TAIDEJ)), koji smo organizirali mi, koordinacijska skupina stranice, a odvijao se od 01.01.2006. do 1.09.2006. na stranici www.site.

Projekt je bio podijeljen u nekoliko faza. U prvoj fazi razvili smo upitnik, tablicu 2, i sastavili popis Java-IDE-ova, tablica 3, koji su se razvijali od trenutka kada se jezik Java2 pojavio do danas, uključujući veze na oba IDE alata koje svi znaju i radije Egzotično. Zahvaljujući našim članovima, ovaj popis se povremeno ažurira. Ovdje želimo izraziti duboku zahvalnost svim sudionicima projekta, kao i svima onima koji su nas diskutirali i konstruktivno kritizirali na forumima, tablica 1

Tablica 1. Java - forumi
Java - Forum na Sources.Ru
RSDNhttp://www.rsdn.ru/?forum
Forumi - Juga.Ruhttp://forum.juga.ru/
IT arhivski forumihttp://www.javable.com/forum
Java forumi - Java programiranjehttp://forum.java.sun.com/
java.net forumihttp://forums.java.net
Javalobby.orghttp://www.javalobby.org/java/forums
JavaWorldhttp://www.javaworld.com/javaforums
Računalni forum Ru.Boardhttp://forum.ru-board.com
Programiranje - iXBT Hardware BBShttp://forum.ixbt.com
JUG KPI Forumhttp://jug.in.ntu-kpi.kiev.ua/forum
CITForumhttp://forum.citforum.ru
Realcoding.NEThttp://forums.realcoding.net

Prilikom izrade upitnika pokušali smo saznati sljedeće:

  1. tendencija promjene preferencija programera, budući da su se nekada uspješni alati ili potpuno prestali razvijati ili su se iz nekog razloga tvrtke koje su ih razvijale napustile, pa su se mnogi morali prebaciti s jednog IDE alata na drugi;
  2. kako je programer odabrao ovaj ili onaj alat;
  3. kako programer ocjenjuje alate s kojima je radio na ljestvici od pet stupnjeva;
Tablica 2. Upitnik

Daljnji zadaci bili su obrada i analiza dobivenih statističkih informacija, procjena "intenziteta resursa" popularnih alata. Osim toga, pripremljeni su pregledi nekih sredstava i objavljeni na web stranici projekta.

Tablica 3. Popis IDE-ova za Javu.
ImeProizvođačWeb stranica proizvoda
1 Applet Designer ProfessionalTVObjektihttp://www.tvobjects.com/
2 PrivlačnostSoftver za napredakhttp://apptivity.progress.com/
3 Awesume Jawa 1.0Awesume interaktivni dizajnhttp://www.awesume.se/en/index.htm
4 Bluettebesplatni RAD Java alathttp://blue.donga.ac.kr/bluette/
5 BongoMarimbahttp://www.marimba.com/
6 Clarion Internet EditionKorporacija TopSpeedhttp://www.topspeed.com/
7 CodeWarrior ProMetroWerkshttp://www.metrowerks.com/desktop/pro/
8 Cosmo kodSGIhttp://www.sgi.com/Products/cosmo/code/index.html
9 ED za WindowsMekana kako budehttp://www.getsoft.com/ed_java.html
10 EliksirElixir Technology Pte Ltdhttp://www.elixir.com.sg/
11 Besplatni graditeljFreeBuilder kolektivhttp://www.freebuilder.com/
12 SHVATITIProjekt GRASPhttp://www.eng.auburn.edu/grasp/
13 BrusilicaRazmjena paradigmihttp://www.tpex.com/features.htm
14 HyperwireKinetixhttp://www.ktx.com/
15 Jamba animatorInterleafhttp://www.jamba.com/
16 JambaInterleafhttp://www.jamba.com/
17 JavaManHartWarehttp://homepage.dave-world.net/~hartware/
18 Java StudioSun Microsystemshttp://www.sun.com/
19 KopljeKorak naprijedhttp://www.ozemail.com.au/~stepsoft/
20 JaWizInfinityEdge sustavihttp://www.infinityedge.com/
21 JBuilderInprisehttp://www.inprise.com/jbuilder/
22 JDesignerProBulletproofhttp://www.bulletproof.com/
23 JDE za EmacsPaul kinnucanhttp://sunsite.auc.dk/jde/
24 JADI SujalŠahhttp://dan.hcf.jhu.edu/sujal/winjadi/
25 JIGS Kockastihttp://www.scubed.cc/
26 JipeEnvision Internet Serviceshttp://www.users.globalnet.co.uk/~eis/jipe.htm
27 JPadModelWorkshttp://www.modelworks.com/
28 KalimantanReal-Time Enterprises, Inc.http://www.real-time.com/java/kalimantan/index.html
29 KAWATEK-TOOLS, Inc.http://www.tek-tools.com/kawa/
30 LavaDan Pagehttp://www.hnet.demon.co.uk/products/lava/index.html
31 LemurDizajn otokahttp://www.island-design.co.uk/
32 NetBeansNetBeans, Inc.http://www.netbeans.com/
33 OEW 1.0Inovativni softverhttp://www.isg.de/OEW/Java/
34 DIJELOVI za JavuObjectSharehttp://www.objectshare.com/p4j/p4j2info.htm
35 PowerJSybasehttp://www.sybase.com/products/powerj/
36 PržionicaPrirodna inteligencijahttp://www.roaster.com/roaster/
37 SNiFF +TakeFive softverhttp://www.takefive.com/sniff/
38 DuheVisNet Limitedhttp://www.evis.net/
39 SuperCedeSuperCede, Inc.http://www.supercede.com/
40 VisajImperial Software Technologyhttp://www.ist.co.uk/
41 Vizija žadaVision softverhttp://www.vision-soft.com/
42 VisualAge za JavuIBMhttp://www.software.ibm.com/ad/vajava/
43 Vizualni kafićSymantechttp://cafe.symantec.com/
44 Vizualni J ++Microsofthttp://www.microsoft.com/visualj/
45 Platforma za web aplikacijeSilverStreamhttp://www.silverstream.com/products/main/main_f.htm
46 Java WebIDEChami.comhttp://www.chami.com/webide/
47 Obrisatisoftwarebuero m & ampbhttp://www.softwarebuero.de/wipeout-eng.html
48 IntelliJ IDEJAIntelliJ IDEJAhttp://www.jetbrains.com/idea/
49 Zasjenitieclipse.orghttp://www.eclipse.org
50 JDeveloperOraclehttp://www.oracle.com/technology/products/jdev/index.html
51 JCreatorXinox softverhttp://www.jcreator.com/
52 jEditjEdithttp://www.jedit.org/
53 X-RazvijanjeOmnicore softverhttp://www.omnicore.com/
54 Gel IDEGExperts Inchttp://www.gexperts.com/
55 IBM Web Sphere Studio programer aplikacijaIBM softverhttp://www-306.ibm.com/software/awdtools/studioappdev/
56 proširitiNOVELLhttp://www.novell.com/products/extend/

Prvo, način distribucije, odnosno IDE se može podijeliti na plaćene (JBuilder, Visual Cafe...) i besplatne (NetBeans, Eclipse, Gel), koje svatko može preuzeti s web stranice proizvođača.

Odlučili smo istaknuti drugu klasifikacijsku značajku koja se ne temelji na nekim specifičnim mogućnostima, budući da bi, prema ovoj značajki, vjerojatno bilo moguće neograničeno dijeliti IDE, ali iz agregata mogućnosti samog alata i njegovih zahtjeva za resursima. Naravno, u ovom slučaju, prisutnost graditelja vizualnog sučelja je na prvom mjestu, što zauzvrat postavlja određene zahtjeve za resurse.

Po ovom kriteriju moguće je izdvojiti alate koji nemaju vizualni alat za razvoj GUI-ja (jednostavan), na primjer Gel, JCreator i koji imaju (složene) - JBuilder, Idea.

Sukladno tome, prvi u RAM-u tijekom rada zauzimaju manje od 30 MB, a drugi više od 100 MB. Što se samih alata za vizualni razvoj tiče, prema vlastitom iskustvu i mišljenju mnogih kolega programera s dugogodišnjim iskustvom, njihova upotreba nije uvijek opravdana za programere početnike, iako se čini da s jedne strane olakšavaju razvoj, ali, s druge strane, s druge strane, otežavaju konceptualizaciju takvih osnovnih stvari Swing knjižnica kao što su upravitelji izgleda, rukovanje događajima i još mnogo toga.

U projekt je bila uključena i skupina studenata DSTU-a (posebno bih istaknuo V. Egorenkova i D. Lagutina), koji su tek počeli studirati OOP, čiji su zadaci bili upoznati se s IDE za Javu, instalirati ga, popraviti parametre prilikom učitavanja, daju svoje komentare i, u konačnici, samostalan izbor sredstva za početni rad. Rezultati ispitivanja sažeti su u tablici 4.

Tablica 4. Rezultati testiranja IDE - alata
ParametriGeIJSreator 3.5JBuilder XIdeja 5NetBeans 4.1
Vrijeme ugradnje1 sek1-1,5 sek58 sek22 sek50 sekundi
veličina instaliranog paketa10,3 MB6,49 Mb332 MB157 Mb118 MB
Veličina distribucije4,21 Mb3,6 Mb178 Mb51,6 MB46,4 MB
Trčanje5s1-1,5 sek9 sek6 sek6 sek
Zauzeti prostor u RAM-u17828 Kb12960 Kb74128 Kb65604 Kb61409 Kb
Zauzeta količina virtualne memorije9020 Kb14960 Kb78588 Kb76416 Kb70406 Kb

* Za osnovnu konfiguraciju uzet je stroj baziran na: CPU Athlon64 3000+; RAM - 1024 MB DDR-SDRAM (pc3200)

Nakon toga održan je seminar na kojem su sumirani rezultati rada, uslijed čega je utvrđeno da u početnoj fazi rada, kada je u tijeku proces proučavanja sintaktičkih osobina jezika, postoji nema potrebe za korištenjem mogućnosti koje predstavljaju složeni IDE-ovi, iako su, naravno, mnogi bili zainteresirani za načine za brzi razvoj sučelja, budući da je ova značajka najintuitivnija i omogućuje vam da odmah dobijete rezultate. Ali, kao što znate, razvoj sučelja je sastavni, ali ne i najvažniji dio aplikacije. A povećani zahtjevi za resursima od strane složenih IDE-a, posebno s obzirom na činjenicu da kućna računala svih učenika nemaju niti 512 MB RAM-a, daju neosporne prednosti jednostavnom IDE-u, stoga je Gel prepoznat kao vodeći među studentima među svim dostupnim Ide.

Ime% glasovaRazred
1 JBuilder21.47 3.0
2 Zasjeniti16.64 3.3
3 NetBeans14.22 2.9
4 IntelliJ IDEJA11.66 3.5
5 JDeveloper7.11 2.8
6 Vizualni J ++5.26 1.8
7 JCreator4.26 2.3
8 VisualAge za Javu3.69 2.8
9 Java Studio3.41 2.0

Na temelju toga analizirajmo s kojih pozicija programer pristupa samostalnom izboru alata.

  1. Sučelje. To je prva komponenta s kojom se korisnik susreće nakon instalacije i koja stvara prvi dojam o programu, a na temelju koje se može napraviti konačan izbor. Ovdje se ne ocjenjuje samo opći dizajn, iako, naravno, na određeni način utječe i na pogodnost lokacije i konfiguracije komponenti kao što su prozor izvornog koda, prozor projekta itd.
  2. Prilagodba. Sukladno tome, nakon instalacije i prvog pokretanja razvojnog okruženja, ono se konfigurira, t.j. staze na kojima se nalaze instalirani SDK, DOCS, J2EE. U ovoj komponenti, u pravilu, nema značajnih razlika. Štoviše, moderni alati u pravilu samostalno određuju instalirane komponente.
  3. Urednik koda. Postavljanje prikaza izvornih kodova u pravilu se također ne razlikuje po raznolikosti, u bilo kojem alatu možete jednostavno prilagoditi veličinu točke i njezinu veličinu, kao i boju. Važna prednost je prisutnost pomoćnika kada se, kada miš "lebdi" na bilo kojoj varijabli ili metodi, pojavi prilično detaljan ToolTip (kontekstni prozor) u kojem se proširuje, opisuju se svi parametri objekta. Tu je i puno lijepih sitnica, izlaz numeriranja redaka, prikaz strukture klase, prikaz znakova paragrafa, provjera pravopisa.

Analizirajući, na temelju toga, sve IDE alate koji danas postoje, možete vidjeti da između njih nema značajnih razlika osim dizajna sučelja, a očito je koncept praktičnosti subjektivan.

Analiza rezultata ankete, tablice 5.6. Kao što je gore opisano, u našem istraživanju alati su podijeljeni u dvije skupine, one koji su se ranije koristili i koji se trenutno koriste. I ako među sredstvima koja su se koristila u prošlosti ima raznolikih, odabrali smo sredstva koja su dobila više od 3% glasova od ukupnog broja onih koji su sudjelovali u anketi, onda među onima koja se trenutno koriste nalazi se nema takve raznolikosti, a mi smo bili prisiljeni smanjiti postotak glasova, a čak i unatoč tome, oni nisu dobili veliku raznolikost.

Kao što možete vidjeti, "jednostavan" IDE alat JCreator stalni je sudionik u odabirima; to se očito objašnjava činjenicom da je prilično lako naučiti i ne zahtijeva puno resursa, stoga je popularan među programerima početnicima. JBuilder je izgubio tlo pod nogama, očito zato što su ga besplatni alati kao što su Eclipse i NetBeans počeli nadmašiti. Eclipse treba prepoznati kao neospornog lidera, jer nije izgubio svoje prilično visoke pozicije, već je čak dodao. Popularnost JDevelopera treba pripisati njegovom fokusu na Oracle DBMS. Popularnost IntelliJ IDEA posljedica je činjenice da su programeri u određenom trenutku uspjeli predstaviti proizvod s moćnim mogućnostima, a već nekoliko godina prilično uspješno održava svoj brend na visokoj razini, što je također potvrđuju visoke ocjene korisnika.

Općenito, valja napomenuti da su rezultati ocjenjivanja bili predvidljivi, pitanje se ticalo samo raspodjele mjesta, a iznenađenje za autore bilo je da je NetBeans dobio relativno mali postotak glasova, posebno s obzirom na mogućnosti Najnovija verzija.

Analiza razloga za odabir IDE alata pokazala je da je odabir alata prve generacije u pravilu bio slučajno ili na temelju rezultata neovisne analize, što je prirodno, budući da je u to vrijeme proces odvijalo se formiranje i samog jezika i razvojnih alata. Sredstva druge generacije odabrana su uglavnom kao rezultat neovisne analize ili savjeta prijatelja. To je najvjerojatnije zbog činjenice da se do tada formirao i krug profesionalnih Java programera i tržište za glavne programere IDE alata.

Tablica 7. Razlozi za odabir IDE-a

Stoga su IntelliJ IDEA, Eclipse i NetBeans trenutni lideri među razvojnim alatima Java IDE. Općenito, svi imaju približno istu funkcionalnost, te je prilično teško procijeniti koji je najbolji. Stoga se pri odabiru alata, očito, morate usredotočiti na IDE na kojem se projekt razvija, ako se programer pridruži razvojnom timu, ili odabrati najpristupačniji ako planirate razviti samostalni projekt.

Popis korištenih izvora

  1. Zhmailov B.B. Prednosti i nedostaci razvoja Java programa bez korištenja IDE alata. Časopis "Bilten računalnih i informacijskih tehnologija" broj 6, 2006.
  2. , Sergey Berdachuk, "Oracle JDeveloper 10g - Java Application Development Environment"
  3. , Alexey Litvinyuk, "Uvod u integrirano razvojno okruženje Eclipse"
  4. , Alexander Demyanenko, "Kratak pregled IDE - Jbuilder"
  5. , Alexander Demyanenko, "IDE pregled - ideja"
  6. , Boris Zhmailov, "Kratak pregled IDE - Gel"
  7. .Pregled automatiziranih alata za refaktoriranje u Java IDE.

Gotovo sve knjige i tutorijali o Javi za početnike počinju opisom OOP-a: kako je divan i kako je sjajan. Jasno je, budući da je u Javi bilo koje drugo programiranje jednostavno nemoguće osim objektno orijentirano, tada se u početku predlaže savladati 40..80 stranica ludih analogija s hijerarhijom mačka / pas / patka / auto, a tek nakon toga predlaže se da se napiše "Zdravo, svijet!" ... :-)

Treba napomenuti da se apsolutno sav Java trening temelji na najprimitivnijem izlazu rezultata na konzolu. To nije konzolna aplikacija u uobičajenom shvaćanju, naime izlaz nekih podataka red po redak. Pa, na primjer Turbo Pascal 3.0 izašao je 1985. i već je imao podršku za grafičke modove. 1990. godine pojavio se Turbo Vision - vrlo cool stvar - ala Windows samo za DOS. A u Javi 2018. moguć je samo izlaz na konzolu. A sada se sav taj entuzijazam i hladnokrvnost nekako razbija u komadiće već na pozornici "Hello, World!" postoji isti izlaz red po red.

Ali, smiješno je da u Javi zapravo možete kreirati programe pomoću vizualnog programiranja! Za to sam saznao tek kada sam pročitao (ili bolje rečeno upoznao) knjigu od 500 stranica, gdje se u jednom od posljednjih poglavlja odjednom pokazalo da postoje normalni GUI (grafičko korisničko sučelje) za Javu i možete dizajnirati programi s tipkama, poljima za unos i normalnim izbornicima... Postavlja se pitanje zašto ste tako dugo "petljali" po ovoj lošoj konzoli, kad ste mogli sve lijepo i uredno raditi odjednom?

Nakon što sam proveo nekoliko dana proučavajući ovo pitanje, otkrio sam nekoliko smiješnih nijansi.

Prvi- Postoje tri vrste GUI-ja za Javu (biblioteke): AWT, Swing(tko smišlja takva imena?) i JavaFX.

Danas (Java 8 i 9) svi su uključeni u JDK paket: to jest, sve radi iz kutije i ne morate se mučiti s njihovom instalacijom. Ovo je veliki plus.

Ali, AWT je prva i vrlo stara implementacija, tako da je ne morate koristiti. Općenito, nije košer. Swing je također nekošer, jer tu nešto nije u redu i programi su zbog toga užasno spori. Točnije, neću reći, nisam ga razumio, ali čini se da više službeno ne razvija nekoliko verzija. Ali JavaFX je dobar i naša svijetla budućnost.

Postoji i takva grozota - java apleti, one koje rade u pregledniku i pritom ga čvrsto "vjese", otprilike kao Flash, samo gore. Nasreću, ovaj / ovi komad / komadi praktički se više ne koriste, pa je besmisleno gubiti vrijeme na njihovo proučavanje.

Dakle, jedina stvar na koju vrijedi potrošiti svoje vrijeme je JavaFX.

Drugi trenutak... Nije tako jednostavno. Uzmite u obzir Delphi (ili Visual Studio, Lazarus, nije važno). Čak i za "zelenog" početnika, stvaranje jednostavnog programa (jedan gumb i tekstualno polje za izlaz) funkcionirat će ovako:

  • pokrenite Delphi;
  • automatski se kreira novi projekt s glavnim obrascem;
  • odaberite gumb na paleti komponenti i stavite ga na obrazac; sve je vizualno
  • slično, bacamo tekstualno polje na obrazac;
  • ako je potrebno, u traci svojstava možete odrediti tekst gumba, dimenzije itd.;
  • pokrenuti - Delphi će ponuditi spremanje, spremanje.

Odnosno, nismo napisali niti jednu liniju koda, IDE je sve radio sam. Ako pogledate generirani kod, ne možete ga nazvati jednostavnim - ovdje je već potrebno neko znanje, ali Delphi je dovoljno pametan da razumije kako s njim raditi.

Ako želimo dodati neku radnju, na primjer, kada kliknemo na gumb, ispunimo tekstualno polje izrazom "Halo!", onda radimo ovo:

  • dvaput kliknite na gumb (ili odaberite događaj onClick);
  • Delphi kreira kod za rukovanje za ovaj događaj i stavlja nas u editor;
  • upisujemo naziv tekstualnog polja i Delphi daje savjete po kojima se možete kretati što i kako učiniti.

To jest, opet, IDE je obavio sav grubi posao.

Ali ovo je na drugim jezicima, Java ide svojim putem. Da biste stvorili gumb u JavaFX-u, morate ručno kreirati Stage - "kazališnu pozornicu" (naziv je sasvim ozbiljan!) I na njima mjesto scene (Scene). To je neka vrsta kontejnera u kojem su drugi elementi već ugniježđeni.

Pretpostavlja se da se svaki element i svako njegovo svojstvo mora programirati pojedinačno. Evo primjera za dva gumba i jednu oznaku iz mog vodiča.

Odgovor = nova oznaka ("Pritisnite gumb"); Gumb btnUp = novi gumb ("Gore"); Gumb btnDown = novi gumb ("Dolje"); btnUp.setOnAction (novi EventHandler () (javni void handle (ActionEvent ae) (response.setText ("Pritisnuli ste gore.");))); btnDown.setOnAction (novi EventHandler () (javni void handle (ActionEvent ae) (response.setText ("Pritisnuli ste dolje.");))); rootNode.getChildren (). addAll (btnUp, btnDown, odgovor); ...

Kada postoji desetak tipki, plus 20 stavki izbornika, plus 30 drugih komponenti, kod se neće činiti malim. I to bez koda koji je odgovoran za dodatna svojstva, kao što su poravnanje, veličine, font... A ovo je drugi označava da vam priručnici za JavaFX pokazuju kako pisati "fx-code" olovkama. Čežnja, jednom riječju...

Ali, ovdje je spasonosno treća nijansa... Ispostavilo se da su pametni ljudi (očito upoznati s punopravnim IDE-ovima) razvili drugu vrstu aplikacija, gdje se deskriptivna xml datoteka koristi za generiranje "fx-koda", koji se zove fxml, a takvi se programi mijenjaju kao " FXML JavaFX aplikacije»

Potpuno me iznenađuje da učenje Jave ne počinje s ovakvim aplikacijama. Možda nije Delphi, ali ipak je milijun milijuna puta bolji od rada s konzolom i zamaranja drugim glupostima o tome zašto trebate koristiti stotine OOP redaka gdje je na drugim jezicima potrebna jedna jednostavna procedura. ;-)

Sad ozbiljno. Ako nikada niste programirali u Javi, možete to isprobati sada. Zapravo - prilično je kul, iako će trebati malo vremena da se svladate s programima. Ako imate iskustva s "vizualnim IDE-ovima", onda još bolje - upoznat ćete puno prijatelja.

JDK

Java mora biti instalirana na vašem računalu. Neću davati linkove kako to učiniti - google u pomoć, jer je sve prejednostavno.

IDE

Java nema niti jedan program – razvojno okruženje, pa na webu ima primjera iz različitih programa. Najprimitivniji, poput Notepada ++, prikladni su samo za izlaz na konzoli, ali ako uzmemo u obzir nešto ozbiljnije, onda se ističu samo tri kandidata: NetBeans, Eclipse i IntelliJ IDEA.

NetBeans- najjednostavniji program koji se brzo (u odnosu na ostale) pokreće i radi prilično dobro.

Zasjeniti je također dobra opcija, moćnija od NetBeansa, ali slabija od IntelliJ IDEA.

IntelliJ IDEJA- izgleda najkul, ali to morate platiti brzinom rada. Vrijedi napomenuti da se Android Studio temelji na IntelliJ IDEA, ali iz nekog razloga studio radi puno sporije.

Važna točka je vezana uz programiranje za Android. Od ova tri IDE-a, samo je IntelliJ IDEA više-manje prikladan za to. Na webu postoji puno materijala o programiranju za Android u Eclipseu, ali svi su već zastarjeli – nemojte gubiti vrijeme na pokretanje starog ADT plug-ina i pokušavajući s njim učiniti barem nešto. Možda će stari Android SDK raditi, ali svi novi neće.

Pokazat ću vam kako napraviti JavaFX FXML aplikaciju u sva tri programa, ali prije nego što nastavite, morate instalirati još jedan program: SceneBuilder (koristite verziju Java 8). Ovo je ključni program u kojem se, zapravo, izvodi sva vizualna konstrukcija. SceneBuilder može raditi samostalno bez IDE-a, tako da ga možete pokrenuti i vidjeti kako radi. Izlaz će biti fxml datoteka koja sadrži sve potrebne oznake. Ova datoteka se koristi u IDE-u umjesto pisanja megatona koda. :-)

TK

Program koji izradite bit će vrlo jednostavan - gumb i okvir za tekst. Kada kliknete na gumb, dodajte tekst "Pozdrav!" u tekstualno polje.

U svakom programu morate unaprijed registrirati postavku - koju koristi JDK. Ako ne možete shvatiti kako to učiniti, proguglajte.

NetBeans

Prije početka rada potrebno je povezati SceneBuilder: Alati - Opcije - Java - JavaFX - Početna stranica Scene Builder... Odaberite direktorij programa. Dovoljno je izvršiti podešavanje jednom. Ovo se odnosi na sve IDE-ove.

Napravite novi projekt gdje trebate odabrati "FXML JavaFX Application".

Kliknite "Završi" i nakon nekog rada NetBeansa vidimo gotove datoteke:

  • Myfx.java je glavna datoteka koja zapravo pokreće cijeli program.
  • FXMLDocumentController.java- ovo je "kontroler", gdje će se uglavnom programirati.
  • FXMLDocument.fxml- ova datoteka pohranjuje vizualni dio.

Sada pokrenite program. Prvo će ići montaža i kompilacija (prilično brzo), nakon čega će se pojaviti prozor našeg programa.

Ovo je super jer nismo napisali niti jednu liniju koda, ali već imamo program s radnim gumbom. :-)

Ako ste ispravno naveli put do SceneBuilder-a, tada možete odabrati stavku izbornika "Otvorena" u spisu FXMLDocument.fxml... Isto će se dogoditi ako dvaput kliknete. Otvorit će se SceneBuilder. Ako nema stavke, onda put nije ispravan, provjerite postavku.

Princip rada u SceneBuilderu isti je za sve IDE, pa dok opisujem samo općenite točke, onda ćete sami to shvatiti.

Vrijedi napomenuti da nakon uređivanja datoteke ne morate zatvoriti SceneBuilder. Samo trebate spremiti (Ctrl + S) i prebaciti se na IDE - on će sam pokupiti promjene.

Prozor SceneBuilder podijeljen je u tri dijela:

  • s lijeve strane - skupovi komponenti, hijerarhija i kontroler, gdje je naznačena glavna klasa (ovo je važno!)
  • u središtu je sama forma, gdje se odvija vizualna konstrukcija.
  • s desne strane - svojstva komponenti, podijeljena u tri kartice (ovo je uvjetna podjela). Kartica Code je odgovorna za ono što će se koristiti u java datoteci.

Izgradnja FX programa mora početi s kontejnerom. U ovom primjeru korišten je NetBeans Anchorpane... To je prilično zgodno, što vam omogućuje da prilagodite "ispravno" uvlačenje za ugniježđene elemente. Tab Kontejneri sadrži i druge posude s kojima možete sami vježbati (nisam još pola sam savladao :-)).

Hijerarhija komponenti je vrlo zgodna stvar koja vam omogućuje da brzo odaberete željenu stavku.

Prema uvjetima TK-a, moramo imati tekstualno polje. NetBeans koristi Label, ali nećemo ništa izbrisati, već samo dodati novu stavku Polje za tekst na oblik (proizvoljno po vašem ukusu).

U SceneBuilderu je moguć pregled (Ctrl + P). U ovom načinu rada se prikazuje samo obrazac i svi elementi "bez java programiranja".

Sada važna stvar: da bismo mogli koristiti komponentu u java programu (u našem kodu), moraju se učiniti dvije stvari.

Prvi je provjeriti je li naveden ispravan kontroler. U našem slučaju, NetBeans je već sve napravio i specificirao myfx.FXMLDocumentController.

Kao što vidite, ovo je kontroler iz datoteke FXMLDocumentController.java(paket.kontroler). IDE-ovi to ne navode uvijek, ali to je važno, budući da ga fxml datoteka (točnije java kod) koristi za povezivanje.

Druga točka - korištena komponenta mora imati vlastiti ID - ovo je parametar fx: id. Ovdje sam naznačio textField1.

Žuti trokut će se pojaviti na vrhu poruke da navodno nema veze između ovog ID-a i kontrolera. Za sada ne obraćajte pažnju na to, o tome će se dalje raspravljati.

Gumb koji će ispuniti tekstualno polje također mora imati svoj vlastiti ID, kao i metodu događaja onAction (ovo je glavni događaj komponente, a ne onClick, kao u Delphiju). NetBeans se već pobrinuo za to, tako da ne moramo ništa pisati.

Ovdje se vizualna konstrukcija može dovršiti. Spremite i prijeđite na NetBeans. Vidimo da je datoteka FXMLDocument.fxml promijenjeno: dodano textField1:

Sada moramo nekako koristiti tekstni okvir u java kodu. Za razliku od Delphija, NetBeans ne generira nikakav kod za ovo, pa ćemo ga morati dodati poluručno. Da biste to učinili, različiti IDE-ovi koriste različite metode, ali opći princip je da morate postaviti pokazivač na željeno polje u uređivaču i izvršiti neke "akcijski"... NetBeans to zove Instalirajte kontroler na jelovniku Izvor... (Da, Java ima velikih problema s imenovanjem...)

Nakon izvršenja ove naredbe, doći će do prijelaza na datoteku FXMLDocumentController.java gdje će deklaracija varijable biti dodana kodu textField1:

Obratite pažnju na "@FXML" - ova bilješka označava da se kod na neki način koristi u FXML-u. Nakon ovih promjena, SceneBuilder više neće izdavati upozorenje kao žuti trokut ranije. Ako ponovno pokrenete SceneBuilder, možete provjeriti ovo.

Pokrećemo program za izvršenje za test. Sada je naš zadatak ispuniti tekstualno polje klikom na gumb. Kao što ste već razumjeli metodu handleButtonAction samo radi posao. U njega dodajemo:

TextField1.setText ("Zdravo!");

Primijetite kako radi završetak koda nakon što se klikne na točku.

Dok tipkate, NetBeans će suziti prijedloge u kojima možete odabrati opciju koju želite. Ova značajka uvelike olakšava život programerima, budući da postoji previše opcija i to vam omogućuje izbjegavanje raznih vrsta sintaktičkih pogrešaka prilikom tipkanja.

Ova značajka je prisutna u svim IDE-ovima, iako postoje razlike u implementaciji i korištenju.

Pokrećemo program i vidimo da sve radi kako treba.

Morali smo napisati samo jedan redak koda i izvesti nekoliko dodatnih radnji u uređivaču.

Zasjeniti

Eclipseu je potrebno nešto duže za pokretanje od NetBeansa. Prvo morate odrediti put do SceneBuildera. Ovo se radi u Prozor - Postavke - JavaFX.

Također imajte na umu da je Eclipse nerusificirani program (ne znam ni postoji li rusifier za njega).

Napravite novi projekt i odaberite JavaFX.

Pritišćemo Sljedeći i dolazimo do stranice s postavkama. Ovdje sam naveo naziv projekta, kao i prije myfx(Imam različite direktorije projekta za različite IDE-ove, tako da se ne preklapaju jedan s drugim).

Ovdje trebate odabrati vrstu aplikacije, vrstu spremnika i naziv kontrolera. Pritišćemo Završi a Eclipse brzo generira kostur našeg budućeg programa.

Ovdje je sve vrlo slično, samo je dodana još jedna datoteka aplikacija.css- da, da, u JavaFX-u možete koristiti CSS za prilagođavanje izgleda! Eclipse je odmah generirao kod za vezu za ovu datoteku.

Pokrenimo program i provjerimo nema li grešaka.

Za razliku od NetBeansa, ovo je potpuno prazan obrazac. Otvorimo ga u SceneBuilderu pomoću kontekstnog izbornika.

I ovdje vidimo da nema forme. Ali, u stvari, jest - samo zadana vrijednost je izračunata veličina (visina i širina), koja je u ovom slučaju nula. Nema komponenti! U našem slučaju to nije baš ono što nam treba, pa ćemo na hijerarhijskom popisu i u svojstvima odabrati BorderPane Pref Width i Pref Visina naznačiti ćemo neke vrijednosti. Ova svojstva postavljaju "željenu" širinu i visinu. Nakon toga, forma se odmah "manifestira".

BorderPane spremnik ima 4 dijela: gornji, desni, donji, lijevi i središnji. Komponente treba postaviti u različite dijelove - to će odrediti njihov položaj kada se promijeni veličina prozora.

Ovdje je to prilično teško objasniti riječima, samo pokušajte postaviti nekoliko gumba, a zatim promijenite veličinu prozora u pregledu.

Nisam postao previše pametan i stavio sam tekstualno polje na vrh, a gumb u sredinu.

Sada provjerimo je li naveden kontroler: u ovom slučaju aplikacija.SampleController“Eclipse je odradio posao umjesto nas.

Sada moramo odrediti id za naše elemente. Za gumb sam postavio btn1, i tekstualno polje textField1... Opet smo dobili poruku "žuti trokut".

Za gumb ćemo metodu ukazati na događaj - btn1Klik.

Spremimo i vratimo se na Eclipse. Vidjet ćemo da je datoteka Sample.fxml ažurirano, ali su se pored nekih redaka pojavile ikone upozorenja.

Ovdje je situacija potpuno ista kao u NetBeans-u - trebate napraviti promjene u "poluručnom" načinu rada. U Eclipseu se za to koristi kontekstni izbornik za drugu tipku miša: Brzi popravak ili prečac Ctrl + 1(što je zgodnije).

Istodobno se pojavljuje nagovještaj o namjeravanoj radnji. Na primjer za textField1 predlaže se dodavanje identifikatora kontroleru:

a za gumb postoji i metoda rukovanja događajima:

Istodobno, Eclipse malo usporava i promjene se ne prikazuju odmah na ekranu. Ovdje se trebate ili prebaciti na datoteku kontrolera ili pričekati malo. Kao rezultat toga, potrebne promjene će biti dodane u kod i ikone upozorenja će nestati.

Dodajmo naš kod kao što smo to učinili prije u NetBeansu.

Obratite pažnju na inteligentniji rad automatskog dovršavanja. U automatskom načinu rada malo usporava, ali ako pritisnete Ctrl + razmak(ista kombinacija se koristi u mnogim IDE-ovima), također vam omogućuje da dobijete dobru pomoć.

Pokrećemo naš program.

I dodajemo još jedan IDE na naš račun. :-)

IntelliJ IDEJA

IntelliJ IDEA se pokreće prilično sporo, možete imati vremena provjeriti svoju poštu. :-)

Opet navedite put do SceneBuildera: Datoteka - Postavke:

I označavamo njegovo ime (kao i obično - myfx):

IntelliJ IDEA će se inicijalizirati i vidjet ćemo već poznate tri datoteke. Pokrenimo program da provjerimo da nema grešaka.

Tu je i prazan obrazac, ali je naznačen naziv programa. Ako pogledate kod Glavna.java, tada ćemo vidjeti redak:

PrimaryStage.setTitle ("Hello World");

Ovo je naslov aplikacije. U drugim IDE-ovima ova linija nema, ali sada znamo čemu služi "kazališna pozornica". ;-)

Prijeđite na SceneBuilder (slično Eclipse): drugom tipkom miša trebate odabrati Otvorite u SceneBuilderu.

Postoji i prazan obrazac, ali sa spremnikom GridPane... Instalirati Pref Width i Pref Visina za prikaz obrasca.

Sam GridPane je ala mreža ćelija za elemente. Mislim da nema smisla ponavljati ovdje - sve će radnje biti iste:

  • postavite gumb i testno polje,
  • dodijeli im id,
  • za gumb registrirajte metodu za rukovanje klikom,
  • ne zaboravite provjeriti je li naveden kontroler ( uzorak.Kontroler).

Zatvorite SceneBuilder i vratite se na IntelliJ IDEA. Ovdje trebate dodati ID-ove kodu, kao i stvoriti metodu za odgovor na klikove na gumb.

IntelliJ IDEA nudi dva načina za to. Prvo, kada zadržite pokazivač miša iznad "problematskog područja", pojavit će se savjet na koji možete kliknuti:

Drugi je prečac Alt + Enter

Svaki put kada dodate, prelazite na datoteku kontrolera, gdje možete odmah vidjeti promjene.

Istodobno, imajte na umu da se redak "@FXML" ne dodaje. Ako ga ručno dodamo ispred varijabli i metode, IntelliJ IDEA će odmah ponuditi dodavanje potrebne java klase:

Općenito, IntelliJ IDEA pokazuje prilično dobru inteligenciju i djeluje kao pomoćnik u pisanju koda. I to radi samostalno bez nepotrebnih pritiskanja gumba.

Pa, dodajmo naš kod za rukovatelja i pokrenimo program:

Super, sve radi!

Ukupno

Glavni zahvat je vizualno programiranje je moguće u Javi... Možda nije idealno, ali je sasvim prikladno, pogotovo za početnike. Učenje jezika je puno zanimljivije kada postoji neki opipljiv rezultat - OOP, satovi i druge mudrosti - ovo je dobro, ali bolje je početi s tipkama, poljima za unos, izbornicima i svime što podrazumijeva normalan program. A konzola je dosadna i nezanimljiva.

Donio sam tri IDE s razlogom. Na webu postoji mnogo primjera za Javu i svi su za različite programe. Osobno, još se nisam odlučio za svoju preferenciju, jer svi imaju i prednosti i nedostatke. Vjerojatno treba raditi sa svima, onda će biti jasno.

No, ključna točka je mogućnost rada sa SceneBuilderom. Izgradnja obrasca u JavaFX-u malo se razlikuje od Delphi-ja, prvenstveno u korištenju složenih spremnika (mogu biti ugniježđeni jedan unutar drugog). Stoga se prvo trebate pozabaviti njima, nakon čega već možete preuzeti same komponente.

Vrhunski povezani članci