Annuncio pubblicitario

Senza dubbio, la programmazione è dura. È una cosa imparare le lingue e studiare algoritmi, ma è tutta un'altra bestia che cerca di codificare un'applicazione complessa che non ti fa venire voglia di distogliere lo sguardo.

In un certo senso, scrivere codice pulito è molto simile al disegno, alla cucina o alla fotografia: sembra più facile di quanto non sia in realtà. Allora perché preoccuparsi? Bene, perché i vantaggi ne valgono la pena:

  • I problemi diventano più facili da risolvere. Una volta che inizi a pensare in un codice pulito, il tuo approccio alla risoluzione dei problemi cambia. Invece di soluzioni di forzatura brutale, i tuoi algoritmi e la progettazione del software diventano più eleganti e intenzionali.
  • Meno tempo è sprecato in manutenzione. Il codice pulito è più facile da leggere e comprendere, quindi dedichi meno tempo a cercare di capire cosa fanno effettivamente determinati segmenti e più tempo a riparare, revisionare, estendere, ecc.
  • Le idee vengono comunicate più chiaramente.
    instagram viewer
    Se lavori con altri programmatori, il codice pulito riduce la probabilità di incomprensioni tra tutti voi, il che significa anche meno bug a lungo termine.

Ecco come puoi iniziare a scrivere codice pulito.

1. Usa nomi descrittivi

Cosa sono variabili, classi e funzioni? Ci sono molti modi per rispondere, ma quando ci pensi davvero, quelle 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, stai essenzialmente 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 significa una variabile denominata DXY intendi davvero? Chissà. Probabilmente dovresti leggere l'intero pezzo di codice per decodificarne il significato. D'altra parte, il significato di una variabile piace distanceBetweenXY è immediatamente riconoscibile.

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

2. Dai a ogni classe / funzione uno scopo

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

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

Il codice pulito viene suddiviso in blocchi atomici. Ogni funzione dovrebbe mirare a fare una sola cosa e ogni classe dovrebbe mirare a rappresentare un concetto particolare. 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 il codice non necessario

Questa cattiva abitudine è una di quelle con cui ancora faccio fatica di tanto in tanto. Di solito succede in questo modo: voglio correggere o ottimizzare un pezzo di codice, quindi lo commento e faccio una riscrittura proprio sotto di esso - e anche se funziona, mantengo lì il vecchio codice per ogni evenienza.

"È possibile che il software non sia come qualsiasi altra cosa, che debba essere scartato: che il punto centrale è vederlo sempre come una bolla di sapone?"
- Alan J. Perlis

Nel tempo, accumulo un sacco di blocchi di codice commentati che non sono più necessari ma ingombrano i miei file di origine. 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 il "codice di backup" è stata resa obsoleta dal controllo del codice sorgente. Se non stai usando qualcosa come Git o Mercurial, devi farlo inizia subito a utilizzare il controllo del codice sorgente. Codice più pulito ti aspetta.

Ricorda, è anche importante evitare di scrivere codice ripetitivo, che puoi realizzare facilmente con un framework web. Eccone alcuni framework web che vale la pena imparare come sviluppatore 5 framework Web che vale la pena imparare per gli sviluppatoriInteressato all'apprendimento dello sviluppo web avanzato? Evita invece di scrivere codice ripetitivo, usa questi framework di sviluppo web. Leggi di più .

4. Leggibilità> Intelligenza

Troppi programmatori confondono il "codice pulito" con il "codice intelligente", come se compattare dieci linee in una sia in qualche modo più pulito. Certo, occupa meno spazio sullo schermo, ma in realtà è più facile da capire? A volte, forse. Ma il più delle volte? No.

"Tutti sanno che il debug è due volte più difficile della scrittura di un programma in primo luogo. Quindi se sei intelligente quanto puoi esserlo quando lo scrivi, come eseguirai mai il debug? "
- Brian W. Kernighan

Penso che i programmatori adorino il codice intelligente perché sembra un enigma o un enigma risolto. Hanno trovato un modo speciale e unico per implementare qualcosa - una "scorciatoia" se vuoi - e quasi funge da convalida delle abilità del programmatore.

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

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

