Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • 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 pažnji adaptaciju članka Martina Hellera, programera i urednika resursa JavaWorld. Verovatno ste već čuli za tri najbolja IDE-a za Java razvoj. 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. Mada, naravno, najbolje je isprobati sve tri na poslu i saznati šta vam najviše odgovara. Ovo se ne može zamijeniti nikakvom recenzijom. Radio sam sa ovim IDE-ovima ranije, ali za ovo istraživanje sam instalirao IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE i NetBeans 8.1 Java EE na MacBook Pro laptopu. Testirao sam IDE na nekoliko Java projekata otvorenog koda.

Šta očekivati ​​od IDE-a

Moderni "zdravi Java developer" IDE bi trebao podržavati Java 8, Scala, Groovy i druge jezike Java virtuelnih mašina koje redovno koristi. Podrška za glavne servere 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 sistema kontrole verzija kao što su Ant, Maven ili Gradle, zajedno sa Git, SVN, CVS, Mercurial ili Bazaar. Osim toga, važno je da razvojno okruženje može raditi sa bazama podataka i klijentskim slojem vašeg steka, 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 da uređujete, gradite, otklanjate greške i testirate sisteme 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 će biti korisna. Ako vaš tim koristi tiket sistem i CI/CD, potreban vam je IDE da biste se mogli povezati s njima. Također, odlučite da li vam je potrebna implementacija i otklanjanje grešaka u kontejnerima i oblacima. Naveli smo samo glavna očekivanja (možda imate nešto da dodate), a sada pogledajmo izbliza naše rivale.

IntelliJ IDEA


IntelliJ IDEA dolazi u dvije varijante u pogledu karakteristika i cijene: besplatno Community izdanje i plaćeno Ultimate izdanje sa proširenom funkcionalnošću. Community izdanje je za razvoj JVM-a i Androida. Besplatna verzija podržava Java, Kotlin, Groovy i Scala; Android; Maven, Gradle i SBT; radi sa sistemima kontrole verzija Git, SVN, Mercurial i CVS. Ultimate izdanje je skrojeno za web i poslovni razvoj. Ova verzija IDE-a ne radi samo sa Git, SVN, Mercurial i CVS, već i sa Perforce, ClearCase i TFS; u njemu možete pisati u JavaScript-u 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 kompjuterima profesionalaca, zbog čega će se povećati njihova produktivnost. Ako Java programer zarađuje 50 hiljada dolara (ili čak i više) godišnje, povrat ulaganja u plaćeni IntelliJ IDEA IDE (500 dolara po godišnjoj pretplati) će se dogoditi vrlo brzo zbog čak i blagog ubrzanja njegovog rada. U narednim godinama cijena poslovanja pada, za startape, freelancere je znatno niža, a za studente, nastavnike, Java šampione 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 zasnovanih na statističkoj analizi Java koda. Pretpostavke možete detaljnije istražiti klikom na njih, kao što je prikazano na slici; u mnogim slučajevima, dobićete listu sa 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 listu najrelevantnijih simbola koji su primenljivi u datom kontekstu. Lista simbola ne zavisi samo od konteksta kao takvog, "općeprihvaćenog", već i od stila programiranja programera, od toga koliko često koristi određene operatore. "Kraj lanca" zapravo prikazuje listu primjenjivih znakova koji su dozvoljeni 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 tip simbola u vrijeme 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 refaktoriše deo koda, programer ima jednu (sasvim prirodnu) želju: da se svi duplikati ovog koda takođe refaktorišu. IDEA Ultimate pronalazi duplikate i slične fragmente i refaktorira ih. IntelliJ IDEA analizira kod pri učitavanju i direktno na ulazu. Ukazuje na sumnjive probleme (kao na našoj slici iznad) i opciono nudi listu mogućih brzih rješenja za otkrivene probleme.

Ergonomija


IntelliJ IDEA je dizajnirana tako da programera ne izbaci iz stanja streaming produktivnosti ako je već u tome. Prozor projekta, prikazan na prvoj slici lijevo, nestaje jednostavnim klikom miša tako da se programer može fokusirati na prozor uređivača koda. Za sve radnje koje su potrebne prilikom pisanja koda, postoje prečice na tastaturi za njihovu prečicu, uključujući i definiciju simbola u iskačućim prozorima. U početku je sve ove kombinacije teško zapamtiti, ali postepeno se naviknete na njih i samo ih koristite. Ipak, čak i ako programer ne koristi kombinacije tipki, kao što pokazuje praksa, on se brzo i lako navikne na rad u IDEA-i. Posebno bih želio napomenuti IDEA debugger: vrijednosti varijabli se prikazuju direktno 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 konzistentan interfejs za interakciju sa većinom sistema kontrole verzija, uključujući Git, SVN, Mercurial, CVS, Perforce i TFS. Možete upravljati promjenama direktno u IDE-u, što je vrlo zgodno. Kada sam testirao IDEA, imao sam želju da posljednja promjena u izvornom kodu bude prikazana u prozoru editora kao napomena (kao što se dešava, na primjer, u Visual Studio-u). Kako se ispostavilo, IDEA ima poseban dodatak za ovo. IDEA također ima alate za pravljenje, test runtime, 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 JetBrains ili VisualVM glavnog programera (ovo je prepakirana verzija NetBeans Profilera). Otklanjanje grešaka u Javi može biti mučno kada se čudne stvari dogode klasama za koje nemate izvor. IDEA dolazi sa dekompajlerom za takve slučajeve. Java programiranje na strani servera uključuje česte interakcije baze podataka, tako da će IDEA Ultimate programeri cijeniti pogodnost SQL-a i alata za baze podataka. Ali ako nekome nisu dovoljne njihove mogućnosti, možete kupiti IDEA Ultimate verziju sa 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 servere aplikacija i omogućava vam da implementirate i otklanjate greške na ovim serverima, eliminišući poznate poteškoće sa 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 poliglota

