Domov arrow Programovanie arrow Eclipse Efektívne - tipy, triky a skryté finty
Eclipse Efektívne - tipy, triky a skryté finty
eclipse helios logoAko som už spomínal v článku o základných skratkách a fintách v Eclipse som vo firme s 99%-nou istotou najefektívnejší užívateľ môjho obľúbeného IDE - Eclipse (momentálne verzia Helios, no už si brúsim kosu na Indigo). V tomto článku sa posnažím poukázať na rôzne finty, skratky a funkcie, ktoré vám zjednodušia a urýchlia prácu s vašim Eclipse IDE - konkrétne pri práci na Java projektoch.

Keďže pracujeme "agilne", často programujeme párovo, a páry sa zvyknú pomerne často obmieňať. Takmer vždy však "za volantom" sedím ja, keďže všetci okolo mňa už uznali, že som najefektívnejší, čo sa týka obsluhy môjho programovacieho prostredia. (Čo sa týka nie len Eclipse, ale aj tak nejak celkovo, keďže ako jediný zamestnanec našej firmy používam Total Commander, ktorý by som vybozkával keby sa dalo. Bez neho je ťažko žiť. Články o ňom chystám do budúcna.)

Refaktorovanie

Premenovanie

Pre premenovanie typu, metódy či premennej alebo parametra je vhodná skratka Alt+Shift+R. No existujú aj iné spôsoby, ako napríklad stlačenie Ctrl+2 a nasledovné stlačenie písmena R - Rename. Taktiež sa to dá pomocou rýchleho menu pre refaktorovanie, ktoré vyvoláme stlačením Alt+Shit+T, no a potom z neho si zvolíme správnu položku.

Môj obľúbený spôsob je však jednoduché a spoľahlivé, vždy prítomné a ľahko invokovateľné - Ctrl+1 (Control Jedna). Umiestníme kurzor do požadovaného symbolu (typu, metódy, atď) a mačkáme Control Jedna. Zobrazí sa malé menu, z ktorého potom zvolíme "Rename in File" respektíve "Rename in Workspace". Možnosť premenovania je väčšinou prvá na zozname, takže stačí len trafiť Enter, no ak by sme sa snažili premenovávať symbol podčiarknutý žltou alebo nedajbože červenou vlnovkou, Ctrl+1 (funkcia v Eclipse nazývaná ako Quick Fix) by nám ponúkla možnosti nápravy daného problému medzi prvými. Quick Fix je môj obľúbený parťák na cestách v Eclipse, viac sa o ňom ešte budem zmieňovať.

Presúvanie a extrakcia

Podobne ako v predošlom bode, aj presúvanie typov z balíka do balíka je možné iniciovať rôznymi spôsobmi. No mne sa tak nejak zaužívala klávesová skratka Alt+Shift+V. Stačí mať označený typ na presunutie (teda stačí umiestniť kurzor niekde do jeho deklarácie) a trafiť spomínanú klávesovú kombináciu. Objaví sa okienko, v ktorom môžete úradovať.

Podobná klávesová skratka Alt+Shift+M slúži na extrakciu blokov kódu do samostatných metód. V tomto je Eclipse tiež veľmi zbehlý a šikovný, takže veselo do toho, keď vidíme, že niektorá z metód sa akosi nafúkla. Niekedy veľmi pomôže čitateľnosti a údržbovosti triedy práve rozsekanie veľkých strašidelných metód na niekoľko menších, dobre pomenovaných.

Odporúčam prečítať si môj článok o meraniach kódu a o tom ako a ktoré metriky sledovať vo vašich projektoch. Na tému zlepšovania kvality softvéru pomocou metrík pre zdrojový kód som dokonca písal svoju diplomovú prácu pre môj first-class degree - MComp - v obore Software Engineering, ktorý som si zaslúžene odniesol z University of Brighton v roku 2010.

Uvádzanie nových premenných, konštánt, polí, typov a metód

Na uvádzanie nových premenných, konštánt, polí, alebo i metód či typov vždy používam môj obľúbený Quick Fix - Ctrl+1. Je veľmi príjemné písať kód, aký má človek na mysli - takmer pseudokód - a nezastavovať sa príliš nad tým, že používané premenné či typy ešte neexistujú; že sme si ich ešte nenadeklarovali. Deklarovať a uvádzať nové typy a premenné či polia sa dá hravo a rýchlo pomocou Quick Fix-u.

if (komplexitaHesla(heslo).equals(KomplexitaHesla.NORMALNA)){
    vysledok = true;
}
return vysledok;

