JavaRush /Java Blog /Random-TK /IntelliJ IDEA we düzediş: suwa çümmek däl-de, gark bolmak...
Viacheslav
Dereje

IntelliJ IDEA we düzediş: suwa çümmek däl-de, gark bolmak

Toparda çap edildi
Kod ýazmak söweşiň ýarysy. Dogry işlemek üçin henizem edilmeli. IDE-ler we düzediş gurallary bu meselede bize köp kömek edýär.
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 1
Mysal hökmünde IntelliJ IDEA ulanyp, kodumyzyň işleýşinde näme bolýandygyny nädip bilip boljakdygymyz bilen tanyşmagy teklip edýärin. Düzediş giň mowzuk, şonuň üçin bu syn, çümüji ýaly çuňňur suwa çümmegi teklip etmeýär. Iöne, elbetde, gark bolmaga umyt edýärin)

Giriş

Codeazuw kodunyň bir bölegi ony düzedýär. We wezipeleriňizde kod goldawy bar bolsa, hasam düzediş bolar. Mundan başga-da, düzedişleriň kömegi bilen, başga biriniň kodunyň jeňňeline çümüp bilşiňiz ýaly çuňňur ulanylýan kitaphanalaryň we çarçuwalaryň işini gözden geçirip bilersiňiz. Suwa çümmek üçin bize zerur bolar: Ilki bilen göçürilen arhiwi Çalt başlangyç çeşmesi kody bilen açyň. IntelliJ ideýasyny işe giriziň we “ Bar bolan çeşmelerden täze taslama ” dörediň. Gibernate4 kiçi bukjasyndaky pom.xml faýly saýlaň . Import edeniňizde, “ Maven taslamalaryny awtomatiki import ediň ” -ni kesgitläň we beýleki sazlamalary üýtgetmän taslamanyň döredilmegini tamamlaň. Taslama import edilip ýörkä, göçürilen “WildFly” programma serwerini käbir kataloga açyň. Serweri faýly bin\standalone.bat(ýa-da * nix ulgamlary üçin standalone.sh) ulanyp başlaýarys. (!) --Debug parametrinden başlamak möhümdir . Serweriň işe başlamagyna garaşýarys. Bize başlandygyny we wagtyny görkezerler. Munuň ýaly bir zat görüner:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 2
Ondan soň, serwerde saýlan taslamamyzy işletmeli. Bu amal, taslamanyň özünde tapyp boljak kiçijik resminamalarda beýan edilýär: \hibernate4\README.adoc Bu resminamalarda görkezilişi ýaly, buýrugy gibernate4 katalogynda işletmeli: mvn clean package wildfly:deploy Gurluşygyň üstünlikli tamamlanandygy baradaky habara garaşýarys:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 3
Ondan soň, serwer gündeliginde täze taslamanyň nädip “ýerleşdirilendigini” görüp bileris:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 4
Ondan soň sahypa girýäris we " Agzalary hasaba almakhttp://localhost:8080/wildfly-hibernate4 " formasy bolan sahypany görkezmeli . Şeýlelik bilen, synaglara taýýarlygymyz tamamlandy we başlap bileris)) Aýdyňlyk üçin öňde köp suratlar bolar, şonuň üçin taýyn boluň)

Uzakdan düzediş

Şeýlelik bilen, IDE programma serwerinde koduň ýerine ýetirilişine gözegçilik etmek üçin düzediş tertibini düzmeli. IntelliJ Idea iki wersiýada gelýär: mugt (Jemgyýet) we tölegli (Ultimate). Soňkusy resmi taýdan EAP görnüşinde synag edilip bilner. Ultimate wersiýasynda hemme zat ýönekeý - programma serweri IDE-den düzediş tertibinde gönüden-göni işe girizilip bilner. Emma Jemgyýet wersiýasynda birnäçe zady el bilen etmeli. Şonuň üçin geliň has çylşyrymly meselä seredeliň. Jemgyýet wersiýasynda düzmek. Jemgyýet wersiýasynyň käbir çäklendirmeleri bar. Hususan-da, ondan programma serwerini işledip bilmersiňiz. Remoteöne uzak ýerlerde düzediş (Uzakdan düzediş) gurup bilersiňiz, aýratyn bir ýerde zerur programma bilen işleýän serwer bar bolsa. Gurluşyň düşündirişini şu ýerden ulanalyň: IntelliJ Idea jemgyýetçilik neşirinde uzakdan düzediş Wildfly (8787 port üçin uzakdan işlemek konfigurasiýasyny düzmek). Sazlamadan soň, täze konfigurasiýamyzy düzediş tertibinde işe girizýäris:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 5
Allhli zat gowy bolsa, aşakda bu barada habar göreris:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 6

