10 consigli per scrivere un codice più pulito e migliore

Scrivere codice pulito sembra più facile di quanto non sia in realtà, ma ne valgono la pena. Ecco come iniziare a scrivere codice più pulito oggi.

Scrivere codice pulito sembra più facile di quanto non sia in realtà, ma ne valgono la pena.  Ecco come iniziare a scrivere codice più pulito oggi.
Annuncio pubblicitario

Senza dubbio, la programmazione è dura Come imparare la programmazione senza tutti gli stress Come imparare la programmazione senza tutti gli stress Forse hai deciso di perseguire la programmazione, sia per una carriera o semplicemente per hobby. Grande! Ma forse stai iniziando a sentirti sopraffatto. Non così eccezionale. Ecco l'aiuto per facilitare il tuo viaggio. Leggi di più . Una cosa è imparare le lingue e studiare gli algoritmi, ma è tutta un'altra bestia che cerca di codificare un'applicazione complessa che non ti fa venir voglia di staccare gli occhi.

In un certo senso, scrivere codice pulito è molto simile a disegno, cucina o fotografia 5 Hobbies creativi che ti renderanno una persona più felice 5 Hobbies creativi che ti renderanno una persona più felice Un vero sbocco creativo può fare miracoli per la tua salute mentale e felicità. Ecco alcuni hobby creativi che hanno dimostrato di essere di aiuto in questo modo. Per saperne di più - sembra più facile di quello che è in realtà. Allora perché preoccuparsi? Bene, perché ne valgono i benefici:

  • I problemi diventano più facili da risolvere. Una volta che inizi a pensare in codice pulito, il tuo approccio alla modifica dei problemi. Invece delle soluzioni di forzatura bruta, i tuoi algoritmi e la progettazione del software diventano più eleganti e intenzionali.
  • Meno tempo è sprecato per la manutenzione. La pulizia del codice è più facile da leggere e comprendere, quindi dedicherai meno tempo a cercare di capire cosa fanno effettivamente determinati segmenti e più tempo a correggere, rivedere, estendere, ecc.
  • Le idee sono più chiaramente comunicate. Se stai lavorando con altri programmatori, il codice pulito riduce la probabilità di incomprensioni tra tutti voi, il che significa anche meno errori a lungo termine.

Ecco come puoi iniziare a scrivere codice pulito.

1. Usa nomi descrittivi

Quali sono le variabili, le classi e le funzioni? Ci sono molti modi per rispondere a questa domanda, ma quando ci pensi veramente, queste cose non sono altro che l'interfaccia tra un programmatore e la logica sottostante di un'applicazione.

Pertanto, quando si utilizzano nomi non chiari e non descrittivi per variabili, classi e funzioni, si sta sostanzialmente offuscando la logica dell'applicazione da qualsiasi programmatore che legge il codice, incluso te stesso.

"Non sono un grande programmatore; Sono solo un buon programmatore con grandi abitudini. "
- Kent Beck

Che cosa significa in realtà una variabile denominata dxy ? Chissà. Probabilmente dovresti leggere l'intero pezzo di codice per decodificarne il significato. D'altra parte, il significato di una variabile come distanceBetweenXY è immediatamente riconoscibile.

Lo stesso vale per le classi e le funzioni. Non accontentarti di CalcTan() quando invece puoi CalcTangentAngle() CalculateTangent() o CalcTangentAngle() .

2. Dare ad ogni classe / funzione uno scopo

Hai mai sbirciato all'interno di una funzione lunga centinaia o addirittura migliaia di righe? Se lo hai, allora sai quanto può essere doloroso sfogliare, capire e modificare. I commenti possono aiutare, ma solo in misura limitata.

"La programmazione sta rompendo un grosso compito impossibile in diversi piccoli compiti possibili".
- Jazzwant

Il codice pulito è suddiviso in blocchi atomici. Ogni funzione dovrebbe mirare a fare una cosa sola e ogni classe dovrebbe mirare a rappresentare un particolare concetto. Questa è ovviamente una semplificazione, ma in caso di dubbio, più semplice è più pulito.

In pratica, potrebbe essere necessario suddividere un calcolo complesso come GetCreditScore() in diverse funzioni di supporto come GetCreditReports(), ApplyCreditHistoryAge() e FilterOutstandingMarks() .

3. Elimina codice inutile

Questa cattiva abitudine è una cosa con cui continuo a lottare di tanto in tanto. Di solito succede in questo modo: voglio correggere o ottimizzare un pezzo di codice in modo da commentarlo e fare una riscrittura appena sotto di esso - e anche se funziona, tengo il vecchio codice lì per ogni evenienza.

"È possibile che il software non assomigli a nient'altro, che debba essere scartato: che il punto è sempre vederlo come una bolla di sapone?"
- Alan J. Perlis

Nel corso del tempo, accumulo un sacco di blocchi di codice commentati che non sono più necessari e che ingombrano i miei file sorgente. E la cosa divertente è che in molti casi, il codice circostante si è evoluto in modo che il codice commentato non funzionasse anche se ripristinato.

Il fatto è che questa pratica di commentare "codice di backup" è stata resa obsoleta dal controllo del codice sorgente. Se non si utilizza qualcosa come Git o Mercurial, è necessario iniziare subito a utilizzare il controllo del codice sorgente. Che cos'è Git e Perché si dovrebbe utilizzare il controllo della versione Se si è sviluppatori Cosa è Git e perché è necessario utilizzare il controllo della versione se si re uno sviluppatore Come sviluppatori web, molte volte tendiamo a lavorare su siti di sviluppo locali, quindi basta caricare tutto quando abbiamo finito. Questo va bene quando sei solo tu e le modifiche sono piccole, ... Per saperne di più. Il codice Cleaner ti aspetta.

4. Leggibilità> Intelligenza

Troppi programmatori confondono "codice pulito" con "codice intelligente", come se la compattazione di dieci righe in uno fosse in qualche modo più pulita. Certo, occupa meno spazio sullo schermo, ma è in realtà più facile da capire? A volte, forse. Ma la maggior parte delle volte? No.

"Tutti sanno che il debugging è due volte più difficile della scrittura di un programma. Quindi, se sei intelligente come puoi essere quando lo scrivi, come farai mai a debuggarlo? "
- Brian W. Kernighan

Penso che i programmatori amano il codice intelligente perché sembra un enigma o un enigma risolto. Hanno trovato un modo speciale e unico di implementare qualcosa - una "scorciatoia" se lo si desidera - e quasi si comporta come una convalida delle abilità del programmatore.

Ma per scrivere un codice pulito, devi lasciare il tuo ego alla porta.

Ottimizza sempre il codice per la prossima persona che lo leggerà, perché con ogni probabilità la prossima persona sarà davvero TU e non c'è niente di più vergognoso di non essere in grado di leggere o capire la tua intelligenza.

5. Mantenere uno stile di codifica coerente

Non ho nulla contro le buone esercitazioni di programmazione Che cosa rende un buon tutorial di programmazione? Cosa rende un buon tutorial di programmazione? Non tutte le esercitazioni di programmazione sono uguali. Alcuni ti aiutano e altri finiscono per perdere tempo. Ecco cosa cercare in un tutorial di programmazione di qualità. Per saperne di più, ma uno dei lati negativi è che i neofiti finiscono per cogliere una grande varietà di abitudini contrastanti, specialmente per quanto riguarda lo stile di codifica.

Non sono qui per dichiarare che uno stile è meglio di un altro. Se vuoi le parentesi sulle loro linee, provaci. Se vuoi precedere le chiamate di metodo con spazi, bene. Se preferisci le schede agli spazi, non permettermi di convincerti del contrario.

Ma qualunque cosa tu faccia, rimani coerente!

Bello è meglio che brutto.
L'esplicito è meglio che implicito.
Semplice è meglio che complesso.
Il complesso è meglio che complicato.
Flat è meglio di nidificato.
Sparse è meglio che denso.
Conta la leggibilità
- Tim Peters, The Zen di Python

Se utilizzerai camelCaseNaming per le variabili, non adulterarlo con underscore_naming . Se si utilizza GetThisObject() in un unico punto, non andare con FetchThatObject() da qualche altra parte. E se mischi tab e spazi, ti meriti di avere la tastiera portata via.

Decidi cosa farai fin dall'inizio e prosegui fino in fondo. Alcune lingue, come Python e C #, dispongono di guide di stile a livello di lingua che potresti voler seguire.

6. Scegli l'architettura giusta

Esistono diversi paradigmi e architetture che è possibile utilizzare per creare i propri progetti. Nota come questo suggerimento riguarda la scelta di quello giusto per le tue esigenze, non quello di selezionare quello migliore là fuori. Non c'è "il meglio" qui.

