Clean code

Cod curat, ușor de citit și de înțeles de către oricine. Mai mult, ușor de modificat de altcineva.

Reguli

Denumire

  • Numele de clasă - CamelCase
  • Numele de metodă - lowercase, eventual _
  • Numele de variabilă - lowercase, eventual _

  • Numele din substantive
  • Descriere succintă a responsabilității
  • Fără abrevieri
  • Variabilele bool sunt întrebări: is_valid

Spații

  • 1 rând între metode
  • 2 rânduri între clase
  • Spațiu după virgulă
  • Spațiu înainte și după operatori (excepție la kwargs)

Operatori

  • Evitați comparațiile cu True sau False
  • Nu comparați direct cu string-uri: folosiți constante
  • Identificați constantele
  • Când condițiile sunt mari, se impun pași intermediari

Funcții

  • Maxim 3 niveluri de adâncime
  • Ieșire cât mai rapidă
  • Variabilele declarate unde sunt folosite
  • Nu mai mult de 20 de linii de cod

Principii

DRY

  • Don’t Repeat Yourself
  • Codul copy paste este dificil în mentenanță și ilizibil.

KISS

  • Keep It Simple and Stupid
  • Orice unitate atomică de cod trebuie să fie ușor de înțeles de către oricine.

YAGNI

  • You Ain’t Gonna Need It
  • Codul neutilizat îngreunează mentenanța unei aplicații.
  • Codul neutilizat devine inutilizabil odată cu dezvoltarea aplicației.

SOLID

  • Single Responsability Principle: O secvență de cod trebuie să îndeplinească un singur scop.

  • Open Closed Principle: Clasele trebuie să fie deschise pentru extensii și închise pentru modificări.

  • Liskov Substitution Principle: Codul rămâne funcțional dacă un obiect este înlocuit de un alt obiect derivat din primul.

  • Interface Segregation: Mai multe interfețe moștenite sunt întotdeauna preferate unei singure interfețe generale.

  • Dependency Inversion: O clasă trebuie să depindă de abstractizări, niciodată de obiecte concrete.

Mai multe detalii..