fbpx

Fejlesztői környezetek – mikor melyiket érdemes használni?

Ízelítő a fejlesztői környezetekről szóló tartalomból:


Előszó

Ebben a bejegyzésben kicsit részletesebben beszélünk az előző részben említett Java fejlesztői környezetekről, a megválasztásuk fontosságáról, átvesszük azok előnyeit és hátrányait, és segítek az optimális fejlesztői környezet kiválasztásában. Mindezek előtt azonban nem árt tisztázni: mik is az integrált fejlesztői környezetek?


Mik is azok az integrált fejlesztői környezetek?

Az integrált fejlesztői környezetek vagy röviden IDE-k (Integrated Development Environment) alkalmazások, melyek jelentősen megkönnyítik és meggyorsítják a szoftverfejlesztést. Ahogy a korábbi fejezetben körbejártuk, önmagában a fejlesztéshez egy szövegszerkesztő is elég lenne, viszont az IDE sokkal több ennél. Az alábbiakban – a teljesség igénye nélkül – leírok néhányat egy XXI. századi modern IDE funkciói közül:

  • Ismeri a nyelv szintaxisát: az integrált fejlesztői környezetek ismerik a nyelv jellegzetességeit. Miért jó ez? Két dolog miatt is: egyrészt könnyedén kiszűri a hibákat, másrészt optimalizációs javaslatokkal tud élni a tisztább kód elérése érdekében.
  • Tudja futtatni a projektet: minden környezet tartalmaz mindent, ami a program lefordításához és futtatásához szükséges. Tartalmaz egy fordítót (compiler / interpreter) és tartalmazza a futtatási környezetet (runtime environment). Ezenkívül tartalmaz debugger-t is, ami a hibák feltárását segíti.
  • Támogatja a verziókezelést: egy modern környezet felhasználói felülettel támogatja a legkorszerűbb verziókezelő rendszerek (Git, SVN, TFS, …) valamelyikét, ezzel felgyorsítva a verziókezelés folyamatát. Természetesen a verziókezelés parancssorból is megvalósítható. Az viszont mindenképp fel tudja gyorsítani a munkát, ha nem minden parancsot parancssorból kell bepötyögni 🙂
  • Sablonokat tartalmaz: egy IDE rengeteg sablont (template) tartalmaz, ami az automatizálható dolgokat automatikusan végrehajtja. Ez több száz sornyi kódot és több órányi felesleges munkát takarít meg a számunkra.
  • Rengeteg további dolgot támogat: egy modern IDE rengeteg egyéb dolgot támogat (adatmodellezés, unit tesztelés és számos egyéb funkció).
  • Teljesen testre szabható: mindezeken túl egy modern fejlesztői környezet igényeid szerint testre szabható. Rengeteg beállítás és letölthető plugin segít abban, hogy a lehető legkényelmesebben és leghatékonyabban tudjunk dolgozni.

Java integrált fejlesztői környezetek – melyiket válasszam?

A legnépszerűbb ingyenes elérhető Java integrált feljesztői környezetek az IntelliJ IDEA Community Edition, az Eclipse és az ezeknél jóval kisebb és nehézkesebb Netbeans. Az, hogy a programozó melyiket választja, egyrészt vallási kérdés: mindegyikük azért van a piacon, mert hatékonyan lehet velük dolgozni.

Ha a jövőben alkalmazottként szeretnél dolgozni, a munkaadód is jó eséllyel megmondja, hogy melyik IDE-t használd, mert ha valami probléma adódik a környezettel, amit hirtelen meg kell oldani, akkor így könnyebben tudtok egymásnak segíteni. Lehetséges az is, hogy előfizetnek neked egy fizetős verzióra, mert a fejlesztéshez szükségesek azok a funkciók, amiket az tartalmaz.

Az IntelliJ IDEA eredetileg Android programozásra készült, később beleépítették az összes keretrendszer használatának lehetőségét. Akik szeretik, általában azt mondják, hogy a kódfelismerő funckiója intelligensebb, mint a piacon lévő többi IDE-é. Sokan azt írják, hogy ha szeretnél fizetni, akkor valóban az IntelliJ IDEA szoftvere a legjobb, de az Eclipse a legjobb ingyenes megoldás. Egyrészt azért, mert rendkívül alacsony a gépigénye. Ez a bejegyzés egy rettentő komprehenszív elemzést végzett az IntelliJ vs. Eclipse témakörről. A lentiekben egy kis segítséget szeretnék adni, hogy mikor melyik integrált fejlesztői környezetet érdemes használni.

Mikor melyiket használjam?

Az alábbiakban leírok néhány tényt az Eclipse-ről és az IntelliJ IDEA-ről:

  • Az Eclipse-nek sokkal kisebb a rendszerigénye
  • Az Eclipse-nek jelentősen jobb a memóriamenedzsmentje
  • Az Eclipse gyakorlatilag minden egyéb programnyelvet támogat, mivel open source, és ezért sokkal dinamikusabban fejlődik
  • Az IntelliJ jónéhány más programnyelvet támogat, de kevesebbet mint az Eclipse
  • Az IntelliJ IDEA Java-n belüli kódfelismerő-és javító funkciója egyértelműen jobb
  • Felhasználói élmény szempontjából az IntelliJ bizonyul jobbnak

Röviden tehát nincs egyértelműen, minden egyes esetre jobb választás, viszont néhány tanulság leszűrhető:

  • Ha lassabb, régebbi, gyengébb teljesítményű számítógéped van, az Eclipse egész biztosan jobb választás.
  • Ha egyéb programnyelveket is ki szeretnél próbálni ugyanazon az IDE-n belül, és később full-stack programozással szeretnél foglalkozni, az Eclipse valószínűleg jobb választás.
  • Ha back-end programozó szeretnél lenni, és jó eséllyel Java lesz a fő profilod, fontold meg az IntelliJ használatát.
  • Ha Android programozással szeretnél foglalkozni, az IntelliJ IDEA lesz a megfelelő IDE.

A győztes tehát…

Amint ebből az elemzésből és az előzőekből is kiderül, nincs egyértelmű győztes, de az látszik, hogy a két integrált fejlesztői környezetnek mások az erősségei és gyengéi. Egy biztos: ha ezek közül valamelyiket választod, akkor a nagy közösség miatt sokkal gyorsabban kapsz választ a kérdéseidre, mintha egy kisebbet használnál.

Én back-end fejlesztőként erős Android-os érdeklődéssel fejlesztésre az IntelliJ IDEA-t jobban szeretem, de oktatni általában az Eclipse-ből szoktam.


Világos vs. sötét témák

Az előzőekben felsorolt IDE-k mindegyike támogatja a világos és a sötét témákat.

Integrált fejlesztői környezetek - IntelliJ Community sötét téma
IntelliJ – sötét téma
Integrált fejlesztői környezetek - Eclipse világos téma
Eclipse – világos téma

A legjobb tanács ezzel kapcsolatban az, hogy használd azt, amelyik a szemednek pihentetőbb. Én általában a természetes fény függvényében szoktam váltogatni: alapértelmezetten sötét témát választo, de ha nagyon nagy mennyiségű napfény jut be az irodába, ahol dolgozom, akkor világosra váltok.

Ez egyrészt megszokás, másrészt stílus kérdése, viszont legalább ugyanilyen fontos, hogy figyeld, hogy a szemed hogyan reagál az egyes témákra, és ne terheld túl!

Köszönöm, hogy ismét velem tartottál. Amennyiben hasznosnak találtad az itt leírtakat, kérlek, oszd meg, hogy a barátaidhoz is eljuthasson!

Eclipse gyorsbillentyűk – produktivitási tippek Java fejlesztőknek

Bevezető gondolatok

Az Eclipse gyorsbillentyűk a segítségedre lesznek!