"Senza requisiti e design, la programmazione è l'arte di aggiungere bug a un file di testo vuoto."
- Louis Srygley

Ad esempio, lo schema Model-View-Controller (MVC) è molto popolare in questo momento nello sviluppo web perché aiuta a mantenere il codice organizzato e progettato in modo da ridurre al minimo gli interventi di manutenzione.

Allo stesso modo, il pattern Entity-Component-System (ECS) è molto popolare in questo momento nello sviluppo del gioco perché aiuta a modulare i dati di gioco e la logica in un modo che semplifica la manutenzione, producendo al contempo un codice che è più facile da leggere.

7. Padroneggia gli idiomi della lingua

Una delle difficoltà nel padroneggiare un nuovo linguaggio di programmazione 7 Trucchi utili per padroneggiare un nuovo linguaggio di programmazione 7 Trucchi utili per padroneggiare un nuovo linguaggio di programmazione Va bene essere sopraffatti quando si sta imparando a programmare. Probabilmente dimenticherai le cose così velocemente come le impari. Questi suggerimenti possono aiutarti a conservare meglio tutte le nuove informazioni. Leggi di più sta imparando le sfumature che lo separano da tutte le altre lingue. Queste sfumature possono essere la differenza tra il codice brutto e contorto e il codice bello e facile da gestire.

Prendi in considerazione Python, Java e JavaScript. Sono tutti estremamente diversi l'uno dall'altro, in una misura che richiede un modo diverso di pensare a seconda della lingua che si sceglie di utilizzare .

"Un linguaggio che non influisce sul modo in cui pensi di programmare non vale la pena di saperlo."
- Alan J. Perlis

Considerando che Python è tutto incentrato sul codice compatto e la digitazione anatra, Java è più vicino al lato della verbosità e dell'esplicità. Ogni linguaggio ha degli idiomi (come le list comprehensions in Python) che incoraggiano un certo modo di codificare. Faresti bene a impararli.

Ci sono anche "anti-schemi" di cui preoccuparsi, che sono essenzialmente modelli di progettazione non ottimali che si traducono in un codice inefficiente, inaffidabile o altrimenti cattivo. Studia e disimpara tutti i comuni anti-schemi relativi alla tua lingua preferita.

8. Studia il Codice dei Maestri

Se vuoi scrivere codice pulito, la cosa migliore che puoi fare è vedere che aspetto ha il codice pulito e cercare di capire perché è così com'è - e non c'è modo migliore di farlo se non studiando i file sorgente del settore maestri.

Ovviamente, non puoi semplicemente entrare nel quartier generale di Microsoft e sbirciare nei loro progetti, ma puoi sempre sfogliare progetti open source ben noti Come visualizzare e modificare il codice sorgente di un'app Open Source Come visualizzare e modificare il codice sorgente Di un'app open source Anche se l'open source potrebbe essere una buona scelta, dovrai anche investire nella comunità giusta. GitHub è uno dei posti migliori per farlo, non solo per l'enorme quantità ... Per saperne di più. Non so da dove cominciare? Prova i progetti in mostra su Github.

"Ogni pazzo può scrivere codice che un computer può capire. I bravi programmatori scrivono un codice che gli umani possano capire ".
- Martin Fowler, Refactoring: migliorare il design del codice esistente

Dopotutto, questo è uno dei motivi per cui esistono progetti open source Perché le persone contribuiscono a progetti open source? Perché le persone contribuiscono a progetti open source? Lo sviluppo open source è il futuro del software. È fantastico per gli utenti perché il software open source è di solito disponibile gratis e spesso più sicuro da usare. Ma cosa spinge gli sviluppatori a contribuire con il codice gratuitamente? Per saperne di più: così altri possono imparare da loro. E se decidi di contribuire a un progetto di questo tipo, può accelerare il processo di apprendimento 5 Idee del progetto per aiutarti ad imparare le idee del progetto più veloce 5 per aiutarti ad imparare la programmazione più velocemente Ci sono alcuni modi per facilitare la curva di apprendimento per la programmazione. Metti le mani sporche e impara più velocemente con i progetti collaterali che puoi iniziare in qualsiasi momento. Gioca con questi cinque. Leggi di più .

Personalmente, la prima volta che ho visto un codice veramente pulito è quando mi sono imbattuto in un progetto Python open source di un certo hobbista. Il codice era così elegante travolgente che ho quasi lasciato la programmazione, ma alla fine mi ha insegnato molto.

