Programmierung des Stils

Programmierung des Stils ist eine Reihe von Regeln oder verwendete Richtlinien, wenn sie den Quellcode für ein Computerprogramm schreibt. Es wird häufig gefordert, dass einem besonderen Programmierstil daraus zu folgen, Programmierern helfen wird, Quellcode zu lesen und zu verstehen, der sich dem Stil anpasst und zu helfen zu vermeiden, Fehler einzuführen.

Eine klassische Arbeit am Thema war Die Elemente, Stil, geschrieben in den 1970er Jahren Zu programmieren, und hat mit Beispielen aus den Sprachen von Fortran und PL/I überwiegend zurzeit illustriert.

Der in einem besonderen Programm verwendete Programmierstil kann aus der Codiervereinbarung einer Gesellschaft oder anderer Rechenorganisation, sowie der Einstellungen des Autors des Codes abgeleitet werden. Programmierstile werden häufig für eine spezifische Programmiersprache (oder Sprachfamilie) entworfen: Stil betrachtet gut im C Quellcode kann für den GRUNDLEGENDEN Quellcode und so weiter nicht passend sein. Jedoch werden einige Regeln auf viele Sprachen allgemein angewandt.

Elemente des guten Stils

Guter Stil ist eine subjektive Sache und ist schwierig zu definieren. Jedoch gibt es mehrere Elemente, die für eine Vielzahl üblich sind, Stile zu programmieren. Die Probleme gewöhnlich betrachtet als ein Teil, Stil zu programmieren, schließen das Lay-Out des Quellcodes einschließlich der Einrückung ein; der Gebrauch des Leerraums um Maschinenbediener und Schlüsselwörter; die Kapitalisierung oder sonst Schlüsselwörter und Variablennamen; der Stil und die Rechtschreibung von benutzerbestimmten Bezeichnern, wie Funktion, Verfahren und Variablennamen; und der Gebrauch und Stil von Anmerkungen.

Codeäußeres

Die Programmierung von Stilen befasst sich allgemein mit dem Sehäußeren des Quellcodes mit der Absicht, weniger menschliche kognitive Anstrengung zu verlangen, Information über das Programm herauszuziehen. Software ist lange verfügbar gewesen, der Quellcode automatisch formatiert, Codierer verlassend, um sich auf das Namengeben, die Logik und die höheren Techniken zu konzentrieren. Als ein praktischer Punkt, mit einem Computer, um Quellcode zu formatieren, spart Zeit, und es ist möglich, dann unternehmensweite Standards ohne Debatten geltend zu machen.

Einrückung

Einzug-Stile helfen beim sich identifizierenden Kontrollfluss und den Blöcken des Codes. Auf einigen Programmiersprachen wird Einrückung verwendet, um logische Blöcke des Codes abzugrenzen; die richtige Einrückung in diesen Fällen ist mehr als eine Sache des Stils. In anderer Spracheinrückung und Leerraum betreffen Funktion nicht, obwohl logische und konsequente Einrückung Code lesbarer macht. Vergleichen Sie sich:

