Vývojári softvéru, ktorý bežne vyvíjajú chyby začiatočníkov, a ako tomu zabrániť

Foto: Fancycrave on Unsplash

Bola som len mesiac od môjho zamestnania ako softvérový vývojár, čerstvý z vysokej školy. Zahrieval som sa, aby som prispel do svojho tímu. Nejako som sa chytil veľmi zaujímavých myšlienok, keď som prechádzal existujúcu kódovú základňu. Môj tím vybudoval túto kódovú základňu v priebehu mesiacov a rokov úsilia.

Ako svoju prvú úlohu som mal malú chybu, ktorá by pomohla pri stabilizácii budúcich verzií služby. Môj tím mi vysvetlil architektúru služby a kde sa zmestili hlavné schémy väčšieho projektu. Bolo na mne, aby som zistil, kde sa kód musel pridať / odstrániť alebo upraviť, aby sa opravila chyba.

Začal som kopať základňu kódov, z ktorých väčšina bola vytvorená za posledné dva roky. V žiadnom prípade to nebol pôvodný kód. Keď som do toho prešiel hlbšie a hlbšie, ocitol som sa s dosť profánnymi myšlienkami. Povedať, že kód nebol esteticky príjemný, by bolo mierne povedané. Takto som reagoval na základňu kódu môjho tímu:

To naštve !!!

Yuck, tu je dvesto riadkových funkcií.

Kto napísal tento svinstvo!

Ach bože, vo vnútri bloku if-else je blok if-else.

Tento kód je veľký chlpatý neporiadok! efektívne.

Toto je potrebné prepísať úplne od nuly.

Bol som zúrivý. Keď som mal tieto myšlienky, časť ma zaujímala, existuje spôsob, ako tomu všetkému dať zmysel? Boli nejaké veci, ktoré som nevedel, že títo starší chlapci v mojom tíme, ktorí napísali väčšinu tohto kódu. Začal som to zisťovať.

Chytil som staršího muža v mojom tíme na rýchly rozhovor a začal som na neho hádzať svoje otázky.

Z toho, čo som sa dozvedel po diskusii, bolo pre mňa veľmi poučné. Tím si bol vedomý, že kód mal nejaké problémy s údržbou. Existujúca kódová základňa však mala tvar, ktorý je z niekoľkých dôvodov. Keď mi tieto dôvody vysvetľoval, videl som, prečo má tento príspevok zmysel.

Čítajte ďalej a nájdete odpoveď na otázku, prečo, keď požiadate vývojára softvéru o kvalitu kódu, na ktorom pracujú, predvolená odpoveď je: „Je to neporiadok“. A tiež, prečo je budovanie vecí zo zeme vo väčšine prípadov riešením.

Kód je napísaný z iného dôvodu

Väčšina ľudí, ktorí sa zaoberajú vývojom softvéru vrátane mňa, si myslí, že kód je napísaný pre počítače. Zle. Nada. Bolo napísané pre ľudí. Stroj nevidí ani kód JavaScript, ktorý píšete, všetko, čo vidia, je postupnosť 0 s a 1 s. A keďže sa budovala služba pre môj tím, boli stanovené skutočné termíny s výsledkami, ktoré sa museli dodať. Vývojári softvéru sú už veľmi psychicky zdaňovaní. Kdekoľvek je pod tlakom na doručenie, získanie kódu do práce má prednosť pred písaním super esteticky príjemného kódu.

Veľký kúsok kódu je ľahšie písať a vysvetľovať kolegovi vývojárovi osobne, na rozdiel od skákania z jedného súboru do druhého, aby veci zmysel. Tieto rozhodnutia potom môžu zostať na dlhú dobu.

Výrobný kód je testovaný na bitku

Môj tím dostane veľa správ o incidentoch, ktoré niekedy vedú k zásadným opravám chýb v kóde. Chyba pri spracovaní klauzuly if-else, skúška chytať tam a zrazu celá základňa kódu vyrástla chĺpky. Takto začína byť kódová základňa stále lepšia napriek najlepším úmyslom.

To je presne dôvod, prečo je prepisovanie kódu od základu taký naivný nápad. To by malo za následok vyhodenie všetkých opravených chýb a vylepšení, ktoré boli vykonané. Tieto sa hromadili v priebehu mesiacov a rokov, pravdepodobne používateľom, ktorý má nejaký skutočný problém. Vývojár mohol stráviť niekoľko hodín opravením týchto chýb po ich nahlásení.

Čo funguje, je cesta

Vo svete podnikania, kde môžu existovať klienti v závislosti od vášho produktu alebo služby. Nikto sa nestará, či je váš kód refaktorizovaný v najlepšom možnom rozsahu. Každý riadok kódu je napísaný na vyriešenie obchodného problému. Opýtajte sa sami seba, akú hodnotu prinesie vaše refaktorské úsilie? Pravdepodobne žiadne a nakoniec by mohli priniesť ďalšie chyby. Plus, je to najlepšie využitie vášho času?

Protijed

Prvým krokom je rozpoznať problém. Problém bol v tom, že moje ego si myslelo, že to môže urobiť lepšiu prácu ako tí starší vývojári, ktorí jednoznačne nevedeli, ako napísať kód na úrovni výroby. Je to veľmi naivný spôsob myslenia a ja som bol v minulosti vypálený dosť času, aby som mu teraz zabránil.

Ak uznáte prítomnosť svojho ega, získate nad tým obrovskú výhodu. Zrazu nemá kam schovať. Uznanie problému je jedna vec a riešenie je ďalšia. Nižšie je môj spôsob, ako obísť túto kolísavú reakciu. Ak máte iný spôsob, zapíšte si ho do sekcie komentárov.

Buďte zvedaví

Začnite sa pýtať, prečo!

Prečo bol tento kus kódu napísaný týmto spôsobom? Kto to napísal? Je táto osoba stále v okolí a môžem sa jej na to opýtať. Čo vedia títo chlapci, že nie? Aký je problém, ktorý táto funkcia rieši?

Odpoveďou vás väčšinou prekvapí.

Rozvíjajte pokoru

Toto nie je náročná úloha. So všetkou pravdepodobnosťou máte stále obrovské množstvo, aby ste sa naučili bez ohľadu na to, kde by ste sa mohli umiestniť na rebrík.

Prijatie princípu rastu je to, čo mi umožnilo dostať sa do správneho stavu mysle. Oslobodilo ma klásť otázky bez strachu, že vyzerám hlúpo. Ak viete, že nemáte poznať všetky odpovede, ale naučiť sa všetky odpovede, kladenie otázok sa stáva iba trivialitou.

záver

Je veľmi ľahké si myslieť, že váš spôsob písania kódu je najlepší a všetci ostatní sú na hovno. Opýtajte sa troch ľudí na to, ako rozdelia reťazec na celý rad postáv, a všetci by dali tri rôzne spôsoby, ako to urobiť. Pravdepodobne sú všetci rovnako dobré a od všetkých sa dá niečo naučiť.

Pokiaľ ide o riešenie nekvalitného kódu, jeho vyhodenie rozhodne nie je riešením. Podnikateľsky ústretovejší spôsob by bolo začať jesť slona po jednom a uhryznúť si kód.