Tento kód môžeme napísať aj bez toho, aby čokoľvek z tohto existovalo. Ani metóda komplexitaHesla, ani premenná heslo, typ KomplexitaHesla, ani vysledok. No kód samotný je jasný a zreteľný, a vyjadrili sme ním čo sme mali na mysli. Teraz stačí niekoľkokrát použiť Quick Fix a odrovnať nedostatky.

Stačí označiť "heslo" a Quick Fix -> Create Parameter 'heslo' a uvedieme nový parameter do danej metódy. Vložíme kurzor do metódy komplexitaHesla a Quick Fix -> create method 'komplexitaHesla(String)' pre nás neexistujúcu metódu vytvorí. Podobne si vytvoríme miestnu premennú vysledok a nový typ - v tomto prípade Enum KomplexitaHesla. Pinkačka.

Obaľovanie kódu a rozkladanie/skladanie priradení

Riadky kódu môžeme obaliť do nových šiat. Čím myslím, obyčajný bohapustý riadok kódu ako napríklad:

BigDecimal total = addTax(subtotal);

by sme mohli chcieť zabaliť do nového TRY...CATCH bloku, v prípade, žeby sme sa rozhodli zachytiť nejakú RuntimeException, napríkld InvalidArgumentException. Stačí si označiť celý riadok kódu a stlačiť Alt+Shift+Z. Eclipse na nás vybalí také milé malé menu, z ktorého si vyberieme, do čoho by sme chceli označené riadky kódu zabaliť. Hneď prvá možnosť, nad čiarou, je Try/Catch Block. Zvolíme túto možnosť a voila! try/catch blok je na svete.

