10 consigli per scrivere un codice più pulito e migliore
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 solo come un 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 distogliere 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 il design 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 alcuni segmenti e più tempo a correggere, revisionare, 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.
Quindi, quando si usano nomi non chiari e non descrittivi per variabili, classi e funzioni, stai 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
Cosa fa una variabile chiamata DXY
in realtà significa? 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 CalcTan ()
quando puoi andare CalculateTangent ()
o CalcTangentAngle ()
anziché.
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, un calcolo complesso come GetCreditScore ()
potrebbe essere necessario essere suddiviso 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, quindi commentarlo e fare una riscrittura appena sotto di esso - e anche se funziona, tengo il vecchio codice lì nel caso in cui.
“È possibile che il software non assomigli a nient'altro, che sia destinato a essere scartato: che il punto è vederlo sempre 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 è, questa pratica di commentare “codice di backup” è stato reso obsoleto 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 si confondono “codice pulito” con “codice intelligente”, come se compattare dieci linee in una fosse in qualche modo più pulito. 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 per implementare qualcosa - a “scorciatoia” se vuoi - e quasi fa da conferma alle capacità 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à in realtà TE e non c'è niente di più vergognoso di non riuscire a 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, Lo Zen di Python
Se hai intenzione di usare camelCaseNaming
per variabili, non adulterarlo con underscore_naming
. Se usi GetThisObject ()
in un posto, non andare con FetchThatObject ()
altrove. 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 selezione del destra uno per le tue esigenze, non per la selezione del migliore uno là fuori. Non c'è “migliore” 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 sforzi 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, il tutto mentre si produce 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, ad un livello che richiede un un modo diverso di pensare a seconda della lingua che scegli di usare.
“Una lingua che non influisce sul modo in cui si pensa alla programmazione non vale la pena conoscere.”
- 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-pattern” 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.
“Qualsiasi pazzo può scrivere il codice che un computer può capire. I buoni programmatori scrivono il codice che gli umani possono capire.”
- Martin Fowler, Refactoring: migliorare la progettazione 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 di progetto più veloci 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 “buon commento” in realtà lo è.
“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 motivo per cui è stato scritto.
I commenti possono essere utili per gli avvisi (ad es. “rimuovendo questo si interromperà A, B e C”) ma per la maggior parte dovrebbe scoprire cose che non possono essere immediatamente dedotte dal codice (ad es. “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. Un'avversione al refactoring è il modo più rapido 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 la progettazione del codice esistente
Un po 'di saggezza che mi è rimasta impressa è il detto, “Non commentare codice cattivo. Riscrivilo.” Come spiega Fowler nella citazione di cui sopra, se il codice sembra mai abbastanza confuso da doverlo commentare, forse è necessario ridefinirlo.
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. Può sembrare una seccatura in questo momento, ma a lungo andare si ripaga (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 quello che devi recuperare è 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!
Scopri di più su: Programmazione.