Ako 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ť. 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
|