Düzediş prosesi

Theazgyny ýatda saklaň. Munuň üçin ilki bilen öwrenjek ýerimizi kesgitlemeli. Penjirä seretseň, bize “Hasaba al” düwmesi gerek. Geliň, kodda tapalyň. Şeýlelikde, bize bir element gerek, "Hasaba al" diýen ýazgy bolmaly. Ora-da onuň bilen baglanyşykly bir zady bolmaly. Ctrl+Shift+FSitatalarda bellige alyň we gözläň . Index.xhtml-de biriniň bardygyny görýäris.
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 7
Tapylan çeşmä gitmek üçin Enter basyň:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 8
Şeýlelik bilen, hasaba alnanda agzaController.register çagyrylýandygyny görýäris . Görnüşinden, bu haýsydyr bir java synpy bolmaly. Basyň Ctrl+Nwe gözläň:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 9
Hakykatdanam, şeýle synp bar. Geliň. Megerem, hasaba alyş usuly bolmaly. Ctrl+F12Hasaba alyş usulyny basyň we gözläň
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 10
Hakykatdanam, tapdyk. Megerem, hasaba alyş şu ýerde, agzaRegistry.register- de bolýar . Ctrl basyň we oňa "düşmek" usulyna basyň:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 11
Indi “arakesme” ýa-da “Break Point” belläliň. Bu, kod ýerine ýetirilişiniň nirede durmalydygyny görkezýän bellikdir. Bu pursatda köp gyzykly zatlary öwrenmäge mümkinçilik alarys. Goýmak üçin, setir belgisiniň sag tarapyndaky ýere basmaly.
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 12
Http: // localhost: 8080 / wildfly-gibernate4 sahypasynda meýdanlary dolduryň we Hasaba alyş düwmesine basyň. Paneldäki pikir nyşany ýanyp-sönýär:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 13
Pikirlere girip, düzediş panelinde köp gyzykly maglumatlaryň bardygyny görüp bilersiňiz:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 14
Bu ýerde obýektiň meýdanlarynyň bahasyny görüp bilersiňiz. Mysal üçin, hasaba alnan agza nämeden ybarat:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 15
Gowy. Başga näme edip bileris? Kontekst menýusyny açyp, ol ýerde bahalandyrmany bahalandyryp bileris (ýa-da menýu arkaly Işletmek -> Bahalandyrmany bahalandyrmak). Has gowusy, düzediji dolandyryş panelinde:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 16
Bu, şol nokadyň elýeterli bolan ähli zadyna girip, şol pursatda ýerine ýetirilip bilinjek islendik kody ýerine ýetirmek üçin ajaýyp nokatda gaty ajaýyp ukyp. Mysal üçin:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 17
Şeýle hem, programma akymynyň dolandyryşyny nirä göçürmek isleýändigiňize jogap berýän düzediş dolandyryş panelinde dolandyryş düwmeleri bar. Jady dälmi?) F8 (Çykmak) düwmesini basyp, usullary girizmän koddan geçýäris. F9 basyp, düzediji bilen kod setirlerinden ýöremegi bes edýäris we programmanyň ýerine ýetirilişine düzediji gözegçilik edýäris. F7 (Into Into) bassak, ýolda duşýan her usulymyza girip, koddan geçeris. Theeri gelende aýtsak, bu maglumat blokyna aýratyn üns beriň:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 18
Bu, içimizdäki sapagy we häzirki sapagyň üstündäki usullary görkezýär. Emma bu hemmesi däl. Amatlylyk üçin çarçuwalar goýmasyny açyp bilersiňiz. Munuň üçin açyk bolmaly:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 19
Indi çarçuwalar goýmasynda usuldan metoda geçiş hakda maglumatlary görýäris, sebäbi “Step Into” ulanyp, koddan geçip başlady.
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 20
Görşümiz ýaly, häzirki wagtda programmanyň ýerine ýetirilýän ýerine elmydama geçip bilmeris. Indi "getDelegate: 469, AbstractEntityManager (org.jboss.as.jpa.container)" -de. Emma hakykatda biz durmuşa geçirýäris. Munuň bilen görkezilen synp muny subut edýär:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 21
Geliň, muňa seredeliň. Bilşimiz ýaly häzirki obýekti görkezýär. TransactionScopedEntityManager-de. Näme üçin Ideýa bize kod görkezip bilmeýär? Hakykat, IntelliJ Idea häzirki wagtda haýsydyr bir TransactionScopedEntityManager hakda bilmeýär, sebäbi taslamamyz bilen baglanyşykly däl (taslama bagly däl). Programma serweri işleýän wagty, içinde köp, dürli kitaphanalar işleýär. Emma biz olar hakda gaty az bilýäris, sebäbi ... umuman aýdanyňda, içerki zatlary öwrenmek hökman däl, diňe işlemeli. Sometimesöne käwagt işlemek ýa-da sport gyzyklanmasy muny talap edýär. Soň bolsa, synp koduny nireden almalydygyny bilmek üçin bu kitaphana hakda ideýa habar bermeli.

