Zmena kódu - Ako napísať lepší kód

Vo svete programovania sa toho možno jednoducho naučiť.

Po 3 rokoch vývoja front-end webov sa cítim zlé na kódovaní ako vždy. Vo svete programovania je toho proste toľko, aby sa vývojár dosť skromný nikdy neodvážil povedať, že jeho kód je dokonalý.

Väčšinu svojej kariéry som si vymieňal svoje zručnosti v oblasti CSS, a preto mi z dobrých dôvodov nedôverujem v svoje zručnosti v oblasti jazyka JavaScript. Ako pozitívny človek, ktorý neustále hľadá rast, som sa rozhodol zmeniť tento pocit neprimeranosti na motiváciu namiesto seba-nenávisti.

Nižšie je uvedený test kódu, ktorý môj kolega vyšší kolega navrhol na proces prijímania do zamestnania. Zdieľal s ostatnými spoluhráčmi, aby sme mohli poskytnúť spätnú väzbu o efektívnosti použitia tohto testu kódu na určenie programovacích schopností kandidátov. Túto príležitosť som využil na zlepšenie svojich schopností jazyka JavaScript tým, že som celý deň venoval premýšľaniu o kóde.

Otázka

Napíšte funkciu, ktorá pri zadaní čísla reťazca verzie, tj. „1.12.4“ a reťazec rozsahu semestra, tj. “~ 1.12.0”, vráťte, či daná verzia spadá do daného rozsahu semestra ako booleovské číslo.
Rozsah semestrov by mal podporovať tieto tri vzorce:
 1) Presná zhoda
 2) ^ Verzie väčšie v rovnakom rozsahu hlavných verzií
3) ~ Verzie väčšie v rovnakom rozsahu menších verzií

Prvý pokus

Pri prvom pokuse som išiel na najjednoduchší spôsob, ako dokončiť úlohu, pomocou .substring (), prepínača, pre slučky a ak sú podmienky. Aj keď kód vyzerá škaredo, funguje to a dokončiť toto riešenie je veľmi jednoduché, pretože všetky tieto sú základy jazyka JavaScript. Mojím zvykom v kódovaní je, aby to fungovalo ako prvé, potom som ho upravil, až kým nebudem spokojný, a nakoniec ho považujem za dokončený. Pravdepodobne to nie je najlepší spôsob pre väčšinu ľudí, ale som zvyknutý pracovať týmto spôsobom. (V budúcnosti by som rád zmenil spôsob práce a trávil viac času premýšľaním pred tým, ako začnem kódovať.)

Druhý pokus

Poznám časť prípadu spínača a podmienky sú veľmi škaredé, takže som sa ich pokúsil prepísať. Chcel som nájsť funkciu, ktorá v slučke bude fungovať ako should. Skôr som sa hanbil, že som si túto funkciu nepamätal, ale odpustil som. Koniec koncov, existujú funkcie, ktoré často nepoužívame, a je prirodzené na ne zabudnúť. Môj postoj je: využite ich viac, ak ich považujete za užitočné, a nakoniec si ich budete pamätať.

Tretí pokus

Zdieľal som kód so senior inžinierom a on mi dal konštruktívnu spätnú väzbu. Požiadal ma, aby som vymyslel lepší spôsob, ako získať rangeSymbol a po vyhlásení sa pokúsiť neupravovať rangeNumArr. V neposlednom rade mi povedal, aby som použil .every (), čo je dosť podobné .some (), ale namiesto toho by slučka praskla, keď by bola návratná hodnota nepravdivá. Vzal som jeho radu a urobil niekoľko ďalších zmien, čo viedlo k prekrásnemu kódu:

záver

Je veľmi dôležité pripustiť, že nie ste na niečo dobrí a usilovať sa o zlepšenie.

Ak potrebujete, požiadajte o pomoc. Vždy je dobré mať inú perspektívu, pretože každý má iný proces myslenia. Niekedy vás môžu inšpirovať názory ostatných!

Keď robíte kódovacie cvičenie, nebojte sa, že strácate čas jednoduchou funkciou. Pamätajte, že programovanie je kreatívny proces, ktorý pri správnom počte spotrebuje veľké množstvo energie v mozgu!

Potlesk a nasledujte ma, ak sa vám tento článok páči!

Podelil som sa o svoje front-end experimenty a svoje myšlienky o programovaní, kedykoľvek som mal čas;)