In den Codierungsstandards für den auf drupal.org gehosteten Code wird empfohlen, zwei Leerzeichen zum Einrücken des Codes zu verwenden. Andere Websites empfehlen die Verwendung von Tabulatoren, um den Code einzurücken.
Was ist das richtige Einrückungszeichen für alles und in jeder Situation? Bitte erläutern Sie die Antwort, die Sie geben.
coding-style
indentation
kiamlaluno
quelle
quelle
Antworten:
Räume
Ein Tab kann abhängig von Ihrer Umgebung eine andere Anzahl von Spalten enthalten, ein Leerzeichen ist jedoch immer eine Spalte.
In Bezug auf die Anzahl der Leerzeichen (oder Tabulatoren), die den Einzug ausmachen, ist es wichtiger, im gesamten Code konsistent zu sein, als einen bestimmten Tabulator-Stopp-Wert zu verwenden.
quelle
Tabs
Jetzt zählt natürlich die Konsistenz mehr als nur eine, und eine gute IDE macht die Unterschiede vernachlässigbar. Das heißt, der Sinn dieses Threads ist es, ein heiliger Krieg zu sein, also:
Ich bevorzuge Tabs:
quelle
Verwenden Sie Tabulatoren, um den Zeilenanfang einzurücken, und zwar jeweils einen Tabulator pro Einzugsebene, und lassen Sie jeden auswählen, wie breit dieser sein soll.
Verwenden Sie Leerzeichen, wenn Sie Zeichen in einer Zeile aneinanderreihen, sodass diese unabhängig von der Größe der Tabulatoren immer aneinanderreihen.
Und finden und lochen Sie alle frühen Software-Autoren, die diese dumme Sache überhaupt erst zum Thema gemacht haben.
(Im Ernst, warum wird das überhaupt diskutiert? Als Nächstes werden Sie mir sagen, dass Sie auch mehrere Zeichen für Zeilenumbrüche verwenden möchten!)
quelle
Tabs
Leerzeichen sollten verwendet werden, wenn Tabulatoren völlig unbrauchbar sind.
Auch zum Ausrichten von Parametern und Kommentaren funktionieren Registerkarten noch besser .
quelle
Alle Argumente für Tabulatoren sind theoretisch großartig. Aber...
Ja, mit Tabulatoren können Sie die Einrückungsstufe festlegen. Und ja, Sie können eine Kombination aus Tabulatoren und Leerzeichen verwenden, um Dinge auszurichten. Und in einer idealen Welt würde es
In der Realität kann man den Unterschied zwischen Leerzeichen und Tabulatoren nicht erkennen, sie scheinen beim Verschieben von Code immer durcheinander zu sein, und das Anzeigen des Codes in einem anderen Programm, dessen Tabulatoren auf 8 Spalten festgelegt sind, ist störend.
Ich habe früher Tabs benutzt. Dann fing ich an, als Teil eines Teams zu arbeiten und Code zu teilen. Ich wurde schnell ein Befürworter von Räumen. Während ich mit der Utopie der Tabulatoren sympathisieren kann, kann ich mir nicht vorstellen, keine Leerzeichen zu verwenden.
quelle
public:
in C ++ - Klassendeklarationen verwenden, damit sie hübscher aussehen (insbesondere bei verschachtelten Klassen).Einige relevante Meinungen, die von Interesse sein könnten:
quelle
Tabs für den Gewinn.
quelle
Ich absolut. Hass. 4. Leerzeichen.
Warum? Hauptsächlich, weil ich es leid bin, mit einer Tastatur durch meinen Code zu navigieren und ständig drücken
left
left
left
left
zu müssen, um eine Einrückung zu überspringen. Dies ist aus früheren Versionen von Notepad ++ und sogar aus Windows-Notepad hervorgegangen, in denen es keine Formatierungsschaltfläche gab. Ich hatte so viele Probleme, wenn die Leute nur 3 benutzten, wenn ich unter anderem überall 4 benutzt hatte.Der andere Grund ist, dass das Tabulatorzeichen speziell für Einrückungen vorhanden ist und erst später für die Navigation übernommen wurde. Warum machen wir es,
space
space
space
space
wenn ein einfachestab
funktionieren würde? Warum sollten IDEs mit 2-5-stelligem Code umgehen und korrekt formatieren müssen, wenn eine einfache Registerkarte und eine Einstellungsoption funktionieren würden?Leider bin ich die Minderheit.
quelle
w
undb
(odere
undge
) verwenden, um Leerzeichen und Token zu überspringen: PIch persönlich verwende gerne Tabulatoren in allen Bereichen, da jeder Entwickler die Anzahl der Einrückungen pro Tabulator steuern kann. Auf diese Weise erhalten Sie Flexibilität bei der Anzeige.
Abgesehen davon ahme ich in der Regel zunächst den in der Datei enthaltenen Codierungsstil nach (da ich viel Zeit mit Wartungsarbeiten verbringe).
quelle
Ich glaube nicht, dass es eine richtige Einrückung gibt (zumindest nicht ohne kleinen Krieg).
Persönlich mag ich vier Räume. Sie ermöglichen es mir, Code viel schneller zu lesen und sie sehen in jedem Editor gleich aus - sogar in Vi.
quelle
softtabstop
Option und die Befehleretab
undretab!
.Leerzeichen: Wenn Sie Kommentare rechts vom Code ausrichten oder Funktionsparameterlisten, komplexe mehrzeilige Ausdrücke oder ähnliche Elemente verwenden, möchten Sie, dass Ihre schöne Arbeit für alle Benutzer richtig angezeigt wird . Wenn Sie Tabulatoren verwenden und es Benutzern ermöglichen, ihre Tabulatoren unterschiedlich festzulegen, wird die Ausrichtung mit Ausnahme der einfachsten Fälle von Codeeinrückungen unterbrochen.
Außerdem ist es offensichtlich, dass jeder auf der Welt vim verwenden sollte, was es trivial macht, auch in Dateien mit Leerzeicheneinzug "Tabstopps" einzurücken, nicht einzurücken und durch diese zu navigieren.
quelle
Tabulatoren sind die natürliche und orthodoxe Wahl, da sie per Definition zum Einrücken verwendet werden.
Leider sind Tabs ungleichmäßig implementiert, sodass die einzige Lösung für die reale Welt 4 Leerzeichen sind.
quelle
Sie brauchen offensichtlich einen Kombinationsansatz.
Wenn Sie Code mit anderen Entwicklern teilen, müssen Sie ihn standardisieren. Da dies unmöglich ist (koff koff), müssen Sie dafür sorgen, dass alle Benutzer vier Leerzeichen verwenden.
Dann brauchen Sie einen Editor, der klug genug ist, nicht dumm zu sein, um zu wissen, dass er eine Zeile mit vier Leerzeichen vorne wie eingerückt behandeln soll. Jede moderne IDE oder jeder Editor von Programmierern kann Code automatisch mit Leerzeichen anstelle von Tabulatoren fließen lassen.
quelle
Warum kann das nicht jemand umsetzen:
Jeder ist glücklich, wenn alle sein eigenes Format sehen
Ist das so schwer
quelle
indent
Programms einrichten .Leerzeichen oder Tabulatoren - Was Atwood wirklich sagt, ist, eine Sache auszuwählen und in Ihrem Projekt konsequent zu sein. Das einzig Heilige an der Code-Formatierung ist, sicherzustellen, dass sie konsistent ist, damit der Psychopath, der Ihren Code pflegt, nachdem Sie sich nicht gezwungen fühlen, die Situation dauerhaft zu beheben.
Das heißt, wenn Sie in Python oder einer anderen Sprache arbeiten, in der Whitespace ein tatsächliches Programmierkonstrukt ist, kann ich mir nicht vorstellen, Tabulatoren zu verwenden.
quelle
Ich bin ein Typ mit 4 Feldern, Tabs sind einfach nicht konsistent.
quelle
Anscheinend bringen Tabs in Delphi einiges durcheinander, sodass ich in Delphi keine Tabs verwende.
Ich mache jedoch alles andere mit Emacs und benutze immer Tabs, weil meine Tabs genau dort sind, wo ich sie haben möchte.
quelle
Die Antwort ist, dass es für jede Situation kein einziges richtiges Einrückungszeichen geben kann. Die Formatierung mit Zeichen ist unflexibel und kann zu Konflikten führen, wenn innerhalb eines Teams unterschiedliche Stile verwendet werden.
Die einzige Möglichkeit, Code mit unterschiedlichen Formatierungsstilen fehlerfrei und flexibel zu formatieren, besteht darin, den Code virtuell, dh ohne Einrückungszeichen, zu formatieren. Der einzige mir bekannte Code-Editor, der dies unterstützt, ist der im folgenden Beispiel verwendete:
Der folgende Screenshot zeigt die virtuelle Formatierung in einem XSLT-Editor *, der diese Einrückungsmethode verwendet (hier ist auch ein kurzes Video zu sehen ). Jedes Zeichen in der XSLT wurde zur Veranschaulichung gelb hervorgehoben, damit die einzigen Tabulator- oder Leerzeichen im Inhalt klar erkennbar sind. Die Codeeinrückung wird vom Rendering-System des Editors übernommen, indem der linke Rand (der einen weißen Hintergrund hat) angepasst wird.
Die einzigen führenden Leerzeichen stehen vor den Buchzeilen , da es sich um wörtlichen Text und nicht um Code handelt. Diese Leerzeichen müssen beibehalten werden.
Bei der virtuellen Formatierung wählen Sie die Einrückungsbreite, die der Umgebung und dem Einrückungsstil entspricht, ohne die Zeichen in der Quelldatei zu beeinflussen. Sie können die Einrückungsbreite sogar auf 0 setzen, wenn Sie eine abgeflachte Ansicht des Codes benötigen, wie unten gezeigt:
Um dies der Formatierung von Leerzeichen entgegenzusetzen, wird dasselbe XSLT, das in einem Editor ohne virtuelle Formatierung geöffnet wurde, vom Auto-Formatierer dieses Editors folgendermaßen transformiert:
Die größeren leeren gelben Blöcke im obigen Screenshot zeigen deutlich die Leerzeichen, die vom Formatierer des herkömmlichen Editors hinzugefügt wurden. Leider können diese jetzt nicht von echten Inhalten unterschieden werden, sodass das XSLT geändert werden müsste, um dieses Problem zu beheben.
Zusammenfassung
XSLT ist möglicherweise ein Extremfall, aber dieses Prinzip gilt für viele Programmiersprachen: Für den Inhalt sollten Zeichen verwendet werden, und für die Formatierung sollte nach einer alternativen Methode gesucht werden.
** Offenlegung: Der XSLT-Editor mit virtueller Formatierung wurde von meiner eigenen Firma entwickelt *
quelle
Bisher nicht erwähnt: Es gibt Sprachen (Python, Haskell), bei denen es auf Einrückung ankommt. 1 Zeichen zählt jedoch als 1 Zeichen, sei es ein Leerzeichen oder ein Tabulator, sodass der vom Compiler angezeigte Einzug möglicherweise nicht der gleiche ist, den Sie auf dem Bildschirm sehen, wenn Sie Tabulatoren verwenden.
Daher sind Leerzeichen in Sprachen wie Haskell ein Muss. In Makefiles sind TABS ein Muss. Bei allen anderen ist es eine Frage des persönlichen Geschmacks und heutzutage nicht viel - jeder anständige Redakteur hat den Befehl "(führende) Tabulatoren zu Leerzeichen" und "(führende) Leerzeichen zu Tabulatoren".
quelle
Früher habe ich Leerzeichen verwendet, aber in letzter Zeit habe ich nur Tabulatoren verwendet, weil Eclipse darauf eingestellt war, als ich es endlich bemerkte. Alle anderen Entwickler in meinem Team verwenden Eclipse. Daher war es sinnvoll, die Tabs zu standardisieren, als wir feststellten, dass wir sie bereits seit Ewigkeiten verwenden und es keinen Grund gab, auf Leerzeichen umzusteigen. Es hat mich überrascht, wie wenig es je gab.
Das Festlegen der angezeigten Tabulatorgröße auf 3 oder 5 Zeichen in Ihrer IDE vereinfacht die Unterscheidung zwischen Codeabschnitten, die durch Leerzeichen eingerückt sind (heutzutage fast immer 4), und solchen, die durch Tabulatoren eingerückt sind, erheblich.
quelle
Es sind bereits viele Argumente vorgebracht worden, aber niemand hat erwähnt, wohin wir in Zukunft führen könnten .
Tabs noch Leerzeichen!
Im Idealfall sollte Code als Daten betrachtet und nicht in einer bestimmten Textformatierung gespeichert werden. Jeder Entwickler kann seine eigene bevorzugte Ansicht anwenden. Darüber hinaus sollte diese Ansicht nicht nur auf Text beschränkt sein , sondern kann auch Tabellen, Farbwähler und mathematische Formeln enthalten.
Diese Idee ist nicht zu weit hergeholt. Es war JetBrain der Sprache Oriented Programming Editor Meta Programming System (MPS) , die zuerst machte mir klar , das die gesamte Diskussion löst gleichzeitig eine Menge zusätzlicher Möglichkeiten hinzufügen. (Ja, dies ist mit Editor-Plugins möglich, aber das direkte Bearbeiten von Text fügt im Gegensatz zum Ansatz von MPS so viele unnötige Komplexitäten hinzu.)
Im Gegensatz zu Tabulatoren und Leerzeichen gibt es kleine Nachteile, die beim direkten Arbeiten mit abstrakten Syntaxbäumen erwähnt werden können . Alles, was benötigt wird, ist, dass die Technologie zu einem kommerziell rentablen Produkt reift. Die ersten Anzeichen dafür zeigen sich. Realaxy ist größtenteils auf MPS aufgebaut, einem kommerziellen ActionScript-Editor .
Ich würde gerne sehen, wie einer der großen Akteure das Konzept dieser Technologie aufgreift und sieht, was passiert!
quelle
Weder ist besser, noch ist schlechter. Das einzig Wichtige ist, konsequent zu sein.
Wenn Sie ein Team von einem sind, wählen Sie, was Sie persönlich mögen. Überlegen Sie, wie sich Ihr bevorzugter Editor standardmäßig verhält, und wählen Sie aus, was Sie möchten.
Wenn Sie in einem Team sind, tun Sie, was das Team tut. Zeitraum.
In meinen verschiedenen Jobs habe ich zwei Leerzeichen, vier Leerzeichen, acht Leerzeichen, Tabulatoren, Leerzeichen und Tabulatoren verwendet. Ich glaube, ich habe auch ein Leerzeichen verwendet. Ich sage meinem Redakteur, was er tun soll, dann denke ich nicht mehr darüber nach, der Redakteur arbeitet die Details aus.
Die einzige andere Sache ist, sicherzustellen, dass Sie einen intelligenten Editor auswählen. Emacs oder vi? Nun , das ist ein heiliger Krieg Ich bin bereit zu kämpfen :-)
quelle