de DHARA DOSHI

Cum un dezvoltator C ++ învață JavaScript: o poveste frustrantă, dar în cele din urmă satisfăcătoare

Cum invata un dezvoltator C JavaScript o poveste frustranta
Când se îndoiește de sine în fața unui bug încăpățânat!

Anul acesta mi-am început călătoria în dezvoltarea web. După cum va mărturisi cel de-al unsprezecelea articol de pe web: JavaScript este sfântul Graal.

Și așa mi-am început călătoria în acest nou stack, un domeniu nou și un nivel cu totul nou de noutate.

Așadar, la jumătatea zilei, în mijlocul unei caracteristici pe care o implementam, eram aproape în stadiul în care îmi venea să-mi trag părul. Frustrarea mea nu cunoștea limite, iar sindromul impostorului meu a fost la un nivel ridicat.

Înainte să vă spun mai multe despre ce problemă aproape m-a transformat în nebunie, permiteți-mi să vă dau un pic de fundal despre mine.

Practic abia am început să zgâriem suprafața JavaScript și am luat câteva lecții FreeCodeCamp (și m-am minunat de ceea ce a realizat Quincy Larson). De când mi-am început călătoria ca absolvent de informatică cu mai bine de 10 ani în urmă, nu am mai văzut codarea predată într-un mod atât de structurat până acum.

Am început dezvoltarea JavaScript în februarie 2018 (după ce am urmat un curs cu edX pe JavaScript și JQuery, numit Programare pentru web cu JavaScript). Asta înseamnă că sunt de cinci luni. Sunt extrem de indignat că m-am blocat de această problemă acum, mai degrabă decât cu câteva luni în urmă, dar un dezvoltator nu are de ales cu astfel de lucruri. Trebuie doar să-ți înghiți ego-ul, de fiecare dată înspăimântător. Si invata!

Vă întrebați ce problemă specifică JavaScript m-a determinat să pun toate întrebările existențiale din viața mea?

O poveste ilustrată a domnului luni, butonul.

Aceasta este povestea unui buton:

Cum invata un dezvoltator C JavaScript o poveste frustranta
Faceți cunoștință cu domnul luni (un buton)

Personalitatea domnului Monday poate fi definită ca:

<button type=”button” class=”btn btn-sm btn-success” id=”<mon-week-day”>MON</button>

Dar domnul Monday nu este atât de original pe cât vrem să fie el. El se baza pe un șablon, iar sursa personalității sale reale era ceva de genul acesta:

<button type=”button” class=”btn btn-sm btn-success” id=”<%=day%>-week-day”>day.substr(0, 3).toUpperCase()</button>
where day is the days of the week: monday, tuesday, wednesday etc.

Declinare de responsabilitate: Codul este <% = day% & gt; este EJS.

Am vrut să dau personalității domnului luni o nuanță de gri în unele situații.

1611367149 846 Cum invata un dezvoltator C JavaScript o poveste frustranta
Nu pare superb? : P

Dar domnul Monday pur și simplu nu știa cum să se distreze. Suspin! Nu s-ar face gri!

Cum am scos în cele din urmă cele mai bune în domnul luni

I-am spus să facem asta, așa că lasă-mă să te îngrijesc pentru a adăuga clasă la persoana ta.

$('#'+day+'week-day').addClass('unselected')

Nu s-a clătinat. Am schimbat addClass în toggleClass și totuși nu s-a întâmplat nimic. Cred că nu era dornic să fie „neselectat”, deși i-am explicat de ce era esențial.

Apoi am scos armele mari, consola. Și am încercat să-l schimb acolo. Consola a aruncat unele îndoieli cu privire la capacitatea domnului Monday de a se întoarce.

Ar spune că a schimbat culoarea, dar aș vedea în continuare un domn luni foarte verde. Deci, ce se întâmpla aici? Mintea mea Sherlock am venit în salvarea mea și voilà, mi-am dat seama de cea mai mare greșeală pe care omenirea a cunoscut-o vreodată în istoria programării (sau cel puțin în mintea mea a apărut ca cea mai mare șmecherie vreodată).

A existat un alt element cu același id ca domnul Monday. Acesta a fost motivul pentru care el nu s-ar fi clătinat și probabil că toate schimbările au fost vizate de celălalt tip. Un caz acut de criză de identitate, trebuie să spun!

Cum s-a întâmplat asta? Ei bine, ați auzit de expresia „Prea mulți bucătari strică bulionul?” Așa s-a întâmplat: două sau trei persoane mai lucraseră la același fișier și, cumva, acest nou id se potrivea cu unul dintre id-urile pe care le folosiseră anterior pentru un element. Uf, aceasta a fost o lecție atât de importantă pentru mine.

Toate elementele ar trebui să aibă ID-uri unice.

Oricum, am schimbat id-ul domnului Monday și am încercat din nou.

<button type=”button” class=”btn btn-sm btn-success” id=”<monday-hours-day”>MON</button>
$('#'+day+'hours-day').addClass('unselected')

Și totuși, domnul Monday nu s-ar face gri.

Remedierea celei mai mari greșeli vreodată

După câteva ore de căutări, întrebându-mă dacă asta am vrut să fac pentru tot restul vieții mele (globii oculari aproape din orificiile mele, încercând să găsesc modalități de a-l transforma pe domnul luni gri), mi-am dat seama care este problema. .

Și știu că ești pe moarte să afli. Promit când știi, mă vei urî pentru că am făcut cea mai tâmpită greșeală din istoria omenirii.

Problema a fost că am ratat un „-” (cratimă) în id înainte de ore, când adăugam cursuri neselectate.

$('#'+day+'hours-day').addClass('unselected')//is clearly wrong.
$('#'+day+'-hours-day').addClass('unselected') //is the perfect code ever

Domnul luni a devenit în sfârșit gri! Acest lucru mi-a dat o fericire atât de imensă încât am dormit ca un cățeluș în ziua aceea! Da, la fel ca cel din această imagine.

1611367149 782 Cum invata un dezvoltator C JavaScript o poveste frustranta
Fotografie de Adam Grabek pe Unsplash

Pentru a citi mai multe povești despre escapadele mele în codul terenului, vă rog să mă motivați făcând clic pe pictograma „Aplauze” / „Aplauze” de mai multe ori – ideal 50, dar dacă sunteți la fel de leneși ca mine, voi accepta 20 dintre ele ( Nimic mai puțin decât asta vă rog;)).

Publicat inițial la www.heisenbugtech.com