IDEA ima proširenu podršku koda za Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS i druge okvire. Verovatno ste primetili da nisu svi specifični za Java. IDEA direktno iz kutije "razumije" druge jezike - Groovy, Kotlin, Scala, JavaScript, TypeScript i SQL. Ako ne pronađete jezik koji želite na ovoj listi, trenutno postoji 19 IntelliJ jezičkih dodataka, 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ćava da se Eclipse koristi i sa drugim jezicima. Projekat Eclipse, koji je pokrenuo IBM, pojavio se 2001. godine. Željeli su zamijeniti porodicu IBM Visual Age razvojnih okruženja zasnovanih na Smalltalku. Pa, glavni cilj, kao što i samo ime kaže, bio je nadmašiti Microsoft Visual Studio (eclipse na engleskom znači pomračenje). Java prenosivost pomaže da Eclipse bude na više platformi: ovaj IDE radi na Linux, Mac OS X, Solaris i Windows. Za bolje ili gore, Java Standard Widget Toolkit (SWT) je barem djelimično odgovoran za izgled i osjećaj Eclipse-a. Eclipse duguje svoje performanse (ili, kako neki dobronamjerni 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, posebno s puno dodataka koji su povezani s njim. Neki od troškova Eclipse-a mogu 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 greške prilikom unosa teksta. Bez obzira na sklapanje, Eclipse projekat 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. Inače, rad sa dodacima u ovom IDE-u nije za one sa slabim srcem. Dodaci trećih strana često se međusobno sukobljavaju, iako njihove službene specifikacije ne govore ništa o tome.
Slika 2. S leva na desno, postoje četiri trake sa alatkama u Eclipse-u: Package Explorer, Java Editor, Java Class Structure i Task List. Projekat učitan u Eclipse na ovoj slici je JUnit test okvir. Paneli se mogu lako zamijeniti.

Podrška za dodatke

Ekosistem dodataka Eclipse je i jača strana ovog IDE-a i jedan od njegovih glavnih problema. Zbog nekompatibilnosti dodataka ponekad se cijeli sklopovi kvare, a programeri moraju početi ispočetka. Trenutno postoji preko 1700 dodataka napisanih za Eclipse, službenih i nezvaničnih, koji mogu, ali i ne moraju raditi vrlo dobro. Eclipse dodaci podržavaju preko 100 programskih jezika i skoro 200 okvira za razvoj aplikacija. Većina Java servera je takođe podržana: ako odredite novu serversku vezu sa Eclipse-a, bićete odvedeni na listu fascikli dobavljača, gde ćete pronaći oko 30 servera aplikacija. Postojać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 WildFly i EAP serverske alate, kao i JBoss AS.

Uređivanje, refaktorisanje i otklanjanje grešaka

Prvo iskustvo sa 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. Ovo je sve određeno dodacima koje ste instalirali. Za razvoj Jave na strani servera, vjerovatno ćete koristiti Java, Java EE i Java preglede pregledavanja, pregled Package Explorer, prikaz za otklanjanje grešaka, prikaz sinhronizacije komandi Web alata, prikaz razvoja baze podataka i prikaz za otklanjanje grešaka u bazi podataka. .. U praksi, sve ima smisla kada otvorite prozore koje želite. Eclipse gotovo uvijek nudi nekoliko načina za postizanje datog zadatka. Na primjer, možete vidjeti kod koristeći Java perspektivu pretraživanja. Šta izabrati je stvar ukusa i izbora. Java prilagođena pretraga vam omogućava da pronađete deklaracije, reference i pojavljivanja Java paketa, tipova, metoda, polja. Također možete koristiti brzi pristup za pretragu i pregled. Uobičajeni obrasci koda mogu se generirati iz kodnih obrazaca. Java refaktoring u Eclipse podržava 23 operacije, u rasponu od uobičajenih operacija preimenovanja do manje očiglednih konverzija (kao u knjizi Martina Fowlera). Eclipse podržava i lokalno i udaljeno otklanjanje grešaka, pod uslovom da koristite JVM koji podržava udaljeno otklanjanje grešaka. Otklanjanje grešaka je prilično standardno: definišete tačke prekida, a zatim pregledate varijable na kartici za otklanjanje grešaka. Naravno, možete koračati kroz svoj kod i procjenjivati ​​izraze. Eclipse ima ogromnu bazu podataka dokumentacije svih uzrasta, vrijednosti i korisnosti. Nažalost, 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 je vrlo čest za sve projekte sa izvornim kodom.


NetBeans je započeo kao studentski univerzitetski projekat u Pragu 1996. godine. 1997. IDE je postao komercijalni proizvod, a 1999. kupio ga je Sun Microsystems (roditelji Jave) i sljedeće godine je predstavio open source izdanje. Trenutna verzija 8.1 radi na mašinama koje koriste Windows, Mac OS X, Linux i Solaris. Pa, prenosivi paket se može pokrenuti na bilo kojem sistemu za koji postoji Java mašina. 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 Sve) paketu. Ipak, ako želim, mogu u svakom 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 nisu u sukobu jedan s drugim. Ove jeseni, Oracle (naslijedio je NetBeans nakon preuzimanja Sun Microsystems) odlučio je da premjesti ovo razvojno okruženje pod okrilje Apache Software Foundation, zajedno sa svim pravima, izvornim kodom, zaštitnim znakom, netbeans.org domenom i nizom druge infrastrukture elementi. Stoga je budućnost projekta još uvijek nejasna, iako je ranije sistem imao određene srodne privilegije. Dakle, upravo je NetBeans prvi dobio podršku za Javu 8 skoro odmah nakon objavljivanja ažurirane platforme, i nazvan je „zvanični IDE za Javu 8“. Međutim, mjesec dana nakon objavljivanja, ova prednost je izgubljena: tada su i drugi IDE dobili podršku za osmu Javu. Međutim, želim da istaknem da je podrška za NetBeans Java 8 zaista 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-u 8 odlično 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 sa istim projektom baziranim na Mavenu kao što je IntelliJ IDEA otvorena na slici 1. Obratite pažnju na proširenu funkcionalnost u kontekstualnom meniju i podizbornicima za refaktoriranje

Uređivanje i refaktorisanje

NetBeans Editor podržava jezike, otkriva greške dok kucate i pomaže vam sa opisima alata i pametnim dovršavanjem koda. Subjektivno, IDE se nosi sa ovim zadatkom brže od Eclipse-a, ali nešto sporije od IntelliJ IDEA. Osim toga, NetBeans ima čitav niz alata za refaktoriranje (kao što je prikazano na slici 3) koji omogućavaju programeru da restrukturira kod bez da ga razbije, izvrši analizu izvora i nudi širok spektar 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ćava vam da analizirate projektni kod i napravite predložena poboljšanja. Osobno, ipak, radije bih prvo testirao sav svoj kod pomoću jediničnih testova, a tek onda pokrenuo alate koji mogu napraviti radikalne promjene. Više puta sam patio od raznih automatskih popravki, što je dovelo do nepopravljivih posljedica.

Izrada, otklanjanje grešaka i profilisanje

NetBeans ima sjajnu ugrađenu podršku za Maven i Ant, kao i dodatak za Gradle. Bio sam presrećan kada sam otkrio da sistem doživljava Maven projekte kao izvorne. To znači da se mogu jednostavno otvoriti i ne uvoziti. NetBeans takođe sadrži atraktivan (i koristan) grafički prikaz za Maven zavisnosti. NetBeans Java Debugger nije loš, ali sa upozorenjima. Odvojeni vizuelni debager omogućava programeru da napravi snimke ekrana GUI-ja i ispita interfejse aplikacija napravljenih sa JavaFX-om i Swingom. NetBeans Profiler čini očiglednijim kako se CPU i memorija koriste i ima odlične alate za pronalaženje curenja memorije.

Poređenje tri diva

