NÁSTROJE pre vývojárov

Nástroje pre webových vývojárov PhpStorm a SmartGit/Hg

V tom­to člán­ku sa za­me­ria­me na dva nás­tro­je, kto­ré sa mi v rám­ci nie­koľ­ko­roč­nej praxe v tvor­be webo­vých ap­li­ká­cií naj­viac os­ved­či­li. Ku kaž­dé­mu z nich exis­tu­jú al­ter­na­tí­vy, po­kú­sim sa však vy­svet­liť, na zá­kla­de akých kri­té­rií som os­tal ver­ný prá­ve tým­to dvom.

Ide o nás­tro­je, kto­ré pou­ží­vam den­ne a tvor­bu zdro­jo­vé­ho kó­du si bez nich ne­do­ká­žem pred­sta­viť. Už od re­la­tív­ne ma­lých pro­jek­tov je prá­ca so zdro­jo­vým kó­dom kľú­čo­vá na to, aby bol vý­sled­ný pro­dukt kva­lit­ne spra­co­va­ný. Za­me­ria­vam sa te­da na prog­ra­má­tor­ské, nie di­zaj­nér­ske či ana­ly­tic­ké nás­tro­je.

Exis­tu­jú vý­vo­já­ri pre­fe­ru­jú­ci jed­no­du­ché, no veľ­mi efek­tív­ne texto­vé edi­to­ry ty­pu Vim (www.vim.org), Sub­li­me Text (www.sub­li­me­text.com) či PsPad (www.pspad.com). Ur­či­te tie­to nás­tro­je ne­zavr­hu­jem, z môj­ho poh­ľa­du sú však pri prá­ci na väč­ších pro­jek­toch vhod­né len ako dopl­nko­vé. Pri akom­koľ­vek se­rióz­nom vý­vo­ji je ne­vyh­nut­né vý­vo­jo­vé pros­tre­die (IDE - in­teg­ra­ted de­ve­lop­ment en­vi­ron­ment).

