"Scrivi sempre codice come se la persona che dovrà mantenerlo fosse un violento psicopatico che sa dove abiti." — Robert C. Martin (Uncle Bob)
::: info
Clean Code non significa codice "perfetto", ma codice leggibile, testabile e manutenibile. Un codice è pulito quando sembra scritto da qualcuno a cui importa del proprio lavoro e dei colleghi.
:::
Variabili, funzioni e classi devono rivelare l'intento. Se hai bisogno di un commento per spiegare cosa fa una variabile, il nome è sbagliato.
d = 86400 # seconds in a daySECONDS_IN_A_DAY = 86400def get_vals(lst): ...def filter_active_users(users: List[User]) -> List[User]: ...Una funzione deve fare una sola cosa e farla bene. Se una funzione ha più di 20 righe, probabilmente sta facendo troppo.
❌ Codice Sporco (Fa troppe cose):
def process_data(data):
# Validation
if not data:
return False
# Formatting
formatted = data.strip().lower()
# Saving
with open("log.txt", "a") as f:
f.write(formatted)
return True
✅ Clean Code (Responsabilità separate):
def is_valid(data: str) -> bool:
return bool(data and data.strip())
def format_entry(data: str) -> str:
return data.strip().lower()
def save_to_log(entry: str, filename: str = "log.txt") -> None:
with open(filename, "a") as f:
f.write(entry)
# Orchestration is now clear
def process_data_clean(data: str) -> bool:
if not is_valid(data):
return False
entry = format_entry(data)
save_to_log(entry)
return True
Questi 5 principi sono le fondamenta della programmazione orientata agli oggetti moderna:
Il codice dovrebbe spiegare cosa sta facendo. I commenti servono solo a spiegare perché è stata presa una decisione non ovvia o complessa.
// ❌ Bad: Spiega l'ovvio
i++; // increment i
// ✅ Good: Spiega un vincolo tecnico o di business
// We use a 10ms delay here to allow the hardware sensor to stabilize
// after the power-on sequence.
std::this_thread::sleep_for(std::chrono::milliseconds(10));
Il codice pulito è intrinsecamente facile da testare. Se non riesci a scrivere uno Unit Test per una funzione, significa che la funzione è troppo accoppiata o troppo complessa.
Non diventare un fanatico del Clean Code a scapito delle performance o delle scadenze.
Ultimo aggiornamento: {{UPDATE_DATE}} | Tags: #CleanCode #SOLID #BestPractices #Refactoring