try {
    BigDecimal total = addTax(subtotal);
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Čo sa dosť často stáva pri manuálnom zabažovaní kódu do blokov je, že lokálne premenné nadeklarované vrámci pridaného bloku zrazu nie sú dostupné pre zvyšné riadky mimo blok - sú tzv. out of scope pre zvyšné inštrukcie v danej metóde. No použitím automatického zaobalenia kódu do blokov (či už try/catch alebo do/while, či for-loop) sa tomuto vyhneme, keďže Eclipse si všimne, ktoré premenné sú používané z inštrukcií mimo zaobalenia a automaticky rozdelí deklaráciu takýchto premenných a vysunie deklarované premenné pred vygenerovaný blok.

Iné

Eclipse poskytuje širokú ponuku možností pre refaktorovanie - t.j. pre zmenu organizácie kódu bez toho, aby sa zmenila jeho výsledná funkcia. Vrelo odporúčam si dôkladne prezrieť menu s položkami Refactor (ktoré vybehne po stlačení Alt+Shift+T. Eclipse vám vie pomôcť s redesign-om vašich tried a metód a je to takmer hračka. Za podobné pomôcky chlapci vo svete .NET (vo Visual Studiu) platia peňážky, lebo Microsoft považuje nástroje na refaktorovanie za nadštandard.

Mazanie a duplikácia riadkov

Odstraňovanie riadkov

Po roky ste možno odstraňovali riadky tak, že ste si celý riadok označili a stlačili Backspace alebo Delete. Alebo ste si našli nejaký iný zlepšovák na mazanie riadkov textu. Poviem vám ale, že pokiaľ vaše IDE alebo textový editor (ako napríklad Notepad++) podporujú príkaz mazania riadku, tak sa oplatí si zvyknúť ho používať. Je to veľmi príjemné stlačiť Ctrl+D a vidieť, že riadok, v ktotom sa nachádzal kurzor je fuč. Alebo aj viacero riadkov naraz - všetky riadky obsiahnuté v selekcii sa vyparia jednoduchým stlačením Ctrl+D. Už len pre kompletnosť dodám, že ekvivalent tejto skratky v Notepad++ je Ctrl+L.

Duplikácia riadkov

Podobne ako sa dajú jednotlivé riadky mazať efektívne použitím klávesovej skratky, tak sa dajú riadky aj duplikovať. Taktiež je jedno, či duplikujeme len jeden riadok alebo niekoľko, postup je stále ten istý. Stlačením klávesovej skratky Ctrl+Alt+Down sa riadok, v ktorom máme umiestnený kurzor skopíruje do riadku pod ním. (Podobne skratka Ctrl+Alt+Up zduplikuje aktuálny riadok o poschodie vyššie). Samozrejme, nestrácame tak nič z existujúceho zdroja, lebo pre nový riadok/blok sa vytvorí nové prázdne miesto, či už pod alebo nad ním.

Táto funkcia je veľmi praktická hlavne z toho dôvodu, že nestrácate pri nej obsah schránky (clipboard-u). Môžete si pokojne okopírovať čosi do schránky pomocou starého známeho Ctrl+C a nestratiť to počas duplikácie riadkov, keďže duplikácia je príkaz podporovaný priamo editorom, ktorý nevyužíva schránku pre jeho vykonanie. Teda veselo Ctrl+Alt+Down (nie je nutné riadok ani označovať, stačí v ňom mať niekde uložený kurzor), a môžeme použiť čokoľvek sme mali nakopírované do schránky, lebo je to ešte stále tam. Hurá! Podobná funkcia je v Notepad++ pod skratkou, Ctrl+D, nemôžem si odpustiť poznámočku.

Komentovanie

Komentovanie má vo svete softvérového zdrojového kódu dve príchute: pridávame komentáre do sekcií kódu, aby sme objasnili ich úmysel, zámer, funkciu. Taktiež však používame komentáre pre dočasnú transformáciu funkčného kódu alebo konfigurácie na neškodné komentáre, ktoré sa potom nezapájajú do exekúcie programu.

Komentovanie a odkomentovanie častí programového zdroja je často veľmi praktické. Či už chceme vypojiť-zapojiť niekoľko riadkov alebo blokov kódu, či XML značenia, či nastavenia v .properties súboroch, stále sa jedná o ten istý úkon.

Prepínanie medzi zdrojom a komentármi

Pre prepnutie medzi kódom a komentárom stačí stlačiť Ctrl+/. Táto klávesová skratka funguje ako pre jednotlivé riadky, tak i pre viacero riadkov naraz. Taktiež sa používa stále tá istá klávesová skratka pri editácii .properties súborov. Pokiaľ si zvyknete na túto skratku, už nebudete musieť navigovať na začiatok riadku a mačkať lomítko dvakrát.

V ktoromkoľvek riadku budete mať umiestnený kurzor, po stlačení Ctrl+/ sa daný riadok prepne z kódu na komentár a v prípade, že daný riadok už komentárom je, tak sa prepne naspäť na kód. Bohužiaž táto skratka nie je použiteľná pri editácii XML súborov, alebo akýchkoľvek iných súborov založených na XML (HTML, JSP, atď.)

Ctrl+Shift+C

Keďže klávesová skratka Ctrl+/ nie je použiteľná pri editácii XML súborov, alebo akýchkoľvek iných súborov založených na XML (HTML, JSP, atď.) budeme musieť pri editácii týchto súborov používať jej náhradu - Ctrl+Shift+C. Funguje krásne a prepína medzi komentármi a značením (mark-up), čo je veľmi užitočné, hlavne pri súboroch založených na XML, lebo bez tejto užitočnej skratky by sme museli ručne vkladať bloky značenia medzi pár týchto zátvoriek: <!-- ... --> a toto vždy človeka spomažuje.

Táto skratka je v podstate všeliekom pre všetky komentovacie ťažkosti, keďže funguje aj v Java súboroch, aj v .properties súboroch, aj v JSP, aj v XML... Len je o niečo ťažšie si ju zapamätať a je o niečo pohodlnejšie stláčať Ctrl+/ keď človek edituje obyčajný Java kód.

TODO, FIXME a iné poznámky

Do kódu môžeme pridávať úlohy vo forme špeciálne formovaných komentárov. Teda žiadna veľká veda, stačí zadať //TODO a zvyšok riadku bude v Eclipse rozpoznaný ako úloha na ktorej treba popracovať. eclipse tasks view Tieto úlohy sa potom zobrazujú v okienku Tasks.


Tento článok je rozpísaný. Viac príde časom a je sa na čo tešiť:


Editácia kódu

Ctrl+Shift+F

Ctrl+Shift+O

Alt+Shift+M

Block Selection Mode

Code Completion a Word completion

Alt+/

Capitals

Stars

Ctrl+Shift+Space

Debugovanie

Zistenie celého príkazu pre spustenie debugovacieho sedenia

Enabling/disabling breakpoints

Inspecting members

Clas Load Breakpoints

Java Exception Breakpoints

Unit testy

all tests

one test

run/debug tests

Prehľadávanie

Ctrl+K

Ctrl+Shift+K

Ctrl+H a Customize... button

Ctrl+Shift+T

Ctrl+Shift+R

Ctrl+Shift+U

Ctrl+Alt+H

Navigácia

Ctrl+O

Ctrl+Shift+P

Alt+Left/Right

Ctrl+Q

Množstvo záložiek

Zatváranie záložiek

Tímová synchronizácia

merging conflicts and colorful squares

Rozne Ine

Code Coverage with EclEmma

Metrics

Launch configuration - Favorites

Prenasanie konfiguracnych suborov medzi workspace-mi

Komentáre

Komentujte, ak chcete aby some toto dopísal

Posledná úprava ( Friday, 29 June 2012 )
 
< Predchádzajúca   Ďalšia >