Ich habe mich jahrelang mit Richtlinien für Codestile auseinandergesetzt, wie viele andere in diesem Forum. Dies schließt sowohl Kampfstil-Anleitungen ein, die ich für verabscheut halte, als auch den Versuch, andere dazu zu ermutigen, Stil-Anleitungen zu verwenden, um ihren Stil zu zügeln, damit er insgesamt besser lesbar ist.
Das Unternehmen profitiert von einem gemeinsamen Kodierungsstandard. Bei der Entwicklung von Software für ein Unternehmen sind viele wichtige Aspekte zu berücksichtigen, beispielsweise, wie wir neue Entwickler darin schulen, den Code der vorherigen Generation zu übernehmen. Wenn Sie Code schreiben, denken Sie nicht immer darüber nach. Tatsächlich entscheiden sich viele Programmierer dafür, nicht einmal darüber nachzudenken, wie andere sich dem Code 5 oder 10 Jahre nach ihrem Tod nähern möchten. Ein Coding-Style-Guide ist eine Möglichkeit für ein Unternehmen, sich auf diese 5- und 10-Jahres-Ziele zu konzentrieren, um Entwicklern die Arbeit im größeren Rahmen zu erleichtern.
Andererseits sind Coding-Style-Guides notorisch unvollkommen, da es nicht möglich ist, einen perfekten Coding-Style zu entwickeln und aufzuschreiben. Tatsächlich stoßen Sie auf lustige Eckfälle, in denen mathematische Beweise allmählich scheitern, wenn Sie versuchen, sie zu perfektionieren. Wir wissen also, dass die Coding-Style-Guides nicht perfekt sind. Sie konzentrieren sich möglicherweise nicht perfekt auf das, was wir 5 bis 10 Jahre später brauchen.
Wenn wir einen Codierungsstil "erzwingen" würden, würden wir später Wert für Wert opfern. Dies würde als "Investition" bezeichnet, wenn wir sicher sein könnten, dass sich unsere Bemühungen auszahlen, aber jeder Entwickler, der mit einem schlecht geschriebenen Programmierstil-Leitfaden gearbeitet hat, kann bezeugen, dass diese "Lesbarkeits" -Vorteile teuer bezahlt werden, wenn er die Entwickler ablenkt weg von ihrem Code. Nach meiner Erfahrung gibt es nur eine sehr kleine Anzahl von Fällen, in denen erzwungene Codierungsstile von Nutzen sind, typischerweise bei Software für Kunden mit einmaliger Gletscherwirkung, bei denen Software 30 oder 40 Jahre lang verwendet werden kann!
Stattdessen empfinde ich es als am effektivsten, einen Coding-Style-Guide als Manifest zu behandeln: "Wir glauben, dass dies der beste Coding-Style für unsere Gruppe ist." Es ist ein Bündel flüssiger Gedanken, die in Worten dokumentiert sind. Das Wort "glauben" ist wichtig: Wenn sich die Überzeugungen ändern, sollten sich auch die Codierungsstilrichtlinien ändern.
Hier kommen Ihre "starken persönlichen Einwände" ins Spiel. In einer "perfekten" Welt schreiben Sie den Code, den Sie für am besten halten, und Sie leben mit den Konsequenzen. Wir übersehen oft die "weichen" Konsequenzen, wenn wir programmieren, aber in diesem Fall sind sie wichtig. Ich habe kein Problem damit, dass Sie in Ihrem eigenen Stil schreiben, wenn es Ihnen nichts ausmacht, dass ich Ihnen nie etwas Wichtiges und Langlebiges gebe, um mich zu entwickeln.
Stellen Sie sich das ganze System wie einen Golfplatz vor. Der Codierungsstil ebnet den einfachen Weg den Fairway hinunter. Wenn Sie sich an den Kodierungsstandard halten, stellen wir sicher, dass das Leben so einfach wie möglich ist. Je weiter Sie sich mit Ihren eigenen Codierungsstandards auf die Probe stellen, desto mehr müssen Sie dem Team Ihren Wert beweisen.
Wenn ich am Montagmorgen komme und feststelle, dass Sie das ganze Wochenende damit verbracht haben, ein Problem zu lösen, über das wir uns ein Jahr lang geärgert haben, und das Sie in Ihrem eigenen "speziellen" Codierungsstandard getan haben, werde ich Ihnen das nicht sagen repariere es. Ich werde dir sagen, du sollst duschen gehen. Wenn Ihr "spezieller" Codierungsstandard ausnahmsweise "speziell" ist, kann ich sogar einem Einsteiger vorschlagen, den Code zu "überprüfen", um das Wissen darüber zu verbreiten, wie Ihr Code funktioniert, und beiläufig zu erwähnen, dass er / sie dies tun sollte, wenn etwas schwer lesbar erscheint Räume es auf. Sie haben dem Unternehmen an diesem Wochenende so viel Wert gegeben, dass Sie nicht einmal die ungeheuren Verstöße gegen die Codierungsstandards erwähnen sollten, die Sie begangen haben.
In dieser Golfmetapher gibt es natürlich keine Grenzen. Wenn ich Sie auffordere, eine einfache Aufgabe zu erledigen, vielleicht neue Felder zu einem Formular hinzuzufügen, und Sie beschließen, die Gelegenheit zu nutzen, den gesamten Formular-Ausfüll-Code mit einer Reihe von schattigen Zeichen wie Define-Makros an Ihren Stil anzupassen und einige schreckliche Template-Meta-Programmiertechniken, die Sie gerade aus dem Stapelaustausch gelernt haben, werden Sie gebeten, zurück zu gehen und sie zu reparieren. Sie haben sich entschieden zu handeln, das sind die Konsequenzen.
( Haftungsausschluss: Ich habe diese Implementierung für is_base_of
das Lösen einer einfachen Aufgabe vollständig geschrieben und mir jedes bisschen Hölle verdient, das ich dafür von den leitenden Entwicklern bekommen habe. Ich sage, es hat sich gelohnt. Ich bekomme immer noch jedes Mal eine fröhliche Lachblase, wenn ich Blick auf , wie das Muster Keile wie 7 unabhängige Teile der C ++ Spezifikation zusammen etwas Erstaunliches zu tun. Nehmen Sie das, Sie Senior Entwickler! das ist , was Sie für das Verbot bekommen boost
an diesem Projekt! )