Arduino und Raspberry Pi Anfänger? So schreiben Sie sauberen Code

Arduino und Raspberry Pi Anfänger? So schreiben Sie sauberen Code / DIY

Wenn Sie anfangen, mehr und mehr über die Softwareentwicklung zu lesen, stoßen Sie häufig auf diesen Begriff “sauberer Code”. In seiner reinsten Form ist dies ein Code, den andere Personen leicht lesen können. Es ist ausdrucksstark und schön, und man kann leicht seine Absicht erkennen Es anschauen.

Das Schreiben von sauberem Code ist leichter gesagt als getan.

Ob Sie ein Arduino sind Erste Schritte mit Arduino: Einsteigerhandbuch Erste Schritte mit Arduino: Einsteigerhandbuch Arduino ist eine Open-Source-Plattform für Prototyping-Elektronik, die auf flexibler, benutzerfreundlicher Hard- und Software basiert. Es ist für Künstler, Designer, Hobbyisten und alle gedacht, die interaktive Objekte oder Umgebungen erstellen möchten. Lesen Sie mehr Tinkerer, oder Sie bauen Raspberry Pi Raspberry Pi: Das inoffizielle Tutorial Raspberry Pi: Das inoffizielle Tutorial Ob Sie ein aktiver Besitzer eines Pi sind oder mehr darüber erfahren möchten, oder ein potenzieller Besitzer dieses Geräts im Kreditkartenformat? Kein Führer, den Sie vermissen möchten. Lesen Sie Weitere Anwendungen mit Python oder Sie sind sogar Webentwickler. Es gibt einige nützliche Tipps, die den Code für andere Benutzer leichter lesbar machen. Hier ist was Sie wissen müssen.

Seien Sie konsequent

Vielleicht ist der erste und offensichtlichste Tipp zu sein konsistent in was du tust Ein gutes Beispiel dafür ist das gleiche Muster bei der Benennung von Funktionen. Die absoluten Grundlagen der Programmierung für Anfänger (Teil 2) Die absoluten Grundlagen der Programmierung für Anfänger (Teil 2) In Teil 2 unseres absoluten Anfängerleitfadens zum Programmieren werde ich sein behandelt die Grundlagen von Funktionen, Rückgabewerten, Schleifen und Bedingungen. Vergewissern Sie sich, dass Sie Teil 1 gelesen haben, bevor Sie sich mit diesem Problem befassen. In diesem Abschnitt wurde erläutert, wie… Lesen Sie mehr und Variablen Die Grundlagen der Computerprogrammierung 101 - Variablen und Datentypen Die Grundlagen der Computerprogrammierung 101 - Variablen und Datentypen Nachdem Sie ein wenig objektorientiert vorgestellt und darüber gesprochen haben Das Programmieren vor und woher der Namensvetter stammt, dachte ich, es ist an der Zeit, dass wir uns mit den absoluten Grundlagen des Programmierens nicht-sprachspezifisch befassen. Dies… Lesen Sie weiter. Sie sollten eine Namenskonvention wählen und dabei bleiben.

Welche Namenskonvention sollten Sie verwenden??

Nun, wenn Sie Python für Raspberry Pi schreiben, ist die Antwort klar. Der PEP-8-Standard (das Barometer für guten, sauberen Python-Code) besagt, dass Variablennamen in Kleinbuchstaben sein sollten, wobei jedes Wort durch einen Unterstrich getrennt werden sollte. Zum Beispiel: gpio_input und feuchtesensorlesung.

Der Arduino-Styleguide besagt implizit, dass Sie Ihre Variablen in einen so genannten Camel Case schreiben sollten. Hier werden Wörter nicht durch irgendetwas getrennt, aber der erste Buchstabe jedes Wortes wird mit Ausnahme des ersten Wortes großgeschrieben. Zum Beispiel: buttonPressed und TemperaturLesen.

Es gibt natürlich auch andere Arten der Variablenbenennung. Das obige ist einfach das, was von den offiziellen Style Guides empfohlen wird. Unabhängig davon, was Sie wählen, achten Sie darauf, dass Sie sich daran halten und die gleiche Namenskonvention in Ihrem Programm verwenden.

Schreiben Sie aussagekräftige Kommentare