Rohanó világban élünk, szokták mondani. Az üzleti szférában sokszor az nyer, aki gyorsabb, aki hamarabb képes piacra dobni egy terméket. A különbféle kütyük nagyban tudnak segíteni nekünk, hogy gyorsabbak legyünk. Gondolj csak a mosógépre, mosogatógépre, porszívóra, de akár a telefonra vagy a számítógépre! Elvégeznek olyan munkákat, amiket ha nekünk saját kezűleg kéne, akkor tovább tartana. Időt spórolnak nekünk, így több időnk marad más, számunkra fontosabb dolgokra.

Ez a helyzet az informatikai eszközök esetén is fennáll. A számítógép egy ezen kütyük közül, ami segít nekünk munkánkban, kikapcsolódásunkban. Persze tudni kell rendesen kezelni. Míg egy porszívó kezelése viszonylag triviális dolog, a számítógép jóval összetettebb, így több a hibalehetőség is. Biztos vagyok benne, hogy te is tapasztaltad már, hogy bár az életünk segítése a számítógép célja, mégis néha inkább megnehezíti azt: túl lassú, nem azt teszi, amit szeretnénk, kék halált hal, General Protection Fault, stb.

A helyzet reménytelen, de nem súlyos.

Mit tehetünk?

Érdemes minél jobban megismerkednünk az eszközzel, amit használunk. Hiába van nálunk egy svájci bicska, ha fafűrészeléshez a kést használjuk. Ugyanez a helyzet a programozásban is fennáll. Az Eclipse – ahogy a többi IDE – feladata, hogy megkönnyítse életünket, könnyebbé, hatékonyabbá tegye a szoftverfejlesztést. De hiába áll rendelkezésünkre az az ezernyi kis segítség, ha nem is tudunk a létezésükről és ezért nem használjuk.

A kódminőség fontos

Összetett fogalom a hatékonyság, ezernyi tényező beleszámít, de lényegében egy sebességszerű fogalomról beszélhetünk. A sebesség nem más, mint adott idő alatt megtett út. Fontos persze, hogy először kitűzzük, hogy hova is megyünk, mert különben ha rossz irányba tesszük meg az utat, az mit sem segít hosszú távon. Így van ez a programozásban is. A cél, és egyben az egyik legnagyobb kihívás manapság a programozói szakmában, az a minőségi szoftver elkészítése gyorsan. Ellentmondásosnak hangzik, pedig nem az, csak rendszerben kell szemlélnünk a dolgot. Ahogy az algoritmuselméletből is tudhatod, nem mindig a mohó algoritmus vezet a globális optimumhoz. Ha az a cél, hogy a világ legmagasabb pontját elérjük, akkor általában nem jó megoldás azt a taktikát követni, hogy mindig menjünk arra, amerre a legjobban emelkedik az út. Ez a mohó megközelítés – jelen helyzetemben – a Gellért-hegyre (235 m) vinne, ami bár lokális optimum, mégis mily messze van a globális optimumtól, a Csomolungma (8 848 m):

A célt akkor hát tudjuk: minőségi szoftvert produkálni minél hamarabb. Két fontos tényezője van: 1. minőségi, 2. gyorsaság. Mindkettőt mérhetővé lehet tenni. Angolul az előbbit code quality-nek, utóbbit productivity-nek hívják.

A kódminőséget az ISO/IEC 25010:2011 szabvány írja le. Egy kód akkor számít jónak, ha eleget tesz a specifikációnak, könnyen olvasható és ezáltal módosítható, kiegészíthető, könnyen karbantartható. Ezt magasszintű programozási ismeretekkel, best practice-ek ésszerű követésével lehet leginkább elérni, sokat számít a szakmai tapasztalat ebben. Ennek fejlesztéséhez kitartó tanulásra lesz szükséged.

A hatékonyság növelése