9. Scrivi buoni commenti

"Scrivi buoni commenti" è il più antico consiglio nel mondo della programmazione. Infatti, non appena i neofiti vengono introdotti ai commenti, sono praticamente incoraggiati a commentare il più spesso possibile.

Ma sembra quasi che siamo andati troppo oltre nella direzione opposta. I neofiti, in particolare, tendono a commentare eccessivamente - descrivendo cose che non hanno bisogno di essere descritte e perdendo il punto di ciò che effettivamente è un "buon commento".

"Codifica sempre come se il tizio che finisce per mantenere il tuo codice sarà uno psicopatico violento che sa dove vivi."
- John Woods

Ecco una buona regola empirica: i commenti esistono per spiegare PERCHÉ esiste un pezzo di codice piuttosto che COSA il codice effettivamente fa. Se il codice è scritto in modo abbastanza pulito, dovrebbe essere auto-esplicativo su ciò che fa - il commento dovrebbe far luce sull'intenzione dietro al perché è stato scritto.

I commenti possono essere utili per gli avvertimenti (ad esempio "rimuovendo ciò si interromperanno A, B e C") ma per la maggior parte dovrebbero scoprire cose che non possono essere immediatamente dedotte dal codice (cioè "usa questo parametro perché X, Y, e Z ").

10. Refactor, Refactor, Refactor

Proprio come il montaggio fa parte del processo di scrittura, il refactoring è parte del processo di codifica. L'avversione al refactoring è il modo più veloce per finire con il codice non gestibile, quindi in molti modi questo è in realtà il consiglio più importante da considerare.

In breve, il refactoring è solo un termine di fantasia per ripulire il codice senza influire sul suo comportamento reale.

"Ogni volta che devo pensare a capire cosa sta facendo il codice, mi chiedo se posso rifattorizzare il codice per rendere questa comprensione più immediatamente evidente."
- Martin Fowler, Refactoring: migliorare il design del codice esistente

Un po 'di saggezza che è rimasta impressa a me è il detto: "Non commentare il brutto codice. Riscrivialo. "Come spiega Fowler nella citazione di cui sopra, se il codice sembra mai abbastanza confuso da doverlo commentare, forse è effettivamente necessario rifattorizzarlo.

Inoltre, mentre modifichi parti di codice qua e là nel tuo progetto, lascia sempre il codice in uno stato migliore rispetto a quando lo hai trovato per la prima volta . Potrebbe sembrare una seccatura in questo momento, ma a lungo andare ripagherà (e può persino allontanare il burnout della mente. Programmazione del burnout: come ritrovare la tua motivazione perduta Programmazione del burnout: come riguadagnare la tua motivazione persa Scrivere tutte quelle righe di il codice può essere drenato fisicamente ed emotivamente, tutto ciò che serve per tornare indietro è la consapevolezza che la motivazione può essere riguadagnata.

C'è sempre qualcosa di nuovo da imparare

Un programmatore che sta imparando a scrivere codice pulito è simile a un romanziere che impara a scrivere una prosa pulita: non c'è un modo giusto per farlo di per sé, ma ci sono molti modi sbagliati per farlo, e ci vorranno anni da padroneggiare.

Alcune persone non hanno quello che serve e alla fine finiscono per smettere di programmare per bene 6 Segni che non sei destinato a essere un programmatore 6 Segni che non sei destinato a essere un programmatore Non tutti sono tagliati per essere un programmatore. Se non sei completamente sicuro di essere un programmatore, ecco alcuni segnali che potrebbero indirizzarti nella giusta direzione. Per saperne di più - e va bene, perché ci sono un sacco di altri lavori tecnologici che non comportano la codifica Coding non è per tutti: 7 posti di lavoro Tech è possibile ottenere senza Coding non è per tutti: 7 posti di lavoro Tech è possibile ottenere senza di esso Non scoraggiarti se vuoi far parte del settore tecnologico - ci sono molti posti di lavoro per le persone che non sanno come programmare! Leggi di più .

Ma per tutti gli altri, il codice pulito è qualcosa a cui vale assolutamente la pena sforzarsi, anche se ci vuole il resto della vita per arrivarci.

Quanto è importante il codice pulito? Quali regole segui per mantenere il tuo codice pulito e organizzato? Hai qualche altro pezzo di saggezza da condividere? Fateci sapere nei commenti qui sotto!

In this article