Kommentare sind eine großartige Möglichkeit, um zu erklären, was Ihr Programm macht. Sie können angeben, was jede Funktion bewirkt und jede Variable in Ihren eigenen Worten darstellt. Auf diese Weise können Dritte den Code leicht lesen, aber auch die Verwaltung des Codes erleichtern, da Sie ihn letztendlich besser verstehen.

Wenn Sie Ihre Kommentare jedoch nicht auf eine offensichtliche und ausdrucksstarke Art und Weise verfassen, werden Sie möglicherweise nicht so gut belästigt.

Wenn Sie Kommentare schreiben, sollten Sie versuchen, das Warum des Codes zusätzlich zum Wie zu erklären. Versuchen Sie, die Absicht klar und deutlich zu machen, und sagen Sie etwas über den Code, den er nicht selbst sagen kann. Also eher als:

// Lesung aktualisieren

Erwägen Sie das Schreiben:

// Aktualisiere die Anzahl, wie oft der Laserstrahl gebrochen wurde, bevor er herausgepickt wird

Stellen Sie sicher, dass Sie vollständige, grammatikalisch korrekte Sätze schreiben. Außerdem sagt der PEP-8-Standard für Python, dass Sie Ihre Kommentare und Variablen immer auf Englisch schreiben sollten. Dies erleichtert es anderen, mit Ihnen zusammenzuarbeiten, falls Sie sich dazu entschließen, Ihren Code als Open Source zu veröffentlichen, da Englisch die Sprache der Softwareentwicklung ist.

Der Arduino Style Guide geht noch weiter und sagt, dass Sie jeden Codeblock, jede for-Schleife und jede Variablendeklaration kommentieren müssen.

Ich persönlich finde das etwas extrem. Wenn Sie ausführliche Variablennamen schreiben, ist Ihr Code bereits selbstdokumentierend. Zögern Sie nicht, Kommentare hinzuzufügen, wenn Sie der Meinung sind, dass sie benötigt werden. Verwenden Sie Ihr eigenes Urteilsvermögen.

Vereinfachen Sie Ihren Code

Wenn Sie lernen, sich zum ersten Mal zu entwickeln So lernen Sie das Programmieren ohne all die Anstrengung Wie lernen Sie das Programmieren ohne all den Stress? Vielleicht haben Sie sich entschieden, das Programmieren zu beginnen, ob für eine Karriere oder nur als Hobby. Großartig! Aber vielleicht fangen Sie an, sich überfordert zu fühlen. Nicht so toll. Hier finden Sie Hilfe, um Ihre Reise zu erleichtern. Lesen Sie mehr, Sie sind oft mit einem immensen Ansturm von Enthusiasmus erfüllt. Sie lesen alles, was Sie über Ihre gewählte Sprache, Ihr Framework oder Ihre Plattform können. Sie stoßen auf Konzepte, die Sie nie zuvor gekannt haben, und Sie sind allzu sehr darauf aus, sie in Ihrem eigenen Code zu verwenden.

Dinge wie ternäre Operatoren, mit denen Sie die Logik eines Operators verdichten können “wenn Aussage” wie dieses:

 int x = 5; wenn (x < 10)  y = 1;  else  y = 0;  

In einer einzigen Zeile, wie folgt:

int x = 5; int y = (x < 10) ? 1 : 0; printf("%i\n", y); 

Ternäre Betreiber sind sicherlich cool, und ich möchte Sie dazu ermutigen, sich darüber zu informieren. Wenn Sie jedoch Code schreiben, der für andere leicht lesbar ist, sollten Sie ihn am besten vermeiden. Das ist aber nur ein Beispiel.

Der Arduino Style Guide fordert Sie außerdem auf, Zeiger, #define-Anweisungen und andere Datentypen als den Standard zu vermeiden: boolean, char, byte, int, unsigned int, long, unsigned long, float, double, string, array und void. Sie sollten Datentypen wie uint8_t vermeiden, da diese weniger häufig verwendet werden und in der Dokumentation nicht erläutert werden.

Einrücken und Whitespace nutzen

Beim Schreiben von sauberem Code sind Python-Benutzer im Vorteil, da der Standard-Python-Interpreter den gesamten Code vorschreibt Muss vernünftig strukturiert und eingerückt sein. Wenn Sie nicht nach jeder Funktions- und Klassendeklaration und nach einer bedingten Anweisung einrücken, wird Ihr Programm einfach nicht ausgeführt.

Auf Arduino hindert Sie nichts daran, unstrukturierten, komprimierten Code zu schreiben. Dies ist letztlich schwer zu lesen und schwer zu warten.

Es gibt aber auch nichts, was Sie daran hindert, Ihren Code besser zu strukturieren.

Stellen Sie zunächst fest, um wie viel Sie einrücken wollen. Sie sollten die Tabulatortaste mit Bedacht verwenden, da jeder Texteditor den ASCII-Code für die Tabulatorkarte unterschiedlich behandelt. Wenn Sie Ihren Code mit einer anderen Person teilen, besteht die Möglichkeit, dass Sie versehentlich Inkonsistenzen in Ihre Einrückung einfügen. Diese Inkonsistenzen können Ihr Programm zerstören, insbesondere wenn Sie eine für Whitespace empfindliche Sprache wie CoffeeScript verwenden. CoffeeScript ist JavaScript ohne Kopfschmerzen. CoffeeScript ist JavaScript ohne Kopfschmerzen. Seit dem Tag, an dem ich meine erste Zeile damit geschrieben habe, habe ich mich immer geärgert, dass alles, was ich darin schreibe, immer wie ein Jackson aussieht… Read More oder Python. Dieser Artikel von OpenSourceHacker erläutert detaillierter, warum die Tabulatortaste vermieden werden sollte.

Ich neige dazu, für jeden Einzug vier Leerzeichen zu verwenden, aber die Gesamtzahl hängt von Ihnen ab. Nur solange du konsequent bist.

Sie können Ihre IDE und Ihren Texteditor so konfigurieren, dass jede Registerkarte als festgelegte Anzahl von Leerzeichen behandelt wird. Sie können jedoch die Tabulatortaste verwenden, ohne Probleme zu verursachen. Wenn Sie Sublime Text 2 verwenden, lesen Sie die offizielle Dokumentation. Wenn Sie Vim verwenden, bearbeiten Sie einfach Ihre .vimrc Datei mit diesen Zeilen. Der Arduino-Editor führt dies automatisch für Sie aus und fügt jedes Mal zwei Leerzeichen ein, wenn Sie die Tabulatortaste drücken.

Dann müssen Sie einfach wissen, wo Sie Ihren Code einrücken. Als Faustregel sollten Sie immer nach jeder Funktionsdeklaration und nach jeder Deklaration einrücken ob, sonst, zum, während, Schalter, und Fall Aussage.

