5 kezdő programozási hiba, amit jobb elkerülni
Főállásban programozni nem tartozik a világ legkönnyebb dolgai közé, így nem csoda, ha karrierünk elején sok hibát követünk el. Ez a lista segít kikerülni néhány nagyon gyakori, főleg kezdőkre jellemző problémát, és ki tudja, talán még néhány tapasztaltabb róka is hasznosnak találhatja.
1. Rendetlen kódformázás
Ez manapság tényleg csak az igazán tapasztalatlan fejlesztőkre jellemző, de mégis érdemes megemlíteni. A rendetlen formázás alatt olyan dolgokat értünk, mint a behúzások helytelen használata, az inkonzisztens soremelések, vagy a felesleges whitespace. Rosszabb esetben előfordul a kikommentelt kód is ("hátha mégis kell még" alapon), ez a verziókezelő rendszerek világában teljesen indokolatlan és zavaró.
A kód formázására nyelvtől függően rengeteg konvenció létezik, a lényeg, hogy következetesen használjunk egyet a teljes kódbázisban, és természetesen kezdőként ügyeljünk arra, hogy a saját módszerünk megfeleljen az adott projekt által támasztott formai követelményeknek.
2. Túl sok komment
Annyi helyről halljuk, hogy a kód kommentálása mennyire fontos, hogy az néha — főleg kezdők esetében — már-már káros. Kommentelni valóban fontos, de elsősorban érdemes inkább arra koncentrálni, hogy öndokumentáló kódot írjunk. Talán a legjobb iránytű a következő: ne azt dokumentáljuk kommentek segítségével, hogy mit csinál a kódunk, hanem azt, hogy miért.
A sok mit csinál? kérdést megválaszoló komment két szempontból is aggályos. Először is rámutat, hogy a kód, amit írtunk, nem eléggé olvasható és világos ahhoz, hogy kommentek nélkül mindenki számára érthető legyen, másodsorban pedig a jóldokumentáltság illúzióját adja, miközben szinte pont az ellenkezője igaz.
3. Rossz változó-, és metódusnevek
Dolgokat elnevezni egyáltalán nem könnyű, de érdemes energiát fektetni bele, ha azt akarjuk, hogy az általunk írt forráskód követhető és világos legyen. Néha talán viccesnek tűnnek a — főleg Java fejlesztőknél feltűnő — AbstractSingletonProxyFactoryBean
típusú elnevezések, azoban a leíró jellegű változónevek többször hasznosak, mint nem. Hasonló a helyzet a rutinok, metódusok nevével is, ezeknek is egyértelműen utalniuk kell arra, hogy mit csinál az adott kódrészlet. Valószínűleg mindannyian találkoztunk már a DoIt()
, PerformService()
és ehhez hasonló semmitmondó metódusnevekkel, ezeket inkább próbáljuk meg elkerülni.
Fontos szabály még, hogy az azonos dolgokat ugyanúgy nevezzük el mindenhol. Ez egyértelműnek tűnhet, mégis gyakran látni, hogy például két azonos művelet hol az Add, hol az Insert nevet viseli. Ha tényleg ugyanazt csinálják, nevezzük őket ugyanúgy, hogy elkerüljük a félreértéseket.
4. A nyelv vagy a környezet felszínes ismerete
Persze ezért nehéz hibáztatni egy kezdőt, de mégis nagyon fontos, hogy alaposan ismerjük a programozási nyelvet, környezetet, amellyel dolgozunk! (Vagy legalább tudjuk, hol találjuk a teljes dokumentációt és könnyen eligazodjunk benne.)
Ez főleg azért fontos, mert a kezdők sokszor hajlamosak feleslegesen implementálni bizonyos dolgokat azért, mert nem tudják, hogy azokat "készen kapják" az adott nyelvtől vagy frameworktől. Ez egyrészt szükségtelen pluszmunka, másrészt pedig szinte biztos, hogy ez az új implementáció rosszabb, mint a "gyári".
5. Túlbonyolítás
A (jó) kezdők általában erős elméleti alapokkal rendelkeznek, és az első munkahelyükön alig várják, hogy ezt a tudást végre a gyakorlatban is kamatoztassák. Ez természetesen dícséretes, de sokszor bizonyos problémák öncélú túlbonyolításához vezet.
A legtipikusabb példa a tervezési minták felesleges használata. A nemrég végzett fejlesztők sokszor a legtöbb fő design patternt fejből ismerik, és olyan helyeken is alkalmazzák őket, ahol az indokolatlan, csak azért, hogy megmutassák tudásukat. Ne féljünk attól, hogy amatőrnek tűnünk, ha egy "túl egyszerű" megoldást használunk! Az egyszerűség a programozásban általában pozitív dolog.
Hasonló az eset az algoritmusokkal is — kis bemenetekre sokszor az érthetőség kedvéért jobb egy "lassabb" algoritmust alkalmazni, mint egy hatékonyabb, de sokkal nehezebben érthető módszert használni.
Ez persze csak néhány a gyakran előforduló hibák közül, a lista közel sem teljes. Ti milyen tipikus, kezdők által elkövetett hibákkal találkoztatok ezeken kívül?