Koristio sam sva tri IDE-a, Eclipse, NetBeans i IntelliJ IDEA, tokom godina, hronološkim redom. Kad god sam prešao 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 morao da se vratim na jedan od dva preostala IDE-a. To je bio slučaj, na primjer, 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 fanove i protivnike. Poznajem mnoge Java programere koji vole IntelliJ IDEA, kao i vjerne fanove Visual Studio C++ i C#. Često su ovi ljudi zadovoljni činjenicom da je njihova produktivnost povećana, a trošak godišnje pretplate se vraća za samo nekoliko sedmica korištenja plaćene verzije IDEA-e. Međutim, korisnici NetBeans-a i Eclipse-a često su vezani za svoje alate i pitaju se zašto bi drugi programeri plaćali novac za IDEA-u. Za ambiciozne Java programere, savjetovao bih vam da se držite podalje od Eclipsea. Uprkos činjenici da je ovo i dalje najpopularniji IDE za Javu, početnicima je teško sa njim: lako se izgubiti u divljini Eclipse-a, kako tokom postavljanja sistema tako i tokom svakodnevnog rada. Eclipse ima najopsežniji ekosistem dodataka među svim IDE-ovima, a takođe i najvjerovatnije da će se srušiti zbog instalacije nekompatibilnog skupa ovih istih dodataka. Nažalost, dok sam koristio Eclipse, morao sam više puta da uklanjam još jedan pokvareni sklop ovog IDE-a i instaliram "čisti" paket. NetBeans je dobar za većinu programera, ima odličan profiler i ja ga povremeno 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 kupovinu alata, preporučujem korištenje NetBeans ili IntelliJ IDEA Community Edition ovisno o njihovim potrebama. Prvi bi trebali izabrati oni koji se bave kodiranjem Java servera, ali samo ako ne spadate u kategoriju onih koji mogu dobiti IntelliJ IDEA Ultimate besplatno ili uz ogroman popust (studenti ili oni programeri koji razvijaju projekat otvorenog koda).

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. Kreiran je za studente na Univerzitetu Rajs i postao je prilično popularan: DrJava je već preuzeta preko 2 miliona puta. DrJava je posvećena razvoju zasnovanom na testovima. Okruženje sadrži pametni uređivač koda, panel za interakciju za procjenu koda aplikacije, program za otklanjanje grešaka na nivou izvora i alate za testiranje jedinica.
  • BlueJ je besplatno Java razvojno okruženje kreirano od strane Univerziteta u Kentu za programere ambiciozne. 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, pa č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 debugger, Ant podršku i čarobnjake za kod, ali besplatna verzija (LE) ne.
  • Eclipse Che je cloud IDE zasnovan na pretraživaču koji podržava Java, C++, JavaScript, Python, PHP, Ruby i SQL.

Odabir Java IDE ovisno o projektu

Pokušao sam da opišem važne prednosti svakog od tri najznačajnija Java IDE-a i usputno spomenuo njihove korisne male rivale. Da biste odabrali pravi IDE, morate odmjeriti prednosti i nedostatke i uskladiti ih sa svojim potrebama i potrebama vaših projekata. Ako se pridružujete timu, bilo bi mudro koristiti isti IDE kao i drugi programeri, iako to nije potrebno. Ako vaš tim hostuje izvor na GitHub-u, prirodno će biti zgodnije ako vaš IDE podržava GitHub. Da, možete upravljati prijenosima koda bez IDE koristeći GitHub klijent ili git komandnu liniju. Ali koliko će takvi skokovi između različitih sistema biti efikasni? Takođe je važno da IDE održava sistem izgradnje. Na primjer, ako je u pitanju Maven, vjerovatno nećete htjeti ponovo izgraditi sistem u Antu radi lokalnog testiranja. Na sreću, sva tri velika Java IDE-a podržavaju Ant, Maven i Gradle, bilo van kutije ili sa dodatkom. Ali za "male" IDE, to možda nije istina. Prirodna je želja da razvojno okruženje podržava verziju JRE-a koja se koristi u projektu. Ako se verzije ne poklapaju, velika je vjerovatnoća da ćete dobiti mnogo nepotrebnih grešaka, koje će se, na primjer, pojaviti za vas, dok drugi članovi tima neće. Malo je vjerovatno da će takva situacija dobro uticati na vašu karmu. Iskreno govoreći, vjerovatnije je da će se nedosljednosti JRE-a pojaviti sa greškama u konfiguraciji nego bez podrške za IDE, osim ako IDE tek treba da se ažurira na novu verziju Jave. Samo mi vjerujte: ako vaš IDE u potpunosti podržava okvire i tehnologije koje se koriste u projektu, to zaista pomaže da se ubrza vaš rad. Vjerovatno 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 koji se odnosi na JPA nego u slučaju potpunog nesporazuma. Pa, ako IDE podržava okvir za testiranje i pokretač koda koji se koristi za projekat, možete pokrenuti testove bez promjene radnog okruženja. Što će takođe ubrzati proces razvoja. Konačno, stvari postaju brže ako je IDE kompatibilan sa projektnim sistemima za praćenje grešaka 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 direktno u IDE-u.

Besplatno ili plaćeno?

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

Gotovo svaki vlasnik najprimitivnijeg mobilnog telefona upoznat je sa konceptom Java platforme. Java razvojno okruženje pretpostavlja kreiranje univerzalnih aplikacija koje se mogu koristiti za pokretanje, bez obzira na instalirani operativni sistem. Razmotrimo glavne aspekte njegovog funkcioniranja i primjene.

Java razvoj?

U stvari, razvojno okruženje je čisto programski jezik zasnovan na generičkim komandama koje prepoznaje Java Runtime.

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

Primjena u računarskoj tehnologiji

Ovaj projekat je prvobitno razvio Sun Microsystems, koji je kasnije podržao Oracle.

Međutim, na kraju, Java razvojno okruženje je potpuno nezavisno od računarskih ili mobilnih sistema.

Ugrađeni moduli mobilnih sistema

Kada govorimo o pametnim telefonima i tabletima, ista verzija Jave) odnosi se samo na upotrebu grafičke aplikacije koja vam omogućava da kreirate Java aplikaciju za nekoliko minuta.

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

I to se odnosi na mobilne uređaje. Da li ste primetili da ponekad tokom vremena Windows Phone ili Android počnu da "pljuju" 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 sa sistemskim greškama. Ova platforma je potpuno nezavisna i po defaultu je izvršna naredba.

JAVA IDE: Najjednostavnija aplikacija

Niko ne sumnja da se ovaj sistem koristi u mobilnim verzijama. Java Android razvojno okruženje je podržano, a da ne spominjemo "apple" proizvode.

Međutim, u pogledu izvršnih aplikacija, stvari nisu tako jednostavne. I zato.

Izvršni apleti

Prvo, odmah obratite pažnju na sistem u koji mora biti instaliran odgovarajući arhiver (WinRAR - barem bolje - 7-Zip).

Razvojno okruženje za Java programe odnosi se na činjenicu da se podaci čuvaju 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 prilikom formiranja arhive koristile tehnologije dodatne (maksimalne) metode kompresije, nema ništa što bi moglo pomoći.

Čak ni ažuriranje arhivatora 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 sistemskoj paleti.

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 da čekate, nema problema - idite na službeni Microsoftov resurs i preuzmite program odatle. Ne sviđa vam se ova metoda? Instalirajte JDK ili J2SE, koji je Java ekstenzija, a zatim instalirajte traženi modul od odabranih, nakon čega dolazi do aktivacije automatski. Na kraju procesa može biti potrebno potpuno ponovno pokretanje sistema.

