Arduino și Zmeura Pi Beginner? Iată cum să scrieți codul curat
Când începeți să citiți mai multe despre dezvoltarea de software, frecvent întâlniți fraza “codul curat”. În cea mai pură formă, acesta este un cod ușor de citit de alți oameni. Este expresivă și frumoasă, iar tu îi poți distinge cu ușurință intenția pur și simplu privindu-l.
Scrierea codului curat este mai ușor de zis decât de făcut.
Indiferent dacă sunteți un Arduino Noțiuni de bază cu Arduino: Un ghid pentru începători Începeți cu Arduino: Un ghid pentru începători Arduino este o platformă open-source de prototipuri electronice, bazată pe hardware și software flexibile, ușor de utilizat. Este destinat artiștilor, designerilor, pasionaților și tuturor celor interesați să creeze obiecte sau medii interactive. Citeste mai mult tinkerer sau construiești Raspberry Pi Raspberry Pi: Tutorialul neoficial Raspberry Pi: Tutorialul neoficial Fie ca esti un proprietar actual de Pi care vrea sa invete mai mult, fie ca potential proprietar al acestui dispozitiv de dimensiune a cartii de credit, asta nu este Nu sunteți un ghid pe care vreți să-l pierdeți. Citește mai multe aplicații cu Python sau chiar ești un dezvoltator web, există câteva sfaturi utile pe care le vei urma care îți vor face codul mai ușor de citit de alții. Iată ce trebuie să știți.
Fii consistent
Poate că trebuie să fie primul și cel mai evident sfat consistent în ceea ce faci. Un exemplu bun al acestui lucru este urmarea acelorași modele atunci când se numește funcții Bazele absolută a programării pentru începători (Partea 2) Bazele absolută a programării pentru începători (Partea 2) În partea a 2 a ghidului nostru absolut de începători pentru programare, voi fi care acoperă elementele de bază ale funcțiilor, valorile returnate, buclele și condiționările. Asigurați-vă că ați citit partea 1 înainte de a aborda acest lucru, în cazul în care i-am explicat ... Citiți mai multe și variabilele Bazele de programare a calculatorului 101 - Variabile și tipuri de date Bazele de programare a calculatoarelor 101 - variabile și tipuri de date După ce a introdus și a vorbit un pic despre Object Oriented Programarea înainte și în cazul în care vine de la numele său, am crezut că este timpul să trecem prin elementele de bază absolut de programare într-un mod non-limbaj specific. Acest ... Citește mai mult. Ar trebui să alegeți o convenție de numire și să vă lipiți de ea.
Deci, ce convenție de numire ar trebui să utilizați?
Dacă scrieți Python pentru Raspberry Pi, răspunsul este clar. Standardul PEP-8 (barometrul pentru un cod Python bun) afirmă că numele variabilelor ar trebui să fie mici, fiecare cuvânt fiind separat printr-o subliniere. De exemplu: gpio_input și moisture_sensor_reading.
Ghidul de stil Arduino afirmă implicit că trebuie să vă scrieți variabilele în ceea ce se numește Camel Case. Aici, cuvintele nu sunt separate de nimic, dar prima literă a fiecărui cuvânt este capitalizată, cu excepția primului cuvânt. De exemplu: buttonPressed și temperatureReading.
Există, desigur, și alte stiluri de denumire variabilă. Cele de mai sus sunt pur și simplu recomandate de ghidurile de stil oficiale. Dar, indiferent de ce alegeți, asigurați-vă că vă lipiți de ea și folosiți aceeași convenție de numire pe tot parcursul programului.
Scrieți comentarii semnificative
Comentariile reprezintă o modalitate excelentă de a explica ceea ce face programul dvs. Puteți să precizați ce reprezintă fiecare funcție și fiecare variabilă în cuvintele voastre. Acest lucru facilitează citirea de către o terță parte a codului dvs., dar face și codul dvs. mai ușor de întreținut, deoarece în cele din urmă îl înțelegeți mai bine.
Dar dacă nu scrieți comentariile dvs. într-un mod evident și expresiv, atunci nu s-ar deranja prea mult.
Atunci când scrieți comentarii, ar trebui să încercați și să explicați de ce codul a fost adăugat, în plus față de modul în care. Încearcă să faci intenția foarte clară și să spui ceva despre codul pe care nu-l poate spune el însuși. Deci, mai degrabă decât:
// actualizați citirea
Luați în considerare scrierea:
// Actualizați de câte ori a fost rupt fasciculul laser, înainte de al tweeting
Asigurați-vă că scrieți în întregime fraze gramaticale corecte. În plus, standardul PEP-8 pentru Python spune că trebuie să scrieți întotdeauna comentariile și variabilele în limba engleză. Acest lucru facilitează colaborarea cu ceilalți, dacă decideți să lansați codul ca sursă deschisă, deoarece engleza este destul de mult lingua franca de dezvoltare software.
Ghidul de stil Arduino merge mai departe și spune că trebuie să comentați fiecare bloc de cod, fiecare pentru buclă și fiecare declarație de variabilă.
Personal, cred că este un pic extrem. Dacă scrieți nume variabile expresive, expresive, atunci codul dvs. este deja auto-documentat. Acestea fiind spuse, nu ezitați să adăugați comentarii în cazul în care credeți că sunt necesare. Folosește-ți propria judecată bună.
Simplificați codul
Când învățați să vă dezvoltați pentru prima dată Cum să învățați programarea fără stres Cum să învățați programarea fără stresul Poate că ați decis să continuați programarea, fie pentru o carieră, fie ca un hobby. Grozav! Dar poate că începi să te simți copleșit. Nu prea grozav. Iată ajutorul pentru a vă ușura călătoria. Citiți mai multe, sunteți adesea umpluți de o entuziasm enormă. Citiți tot ce puteți despre limba, cadrul sau platforma aleasă. Începeți să întâlniți concepte pe care nu le cunoșteați înainte și sunteți prea dornici să le folosiți în propriul cod.
Lucruri ca operatorii ternari, care vă permit să condenseze logica unui “dacă declarație” cum ar fi aceasta:
int x = 5; dacă (x < 10) y = 1; else y = 0;
Într-o singură linie, după cum urmează:
int x = 5; int y = (x < 10) ? 1 : 0; printf("%i\n", y);
Operatorii ternari sunt cu siguranță cool și îți încurajez să le citești. Dar când scrieți un cod ușor de citit de alții, este cel mai bine evitat. Acesta este doar un exemplu.
Ghidul de stil Arduino vă încurajează, de asemenea, să evitați indicatorii, # declarațiile de definire și alte tipuri de date decât cele standard: boolean, char, octet, int, unsigned int, long, unsigned long, float, double, string, matrix și void. Ar trebui să evitați tipurile de date precum uint8_t, deoarece acestea sunt mai puțin utilizate în mod obișnuit, nu sunt explicate în documentație și nu sunt teribil de terse.
Indentați și utilizați spațiul alb
Când vine vorba de scrierea unui cod curat, utilizatorii Python au un avantaj, deoarece interpretul standard Python mandatează că tot codul trebuie sa să fie structurat și indentat în mod sensibil. Dacă nu vă indentați după fiecare declarație a funcției și clasei și o declarație condiționată, programul dvs. pur și simplu nu va fi rulat.
Pe Arduino, nu vă oprește să scrieți coduri nestructurate și compacte. Acest lucru, în cele din urmă, este greu de citit și greu de întreținut.
Dar nu vă oprește nici mai mult să vă structurați codul.
Mai întâi, stabiliți cât de mult vă veți alătura. Ar trebui să utilizați cheia tabularului în mod judicios, deoarece fiecare editor de text tratează codul ASCII pentru fila în mod diferit și dacă vă partajați codul cu altcineva, există șansa ca acesta să introducă neconcordanțe inadecvate în indentarea dvs. Aceste inconsecvențe vă pot rupe programul, mai ales dacă utilizați un limbaj sensibil la spațiul alb, cum ar fi CoffeeScript CoffeeScript este JavaScript fără dureri de cap CoffeeScript este JavaScript fără dureri de cap Nu mi-a plăcut foarte mult scrierea JavaScript atât de mult. Din ziua în care am scris prima mea linie folosind-o, am întotdeauna resimțit că tot ce scriu în ea întotdeauna sfârșește ca un Jackson ... Citește mai mult sau Python. Acest articol din OpenSourceHacker explică în detaliu de ce ar trebui evitată cheia tab-ului.
Tind să utilizez patru spații pentru fiecare liniuță, dar numărul total este de până la tine. Doar atât timp cât ești consecvent.
Puteți configura IDE și editorul de text pentru a trata fiecare filă ca număr setat de spații, permițându-vă totuși să utilizați cheia tab fără riscul de a introduce probleme. Dacă utilizați Text Sublim 2, verificați documentația oficială. Dacă utilizați Vim, trebuie doar să vă editați .vimrc fișier cu aceste linii. Editorul Arduino face acest lucru automat pentru dvs. și introduce două spații ori de câte ori apăsați fila.
Apoi, pur și simplu trebuie să știți unde să vă indentați codul. Ca regulă bună, ar trebui să vă întoarceți întotdeauna după fiecare declarație a funcției și după fiecare dacă, altfel, pentru, in timp ce, intrerupator, și caz afirmație.
Mulți editori vin cu abilitatea de a introduce linii întregi de cod simultan. Dacă utilizați Sublime Text 2, puteți seta o combinație de taste sau combinații de taste. În caz contrar, puteți utiliza combinația implicită, care (pe OS X) este Cmd + [. În editorul Arduino, puteți repara automat indentarea fișierului dvs. apăsând T Ctrl + pe Windows și Linux și T Cmd + pe OS X.
Depinde în întregime de editorul tău citiți manualul!
Nu vă repetați
Una dintre cele mai importante mantre ale dezvoltării bune a software-ului este nu te repeta, care este adesea scurtat USCAT.
Scrierea codului DRY este incredibil de importantă, deoarece vă asigură că logica programului dvs. este consecventă, vă permite să faceți o schimbare într-o singură locație și să o reflectați la nivel global și petreceți mai puțin timp scriind același lucru din nou și din nou.
Cel mai bun mod de a rămâne DRY este cu o utilizare liberală și generoasă funcții - încapsularea unei sarcini repetate cu un bloc de cod pe care îl puteți apela din nou și din nou - și asigurați-vă că fiecare dintre ele este distinct și bine scris.
O funcție bună este scurtă; ghidul PEP-8 spune puțin despre lungimea funcției, dar Codul curat: Un manual de programare de agil software de către Bob Martin (foarte recomandat) spune că “funcții ar trebui să fie cu mult 20 de linii lungi”. De preferință, ar fi chiar mai scurtă decât asta.
Funcțiile ar trebui să facă exact un singur lucru. Aveți nevoie de o funcție care să facă două lucruri? Scrieți două funcții.
Aceste sfaturi facilitează urmărirea fluxului unui program și, eventual, depanare dacă este necesar. Există, de asemenea, un avantaj suplimentar pentru utilizatorii Arduino, care sunt strâns constrânși de limitările de stocare, deoarece se elimină concedieri. Acest lucru duce la programe mai mici.
Explicați-vă
O altă mantra importantă a dezvoltării de software este “explicită este mai bună decât implicită”. Înseamnă că codul dvs. ar trebui să strige destul de mult ceea ce face la prima vedere. Ghidul de stil Arduino spune că acest lucru ar trebui evitat:
dacă (butonul Imprimat) doSomething ();
Mai degrabă ar trebui să clarificați ce se întâmplă. În schimb, scrieți ceva de genul:
dacă (buttonPressed == True) doSomething ();
Ieși și cod (bine)
Scrierea codului curat este surprinzător de simplă. Trebuie doar să fii consecvent în tot ceea ce faci, să eviți concedieri și să fii explicit. Amintiți-vă, codul curat este doar un cod care poate fi citit.
Există o mulțime de materiale de citire excelente pe această temă. Un excelent punct de plecare este tutorialul Arduino și ghidurile de stil API, urmate de standardul PEP-8 dacă construiți aplicații Python pentru Raspberry Pi. Dacă utilizați o altă limbă (cum ar fi Javascript pe tabla Tessel) Construirea Internetului obiectelor, cu Tessel: Node.js Dezvoltarea consiliului de administrație Internetul obiectelor, cu Tessel: Consiliul de Dezvoltare Node.js Tessel este o nouă rasă de bord de dezvoltare care rulează în întregime pe Node.js, iar după un Kickstarter de succes, ei au ajuns acum în punctul de a fi disponibili pentru toată lumea. Citește mai mult), verifică Google pentru un ghid de stil oficial.
Dacă căutați o citire mai academică pe această temă, verificați codul curat: Un manual de meserii agile software de Bob Martin. Am menționat mai devreme în acest articol și este foarte recomandat. Deși utilizează Java pentru a ilustra concepte, multe dintre idei pot fi transmise altor limbi, cum ar fi Python și C pentru Arduino.
Există, de asemenea, câteva blog-uri strălucitoare online care ilustrează cum să scrieți un cod bun, descriptiv, curat. Vă recomandăm să verificați “Cod curat, de înaltă calitate: un ghid despre cum să devii un programator mai bun” de Arash Arabi scris pentru butterfly.com.au, și “Bazele de scriere a codului curat” de Chris Reynolds, scriind pentru webdevstudios.com.
Deși nu este în mod explicit legat de codul curat, este de asemenea util să aflați ce funcții și biblioteci sunt cel mai bine evitate în limba dvs. de alegere. De exemplu, dacă învățați PHP, ar trebui să evitați “MySQL” biblioteci și dacă construiți produse fizice cu Arduino, nu ar trebui să utilizați niciodată funcția de întârziere Arduino Delay și de ce nu ar trebui să folosiți funcția Arduino Delay și de ce nu ar trebui să o utilizați În timp ce întârzierea () este la îndemână pentru demonstrații de bază despre cum funcționează Arduino, într-adevăr nu ar trebui să o utilizați în lumea reală. Iată de ce și ce ar trebui să utilizați în schimb. Citeste mai mult .
Rețineți că un cod mai ușor de citit este mai ușor de întreținut. În plus, dacă ai fi blocat vreodată de ceva, e mai ușor pentru cineva să o citească și să te ajute.
Aveți vreo sfat pentru scrierea codului curat? Mi-e dor de ceva? Spune-mi! Lasă-mă un comentariu de mai jos, și lasă-mă să știu.
Credite foto: pat uscat (Premasagar), chei mici TAB (Kai Hendry), 2015 (Wikilogia)
Explorați mai multe despre: Programare.