Düzediş üçin üçünji tarap kitaphanalaryny birikdirmek

Ilki bilen, haýsy kitaphananyň birikdirilmelidigine düşünmelidiris. Birinji ýol iň kyn - internetde gözlemek. Netijäni tapmagyň tizligi we netijesi taslamanyň näderejede dolandyrylandygyna baglydyr. Mysal üçin, “WildFly” -da açyk ammar bar. Şeýlelik bilen, Google “TransactionScopedEntityManager” -i ulananymyzda, https://github.com/wildfly/wildfly/tree/master/jpa/subsystem girip , bize wildfly-jpa gerekdigini göreris. Ikinji usul dogry. Serwer nirede bolsa, şol ýere serediň. Muňa dürli serişdeler kömek edip biler. Mysal üçin, Windows-da “Far Manager” bolup biler . Aşakda gözleg algoritminiň mysaly. Ony gurnap, işe girizeniňizden soň, çep tab ýa-da sag düwmäni ulanyp, goýmalaryň birine geçmek üçin Tab- dan peýdalanyň we gaty diskde zerur bölümi saýlaň. “Far Manager” katalogynyň gurlandan soň “Far Manager” -de açyk bolmagy gaty ähtimal. Diskiň köküne gitmek üçin basyň . Ulanyp, gözleg penjiresini açyň, bukjanyň adyny ýazyp başlaň we katalog tapylandan soň Enter basyň. Bu gözleg akylly we gözleg tekstine gabat gelýän şol kataloglary görkezýär. Papkalary bolmadyk nyşanlary girizseňiz, beýle nyşanlary girizip bolmaz. Şeýlelik bilen, programma serweriniň katalogyna geçýäris. Serwerde modullaryň nirededigini bilemzok diýeliň. Belki, bu ömrüňizde haýsydyr bir “WildFly” hakda eşidýän bolsaňyz gerek. Şonuň üçin faýl gözlemek üçin derrew şu ýere basyň . Şeýlelik bilen, logika buýruk berýär: kitaphana bilen bir faýl gerek. .Agny, bize banka gerek. Içinde TransactionScopedEntityManager synpy bolmaly. Sebäbi class = faýl, soňra “öz içine alýar” gözläň. .Agny, şuňa meňzeş bir zat: Alt+F1Alt+F2Ctrl + \Alt+FAlt+F7
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 22
Indi, netijä garaşalyň. Ol sizi garaşmaz)
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 23
Indi munuň üçin deslapky kody tapmaly. 2 wariant bar: Geliň, ikinjisini ulanalyň. Geliň, şol ýerden tapalyň:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 24
Indi garaşlylygy suratlandyrmaga geçeliň. Bu sahypada deslapky kody göçürip alyp bilersiňiz. Gowy, indi kod ýükledik. Galan zat kitaphanany birikdirmek. Örän ýönekeý birleşýär. Taslamanyň sazlamalaryny açmaly:
IntelliJ IDEA we düzediş: Suwa çümmek däl, gark etmek - 25
Şol ýerde "Kitaphanalar" -ny saýlaýarys we alnan çeşme kodlaryny "Çeşmeler" bölümine goşýarys, "Synplar" bölüminde bolsa, Uzak Dolandyryjynyň kömegi bilen tapylan WildFly katalogyndan kitaphananyň bank faýlyny görkezýäris. Ondan soň, F7-den geçenimizde, AbstractEntityManager we TransactionScopedEntityManager synpynyň mazmunyny göreris we Ctrl + N ulanyp synp arkaly gözleg arkaly elýeterli bolarys.

