Ist dieser unangenehme Abstand eine Art Stil?

9

Beim Lesen eines anderen Programmiercodes verwendet er ein Format, das ich noch nie gesehen habe. Z.B

    namespace MyNs.HereWeAre
         {//tab here for some reason
         public class SomeClass
               {//here's another tab
               public string Method()
                    {//yet another tab
                    string _variable = "";//no tab implementation
                    return _variable;
                    }
               }//eof - class  (Yes these eof comments are on every file)
        }//eof - namespace
// eof - file

Ich gebe zu ... dieser Code macht mich wütend. Es ist schwierig, diesen Stil zu erreichen. Man muss die Standardformatierung bekämpfen, die von der IDE Visual Studio bereitgestellt wird.

Ich könnte diese Pille etwas leichter schlucken, wenn ich wüsste, dass es einen guten Grund für diesen Stil gibt. Entspringt dieser Stil einer anderen Programmiersprache / IDE?

P.Brian.Mackey
quelle
5
Das ist nur bizarr. In meinen 18 Jahren der Entwicklung habe ich diese Konvention noch nie gesehen.
17 vom 26.
5
Wenn ich raten müsste, würde ich sagen, dass der Programmierer ein Python-Konverter ist, der leicht verärgert darüber ist, überhaupt Klammern zu benötigen, und es gewohnt ist, alle Sub-Token der Syntax einzurücken.
Telastyn
21
STRG K + STRG D!
RYFN
2
@Zeus - Oh mein Gott, das wird mir so viel Zeit sparen, diese unkonventionelle Formatierung zu lösen !! Sie sollten einige Antwortpunkte dafür bekommen.
P.Brian.Mackey
1
Diese Neuformatierungsverknüpfung (Strg K + Strg D) funktioniert auch mit HTML-Dateien und anderen Formaten in Visual Studio.
Oded

Antworten:

19

Ja: http://en.wikipedia.org/wiki/Indent_style#Whitesmiths_style

Der Whitesmiths-Stil, in geringerem Maße auch Wishart-Stil genannt, ist heute weniger verbreitet ... Er wurde ursprünglich in der Dokumentation für den ersten kommerziellen C-Compiler, den Whitesmiths-Compiler, verwendet . Es war auch in den frühen Tagen von Windows beliebt, da es in drei einflussreichen Windows-Programmierbüchern verwendet wurde: Programmer's Guide to Windows von Durant, Carlson & Yao, Programming Windows von Petzold und Windows 3.0 Power Programming Techniques von Norton & Yao. .

Dieser Stil setzt die mit einer Steueranweisung verknüpfte Klammer in die nächste Zeile, eingerückt. Anweisungen innerhalb der geschweiften Klammern werden auf derselben Ebene wie die geschweiften Klammern eingerückt ...

Die Vorteile dieses Stils ähneln denen des Allman-Stils , da Blöcke deutlich von Steueranweisungen unterschieden werden. Beim Whitesmiths-Stil ist der Block jedoch weiterhin visuell mit seiner Steueranweisung verbunden, anstatt wie ein nicht verwandter Codeblock auszusehen, der von Leerzeichen umgeben ist. Ein weiterer Vorteil besteht darin, dass die Ausrichtung der geschweiften Klammern mit dem Block die Tatsache unterstreicht, dass der gesamte Block konzeptionell (sowie programmatisch) eine einzelne zusammengesetzte Anweisung ist. Durch das Einrücken der Klammern wird außerdem betont, dass sie der Steueranweisung untergeordnet sind.

Ein vorgeschlagener Nachteil dieses Stils besteht darin, dass die Endklammer nicht mehr mit der Aussage übereinstimmt, zu der sie konzeptionell gehört. Die schließende Klammer gehört jedoch zur öffnenden Klammer und nicht zur Steueranweisung ...

Es ist eines, das ich noch nie praktiziert gesehen habe, danke IPU.

Eclipse hat einen eingebauten Whitesmith-Codestil für c ++ ... Sie könnten mit Java verarscht sein, da jeder den gleichen Stil in dieser Sprache verwenden soll.

Edward Strange
quelle
4
oh ähm was bedeutet "danke IPU"? Google wird es mir nicht sagen ...
Amara
4
Unsichtbares rosa Einhorn. en.wikipedia.org/wiki/Invisible_Pink_Unicorn
Scott C Wilson
Der Whitesmiths-Stil enthält keine Registerkarten am Ende einer Zeile. Tabs überall außer am Anfang einer Zeile sind böse und müssen mit Feuer getötet werden.
tdammers
6

Während der Codierungsstil Ihres Kollegen bizarr, hässlich und schwer zu lesen ist:

  1. Wenn Sie keine Codierungsstandards haben, ist deren Formatierung genauso gültig wie jede andere.

  2. Wenn Sie ihren Code jedes Mal neu formatieren, wenn Sie eine von ihnen geschriebene Datei berühren, fällt es Ihnen sehr schwer, Änderungen zu verfolgen. Wenn Sie mit Ihrem VCS einen Diff durchführen, haben sich viele, wenn nicht alle Codezeilen geändert.

Aus diesem Grund sollten Sie Codierungsstandards haben. Dies erleichtert es jedem, zu wissen, was er tun soll, und es ist einfacher, eine Neuformatierung zu rechtfertigen, wenn er sich nicht daran hält.

Wenn sie noch in Ihrem Unternehmen arbeiten, haben Sie versucht, mit ihnen darüber zu sprechen?

mward
quelle
Diese Person ist schon lange nicht mehr in meiner Zeit. Jetzt befolgen wir die Richtlinien für das Design von Microsoft Frameworks.
P.Brian.Mackey
9
In diesem Fall empfehle ich, die Code-Neuformatierung als separates Einchecken einzuchecken (z. B. Strg K + Strg D), bevor Sie Änderungen vornehmen (um die Nachverfolgung dieser spezifischen Änderung zu vereinfachen).
Brian