5. Mantieni uno stile di codifica coerente

io ho niente contro buoni tutorial di programmazione Cosa rende un buon tutorial di programmazione?Non tutti i tutorial di programmazione sono uguali. Alcuni avvantaggiano te e altri finiscono per perdere tempo. Ecco cosa cercare in un tutorial di programmazione di qualità. Leggi di più , ma uno degli aspetti negativi è che i neofiti finiscono per raccogliere una vasta gamma di abitudini contrastanti, specialmente per quanto riguarda lo stile di programmazione.

Non sono qui per dichiarare che uno stile è migliore di un altro. Se vuoi delle parentesi graffe sulla loro linea, provaci. Se vuoi precedere le chiamate di metodo con spazi, va bene. Se preferisci le schede agli spazi, non lasciarmi convincere altrimenti.

Ma qualunque cosa tu faccia, rimani coerente!

Bello è meglio che brutto.
Esplicito è meglio che implicito.
Semplice è meglio di complesso.
Complesso è meglio che complicato.
Flat è meglio di nidificato.
Sparse è meglio che denso.
La leggibilità conta.
- Tim Peters, Lo Zen di Python

Se hai intenzione di usare camelCaseNaming per le variabili, non adulterarlo con underscore_naming. Se usi GetThisObject () in un posto, non andare con FetchThatObject () altrove. E se mescoli schede e spazi, ti meriti di togliere la tastiera.

Decidi cosa farai fin dall'inizio e prosegui fino in fondo. Alcuni linguaggi, come Python e C #, hanno guide di stile in tutto il linguaggio che potresti voler seguire.

6. Scegli la giusta architettura

Esistono molti paradigmi e architetture differenti che puoi utilizzare per creare i tuoi progetti. Nota come questo suggerimento riguarda la selezione di destra uno per le tue esigenze, non per selezionare il migliore uno là fuori. Non esiste un "migliore" qui.

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

Ad esempio, il modello 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 modello 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 producendo codice più semplice leggere.

7. Padroneggia gli idiomi della lingua

Una delle difficoltà in padroneggiare un nuovo linguaggio di programmazione 7 trucchi utili per padroneggiare un nuovo linguaggio di programmazioneVa bene essere sopraffatto quando stai imparando a programmare. Probabilmente dimenticherai le cose velocemente come le impari. Questi suggerimenti possono aiutarti a conservare meglio tutte queste nuove informazioni. Leggi di più sta imparando le sfumature che lo separano da tutte le altre lingue. Queste sfumature possono fare la differenza tra codice brutto e contorto e codice bello e di facile manutenzione.

Considera Python, Java e JavaScript. Sono tutti estremamente diversi tra loro, in una misura che richiede a diverso modo di pensare a seconda della lingua che scegli di usare.

"Non vale la pena conoscere un linguaggio che non influisce sul modo in cui pensi alla programmazione."
- Alan J. Perlis

Mentre Python è tutto incentrato sul codice compatto e sulla tipizzazione anatra, Java è più dalla parte della verbosità e della esplicitazione. Ogni lingua ha modi di dire (come la comprensione delle liste in Python) che incoraggiano un certo modo di scrivere codice. Faresti bene a impararli.

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

8. Studia il Codice dei Maestri

Se vuoi scrivere codice pulito, la cosa migliore che puoi fare è vedere come appare il codice pulito e provare capire perché è così - e non c'è modo migliore per farlo se non studiare i file sorgente di maestri del settore.

Ovviamente, non puoi semplicemente entrare nella sede di Microsoft e sbirciare i loro progetti, ma puoi sempre sfoglia i noti progetti open source Come visualizzare e modificare il codice sorgente di un'app open sourceMentre andare all'open source potrebbe essere una buona scelta, dovrai anche investire nella comunità giusta. GitHub è uno dei posti migliori per farlo, non solo per la mera quantità ... Leggi di più . Non sai da dove iniziare? Prova il ha presentato progetti su Github.