Ballary şertler bilen bölüň

Geliň indi arakesme nokatlaryna gaýdyp geleliň. Käwagt, elmydama durmak islemeýäris, ýöne diňe käbir şertlerde. Näme etmeli? Bu ýerde IDE-de bize kömek eder. Arakesme nokadyny ýerleşdirip, oňa şert belläp bileris. Mysal üçin, bir nokat goýuň we sag düwmä basyň:
IntelliJ IDEA и Debug : Не дайвинг, но снорклинг - 26
Indi kesiş nokady diňe Maksimilian bolanda ýanar. “Has köp” düwmesine basyp, “Break Points” üçin giňeldilen sazlamalar toplumy size elýeterli bolar.

Kadadan çykmalar boýunça nokatlar

Käwagt ýalňyşlyk alyp bileris we nireden gelendigini yzarlamak isleýäris. Soňra belli bir kod setirinde däl-de, kadadan çykma ýerinde kesiş nokadyny goşup bileris. Munuň üçin ähli nokatlaryň sanawyny giňeltmeli:
IntelliJ IDEA и Debug : Не дайвинг, но снорклинг - 27
Saýlanan kadadan çykma görnüşi üçin täze düzgün dörediň:
IntelliJ IDEA и Debug : Не дайвинг, но снорклинг - 28
Mysal üçin, NPE üçin:
IntelliJ IDEA и Debug : Не дайвинг, но снорклинг - 29

HotSwap sapaklary

Düzediji ajaýyp zat. Düzedişden başga-da, sapaklary üýtgetmäge mümkinçilik berýär! Hawa, çeşmeler (mysal üçin xhtml sahypalary) beýle aňsat üýtgedilip bilinmez. Emma java synplarynyň kody çybyn bilen çalşyrylyp bilner (bu “Hot Swap” diýilýär). Munuň üçin diňe düzediji düzüji bilen synpy üýtgediň we Run -> Üýtgedilen synplary täzeden ýükläň. Bu mowzukda peýdaly syn: JVM-de gyzgyn çalyşmagyň 4 mugt usuly

Netije

Düzediji düzüjiniň ýerine ýetiriji koduň çuňlugyna aralaşmagyna we her jikme-jik öwrenilmegine mümkinçilik berýän güýçli guraldyr. Bu size iň bulaşyk ýalňyşlary düzetmäge mümkinçilik berýär. Şeýle hem, käbir kitaphanalaryň işleýşine has gowy düşünmäge mümkinçilik berýär. Şeýle gysga syn hem gaty täsirli boldy, ýöne peýdaly we gyzykly bolar diýip umyt edýärin. Kimdir biri bu material bilen gyzyklanýan bolsa, aşakdaky baglanyşyklary ulanyp suwa çümüp bilersiňiz:
IntelliJ IDEA и Debug : Не дайвинг, но снорклинг - 30
# Wiaçeslaw
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION