Predstav si, že sa po mesiacoch alebo rokoch vraciaš k svojmu starému projektu. Otvoríš kód, srdce ti poskočí nostalgiou, ale… čo dočerta znamená táto premenná x1y2z? Kto napísal túto 300-riadkovú funkciu? A prečo tam nikde nie je žiadny komentár?! A potom si spomenieš – bol si to ty.
Prečo písať čistý kód?
Lebo 90% času programátor kód číta a nie píše. Čistý kód nie je len o tom, aby vyzeral pekne. Je to investícia do tvojej budúcnosti a do budúcnosti celého tímu. Ak chceš, aby tvoj projekt prežil viac než jedno sprintové demo a nebol prekliaty každým, kto na ňom bude robiť po tebe, čítaj ďalej.
1. Používaj názvy, ktoré dávajú zmysel
Čo myslíš, ktorá verzia je lepšia?
❌ Neodporúčam:
function cx(d) {
return d[0];
}
✔ Odporúčam:
function getFirstElement(data) {
return data[0];
}
Pomenovanie typu cx možno ušetrí pár stlačení klávesy, ale spôsobí milióny stratených neurónov každému, kto sa na to pozrie. Vrátane teba, o tri mesiace. Krátke pomenovania funkcií a premenných nedávajú zmysel aj preto, lebo napríklad v JavaScripte sa pri builde používa minifier, ktorý názvy skracuje za nás, čím sa šetrí miesto.
2. Píš funkcie, ktoré robia jednu vec a robia ju dobre
Ak má tvoja funkcia viac zodpovedností než priemerný full-stack vývojár, niečo nie je v poriadku.
❌ Neodporúčam:
function processUserData(user) {
validateUser(user);
cleanUserData(user);
saveUserToDb(user);
sendWelcomeEmail(user);
}
✔ Odporúčam:
function validateUser(user) { /* ... */ }
function cleanUserData(user) { /* ... */ }
function saveUserToDb(user) { /* ... */ }
function sendWelcomeEmail(user) { /* ... */ }
Menšie, samostatné funkcie uľahčujú prácu – môžeš ich ľahko kombinovať, meniť a jednotlivo testovať.
3. DRY – Duplicitný kód je nepriateľ
Ak kopíruješ ten istý kód na viaceré miesta, pridávaš si do života bolestivú budúcnosť. Odporúčam dodržiavať princíp DRY (Don’t Repeat Yourself).
❌ Neodporúčam:
function getAdminEmail(admin) {
return admin.email;
}
function getUserEmail(user) {
return user.email;
}
✔ Odporúčam:
function getEmail(entity) {
return entity.email;
}
Raz upravíš a funguje všade. Geniálne!
4. Komentáre píš len vtedy, keď sú naozaj potrebné
Najlepší komentár je ten, ktorý nemusíš písať, pretože kód hovorí sám za seba.
❌ Neodporúčam:
// Táto premenná počíta počet iterácií v cykle
let i = 0;
✔ Odporúčam:
// Počítadlo na sledovanie pokusov o pripojenie k serveru,
// aby sme zabránili nekonečnej slučke v prípade opakovaných zlyhaní spojenia.
let iterationCount = 0;
Ale ak už komentuješ, radšej vysvetli prečo niečo robíš, nie čo robíš.
5. Formátovanie kódu zlepšuje čitateľnosť
Dobre naformátovaný kód zlepšuje čitateľnosť a urýchľuje prácu.
❌ Neodporúčam:
function foo ( x,y ) {
return x+y;
}
✔ Odporúčam:
function foo(x, y) {
return x + y;
}
Používaj lintovanie a automatické formátovanie. Zaberie to 5 minút, ale ušetrí hodiny nervov.
6. Ošetruj si chyby
Nikdy nepredpokladaj, že všetko bude fungovať bezchybne. Preto máme try-catch.
❌ Neodporúčam:
function readFile(filePath) {
let file = open(filePath, 'r');
let content = file.read();
file.close();
return content;
}
✔ Odporúčam:
function readFile(filePath) {
try {
return fs.readFileSync(filePath, 'utf-8');
} catch (error) {
console.error('Chyba pri čítaní súboru:', error);
return null;
}
}
Nechceš predsa, aby tvoja aplikácia spadla len preto, že niekto omylom zmazal súbor, však?
7. Testy nie sú zbytočné – pomáhajú ti
Bez testov je tvoj kód ako padák, ktorý si si zabudol skontrolovať pred zoskokom.
✔ Odporúčam:
function add(a, b) {
return a + b;
}
function testAdd() {
console.assert(add(2, 3) === 5, 'Test zlyhal');
console.assert(add(-1, 1) === 0, 'Test zlyhal');
}
testAdd();
Ak niečo nefunguje, chceš to zistiť skôr, než to zistí tvoj šéf alebo zákazník.
8. Menej závislostí = menej problémov
Prílišná závislosť na externých knižniciach sa môže vypomstiť. Skvelým príkladom je incident s left-pad npm. V roku 2016 vývojár odstránil malý balík left-pad z npm, čo spôsobilo pád tisícov projektov na celom internete. Táto udalosť ukázala, aké rizikové môže byť spoliehať sa na externé balíky pre jednoduché operácie. Viac si o tom môžeš prečítať tu.
❌ Neodporúčam:
import _ from 'lodash';
function calculateSum(data) {
return _.sum(data);
}
✔ Odporúčam:
function calculateSum(data) {
return data.reduce((acc, num) => acc + num, 0);
}
Používaj externé knižnice rozumne – iba keď sú naozaj potrebné.
9. Refaktorovanie je nevyhnutné
Refaktoruj priebežne – inak ti bude tvoj starý kód čoskoro pripadať ako totálny bordel.
✔ Odporúčam:
// Pôvodný kód
function calculateDiscount(price, discount) {
let discountedPrice = price - (price * discount / 100);
return discountedPrice;
}
// Refaktorovaný kód
function calculateDiscount(price, discount) {
return price * (1 - discount / 100);
}
Jednoduchšie, čistejšie, lepšie.
Záver: Programátori, ktorí píšu čistý kód, majú ľahší život
Čistý kód nie je len o tom, aby vyzeral pekne – je to o tom, aby bol pochopiteľný, udržiavateľný a efektívny. V bart-e vieme, že dobrý kód šetrí čas, nervy aj peniaze. A ak máš rád poriadok v kóde tak ako my, možno by si sa u nás cítil ako doma. 😉