Zašto je Java OS nezavisan?

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

Ali njegova suština je u tome što Java virtuelna mašina može da prevede komande izvršnih aplikacija u posebne bajt kodove koje može prepoznati bilo koji računarski sistem, bez obzira na njegovog programera. Razvojno okruženje za Java programe se podjednako dobro koristi na računarima, Intel platformama i mobilnim sistemima Android, Blackberry, iOS i drugima.

U softverskom okruženju samog „operativnog sistema“ već postoji ugrađeni modul odgovoran za izvršavanje jezičkih komandi. I to ni na koji način ne dotiče specifične okvire kao što je Microsoft .NET Framework ili bilo koji drugi koji proizvođači operativnih sistema razvijaju za pokretanje vlastitih apleta.

Mobilni uređaji

Što se tiče čak i običnih mobilnih telefona bez ugrađenog operativnog sistema, oni takođe imaju izvornu podršku za ovu platformu. Po pravilu, instalateri imaju JAR ili JAD ekstenzije i mogu se jednostavno instalirati čak i na primitivnim telefonima.

U operativnim sistemima 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 izdvojiti, a arhivator zajedno sa 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 smatra da ne koriste "napredne" operativne sisteme, to nije tako.

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

Što se tiče samih naredbi koje se koriste za kreiranje aplikacija, njihov opis može potrajati predugo. Ali ako se ideja kreiranja aplikacije bazirane na ovom jeziku ipak pojavila, bolje je instalirati specijalizirani program poput platforme koju nudi okruženje Delphi vrlo slična).

Zaključak

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

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

Odvojeno, treba reći da su najnovije verzije Jave zasnovane na podršci za generičke programske alate, koji su bazirani na Eiffel i C# tehnologijama, koje se fundamentalno razlikuju od C++ alata. Ovdje možete koristiti automatsku konverziju skalarnih tipova podataka i uvoz takozvanih statičkih polja, a da ne spominjemo mogućnost kreiranja prateće dokumentacije sa izvornim kodom.

Java SE 6 donosi mnoge nove funkcije, uključujući čak i japansko i budističko prepoznavanje kalendara, mogućnost kreiranja punog HTTP servera, brži protok klasa i komprimirani prijenos podataka uz poboljšanje performansi do 70%, da ne spominjemo JConsole kontrolnu ploču. koja podržava OpenGL i DirectX.

Ovo se uglavnom odnosi na grafičke adaptere, iako se može odnositi čak i na upotrebu audio uređaja (najčešće virtuelnih zasnovanih na ASIO4ALL drajverima). Isto važi i za neke softverske sintisajzere ili MIDI klavijature. Međutim, upotreba izvršnih Java apleta nije uvijek predviđena.

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 greške. Zato je ovaj alat za Javu - IDE toliko tražen. Razvojno okruženje pomaže da se zaobiđu zamke koje čekaju programera koji piše u uređivaču teksta. Ako ne želite da idete dugim i trnovitim putem pisca teksta, dobrodošli u pregled vrhunskih razvojnih okruženja najprikladnijih za jezik kafe.

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 dok svi elementi sistema nisu pravilno konfigurisani. Ponekad je web programeru 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 najplaćeniji IDE za potonji - PHPStorm). Ali, kada dođe do Jave, sve dolazi na svoje mjesto. Dugi i složeni kodni dokumenti nisu podložni ručnoj sistematizaciji.

Ali, kao i uvijek, postoje protivnici ideologije. Neki programeri nazivaju IDE "štake", koje su potrebne samo manje obučenim programerima. Za njih je preuzimanje razvojnog okruženja kao varanje o osnovama. Nažalost, ovaj pristup može ostaviti programera iza evolucije programiranja: veliki poslovni projekti, poput visoko funkcionalnih web aplikacija, zahtijevaju blisku interakciju između članova tima, brzo pokretanje i otklanjanje grešaka koda. Štaviše, vještina rada sa 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 alata za razvojne programere. Ovo je posebno vidljivo u zastarjelim verzijama Windows/Linuksa - čim se pokrene razvojno okruženje, ostatak resursa doživljava stagnaciju.

Programeri na webu gotovo uvijek preferiraju uređivače teksta. Lakši su i omogućavaju vam da kreirate rješenja na kolenima. Nema dodatnih alata, nije potrebno dublje prilagođavanje, a raspon softvera je mnogo širi. Ovo je pogled koji imaju web programeri dok ne počnu sa Javom.

Želim da izaberem program

Industrija programiranja nudi mnoga rješenja za generiranje kompletnog koda. Ovo se posebno odnosi na različita razvojna okruženja. Velike kompanije poput Oraclea nisu jedine koje grade IDE. Rad na takvom softveru je po pravilu prerogativ profesionalaca koji žele da optimizuju svoje aktivnosti. Upravo to se dogodilo sa Visual Studio-om: jednim od najboljih IDE-a svih vremena. Microsoft, koji se spremao da uvede verziju Windows-a u novi vijek, jednostavno je predstavio svoje alate u jednoj aplikaciji. Sada je VS izbor miliona.

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 Microsoft proizvode. Java ima svoj vrhunski IDE, koji ćemo danas predstaviti. Ali, prvo, morate razumjeti šta želimo da vidimo idealnim IDE (konsonant).

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

Takođe, Java IDE mora podržavati brojne tehnologije koje su potrebne za efikasno kodiranje. To uključuje jezike virtuelnih mašina Java: prvenstveno Java 10, kao i Groovy i Scala. Kontrola verzija je također jedna od ključnih tačaka. Sam Git neće biti dovoljan: potrebni su vam Mercurial, SVN i još mnogo toga. Nemoguće je pogoditi koji će biti popularan za nekoliko godina (Git, naravno ☺). Web programer će imati koristi od podrške za širok spektar jezika, uključujući PL baze podataka, web jezike, i front (TS, JS, HTML) i backend (jedan od popularnih jezika opšte namene). Budući da je JVM poseban u pogledu pretvaranja 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 Java jezik, razvojno okruženje za njega mora biti višeplatformsko. Sve ostale odluke ometaju razvoj programera. Pošto je odabrao Javu, odabrao je svestranost.

Tri slona Java razvoja

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

Ideja za web razvoj

IntelliJ IDEA je IDE koji je izdao JetBrains baziran na Java virtuelnoj mašini. Samo okruženje je takođe napisano na Javi i delimično na Pythonu i namenjeno je njima. Odmah su se identifikovali kao okruženje za Javu, još 2001. Tada je razvojno okruženje predstavilo čitavu biblioteku alata za refaktorisanje, što je odmah dovelo IDEA na vrh. Programeri su se odlučili ne toliko u korist pogodnosti koliko u korist produktivnosti. Neke rutinske operacije u potpunosti obavlja 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 da radi sa Java EE platformom.

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

Savremeni trendovi i pristupi u web razvoju