Viele Editoren verfügen über die Möglichkeit, ganze Codeblöcke auf einmal einzurücken. Wenn Sie Sublime Text 2 verwenden, können Sie eine Tastenkombination oder Tastenkombination einrichten. Ansonsten können Sie die Standardkombination verwenden, die (unter OS X) ist Cmd + [. Im Arduino-Editor können Sie den Einzug Ihrer Datei automatisch korrigieren, indem Sie drücken Strg + T unter Windows und Linux und Cmd + T unter OS X.

Das hängt ganz von Ihrem Editor ab Lesen Sie das Handbuch!

Wiederholen Sie sich nicht

Eine der wichtigsten Mantras guter Softwareentwicklung ist wiederhol dich nicht, das wird oft zu verkürzt TROCKEN.

Das Schreiben von DRY-Code ist unglaublich wichtig, da die Logik Ihres Programms konsistent ist. Sie können Änderungen an einem Ort vornehmen und global spiegeln lassen, sodass Sie immer weniger Zeit damit verbringen, immer wieder dasselbe zu schreiben.

Der beste Weg, trocken zu bleiben, ist mit einem großzügigen und großzügigen Gebrauch von Funktionen - Eine wiederholte Aufgabe mit einem Codeblock kapseln, den Sie immer wieder aufrufen können - und sicherstellen, dass jede Aufgabe eindeutig und gut geschrieben ist.

Eine gute Funktion ist kurz; Der PEP-8-Leitfaden sagt wenig über die Funktionslänge aus, aber Clean Code: Ein Handbuch für agile Software-Handwerkskunst von Bob Martin (sehr empfehlenswert) sagt das aus “Funktionen sollten kaum 20 Zeilen lang sein”. Am liebsten wäre es noch kürzer als das.

Funktionen sollten auch genau eines tun. Benötigen Sie eine Funktion, die zwei Dinge tut? Schreibe zwei Funktionen.

Diese Tipps machen es einfach, den Programmfluss zu verfolgen und gegebenenfalls zu debuggen. Es gibt auch einen zusätzlichen Vorteil für Arduino-Benutzer, die durch Speicherbeschränkungen stark eingeschränkt sind, da Redundanzen entfernt werden. Dies führt zu kleineren Programmen.

Seien Sie explizit

Ein weiteres wichtiges Mantra der Softwareentwicklung ist “explizit ist besser als implizit”. Das bedeutet, dass Ihr Code auf den ersten Blick genau beschreiben sollte, was er tut. Der Arduino Style Guide sagt, dass so etwas vermieden werden sollte:

if (buttonPressed) doSomething ();  

Sie sollten vielmehr deutlich machen, was passiert. Schreiben Sie stattdessen etwas wie folgt:

if (buttonPressed == True) doSomething ();  

Geh raus und Code (gut)

Das Schreiben von sauberem Code ist überraschend einfach. Sie müssen lediglich in allem, was Sie tun, konsistent sein, Redundanzen vermeiden und explizit sein. Denken Sie daran, sauberer Code ist lediglich lesbarer Code.

Zu diesem Thema gibt es viel toller Lesestoff. Ein guter Ausgangspunkt ist das Arduino-Tutorial und die API-Style-Guides, gefolgt vom PEP-8-Standard, wenn Sie Python-Apps für den Raspberry Pi erstellen. Wenn Sie eine andere Sprache verwenden (z. B. Javascript auf der Tessel-Plattform: Das Internet der Dinge mit Tessel erstellen: Das Node.js-Entwicklungsboard Ein Entwicklungsboard, das vollständig auf Node.js läuft, und nach einem erfolgreichen Kickstarter ist es nun soweit, dass es für alle verfügbar ist. Weitere Informationen finden Sie in Google für einen offiziellen Styleguide.

Wenn Sie sich für eine akademischere Lektüre zu diesem Thema interessieren, lesen Sie Clean Code: Ein Handbuch für agile Software-Handwerkskunst von Bob Martin. Ich habe es an früherer Stelle in diesem Artikel erwähnt, und es wird dringend empfohlen. Obwohl Java zur Veranschaulichung von Konzepten verwendet wird, können viele Ideen an andere Sprachen wie Python und C für Arduino weitergegeben werden.

Es gibt auch einige brillante Blogbeiträge, die zeigen, wie man guten, beschreibenden, sauberen Code schreibt. Ich empfehle, dass Sie auschecken “Sauberer, qualitativ hochwertiger Code: Eine Anleitung, wie Sie ein besserer Programmierer werden können” von Arash Arabi schreibt für butterfly.com.au und “Die Grundlagen für das Schreiben von sauberem Code” von Chris Reynolds, der für webdevstudios.com schreibt.

Obwohl dies nicht explizit mit sauberem Code zusammenhängt, ist es auch hilfreich zu erfahren, welche Funktionen und Bibliotheken in Ihrer bevorzugten Sprache am besten vermieden werden. Wenn Sie beispielsweise PHP lernen, sollten Sie das vermeiden “Mysql” Bibliotheken, und wenn Sie physische Produkte mit Arduino erstellen, sollten Sie niemals die Verzögerungsfunktion Arduino Delay-Funktion und warum Sie sie nicht verwenden sollten. Arduino Delay-Funktion und warum Sie es nicht verwenden sollten. delay () ist praktisch Für grundlegende Demonstrationen der Funktionsweise von Arduino sollten Sie es wirklich nicht in der realen Welt verwenden. Hier ist, warum und was Sie stattdessen verwenden sollten. Weiterlesen .

Denken Sie daran, dass Code, der leichter zu lesen ist, einfacher zu verwalten ist. Und falls Sie einmal mit etwas in Verbindung stehen, ist es für jemanden einfacher, es zu lesen und Ihnen zu helfen.

Haben Sie Tipps zum Schreiben von sauberem Code? Habe ich etwas vergessen? Sagen Sie mir! Hinterlasse mir einen Kommentar und lass es mich wissen.

Bildnachweise: Trockenbett (Premasagar), Little TAB Key (Kai Hendry), 2015 (Wikilogia)

Erfahren Sie mehr über: Programmierung.