“Ogni pazzo può scrivere codice comprensibile a un computer. I bravi programmatori scrivono codice che gli umani possono capire. "
- Martin Fowler, Refactoring: migliorare la progettazione del codice esistente

Dopotutto, questo è uno dei motivi perché esistono progetti open source Perché le persone contribuiscono ai progetti open source?Lo sviluppo open source è il futuro del software. È ottimo per gli utenti perché il software open source è solitamente disponibile gratuitamente e spesso è più sicuro da usare. Ma cosa obbliga gli sviluppatori a fornire codice gratuitamente? Leggi di più : così gli altri possono imparare da loro. E se decidi di contribuire a tale progetto, può accelerare il processo di apprendimento 5 idee di progetto per aiutarti a imparare a programmare più velocementeEsistono alcuni modi per facilitare la curva di apprendimento per la programmazione. Sporcati le mani 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 nel progetto Python open source di un certo hobbista. Il codice era così travolgente ed elegante che quasi smisi di programmare, ma alla fine mi insegnò molto.

9. Scrivi buoni commenti

"Scrivi buoni commenti" è il consiglio più antico del mondo della programmazione. In effetti, non appena i novizi vengono introdotti ai commenti, sono quasi incoraggiati a commentare il più spesso possibile.

Ma sembra quasi che abbiamo oscillato troppo nella direzione opposta. I neofiti, in particolare, tendono a commentare troppo - descrivendo cose che non hanno bisogno di essere descritte e mancano il punto di cosa sia in realtà un "buon commento".

"Codice sempre come se il ragazzo che finisse per mantenere il tuo codice fosse uno psicopatico violento che sa dove vivi."
- John Woods

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

I commenti possono essere utili per gli avvisi (vale a dire "la rimozione di questo interromperà A, B e C") ma per la maggior parte dovrebbe scoprire cose che non possono essere immediatamente raccolte dal codice (ovvero "usa questo parametro perché X, Y e Z”).

10. Refactor, Refactor, Refactor

Proprio come la modifica fa parte del processo di scrittura, il refactoring fa parte del processo di codifica. Un'avversione al refactoring è il modo più rapido per finire con un codice non mantenibile, quindi per molti versi questo è in realtà il consiglio più importante da considerare.

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

"Ogni volta che devo pensare di capire cosa sta facendo il codice, mi chiedo se posso riformattare 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 il codice errato. Riscriverlo. " Come spiega Fowler nella citazione sopra, se il codice sembra mai abbastanza confuso da doverlo commentare, forse devi effettivamente riformattarlo.

Inoltre, mentre modifichi bit di codice qua e là in tutto il tuo progetto, lascia sempre il codice in uno stato migliore rispetto a quando l'hai trovato per la prima volta. Potrebbe sembrare un fastidio al momento, ma pagherà a lungo termine (e può persino evitare il burnout mentale Programmazione del burnout: come riguadagnare la motivazione perdutaScrivere tutte quelle righe di codice può essere drenante fisicamente ed emotivamente. Tutto ciò di cui hai bisogno per tornare indietro è la consapevolezza che la motivazione può essere recuperata. Leggi di più ).

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 per maestro.

Alcune persone non hanno ciò che serve e alla fine si arresta definitivamente alla programmazione 6 segni che non intendi essere un programmatoreNon tutti sono fatti per essere programmatori. Se non sei del tutto sicuro di essere programmatore, ecco alcuni segnali che potrebbero indirizzarti nella giusta direzione. Leggi di più - e va bene perché ce ne sono molti altri lavori tecnici che non prevedono la codifica La programmazione non è per tutti: 9 lavori tecnici che puoi ottenere senza di essaNon scoraggiarti se vuoi far parte del campo tecnologico. Ci sono molti lavori per le persone senza capacità di programmazione! Leggi di più . Ma per tutti gli altri, il codice pulito è qualcosa a cui vale assolutamente la pena lottare, anche se ci vuole il resto della tua vita per arrivarci.

Joel Lee ha un B.S. in Informatica e oltre sei anni di esperienza professionale nella scrittura. È caporedattore di MakeUseOf.