Naučite algoritam brzog rasta od nule u izgradnji sajta

IDEA je jedno od onih razvojnih okruženja koje se može nazvati zaista pametnim. Umjesto popravki i isticanja koje čak i najjednostavniji uređivač teksta ima, IDEA nudi autocomplete: fragmenti gotovog programa se generiraju 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 ne izađe na kraj s problemom, odmah će signalizirati Java programeru s druge strane ekrana.

Refaktoring, koji se odvija na nekoliko jezika odjednom, također osvaja. Javisti znaju da kod nikada nije u čistoj Javi, posebno kada je u pitanju razvoj weba. Ovo uključuje jezike baze podataka, hipertekst i tako dalje. U ovom trenutku, IDEA radi ono što mnogi još nisu sposobni: analizirajući pisani 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 grešaka koda, koje se događa u susjednom prozoru.

Razvojno okruženje ističe se i po tome što konstantno proširuje broj podržanih tehnologija. Međutim, programeri ne ovise mnogo o ovim ažuriranjima. Oni mogu preuzeti odgovarajući dodatak u bilo kojem trenutku.

IDE Eclipse

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

Šta je još bolje od IDEJE? Besplatan pristup Java EE. Dostupan je odmah, bez dodatnih plaćanja i instaliranja dodataka. Usput, o ovom drugom. Njihovo instaliranje u Eclipse je značajan zadatak. Mogu se "svađati" među sobom, uzrokujući neugodnosti programeru. Ali pozitivna stvar je njihov broj. Savjetujemo vam da odaberete zvanične, jer je na taj način manja vjerovatnoća da će početi u sukobu sa razvojnim okruženjem.

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

NetBeans

To je razvojno okruženje koje je rođeno iz pera kreatora Jave - Sun Microsystem. Željeli su stvoriti najbolje rješenje za svoj jezik, pa su dizajnirali IDE koji nije samo Windows friendly.

To je najveća platforma na našoj listi. NetBeans se može pokrenuti ne samo na gornjim osovinama, već i na bilo kojem drugom uređaju koji je opremljen JVM-om. Sunov pristup je odmah očigledan: željeli su da njihov jezik radi na svim uređajima (od kompjutera do mašina za pranje veša). Naravno, "beans" 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 refaktorisanje. Sistem se nosi sa ovim zadatkom mnogo bolje od Eclipsea, ali lošije od IDEA.

Kao što možete shvatiti iz obima rečenog, najbolji će biti nazvan IDEJA. Evo liste razloga:

razumijevanje programiranja. Niko ne popunjava kod ili ispravlja greške tako brzo kao IDEA;

efikasnost 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. Probajte i vi, pa sami donesite zaključke. I imamo sve!

Savremeni trendovi i pristupi u web razvoju

Naučite algoritam brzog rasta od nule u izgradnji sajta

Tokom više od deset godina istorije Java jezika, nijedna generacija integrisanog razvojnog okruženja (IDE) se nije promenila. Evolucija IDE alata je zbog mnogih faktora, čija se ukupnost naziva informacionim tehnologijama, koje uključuju softverske i hardverske komponente, kao i razvoj samog jezika, koji se dešava ne samo dubinski, optimizacija nekih karakteristika, što jasno demonstrira dolazak novih Swing biblioteka umjesto zastarjelih AWT, ali i „u širinu“, je pojava JSP tehnologija, veća integracija sa DBMS i aplikacijskim serverima, 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 konačnog sklapanja projekta, morao je da se radi ručno, onda su današnji moderni zapravo multifunkcionalni 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 povezivanje na bilo koji DBMS, pa do takvih egzotično, nevezano za proces razvoja, kao što je provjera pravopisa.

Podrazumeva se da je plaćanje za sve ove "pogodnosti" povećani zahtevi za računarskim resursima. Postoji mišljenje da 80% korisnika koristi mogućnosti postojećeg softvera samo 20%, to se može projektovati i 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, kompajliranje, pokretanje , zauzeta količina RAM-a. Na kraju krajeva, u početku su vam potrebni samo kompajler, debuger i sama Java mašina.

Stoga je svrha ovog članka da sagleda postojeće tržište IDE alata za razvoj programa koristeći Java jezik, identificirajući prednosti i slabosti svakog od njih prema različitim kriterijima, a na osnovu analize rezultata projekta: „Testiranje i analiza okruženja za razvoj softvera za Javu" ("Testiranje i analiza IDE za Javu" (TAIDEJ)), koji smo organizovali mi, koordinaciona grupa sajta, a odvijao se od 01.01.2006 do 1.09.2006 na sajtu www.site.

Projekat je podijeljen u nekoliko faza. U prvoj fazi, razvili smo upitnik, tabelu 2, i sastavili listu Java-IDE-ova, tabela 3, koji su se razvijali od trenutka kada se jezik Java2 pojavio do danas, uključujući veze do oba IDE alata koje svi poznaju i prilično egzotično. Zahvaljujući našim članovima, ova lista se povremeno ažurira. Ovdje želimo izraziti duboku zahvalnost svim učesnicima u projektu, kao i svima onima koji su nas diskutovali i konstruktivno kritikovali na forumima, tabela 1

Tabela 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
Kompjuterski forum Ru.Boardhttp://forum.ru-board.com
Programiranje - iXBT Hardver 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 da saznamo sljedeće:

  1. tendencija promjene preferencija programera, jer su nekada uspješni alati ili potpuno prestali da se razvijaju ili su iz nekog razloga kompanije koje su ih razvijale napustile distancu, pa su mnogi morali da prelaze sa jednog IDE alata na drugi;
  2. kako je programer izabrao ovaj ili onaj alat;
  3. kako programer ocjenjuje alate s kojima je radio na skali od pet tačaka;
Tabela 2. Upitnik

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

Tabela 3. Lista IDE-ova za Javu.
ImeProizvođačWeb stranica proizvoda
1 Applet Designer ProfessionalTVObjectshttp://www.tvobjects.com/
2 ApptivityProgress Softwarehttp://apptivity.progress.com/
3 Awesume Jawa 1.0Awesume Interactive Designhttp://www.awesume.se/en/index.htm
4 Bluettebesplatni RAD Java alathttp://blue.donga.ac.kr/bluette/
5 BongoMarimbahttp://www.marimba.com/
6 Clarion Internet EditionTopSpeed ​​Corporationhttp://www.topspeed.com/
7 CodeWarrior ProMetroWerkshttp://www.metrowerks.com/desktop/pro/
8 Cosmo CodeSGIhttp://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 Free builderFreeBuilder kolektivhttp://www.freebuilder.com/
12 GRASPProjekat GRASPhttp://www.eng.auburn.edu/grasp/
13 GrinderParadigm Exchangehttp://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 KopljaKorak naprijedhttp://www.ozemail.com.au/~stepsoft/
20 JaWizInfinityEdge Systemshttp://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 SujalShahhttp://dan.hcf.jhu.edu/sujal/winjadi/
25 JIGS Cubedhttp://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 ostrvahttp://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 RoasterPrirodna inteligencijahttp://www.roaster.com/roaster/
37 SNiFF +TakeFive Softwarehttp://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 Vision jadeVision Softwarehttp://www.vision-soft.com/
42 VisualAge za JavuIBMhttp://www.software.ibm.com/ad/vajava/
43 Visual cafeSymantechttp://cafe.symantec.com/
44 Visual 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 Izbrisatisoftwarebuero m & ampbhttp://www.softwarebuero.de/wipeout-eng.html
48 IntelliJ IDEAIntelliJ IDEAhttp://www.jetbrains.com/idea/
49 Eklipsaeclipse.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-DevelopOmnicore 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 produžitiNOVELLhttp://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 svako može preuzeti sa web stranice proizvođača.

Odlučili smo da istaknemo drugu klasifikacionu karakteristiku ne na osnovu nekih specifičnih mogućnosti, jer bi, prema ovoj osobini, verovatno bilo moguće neograničeno podeliti IDE, već iz agregata mogućnosti samog alata i njegovog resursa zahtjevi. Naravno, u ovom slučaju, prisustvo graditelja vizuelnog interfejsa je na prvom mestu, što zauzvrat postavlja određene zahteve za resurse.

Po ovom kriterijumu mogu se izdvojiti alati koji nemaju vizuelni alat za razvoj GUI (jednostavnog), na primer Gel, JCreator, a koji imaju (kompleksne) - JBuilder, Idea.

Shodno tome, prvi u RAM-u tokom rada zauzimaju manje od 30 MB, a drugi više od 100 MB. Što se tiče samih alata za vizualni razvoj, prema vlastitom iskustvu i mišljenju mnogih kolega programera sa 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 biblioteka kao što su menadžeri rasporeda, rukovanje događajima i još mnogo toga.

U projekat je bila uključena i grupa studenata DSTU-a (posebno želim da pomenem V. Egorenkova i D. Lagutina), koji su tek počeli da studiraju OOP, čiji su zadaci bili da se upoznaju sa IDE za Java, instaliraju ga, poprave parametri pri učitavanju, daju svoje komentare i, na kraju, samostalan izbor sredstva za početni rad. Rezultati testa su sažeti u tabeli 4.

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

* Za osnovnu konfiguraciju uzeta je mašina bazirana na: CPU Athlon64 3000+; RAM - 1024MB DDR-SDRAM (pc3200)

Nakon toga je održan seminar na kojem su sumirani rezultati rada, na osnovu čega je ustanovljeno da u početnoj fazi rada, kada je u toku proces proučavanja sintaksič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 funkcija najintuitivnija i omogućava 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 svi kućni računari učenika nemaju čak 512 MB RAM-a, daju neosporne prednosti jednostavnom IDE-u, stoga je Gel prepoznat kao lider među studentima među svim dostupnim IDE.

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

Na osnovu toga analizirajmo sa kojih pozicija programer pristupa samostalnom izboru alata.

  1. Interfejs. Ovo je prva komponenta sa kojom se korisnik susreće nakon instalacije i koja formira prvi utisak o programu, a na osnovu koje se može napraviti konačan izbor. Ovdje se ne ocjenjuje samo cjelokupni 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. Shodno tome, nakon instalacije i prvog pokretanja razvojnog okruženja, ono se konfiguriše, tj. staze na kojima se nalaze instalirani SDK, DOCS, J2EE. U ovoj komponenti se po pravilu ne uočavaju značajne razlike. Štoviše, moderni alati u pravilu samostalno određuju instalirane komponente.
  3. Editor koda. Postavljanje prikaza izvornih kodova u pravilu se također ne razlikuje po raznolikosti, u bilo kojem alatu možete lako prilagoditi veličinu točke i njenu veličinu, kao i boju. Važna prednost je prisustvo pomoćnika kada, kada miš "lebdi" na bilo kojoj varijabli ili metodi, iskoči prilično detaljan ToolTip (kontekstni prozor) u kojem se proširuju svi parametri objekta. Tu je i puno lijepih sitnica, izlaz numeracije redova, prikaz strukture klase, prikaz znakova pasusa, provjera pravopisa.

Analizirajući, na osnovu toga, sve IDE alate koji danas postoje, možete vidjeti da nema značajnih razlika osim u dizajnu interfejsa između njih i, očigledno, koncept pogodnosti je subjektivan.

Analiza rezultata ankete, tabele 5.6. Kao što je gore opisano, u našoj anketi alati su podijeljeni u dvije grupe, one koje su ranije korištene i koje se trenutno koriste. I ako među sredstvima koja su se koristila u prošlosti postoji raznovrsnost, odabrali smo sredstva koja su dobila više od 3% glasova od ukupnog broja onih koji su učestvovali u anketi, onda među onima koja se trenutno koriste nema takva raznolikost, a mi smo bili primorani da smanjimo postotak glasova, a ni uprkos tome, oni nisu dobili veliku raznolikost.

Kao što vidite, "jednostavan" IDE alat JCreator je stalni učesnik u odabiru; to se očito objašnjava činjenicom da je prilično lako naučiti i da ne zahtijeva puno resursa, stoga je popularan među programerima početnicima. JBuilder je izgubio tlo pod nogama, očigledno zato što su besplatni alati kao što su Eclipse i NetBeans počeli da ga nadmašuju. Eclipse treba priznati kao neprikosnovenog lidera, jer nije izgubio svoje prilično visoke pozicije, već je čak dodao. Popularnost JDeveloper-a treba pripisati njegovom fokusu na Oracle DBMS. Popularnost IntelliJ IDEA je posledica činjenice da su u određenom trenutku programeri uspeli da predstave proizvod sa moćnim mogućnostima, a već nekoliko godina prilično uspešno održava svoj brend na visokom nivou, što je takođe potvrđeno visokim ocjenama korisnika.

Općenito, treba napomenuti da su rezultati ocjenjivanja bili predvidljivi, pitanje se ticalo samo raspodjele mandata, ali je iznenađenje za autore bilo da je NetBeans dobio relativno mali postotak glasova, posebno s obzirom na mogućnosti najnoviju verziju.

Analiza razloga za odabir IDE alata pokazala je da je izbor alata prve generacije, po pravilu, vršen slučajno ili na osnovu rezultata nezavisne 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 nezavisne analize ili savjeta prijatelja. To je najvjerovatnije zbog činjenice da se do tada formirao i krug profesionalnih Java programera i tržište za glavne programere IDE alata.

Tabela 7. Razlozi za odabir IDE

Dakle, IntelliJ IDEA, Eclipse i NetBeans su trenutni lideri među Java IDE razvojnim alatima. Generalno, svi imaju približno istu funkcionalnost i prilično je teško procijeniti koji je najbolji. Stoga, prilikom odabira alata, očito, morate se fokusirati na IDE na kojem se projekt razvija, ako se programer pridruži razvojnom timu, ili odabrati najpristupačniji ako planirate razvijati samostalan projekat.

Spisak korištenih izvora

  1. Zhmailov B.B. Prednosti i nedostaci razvoja Java programa bez upotrebe IDE alata. Časopis "Bilten računarskih i informacionih tehnologija" br. 6, 2006.
  2. , Sergey Berdachuk, "Oracle JDeveloper 10g - Java Application Development Environment"
  3. , Alexey Litvinyuk, "Uvod u Eclipse integrisano razvojno okruženje"
  4. , Alexander Demyanenko, "Kratak pregled IDE - Jbuilder"
  5. , Alexander Demyanenko, "IDE Overview - Idea"
  6. , Boris Zhmailov, "Kratak pregled IDE - Gel"
  7. .Pregled automatizovanih alata za preuređivanje 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, pošto je u Javi bilo koje drugo programiranje jednostavno nemoguće osim objektno orijentisanog, onda se u početku predlaže savladati 40..80 stranica ludih analogija sa hijerohijom mačka/pas/patka/automobil, a tek nakon toga predlaže se da se napiše "Zdravo, svijete!" ... :-)

Treba napomenuti da je apsolutno sav Java trening zasnovan na najprimitivnijem izlazu rezultata na konzolu. To nije konzolna aplikacija u uobičajenom razumijevanju, odnosno izlaz nekih podataka red po red. Pa, na primjer Turbo Pascal 3.0 je objavljen 1985. godine i već je imao podršku za grafičke modove. 1990. godine pojavio se Turbo Vision - vrlo kul 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 paramparčad već na bini "Hello, World!" postoji isti izlaz red po red.

Ali, smiješno je to što u Javi zapravo možete kreirati programe koristeći vizualno programiranje! Za ovo 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čki korisnički interfejsi) za Javu i da možete dizajnirati programi sa dugmadima, poljima za unos i normalnim menijima... Postavlja se pitanje zašto ste toliko dugo „petljali“ po ovoj ušljivoj konzoli, kada ste sve mogli da radite lepo i uredno odjednom?

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

Prvo- Postoje tri tipa GUI za Javu (biblioteke): AWT, Swing(ko 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 da se trudite da ih instalirate. Ovo je veliki plus.

Ali, AWT je prva i vrlo stara implementacija, tako da ne morate da je koristite. Generalno, nije košer. Swing je također nekošer, jer tu nešto nije u redu i programi su užasno spori zbog toga. Tačnije, neću reći, nisam to 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 applets, one koje rade u pretraživaču i istovremeno ga čvrsto "okače", otprilike kao Flash, samo gore. Na svu sreću, ovaj / ovi komadi / komadi se praktično 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, kreiranje jednostavnog programa (jedno dugme i tekstualno polje za izlaz) će raditi ovako:

  • start Delphi;
  • automatski se kreira novi projekat sa glavnom formom;
  • odaberite dugme na paleti komponenti i stavite ga na obrazac; sve je vizuelno
  • slično, bacamo tekstualno polje na obrazac;
  • ako je potrebno, u traci sa svojstvima možete odrediti tekst gumba, dimenzije itd.;
  • pokrenite - Delphi će ponuditi da sačuvate, sačuvate.

Odnosno, nismo napisali ni jednu liniju koda, IDE je sve uradio sam. Ako pogledate generirani kod, ne možete ga nazvati jednostavnim - ovdje je već potrebno određeno znanje, ali Delphi je dovoljno pametan da razumije kako se radi s njim.

Ako želimo da dodamo neku radnju, na primjer, kada kliknemo na dugme, ispunimo tekstualno polje frazom "Zdravo!", onda radimo ovo:

  • dvaput kliknite na dugme (ili izaberite događaj onClick);
  • Delphi kreira kod rukovaoca za ovaj događaj i stavlja nas u editor;
  • ukucavamo ime tekstualnog polja i Delphi daje nagoveštaje pomoću kojih se možete kretati šta i kako da radite.

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

Ali ovo je na drugim jezicima, Java ide svojim putem. Da biste kreirali dugme u JavaFX-u, morate ručno kreirati Stage - "pozorišnu scenu" (ime je sasvim ozbiljno!) I na njima postavite scenu (Scene). To je neka vrsta kontejnera u kojem su drugi elementi već ugniježđeni.

Pretpostavlja se da svaki element i svako njegovo svojstvo moraju biti programirani pojedinačno. Evo primjera za dva dugmeta i jednu oznaku iz mog vodiča.

Odgovor = nova oznaka ("Pritisnite dugme"); Dugme btnUp = novo dugme ("Gore"); Button btnDown = novo dugme ("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 ("Pritisli ste dole.");))); rootNode.getChildren (). addAll (btnUp, btnDown, odgovor); ...

Kada postoji desetak dugmadi, plus 20 stavki menija, 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 sekunda označava da vam JavaFX tutorijali pokazuju kako pisati "fx-code" olovkama. Čežnja, jednom rečju...

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

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

Sad ozbiljno. Ako nikada niste programirali u Javi, možete to isprobati sada. U stvari - prilično je cool, iako će trebati malo vremena da se naviknete na programe. Ako imate iskustva sa "vizuelnim IDE-ima", onda još bolje - upoznaćete mnogo prijatelja.

JDK

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

IDE

Java nema jedan program - razvojno okruženje, pa postoje primjeri iz različitih programa na webu. Najprimitivniji, poput Notepad ++, pogodni su samo za izlaz na konzoli, ali ako uzmemo u obzir nešto ozbiljnije, onda se izdvajaju 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.

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

IntelliJ IDEA- izgleda najbolje, ali morate to platiti brzinom rada. Vrijedi napomenuti da je Android Studio baziran na IntelliJ IDEA, ali iz nekog razloga studio radi mnogo sporije.

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

Pokazaću vam kako da napravite JavaFX FXML aplikaciju u sva tri programa, ali pre nego što nastavite, morate da instalirate 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 nezavisno 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 kreirate biće vrlo jednostavan - dugme i okvir za tekst. Kada kliknete na dugme, dodajte tekst „Zdravo!“ u polje za tekst.

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 - Scene Builder Početna stranica... Odaberite direktorij programa. Dovoljno je izvršiti podešavanje jednom. Ovo se odnosi na sve IDE.

Kreirajte novi projekat gdje trebate odabrati "FXML JavaFX aplikacija".

Kliknite na "Finish" 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 ni jednu liniju koda, ali već imamo program sa radnim dugmetom. :-)

Ako ste ispravno naveli putanju do SceneBuilder-a, tada možete odabrati stavku menija "otvoreno" u dosijeu FXMLDocument.fxml... Isto će se dogoditi ako dvaput kliknete. SceneBuilder će se otvoriti. Ako nema stavke, onda je putanja pogrešna, provjerite postavku.

Princip rada u SceneBuilder-u je isti za sve IDE, tako da dok opisujem samo opšte tačke, onda ćete sami to shvatiti.

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

Prozor SceneBuilder-a podijeljen je u tri dijela:

  • lijevo - skupovi komponenti, hijerarhija i kontroler, gdje je naznačena glavna klasa (ovo je važno!)
  • u centru je sama forma, gde se odvija vizuelna konstrukcija.
  • desno - svojstva komponenti, podijeljena u tri kartice (ovo je uvjetna podjela). Kartica Kod je odgovorna za ono što će se koristiti u java datoteci.

Izgradnja FX programa mora početi sa kontejnerom. U ovom primjeru korišten je NetBeans Anchorpane... Prilično je zgodan, omogućava vam 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 savladao :-)).

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

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

U SceneBuilderu je moguć pregled (Ctrl + P). U ovom modu, samo se forma i svi elementi "bez java programiranja" prikazuju.

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

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

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

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

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

Dugme koje će popuniti tekstualno polje takođe mora imati svoj ID, kao i onAction metod događaja (ovo je glavni događaj komponente, a ne onClick, kao u Delphiju). NetBeans se već pobrinuo za ovo, tako da ne moramo ništa pisati.

Ovdje se vizualna konstrukcija može završiti. Sačuvajte i prebacite se na NetBeans. Vidimo da je fajl FXMLDocument.fxml promijenjeno: dodano textField1:

Sada moramo nekako koristiti tekstualni okvir u java kodu. Za razliku od Delphija, NetBeans ne generiše nikakav kod za ovo, tako da ćemo ga morati dodati poluručno. Da bi to učinili, različiti IDE koriste različite metode, ali opći princip je da morate postaviti kursor na željeno polje u uređivaču i izvršiti neke "akcija"... NetBeans to zove Instalirajte kontroler na meniju Izvor... (Da, Java ima velikih problema sa 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 napomena ukazuje 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 ponovo pokrenete SceneBuilder, ovo možete provjeriti.

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

TextField1.setText ("Zdravo!");

Obratite pažnju na to kako radi završetak koda nakon što se klikne na tačku.

Dok kucate, NetBeans će suziti prijedloge gdje možete odabrati opciju koju želite. Ova funkcija umnogome olakšava život programerima, budući da postoji previše opcija i to vam omogućava da izbjegnete razne vrste sintaktičkih grešaka prilikom kucanja.

Ova karakteristika je prisutna u svim IDE-ovima, iako postoje razlike u implementaciji i upotrebi.

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

Pa, morali smo napisati samo jednu liniju koda i izvršiti nekoliko dodatnih radnji u uređivaču.

Eklipsa

Eclipseu je potrebno nešto duže da se pokrene nego NetBeans. Prvo, morate odrediti putanju do SceneBuilder-a. Ovo se radi u Prozor - Postavke - JavaFX.

Takođe imajte na umu da je Eclipse nerusifikovani program (ne znam čak ni da li postoji rusifikator za njega).

Kreirajte novi projekat i odaberite JavaFX.

Pritiskamo Sljedeći i dolazimo do stranice postavki. Ovdje sam naveo naziv projekta, kao i prije myfx(Imam različite direktorije projekta za različite IDE, tako da se ne preklapaju jedni s drugima).

Ovdje trebate odabrati vrstu aplikacije, vrstu kontejnera i naziv kontrolera. Pritiskamo Završi i Eclipse brzo generiše kostur našeg budućeg programa.

Ovdje je sve vrlo slično, samo je dodat još jedan fajl application.css- da, da, u JavaFX-u možete koristiti CSS da prilagodite izgled! Eclipse je odmah generirao kod za vezu za ovu datoteku.

Pokrenimo program i uvjerimo se da nema grešaka.

Za razliku od NetBeans-a, ovo je potpuno prazan obrazac. Otvorimo ga u SceneBuilder-u koristeći kontekstni meni.

I ovdje vidimo da nema forme. Ali, u stvari, jeste - samo podrazumeva izračunatu veličinu (visinu i širinu), koja je u ovom slučaju nula. Nema komponenti! U našem slučaju to nije baš ono što nam treba, pa ćemo izabrati BorderPane na hijerarhijskoj listi i u svojstvima Pref Width i Pref Height naznačićemo neke vrednosti. Ova svojstva postavljaju "željenu" širinu i visinu. Nakon toga, forma se odmah "manifestira".

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

Ovde je prilično teško objasniti rečima, samo pokušajte da postavite nekoliko dugmadi, a zatim promenite veličinu prozora u pregledu.

Nisam postao previše pametan i postavio sam tekstualno polje na vrh, a dugme u centar.

Sada provjerimo da li je kontroler specificiran: u ovom slučaju application.SampleController“Eclipse je uradio posao za nas.

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

Za dugme ćemo metodu ukazati na događaj - btn1Click.

Sačuvajmo i vratimo se na Eclipse. Vidjet ćemo da je fajl Sample.fxml ažurirano, ali su se ikone upozorenja pojavile pored nekih redova.

Ovdje je situacija potpuno ista kao u NetBeans-u - trebate napraviti promjene u "poluručnom" načinu rada. U Eclipseu se za ovo koristi kontekstni meni za drugo dugme miša: Quick Fix ili interventni taster Ctrl + 1(što je zgodnije).

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

a za dugme postoji i metoda rukovanja događajima:

Istovremeno, 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, potrebne promjene će biti dodate u kod i ikone upozorenja će nestati.

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

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đe vam omogućava da dobijete dobru pomoć.

Pokrećemo naš program.

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

IntelliJ IDEA

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

Opet navedite putanju do SceneBuilder-a: Fajl - Postavke:

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

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

Postoji i prazan formular, ali je naznačen naziv programa. Ako pogledate kod Main.java, tada ćemo vidjeti liniju:

PrimaryStage.setTitle ("Hello World");

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

Prebacite se na SceneBuilder (slično Eclipse): sa drugim dugmetom miša morate odabrati Otvorite u SceneBuilderu.

Postoji i prazan formular, ali sa kontejnerom GridPane... Instaliraj Pref Width i Pref Height za prikaz obrasca.

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

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

Zatvorite SceneBuilder i vratite se na IntelliJ IDEA. Ovdje morate dodati ID-ove kodu, kao i kreirati metodu za reagovanje na klikove na dugme.

IntelliJ IDEA nudi dva načina za to. Prvo, kada pređete mišem preko "problematskog područja", pojavit će se savjet na koji možete kliknuti:

Drugi je interventni taster Alt + Enter

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

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

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

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

Odlično, sve radi!

Ukupno

Glavni zaključak je vizuelno programiranje je moguće u Javi... Možda nije idealno, ali je sasvim prikladno, posebno za početnike. Učenje jezika je mnogo interesantnije kada postoji neki opipljivi rezultat - OOP, klase i druge mudrosti - ovo je dobro, ali bolje je početi sa dugmadima, poljima za unos, menijima i svime što podrazumeva 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. Lično, još se nisam odlučio za svoje preferencije, jer svi imaju i prednosti i nedostatke. Vjerovatno treba raditi sa svima, onda će biti jasno.

Ali, ključna stvar je mogućnost rada sa SceneBuilder-om. Izgradnja forme u JavaFX-u se malo razlikuje od Delphi-ja, prvenstveno u korišćenju složenih kontejnera (mogu biti ugniježđeni jedan u drugi). Stoga bi se prvo trebali pozabaviti njima, nakon čega već možete preuzeti same komponente.

Top srodni članci