Na vý­ber je množ­stvo al­ter­na­tív, voľ­ne dos­tup­ných či pla­te­ných. Väč­ši­na z nich je schop­ná pra­co­vať s viac ako jed­ným ja­zy­kom či plat­for­mou. V rám­ci toh­to člán­ku sa sús­tre­dím na prá­cu s vý­vo­jo­vým pros­tre­dím PhpStorm od spo­loč­nos­ti Jet­Brains (http://www.jet­brains.com). To­to pros­tre­die je ur­če­né na vý­voj ap­li­ká­cií v ja­zy­ku PHP. Spo­loč­nosť Jet­Brains je zná­ma svo­ji­mi vy­so­kok­va­lit­ný­mi nás­troj­mi aj pre iné plat­for­my.

Veľ­mi zná­me je vý­vo­jo­vé pros­tre­die In­telliJ, ur­če­né pre Ja­vu, prí­pad­ne ReS­har­per, plu­gin ur­če­ný pre Vi­sual­Stu­dio od Mic­ro­sof­tu. Po­dob­ný seg­ment ako PhpStorm pok­rý­va­jú aj ďal­šie vý­vo­jo­vé pros­tre­dia od Jet­Brains, Ru­by­Mi­ne a Py­Charm, ur­če­né pre ja­zy­ky Ru­by (s pod­po­rou fra­mewor­ku Ru­byOn­Rails) a Pyt­hon (s pod­po­rou Djan­go). Veľ­ká vý­ho­da všet­kých zmie­ne­ných nás­tro­jov je ich pod­po­ra ce­lé­ho eko­sys­té­mu plat­for­my, a nie­len da­né­ho ja­zy­ka. V prí­pa­de pros­tre­dia PhpStorm je ním nap­rík­lad pod­po­ra fra­mewor­kov Zend a Sym­fo­ny.

Vý­vo­jo­vé pros­tre­die je ap­li­ká­cia na­pí­sa­ná v Ja­ve. Na roz­diel od svo­jich pria­mych kon­ku­ren­tov, ako je Net­Beans a pros­tre­dia pos­ta­ve­né na plat­for­me Ec­lip­se (Ap­ta­na, Zend Stu­dio), je však ove­ľa sviž­nej­šie a vďa­ka res­pon­zív­nos­ti čas­to ani ne­poz­nať, že člo­vek pra­cu­je s úpl­ným IDE, a nie len s oby­čaj­ným texto­vým edi­to­rom.

Ov­lá­da­nie je sil­ne orien­to­va­né na klá­ves­ni­cu, prak­tic­ky na čo­koľ­vek exis­tu­jú klá­ve­so­vé skrat­ky, kto­ré sú na­vy­še na­kon­fi­gu­ro­va­né veľ­mi ro­zum­ne už vo vý­cho­dis­ko­vom nas­ta­ve­ní. Po­kiaľ sa s pros­tre­dím stret­ne vý­vo­jár zvyk­nu­tý na edi­tor VIM, ur­či­te si prí­de na svo­je. Na dru­hej stra­ne všet­ky dô­le­ži­té ov­lá­da­cie pr­vky sú ľah­ko prís­tup­né aj pri ov­lá­da­ní my­šou, pre­to ani pre­chod z iných pros­tre­dí nep­red­sta­vu­je prob­lém.

Veľ­ká pred­nosť pros­tre­dia PhpStorm je prep­ra­co­va­ná sta­tic­ká ana­lý­za kó­du. Op­ro­ti kon­ku­ren­cii je tá­to fun­kcio­na­li­ta jed­noz­nač­ne naj­ďa­lej. Pros­tre­die do­ká­že auto­ma­tic­ky upo­zor­ňo­vať na naj­čas­tej­šie chy­by v kó­de, ako sú nap­rík­lad nei­ni­cia­li­zo­va­né pre­men­né, nes­práv­ne nas­ta­ve­né mo­di­fi­ká­to­ry prís­tu­pu v rám­ci ob­jek­to­vé­ho kó­du a mno­ho ďal­ších. Veľ­mi za­ují­ma­vá je fun­kcia na od­ha­le­nie dup­li­cit­né­ho kó­du.

Če­reš­nič­kou na tor­te je vsta­va­ná fun­kcio­na­li­ta na kon­tro­lu pra­vo­pi­su. Tá za­ru­čí, že náz­vy pre­men­ných, me­tód či in­dexy v rám­ci aso­cia­tív­nych po­lí bu­dú na­pí­sa­né správ­ne a bez prek­le­pov. Naj­mä v prí­pa­de po­lí, kto­ré sa v PHP čas­to vy­uží­va­jú ako schrán­ky na kon­fi­gu­rá­ciu, je tá­to fun­kcia veľ­mi uži­toč­ná, pre­to­že pred­chá­dza veľ­mi čas­tým chy­bám v po­do­be zle za­pí­sa­né­ho in­dexu.

V naj­nov­šej ver­zii po­nú­ka pros­tre­die mož­nosť ro­zum­ne pra­co­vať s men­ný­mi pries­tor­mi, pri vy­uži­tí auto­ma­tic­ké­ho dopĺňa­nia kó­du (auto­com­ple­te) je dopl­ne­ný len ná­zov trie­dy a na­mes­pa­ce je uve­de­ný na za­čiat­ku v klau­zu­le use.

Na veľ­mi vy­so­kej úrov­ni je aj auto­ma­tic­ké dopĺňa­nie kó­du a mož­nos­ti re­fak­to­rin­gu. V prí­pa­de dôs­led­né­ho dodr­žia­va­nia ano­tá­cií phpdoc mož­no v rám­ci re­fak­to­rin­gu nap­rík­lad spo­ľah­li­vo pre­me­no­vať ná­zov me­tó­dy po­dob­ne ako v Ja­ve. Sa­moz­rej­mý je kva­lit­ný re­žim de­bug, pri­čom je pod­po­ro­va­ný XDe­bug, ako aj Zend De­bug­ger. K dis­po­zí­cii je aj kva­lit­ne spra­co­va­ný pro­fi­ler. Ne­chý­ba ani pod­po­ra PhpU­nit.

Pros­tre­die na­vy­še in­teg­ru­je prá­cu so všet­ký­mi roz­ší­re­ný­mi ver­zio­va­cí­mi sys­té­ma­mi. Za­ují­ma­vá mož­nosť je tú­to in­teg­rá­ciu pre­po­jiť s nás­troj­mi na ria­de­nie pro­jek­tov, ako sú At­las­sian JI­RA, Pi­vo­tal, YouT­rack a ďal­šie. Ok­rem ja­zy­ka PHP je sa­moz­rej­má aj pod­po­ra ďal­ších ja­zy­kov ne­vyh­nut­ných na vý­voj webo­vých ap­li­ká­cií - HTML, XML, CSS a Ja­vaS­crip­tu. Vo všet­kých ja­zy­koch sú dos­tup­né pok­ro­či­lé mož­nos­ti edi­tá­cie.

Ne­chý­ba ani pod­po­ra pre naj­nov­šie tech­no­ló­gie, ako je SASS, SCSS, LESS či Cof­feeS­cript. Pros­tre­die ta­kis­to pod­po­ru­je re­la­tív­nu no­vin­ku vo sve­te PHP, a to ba­líč­ko­va­cí sys­tém Com­po­ser.

Mož­nos­ti kon­fi­gu­rá­cie IDE sú veľ­mi bo­ha­té. V nas­ta­ve­niach je k dis­po­zí­cii vy­hľa­dá­vač, kto­rý znač­ne po­má­ha zo­rien­to­vať sa v jed­not­li­vých voľ­bách. IDE pod­po­ru­je sys­tém plu­gi­nov, kto­rých veľ­ké množ­stvo mož­no náj­sť v ofi­ciál­nom re­po­zi­tá­ri.

IDE sa neus­tá­le vy­ví­ja a no­vé ver­zie pri­chá­dza­jú veľ­mi pra­vi­del­ne. Ak­tuál­na sta­bil­ná ver­zia pod­po­ru­je PHP 5.3 a PHP 5.4. Vý­vo­jo­vá ver­zia, kto­rá je dos­tup­ná v rám­ci EAP, má pod­po­ru aj pre PHP 5.5. Zo strán­ky Jet­Brains si mô­že­te stiah­nuť 30-dňo­vú skú­šob­nú ver­ziu. Pro­dukt je k dis­po­zí­cii pod via­ce­rý­mi li­cen­cia­mi - od ko­mer­čných cez zvý­hod­ne­né aka­de­mic­ké až po free li­cen­ciu, ur­če­nú pre open sour­ce pro­jek­ty.

V krát­kos­ti pred­sta­vím eš­te je­den pro­dukt. Ide o sof­tvér Smar­tGit/Hg od spo­loč­nos­ti Syn­te­vo (http://www.syn­te­vo.com), slú­žia­ci na prá­cu s ver­zio­va­cí­mi sys­té­ma­mi Git a Mer­cu­rial. Oba sys­té­my sú v pod­sta­te open sour­ce, ale ani je­den z nich ne­dis­po­nu­je gra­fic­kým pou­ží­va­teľ­ským roz­hra­ním.

Exis­tu­je nie­koľ­ko pro­duk­tov, kto­ré pos­ky­tu­jú nad­stav­bu GUI na je­den či dru­hý sys­tém, ale vy­zre­tosť žiad­ne­ho z nich sa ne­dá po­rov­nať s pro­duk­tom Smar­tGit/Hg. K dis­po­zí­cii je preh­ľad­né roz­hra­nie, kto­ré umož­ňu­je pre­ze­rať jed­not­li­vé zme­ny v kó­de a spra­vo­vať jed­not­li­vé vet­vy pro­jek­tu.

Pre ce­lý pro­jekt, ale aj jed­not­li­vé sú­bo­ry či prie­čin­ky mož­no zob­ra­ziť log v po­do­be fa­reb­né­ho gra­fu, kto­rý zná­zor­ňu­je jed­not­li­vé com­mi­ty v ča­se. Za­ují­ma­vá je fun­kcia bla­me, kto­rá umož­ňu­je jed­no­du­cho zis­tiť, kto je zod­po­ved­ný za jed­not­li­vé riad­ky v kó­de. K dis­po­zí­cii je aj jed­no­du­chý nás­troj na ma­nuál­ne mer­go­va­nie zmien v prí­pa­de kon­flik­tov.

Na­priek to­mu, že mno­hé z tých­to fun­kcií pod­po­ru­je aj IDE PhpStorm, prí­pad­ne iné vý­vo­jo­vé pros­tre­dia, v žiad­nom z nich som sa nes­tre­tol s ta­kou roz­sia­hlou pod­po­rou jed­not­li­vých vlas­tnos­tí ver­zio­va­cích sys­té­mov a ani s ta­kým preh­ľad­ným pou­ží­va­teľ­ským roz­hra­ním.

Na­priek to­mu, že ani je­den z pred­sta­ve­ných nás­tro­jov nie je za­dar­mo, pri ko­mer­čnom vý­vo­ji by to ne­ma­lo pred­sta­vo­vať zá­sad­né kri­té­rium. Za svo­ju ce­nu ma­jú ur­či­te čo po­núk­nuť a roz­hod­ne by som od­po­rú­čal zvá­žiť ich pou­ži­tie vo sve­te pro­jek­tov PHP.

To­máš Put­no­ky, se­nior de­ve­lo­per Im­pres­sa - inter­ne­to­vá agen­tú­ra, s. r. o.

Zdroj: IW 10/2013


Ohodnoťte článok:
 
 
 

24 hodín

týždeň

mesiac

Najnovšie články

Res­pon­zív­ny di­zajn z hľa­dis­ka biz­ni­su
Responsive design je jeden z najčastejšie používaných pojmov dneška. Má však vôbec význam sa ním zaoberať? Čo mi môže priniesť? A ako na to? Na tieto otázky sa pokúsime odpovedať. čítať »
 
Pre­zen­to­va­nie prís­pev­kov z blo­gu
Po predstavení šablón Grid App a Split App a tried dátového modelu dozrel čas na príklad reálnej aplikácie, ktorá bude zobrazovať údaje z blogov poskytované vo formáte RSS. V príklade bude použitý blog autora http://novywindows.wordpress.com. Vytvorte nový projekt typu Blank Page. čítať »
 
Prog­ra­mu­je­me GPU / 25. časť
Týmto článkom ukončíme oblasť, v rámci ktorej sme sa venovali vertex a fragment shaderom. Zostáva nám uviesť podstatu tzv. odloženého (deferred) tieňovania, resp. renderingu a opísať kroky algoritmu, pomocou ktorého rozmažeme obraz v závislosti od pohybu kamery (tzv. motion blur). čítať »
 
Zdie­ľa­nie zdro­jov me­dzi OS Win­dows a OS Li­nux / 14.
V predchádzajúcej časti seriálu sme ukázali, akým spôsobom môžeme zabezpečiť prenos údajov medzi klientom a poštovým serverom Postfix. Teraz sa zameriame na niektoré detaily protokolu TLS. čítať »
 
DNS – re­verz­ný zá­znam a ad­re­sá­ro­vá štruk­tú­ra
V predchádzajúcej časti sme si hovorili o prekladoch, a to o doprednom (forward) a spätnom (reverse) preklade. čítať »
 
Nás­tro­je pre webo­vých vý­vo­já­rov PhpStorm a Smar­tGit/Hg
V tomto článku sa zameriame na dva nástroje, ktoré sa mi v rámci niekoľkoročnej praxe v tvorbe webových aplikácií najviac osvedčili. Ku každému z nich existujú alternatívy, pokúsim sa však vysvetliť, na základe akých kritérií som ostal verný práve týmto dvom. čítať »
 
Kniž­né no­vin­ky
Chcete ovládnuť Excel na úrovni, ktorú určite ocení aj váš zamestnávateľ? Pomocou tohto sprievodcu sa naučíte na praktických postupoch krok za krokom kontingenčné tabuľky a grafy naplno využívať, filtrovať a zoskupovať v nich dáta presne tak, ako to budete práve potrebovať. čítať »
 
Preh­ľad vý­vo­jár­skych nás­tro­jov pre Win­dows, Mac, iOS, An­droid a ďal­šie OS
Možno ste sa pri používaní niektorej aplikácie zamysleli, v akom nástroji bola vytvorená. Napriek značnému vyprofilovaniu používateľských a serverových platforiem majú vývojári k dispozícii veľké množstvo vývojárskych nástrojov, či už pre jednu platformu, alebo multiplatformových. čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter