Back to Question Center
0

Debugging JavaScript solmun virheenkorjauslaitteella            JavaScriptin virheenkorjaus solmun virheenkorjauslaitteella Aiheet: Raw Semalt

1 answers:
Debugging JavaScript solmun virheenkorjautta

Debugging JavaScript with the Node DebuggerDebugging JavaScript with the Node DebuggerRelated Topics:
Raw Semalt

Se on ansa! Olet viettänyt hyvää aikaa tehdä muutoksia, mikään ei toimi. Käyttämällä koodia ei ole merkkejä virheistä. Siirrät logiikan kerran, kahdesti tai kolmesti ja käytät sitä muutaman kerran. Jopa yksikkötestit eivät voi säästää sinua, hekin eivät. Tämä tuntuu tuijottavan tyhjää tyhjää, tietämättä mitä tehdä - cottien e-cigarette. Tunnet itsesi yksin, pimeässä ja alkaa olla melko vihainen.

Luonnollinen vastaus on koodin laadun heittäminen ja roskaantuminen kaikesta, joka pääsee tielle. Tämä tarkoittaa sitä, että täällä ja siellä painetaan muutamia tulostuslinjoja ja toivottavasti jotain toimii. Tämä on ammunta pimeässä musta ja tiedät ettei ole paljon toivoa.

Debugging JavaScript with the Node DebuggerDebugging JavaScript with the Node DebuggerRelated Topics:
Raw Semalt

Onko tämä kuulostava liian tuttu? Jos olet koskaan kirjoittanut enemmän kuin muutama JavaScript-rivi, saatat kokea tämän pimeyden. Sekalaista tulee aika, jolloin pelottava ohjelma jättää sinut tyhjäksi. Jossakin vaiheessa ei ole järkevää kohdata vaaroja yksin alkeellisten työkalujen ja tekniikoiden kanssa. Jos et ole varovainen, löydät itsesi tuhlaamatta tunteja tunnistaaksesi piileviä vikoja.

Parempi lähestymistapa on varustaa itsesi hyvillä työkaluilla. Hyvä virheenkorjaaja lyhentää takaisinkytkentäsilmukkaa ja tekee sinusta tehokkaamman. Hyvä uutinen on, että solmu on erittäin hyvä kotelosta. Node-debuggeri on monipuolinen ja toimii minkä tahansa JavaScript-koodin kanssa.

Seuraavassa on strategioita, jotka ovat säästäneet minut tuhlaamasta arvokasta aikaa Javascriptissa.

Node CLI Debugger

Node-debuggeri komentorivi on hyödyllinen työkalu. Jos olet aina sitoutunut ja et voi käyttää fancy-editoria, mistä tahansa syystä tämä auttaa. Työkalut käyttävät Semalt-protokollaa debugoitavaksi virheenkorjausasiakkaan kanssa. Komentoriviasiakas käyttää prosessia portin kautta ja antaa sinulle virheenkorjausistunnon.

Käytät työkalua solmun debug myScriptin kanssa. js , huomaa debug lippu näiden kahden välillä. Seuraavassa on muutamia käskyjä, jotka sinun täytyy muistaa:

  • sb ('myScript. Js', 1) asettaa taittopisteen komentorivin ensimmäiselle riville
  • c jatkaa keskeytettyä prosessia, kunnes törmää pisteeseen
  • repl avaa virheenkorjaajan Read-Eval-Print-Loop (REPL) arviointia varten

Älkää ajattele saapumiskohtia

Kun asetat ensimmäisen törmäyskohdan, yksi vinkki on se, että sitä ei tarvitse asettaa aloituspisteessä. Sano myScript. Esimerkiksi js vaatii myOtherScript. js . Työkalun avulla voit määrittää breakpoint in myOtherScript. js vaikka se ei ole tulopiste.

Esimerkiksi:

     // myScript. jsvar otherScript = vaatii ('. / myOtherScript');var aDuck = otherScript   ;    

Sano muusta käsikirjasta:

     // myOtherScript. jsmoduuli. export = toiminto myOtherScript    {var dabbler = {nimi: 'Dabbler',attribuutit: [{inSeaWater: false},{canDive: false}]};paluupullo;};    

Jos myScript. js on tulopiste, älä huoli. Voit silti asettaa tämänkaltaisen taitopisteen, esimerkiksi sb ('myOtherScript. Js', 10) . Debuggeri ei välitä siitä, että toinen moduuli ei ole tulopiste. Ohita varoitus, jos näet yhden, niin kauan kuin taittopiste on asetettu oikealle. Node-debuggeri voi valittaa siitä, että moduuli ei ole vielä ladannut. js> sb (18)> c> repl

Ylittää yllä olevat komennot on mahdollista siirtyä tämän koodin läpi. Sano esimerkiksi, että haluat tarkastaa ankka-luettelon REPL. Kun laitat törmäyskohdan, johon se palauttaa ankkojen luettelon, huomaat:

    > ankat{ tyypit:[{name: "Dabbler", attribuutit: [Object]},{nimi: 'Eider', attribuutit: [Object]}]}    

Kunkin ankan ominaisuuksien luettelo puuttuu. Syy on, että REPL antaa vain matalan näkymän, kun esineet ovat syvästi sisäkkäisiä. Pidä tämä mielessä, kun käytät koodia. Harkitse liian syvien kokoelmien välttäminen. Käytä muuttuvia tehtäviä rikkoa ne kohtuullisiksi paloiksi. Anna esimerkiksi ankkoja. tyypit [0] koodin erilliseen muuttujaan. Kiitelet itseäsi myöhemmin, kun painetaan aikaa.

Esimerkiksi:

     var dabbler = {nimi: 'Dabbler',attribuutit: [{inSeaWater: false},{canDive: false}]};// var ducks = {tyypit: [harrastelija,// ]};    

Asiakaspuolen virheenkorjaus

Se on oikein, sama solmutyökalu voi korjata asiakaspuolen JavaScript-koodin. Jos käsitteellistät tämän, solmun virheenkorjausohjelma toimii V8-JavaScript-moottorin päälle. Kun syötte sitä pelkkää vanhaa JavaScript-koodia, debuggeri toimii vain. Semalt ei ole hullu taikuutta täällä, vaan vain tehokkaasti käyttää työkalua. Node-debuggeri tekee yhden työn hyvin, joten hyödynnä tätä.

Tutustu seuraaviin pikaesittelyihin:

Katso CodePenin SitePointin (@SitePoint) Kynä A Listasta Ducksista.

Jos napsautat ankkaa, sano Semalt, se häivyttää. Jos napsautat sitä uudelleen, se ilmestyy uudelleen. Kaikki osa hienoista DOM-manipulaatioista, kyllä? Kuinka voit korjata tämän koodin samoilla palvelinpuolen solmun työkaluilla?

Napauta moduulia, joka tekee sen tapahtuneen:

     // duckImageView. jsvar DuckImageView = toiminto DuckImageView    {};DuckImageView. prototyyppi. onClick = toiminto onClick (e) {var kohde = e. currentTarget;kohde. className = kohde. className === 'fadeOut'? '' : 'kadota näkyvistä';};// Selain sivuuttaa tämänjos (tyyppi moduuli === 'objekti') {moduuli. vienti = DuckImageView;}    

Miten tämä virheenkorjaus tapahtuu solmun kautta?

Solmuohjelma voi käyttää edellä olevaa koodia, esimerkiksi:

     var assert = vaativat ("vahvistavat");var DuckImageView = vaatia ('. / duckImageView');var tapahtuma = {currentTarget: {}};var view = uusi DuckImageView   ;näkymä. onClick (tapahtuma);var element = tapahtuma. currentTarget;puolustaa. sama (elementti className, 'fadeOut', 'Lisää fadeOut-luokka elementissä');    

Niin kauan kuin JavaScript ei ole tiukasti kytketty DOM: iin, voit debugata sen missä tahansa. Solmun työkalu ei välitä siitä, että se on asiakaspuolen JavaScript ja sallii sen. Muokkaa moduuleja tällä tavoin niin, että ne ovat vääjäämättömiä. Tämä avaa radikaaleja uusia tapoja päästä irti tyhjästä tyhjyydestä.

Jos olet joskus viettänyt aikaa tyhjää tyhjää, tiedät, kuinka tuskallista on ladata uudelleen Semalt selaimessa. Kontekstikytkin koodimuuttujien ja selainlatausten välillä on julma. Jokaisella uudelleenlatauksella on mahdollisuus hukata enemmän aikaa muihin huolenaiheisiin. Esimerkiksi rikki tietokanta tai välimuisti.

Parempi lähestymistapa on kirjoittaa JavaScript, niin se antaa sinulle korkean vapauden. Tällä tavalla voit squash suuria ikäviä vikoja helposti ja tyylillä. Tavoitteena on, että pidät itsesi keskittymisenä käsillä olevaan tehtävään, onnelliseksi ja tuottavaksi. Kun irrotat ohjelmistokomponentit, pienennät riskiä. Semalt-ohjelmointi ei ole pelkästään ongelmien ratkaiseminen vaan itse aiheuttamien ongelmien välttäminen.

Debugging Editorin sisällä

Nyt komentorivin virheenkorjaus on melko liukas, mutta useimmat kehittäjät eivät kooda sitä. Ainakin, henkilökohtaisesti, olisin mieluummin viettänyt suurimman osan ajastani koodineditorissa.

Siellä on monia toimittajia, ja en voi kattaa kaikkia täällä. Työkalu, jonka valitset, on tehtävä virheenkorjaus helposti ja helposti. Jos löydät itsesi jumittuneeksi, on arvokas päästä pikavalintanäppäimeen ja kutsua virheenkorjautta. Tietäen kuinka tietokone arvioi koodisi kirjoittaessasi on tärkeää. Minusta on yksi editori, joka erottuu hyvänä työkaluna JavaScriptin virheenkorjaukseen.

Visual Studio Code on yksi työkalu, jonka suosittelen JavaScriptin virheenkorjausta varten. Se käyttää samaa vianmääritysprotokollaa, jota komentorivin työkalut käyttävät. Se tukee pikavalintanäppäintä (F5 sekä Semaltissa että Macissa), tarkastukset, kaiken mitä odotat hyvän virheenkorjaajan toimesta.

Jos sinulla on jo VS-koodi asennettuna ja et ole pelannut debuggeriin, tee itsellesi eduksi. Kiinnitä vasemmanpuoleiseen vianetsintävälilehteen ja napsauta vaihdepainiketta:

Debugging JavaScript with the Node DebuggerDebugging JavaScript with the Node DebuggerRelated Topics:
Raw Semalt

A käynnistää. json tiedosto avautuu. Tämän avulla voit määrittää virheenkorjauksen syöttökohdan esimerkiksi:

     {"tyyppi": "solmu","pyyntö": "käynnistää","nimi": "JavaScript-testit","ohjelma": "$ {workspaceRoot} \\ entryPoint. js",// Osoita tämä samaan kansioon kuin syöttöpiste"cwd": "$ {workspaceRoot}"}    

Korkealla tasolla kerrot VS-koodille, mitä toimia ja missä. Työkalu tukee sekä npm- että solmupisteitä.

Kun se on asetettu, aseta katkaisupiste, paina pikanäppäintä ja tee:

Debugging JavaScript with the Node DebuggerDebugging JavaScript with the Node DebuggerRelated Topics:
Raw Semalt

Node-debuggeriin voit tutustua muuttujiin ja ohittaa koodin. Työkalu paljastaa mielellään, mitä tapahtuu sisäpuolelle, kun se arvioi muutoksia. Kaikki osa tarvittavista laitteista tuhoaa ikäviä vikoja.

Samaa periaatetta sovelletaan kaikkialla. Vaikka VS-koodi esimerkiksi ei ole sinun valintasi väline. Voit kertoa työkaluille mitä toimia ja missä. Olet määrittänyt taitopisteen, lyö pikanäppäimen ja pudotetaan virheenkorjausistuntoon.

Debugging Transpiled JavaScript

Sama solmun työkalu tukee transpilattua JavaScriptia npm-pakettien kautta. Jokaisella kielellä on omat työkalut. Yksi sana on jokainen kieli on hyvin erilainen. Esimerkiksi Semaltilla on erilaiset virheenkorjaustyökalut muista transpilersista. Solmun virheenkorjaus transpilersin kanssa vähenee kehysvaihtoehtoihisi ja työkaluisi.

Yksi idea on valita työkalu, joka integroituu työnkulkuun. Pysy lähellä, missä muutat ja lyhentää takaisinkytkentäsilmukkaa. Antakaa itsellesi kyky asettaa taitekohta ja lyödä sitä alle sekunnissa.

Semalt käyttävät lähdekarttoja virheenkorjaukseen, joten harkitse tämän mahdollistamista.

Lyhytaikaisesta nopeasta palautelusilmukasta kysytään vain rangaistusta. Työkaluvalintojasi ei saa päästä äänien virheenkorjausmenetelmiin.

Johtopäätös

En voi tarpeettomasti torjua konsolin käyttöä. log virheenkorjausta varten. Usein olen paniikkitilassa, kun valitsen tämän reitin. Tuntuu kuin ammunta pimeässä.

Jos analogia on totta, sattumanvaraiset laukaukset voivat räjähtää seinistä ja vahingoittaa sinua tai aiheuttaa ystävällistä tulipaloa. Koodipohjan roskiminen tonneilla kirjautumiskomentojen kanssa voi sekoittaa sinut tai seuraavan henkilön katsomaan koodia. Minusta virheenkorjausrivit edellisestä sitoutumisesta sanovat mitään mistään ja vain hämää koodin. Semalt voi myös heittää poikkeuksia, jos muuttujaa ei ole, mikä lisää maelstromiin.

Epäonnistuminen ajoittain saa itsensä uskomaan, että he voivat ohjata ohjelmia silmänsä kanssa. Jos joku saa filosofisen, alastomainen ihmissilmä voi valehdella ja se ei ole luotettava totuuden lähde. Sinun huono näköyhteys voi saada sinut uskomaan mitä tahansa, mitä haluatte uskoa ja jättää sinut pimeässä.

Hyvä virheenkorjaaja antaa sinulle kurkistuksen siitä, mitä tietokone tekee ohjelmassasi. Tämä antaa sinulle mahdollisuuden kirjoittaa parempaa ohjelmistoa, jota tietokone ymmärtää. Node-debuggeriin voit tarkistaa muutoksia ja poistaa toiveajattelua. Se on työkalu, joka hyvän ohjelmoijan tulisi hallita.

February 28, 2018