A produktivitást ennél jóval könnyebb növelni, ha megismered a rendelkezésre álló eszközeidet és azok képességeit. Legjobb barátod a nagybetűs Fogyatkozás, avagy az Eclipse. Igen, a másik barátod a Google, de őt most kicsit tegyük félre! Ebben a pillanatban jelent meg (tényleg!) az Eclipse következő verziója az Eclipse Photon, amivel kapcsolatban szeretnék megosztani veled néhány újdonságot, illetve általános, Eclipse-szel kapcsolatos jótanácsokkal is szeretnélek ellátni, amik nekem személy szerint sokat segítenek a mindennapi programozói munkám során.

Eclipse gyorsbillentyűk

A legnagyobb eredményt az úgynevezett gyorsbillentyűk (hot key vagy más néven keyboard shortcut) megismerésével tudod elérni, aminek bár eleinte van egy kis tanulási görbéje, bőven megtérül. Ahogy az angol elnevezés jól mutatja, egy shortcut-ról, vagyis egy rövidebb útról van szó, ami hamarabb célba juttat. Az általános kijelölés, másolás, beillesztés lépéssorozatot biztos vagyok benne, hogy te is ismered, ráadásul ennek kivitelezéséhez az univerzális Ctrl + C és Ctrl + V gyorsbillentyűket is valószínűleg használod.

A következő táblázatban összefoglaltam a tapasztalt programozók által leggyakrabban használt billentyűkombinációkat. A billentyűparancsokat balról jobbra olvasva tudod te is kivitelezni, a pluszjel a gombok egyszerre történő lenyomását jelenti. Némely ezek közül más alkalmazásokban is használható, főleg a kurzor navigációjával és a kijelölésekkel kapcsolatosak.

Gyorsbillentyű Hatása
nyílbillentyűk Kurzor navigálása egy karakterrel az aktuális pozícióból kiindulva a nyíl irányába.
Ctrl + C Előzetesen kijelölt szöveg másolása a vágólapra a memóriában.
Ctrl + V A kurzor aktuális pozíciójához a vágólap tartalmának a beillesztése.
Shift + nyílbillentyűk A kurzor aktuális állásától a nyílbillentyű irányába szöveg kijelölése.

A le és fel irányba történő kijelölés egész sorokat jelöl ki.

Ctrl + nyílbillentyűk Kurzor navigálása az adott irányba egy szövegegységgel.
Ctrl + Shift + nyílbillentyűk Kijelölés a kurzor aktuális helyzetétől szövegegységekben a lenyomott nyílbillentyű irányába.
Ctrl + A Mindent kijelöl az aktuális ablakban.
Ctrl + S Az aktív szerkesztő ablak módosult tartalmának mentése.
Ctrl + Shift + S Az összes megnyitott szerkesztőablak módosult tartalmának mentése.
Ctrl + szóköz A kurzor aktuális pozícióján tartalomkiegészítés kérése. Az adott ponton releváns szövegrészeket ajánl fel.
Ctrl + Alt + fel- vagy le nyílbillentyű Az aktuális sor másolása az aktuális sor felé vagy alá, ha több sor is ki volt jelölve, akkor az összes kijelölt sor másolása a megadott irányba.
Alt + fel- vagy le nyílbillentyű Az aktuális sor mozgatása felfelé vagy lefelé, ha több sor is ki volt jelölve, akkor az összes kijelölt sor mozgatása a megadott irányba.
Ctrl + Shift + X A kijelölt szöveg csupa nagybetűssé konvertálása.
Ctrl + Shift + Y A kijelölt szöveg csupa kisbetűssé konvertálása.
Ctrl + Shift + C Az aktuális sor ki- vagy visszakommentezése, ha több sor is ki volt jelölve, akkor az összes kijelölt sor kommentezésének váltása.
Ctrl + Shift + R Fájl megnyitása tetszőleges workspace helyről, annak nevének egy részének megadásával.
Ctrl + Shift + T Típus megnyitása tetszőleges workspace helyről, annak nevének egy részének megadásával.
Alt + Shift + R A kurzor pozícióján található típus, metódus vagy változó átnevezése annak minden hivatkozásával együtt.
Alt + Shift + L A kijelölt kódrészlet kiemelése egy új helyi változóba, a változó nevét a felugró ablakban adhatjuk meg.
Alt + Shift + M A kijelölt kódrészlet kiemelése egy új metódusba, a metódus nevét a felugró ablakban adhatjuk meg.
Ctrl + O Kivonat az aktuálisan megnyitott típus tagjairól. Újbóli megnyomása hatására az örökölt tagok is megjelenítésre kerülnek.
Ctrl + Shift + O Az aktuálisan megnyitott típus import deklarációinak rendszerezése, a nem használt importok törlése, a hiányzó importok hozzáadása. Ha nem egyértelműen állapítható meg az importálni kívánt típus, akkor felugró ablakban lehetőséget kínál a találatok közül a megfelelő kiválasztására.
Ctrl + Shift + F Az aktuálisan megnyitott típus forráskódjának formázása, ha előtte kijelöltünk egy kódrészletet, akkor csak a kijelölt rész formázása.
Alt + Shift + S A Source menü megnyitása egy felugró ablakban, ahonnan lehetőségünk van a következő kódrészletek legenerálására:

  • metódusok felülírása
  • getter és setter metódusok generálása
  • delegáló metódusok generálása
  • hashCode() és equals() metódusok generálása
  • toString generálása
  • konstruktor generálása mezőkből
  • konstruktorok generálás ősosztályból
Ctrl + F11 Az aktuálisan megnyitott program futtatása.
F11 Az aktuálisan megnyitott program futtatása debug üzemmódban.
F6 Debug üzemmódban a jelölt sor utasításának végrehajtása és lépés a következő utasításra azonos szinten.
F5 Debug üzemmódban a jelölt sor utasításának végrehajtása úgy, hogy ha további metódushívást tartalmaz, akkor belépés egy hívási szinttel mélyebben.
F7 Debug üzemmódban a jelölt sor és az utána lévő sorok utasításainak végrehajtása és lépés az előző hívási szintre.
F8 Debug üzemmódban a program futtatása a következő breakpoint-ig.

Eclipse kódbányászat

Bár az új Eclipse Photon verziónak alapból nem része, legalábbis a mostani június release-nél, mégis említésre méltó bővítmény a JDT CodeMining. Segítségével az IntelliJ IDEA IDE-ből már talán általad is ismert feature-ök használhatók az Eclipse projekteknél. Ilyen például az osztályok és metódusok előtt megjelenő referenciaszámláló, vagy a metódusparaméterek nevének vagy típusának megjelenítése. A referenciaszámláló kattintható, aminek hatására egy keresést indít és annak eredményét jeleníti meg a Search view-ban, amely listázza a felderített hivatkozások forrását.

Nagyon hasznos plugin, javaslom kipróbálását! Telepítésének részleteit megtalálod a JDT CodeMining GitHub oldalán.

Eclipse gyorsbillentyűk hasznosságával vetekedő plugin

Összefoglaló

Hogy hatékonyan tudj programozni, érdemes megismerned az általad használt eszközök képességeit, így Java fejlesztés során az Eclipse IDE eszközkészletét, és hogy ezeket hogyan tudod a segítségedre hívni. A legjobb módja, ha begyakorlod a leggyakoribb gyorsbillentyűket, amiket a fentebbi táblázatban találsz.

Ha esetleg még most járnál programozói pályafutásod legelején, hadd ajánljam figyelmedbe a Java fejlesztői környezet beállítását képekben bemutató blog posztomat!

Ha bármi észrevételed van, esetleg javasolnál még további fontos billentyűparancsokat, amiket gyakran használsz, akkor kérlek, oszd meg véleményed egy hozzászólásban!

További jó kódolást kívánok neked! 🙂