Hogyan lehet "felszeletelni" a kódot?
Junior programozó vagyok és mindig azt veszem észre a megírt funkciókon, hogy nagyon hosszúra sikerül megírnom.
Hogy lehet úgy, gondolkodni, hogy amikor belekezdek egy feature megírásába akkor ne több száz soros osztályokat, funkciókat gyártsak le hanem minél jobban legyen szét szedve több osztályra/funkcióra.
Jelenleg úgy gondolkodom, hogy ami ismétlődni szokott a kódban azt kiemelem külön funkcióba de még így is több száz soros funkciók jönnek össze.
Akkor még jobban fel kell szeletelni. Ennyi a megoldás :)
Kis egységekben gondolkozz. Bár nem tudom milyen nyelven csinálod, de általában meg lehet oldani, hogy 1-1 metódus/függvény 20-25 sornál ne legyen hosszabb... Bár a bölcsek még ennél is sokkal kevesebbre esküsznek, de nyilván nem mindig jön össze, amikor az ember belemerül.
De nyilván a több 100 soros metódusok, az rossz úgy.
Induljunk ki mondjuk egy letöltőprogramból:
- Kiszervezném mondjuk a csatlakozást a hosthoz, és paraméterként várnék egy URL-t
- Az oldalbejárást is kiszervezném amennyire csak lehet
- Lenne egy kis egység, ami csak az adott oldalon kutat, és lementi az adatokat, pl. képeket.
- Ezután kiszervezném külön mondjuk egy fájlba írást is, ami lementi a képeket.
- De akár ha használni akarsz customer header-öket a csatlakozáshoz, azt is kiszervezném.
- Vagy maga a letöltési folyamatot, akár külön osztályba is, ami kapna több adatot is.
Máris kész egy egyszerű Python letöltő program, ami fel van darabolva, és átlátható :D
Ez kb 200 sor összesen, és mennyi részből áll? Egy jó párból. Bár ha mondjuk Javazol, akkor ott több kód van, de ott is szépen szét lehet szeparálni.
Egyrészt, ha megvan a működőképes kód az már elve tök jó. Kisebb, egyszerűbben tesztelhető függvények írására rá lehet szokni. Ha végiggondolod az algoritmusod, pontokba szeded, hogy milyen sorrendben mi történik, akkor minden egyes pont lehet egy önálló függvény, Ha adatot kell megosztani az egyes függvények között, akkor azok egy objektum metódusai lesznek, amiket meghívsz egy adott darab adaton.
Magát a meglévő kódot kisebb egységekre szeletelni nem nagy ördöngősség ha valamilyen IDE-t használsz: VSCode-on itt megmutatja a srác: https://www.youtube.com/watch?v=0GiyKv6ozP8
Köszönöm a segítséget és a példát is! :)
Azt kifelejtettem PHP/TypeScript-el foglalkozom.
ahhoz hogy egy darab kódot kiszervezz egy függvénybe, nem feltétlen kell, hogy ismétlödjön.
Ajánlok egy heurisztikát:
Ha látsz egy pár soros kódot, aminek tudsz nevet adni, azt szervezd ki külön függvénybe.
"Ha látsz egy pár soros kódot, aminek tudsz nevet adni, azt szervezd ki külön függvénybe"
Szerintem itt ez a leghasznosabb tanács.
A leghasznosabb tanács úgy hangzik, hogy tanulja meg, micsoda az a függvény.
Nem névadó ünnepség ez, banyek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!