Scris pe

Cartea care ar trebui citita de fiecare programator

Cel mai important skill pe care un programator ar trebui sa il aiba este acela de a scrie cod pe care orice al programator il poate citi usor. Adevarul e insa mult mai rau: doar 20% din programatori fac asta. Si eu inca am muuult de lucrat aici, dar sunt pe traiectoria buna (zic eu).

“Orice om poate sa scrie cod pe care un calculator il intelege. Programatorii buni scriu cod pe care il inteleg oamenii” – Martin Fowler

Cand am inceput sa ma interesez despre codul curat si citibil, mi-am dat seama ca proiectele incep sa fie

  • mai usoare de intretinut
  • mai usoare de facut refactoring
  • refolosibile
  • consistente

Cartea

Cartea lui Robert Martin numita “Clean Code: A Handbook of Agile Software Craftsmanship” este cartea care trebuie citita de orice programator care vrea sa scrie cod curat. Cartea vorbeste despre cod, comportamente, teste automate si asa mai departe.

Sa va dau un exemplu practic

Unul din capitolele din carte vorbeste despre numirea lucrurilor in cod in mod corect. In povestea aceasta, tu vei fi cel care citeste codul. Hai sa ne uitam la o functie:

<?php
function calc($n1, $n2) {
    return $n1 / $n2;
}

Crezi ca numele calc este ales bine pentru functia asta? Cartea te-ar invata ca nu, nu este un nume bun. De ce?

  • Calc este o prescurtare: nu folosi prescurtari!
  • Functiile fac ceva. Trebuie sa fie numite cu un verb.
  • Chiar daca as redenumi functia din “calc” sa fie “calculate”, tot ar fi destul de vaga. Trebuie sa imbunatatim semantic functia si sa ii dam mai mult sens.

Functia imparte (divide) doua numere. Deci “divide” este un nume bun de exemplu.

<?php
function divide($n1, $n2) {
    return $n1 / $n2;
}

$rezultat = divide(1,2);

Inca avem probleme cu functia. “n1” si “n2”, parametrii functiei, nu sunt semantici. Cum ar fi sa ii numim dividend si divizor? De asemenea, hai sa redenumim variabila “result” in altceva, cum ar fi “cat” (in engleza se numeste quotient).

<?php
function divide($dividend, $divisior) {
    return $dividend / $divisior;
}

$quotient = divide(1,2);

Functia este acum mult mai semantica.

Daca inca nu te-am convins sa citesti cartea, arunca o privire la imaginea de mai jos, apoi cumpara de aici cartea (exista si versiune digitala).

Articol tradus si adaptat de aici.

1 comentarii la acest articol

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2024 toate drepturile
nu sunt
rezervate. Faceti ce vreti, e o tara libera.
Cred ca nu mai are rost sa zic, dar tema e facuta de mine cu TailwindCSS. Gasesti codul sursa aici.
Inca folosesc WordpPess 🧡. Tema e insa custom Laravel 😎.