wenn (Stunden

oderwenn (Stunden

mit etwas wie

wenn (Stunden

Die ersten zwei Beispiele sind wahrscheinlich viel leichter zu lesen, weil sie auf eine feststehende Weise (ein "hängender Paragraf" Stil) eingedrückt werden. Dieser Einrückungsstil ist wenn besonders nützlich, sich mit vielfachen verschachtelten Konstruktionen befassend.

ModuLiq

Die Nulleinzug-Stil-Gruppen von ModuLiq mit dem Wagen-Umsatz aber nicht den Einzügen. Vergleichen Sie alle obengenannten zu:

wenn (Stunden

Pythonschlange

Pythonschlange verwendet Einrückung, um Kontrollstrukturen anzuzeigen, so ist richtige Einrückung erforderlich. Auf diese Weise wird das Bedürfnis danach, mit lockigen geschweiften Klammern (d. h. und) einzuklammern, beseitigt. Andererseits können das Kopieren und das Aufkleben des Pythonschlange-Codes zu Problemen führen, weil das Einrückungsniveau des aufgeklebten Codes dasselbe als das Einrückungsniveau der aktuellen Linie nicht sein kann. Solche Wiederformatierung kann langweilig sein, um mit der Hand zu tun, aber einige Textaufbereiter und IDEN haben Eigenschaften, um es automatisch zu tun. Es gibt auch Probleme, als Pythonschlange-Code unbrauchbar, wenn angeschlagen, auf einem Forum oder Webseite gemacht werden konnte, die Leerraum entfernt, obwohl dieses Problem vermieden werden kann, wo es möglich ist, Code in Leerraum bewahrenden Anhängseln solcher als "<pre&gt einzuschließen;... </pre>" (für das HTML), "[Code]"..." [/Code]" (für bbcode), usw.

Haskell

Haskell hat ähnlich die Abseitsregel, die Einrückung Blöcke definieren lässt; jedoch, unterschiedlich in der Pythonschlange, ist Einrückung in Haskell nicht obligatorisch - lockige geschweifte Klammern und Strichpunkte können sein (und sind gelegentlich) verwendet stattdessen.

Vertikale Anordnung

Es ist häufig nützlich, ähnliche Elemente vertikal auszurichten, Druckfehler-erzeugte Programmfehler offensichtlicher zu machen. Vergleichen Sie sich:

$search = Reihe ('b', 'c', 'd', 'e');

$replacement = Reihe ('foo', 'Bar', 'baz', 'quux');

//Ein anderes Beispiel:

$value = 0;

$anothervalue = 1;

$yetanothervalue = 2;

</Quelle>

mit:

$search = Reihe ('b', 'c', 'd', 'e');

$replacement = Reihe ('foo', 'Bar', 'baz', 'quux');//Ein anderes Beispiel:

$value = 0;

$anothervalue = 1;

$yetanothervalue = 2;</Quelle>

Das letzte Beispiel macht zwei Dinge intuitiv klar, die im ersteren nicht klar waren:

  • die Suche und ersetzt Begriffe sind verbunden und passen zusammen: Sie sind nicht getrennte Variablen;
  • es gibt einen mehr Suchbegriff als es gibt Ersatzbegriffe. Wenn das ein Programmfehler ist, wird er jetzt mit größerer Wahrscheinlichkeit entdeckt.

Argumente gegen die vertikale Anordnung sind

  • Zwischenlinie falsche Abhängigkeiten; tabellarische Formatierung schafft Abhängigkeiten über Linien. Zum Beispiel, wenn ein Bezeichner mit einem langen Namen zu einem tabellarischen Lay-Out hinzugefügt wird, kann die Säulenbreite vergrößert werden müssen, um ihn anzupassen. Das zwingt eine größere Änderung zum Quellcode als notwendig, und die wesentliche Änderung kann im Geräusch verloren werden. Das ist für die Quellcodekontrolle schädlich, wo das Kontrollieren von Unterschieden zwischen Versionen notwendig ist.
  • Brüchigkeit; wenn ein Programmierer den Tisch nicht ordentlich formatiert, wenn er eine Änderung vornimmt; vielleicht legitim mit dem vorherigen Punkt im Sinn; das Ergebnis wird eine Verwirrung, die sich mit weiter solchen Änderungen verschlechtert.
  • Widerstand gegen die Änderung; tabellarische Formatierung verlangt mehr Anstrengung aufrechtzuerhalten. Das kann einen Programmierer davon beiseite legen, eine vorteilhafte Änderung, wie das Hinzufügen, das Korrigieren oder die Besserung des Namens eines Bezeichners vorzunehmen, weil es die Formatierung in Verwirrung bringen wird.
  • Vertrauen auf der Schriftart unter monodrogeneinfluss; tabellarische Formatierung nimmt an, dass der Redakteur eine Schriftart der festen Breite verwendet. Modernste Coderedakteure unterstützen proportionale Schriftarten, und der Programmierer kann es vorziehen, eine proportionale Schriftart für die Lesbarkeit zu verwenden.
  • Werkzeug-Abhängigkeit; etwas von der Anstrengung, Anordnung aufrechtzuerhalten, kann durch Werkzeuge erleichtert werden (z.B ein Quellcoderedakteur, der elastischen tabstops unterstützt), obwohl das ein Vertrauen auf Werkzeugen schafft.

Räume

In jenen Situationen, wo ein Leerraum erforderlich ist, sind die Grammatiken von den meisten Sprachen des freien Formats mit dem Betrag unbeteiligt, der erscheint. Mit dem Leerraum verbundener Stil wird allgemein verwendet, um Lesbarkeit zu erhöhen. Es gibt zurzeit keine bekannten harten Tatsachen (Beschlüsse von Studien), über welchen von den whitespace Stilen die beste Lesbarkeit haben.

Vergleichen Sie zum Beispiel die folgenden syntaktisch gleichwertigen Beispiele des C-Codes.

interne Nummer i;

für (i=0; ich

gegen

interne Nummer i;

für (i=0; ich

gegen

interne Nummer i;

für (ich = 0; ich

gegeninterne Nummer i;

für (ich = 0; ich

Etikette

Der Gebrauch von Etiketten, um Leerraum zu schaffen, präsentiert besondere Probleme wenn nicht genug Sorge wird genommen, weil die Position des Tabellarisierungspunkts abhängig von den Werkzeugen verschieden sein kann, die verwenden werden und sogar den Einstellungen des Benutzers.

Als ein Beispiel bevorzugt ein Programmierer Etikett-Halt vier und hat seinen toolset hat diesen Weg konfiguriert, und verwendet diese, um seinen Code zu formatieren.

interne Nummer ix;//Index, um Reihe zu scannen

lange Summe;//Akkumulator für die Summe

</Quelle>

Ein anderer Programmierer bevorzugt Etikett-Halt acht, und sein toolset wird dieser Weg konfiguriert. Wenn er seinen Code untersucht, kann er es schwierig gut finden zu lesen.

interne Nummer ix;//Index, um Reihe zu scannen

lange Summe;//Akkumulator für die Summe</Quelle>

Eine weit verwendete Lösung dieses Problems kann das Verbieten des Gebrauches von Etiketten für die Anordnung oder Regeln darauf einschließen, wie Etikett-Halt gesetzt werden muss. Bemerken Sie, dass feine Etikett-Arbeit, vorausgesetzt dass sie durchweg verwendet werden, auf die logische Einrückung, und nicht eingeschränkt hat für die Anordnung verwendet hat:

Klasse MyClass {\

interne Nummer foobar (interne Nummer qux,//der erste Parameter

interne Nummer quux);//der zweite Parameter

interne Nummer foobar2 (interne Nummer qux,//der erste Parameter

interne Nummer quux,//der zweite Parameter

interne Nummer quuux);//der dritte Parameter

};

</Quelle>

Siehe auch

  • Das Codieren der Vereinbarung
  • Einzug-Stil
  • MISRA C
  • Das Namengeben der Tagung, (programmierend)

Links


Source is a modification of the Wikipedia article Programming style, licensed under CC-BY-SA. Full list of contributors here.
Hughes h-4 Herkules / Rio
Impressum & Datenschutz