Als ich diese Frage stellte, bekam ich fast immer ein klares Ja, Sie sollten Codierungsstandards haben.
Was war die seltsamste Codierungsstandardregel, der Sie jemals folgen mussten?
Und mit seltsamste meine ich lustigste oder schlimmste oder einfach nur seltsam.
Bitte geben Sie in jeder Antwort an, welche Sprache, wie groß Ihr Team war und welche negativen Auswirkungen dies auf Sie und Ihr Team hatte.
coding-style
Brian R. Bondy
quelle
quelle
Antworten:
Ich hasse es, wenn die Verwendung mehrerer Rückgaben verboten ist.
quelle
umgekehrte Einrückung. Beispielsweise:
und:
quelle
Vielleicht nicht die ausgefallenste, die Sie bekommen werden, aber ich hasse es wirklich sehr, wenn ich Datenbanktabellennamen mit 'tbl' voranstellen muss.
quelle
Fast jede Art von ungarischer Notation.
Das Problem mit der ungarischen Notation ist, dass sie sehr oft missverstanden wird. Die ursprüngliche Idee war, der Variablen ein Präfix zu setzen, damit die Bedeutung klar war. Beispielsweise:
Aber die meisten Leute benutzen es, um den Typ zu bestimmen.
Das ist verwirrend, denn obwohl beide Zahlen ganze Zahlen sind, weiß man, kann man Äpfel nicht mit Birnen vergleichen.
quelle
Kein ternärer Operator erlaubt, wo ich gerade arbeite:
... weil nicht jeder "es versteht". Wenn Sie mir sagten: "Verwenden Sie es nicht, weil wir sie neu schreiben mussten, wenn die Strukturen zu kompliziert werden" (verschachtelte ternäre Operatoren, irgendjemand?), Dann würde ich verstehen. Aber wenn Sie mir sagen, dass einige Entwickler sie nicht verstehen ... ähm ... Sicher.
quelle
NIEMALS Code entfernen, wenn Änderungen vorgenommen werden. Wir wurden aufgefordert, alle Änderungen zu kommentieren. Denken Sie daran, dass wir die Quellcodeverwaltung verwenden. Diese Richtlinie hielt nicht lange an, da die Entwickler darüber in Aufruhr waren und wie sie den Code unlesbar machen würden.
quelle
Ich habe einmal unter der Tyrannei des Mighty VB King gearbeitet .
Der VB King war der reine Meister von MS Excel und VBA sowie von Datenbanken ( daher sein Nachname: Er spielte mit Excel, während die Entwickler mit Compilern arbeiteten, und das Herausfordern von Datenbanken konnte sich nachteilig auf Ihre Karriere auswirken ... ).
Seine immensen Fähigkeiten gaben ihm natürlich eine einzigartige Vision von Entwicklungsproblemen und Projektmanagementlösungen: Der VB King war zwar nicht genau im engeren Sinne codierend, hatte aber regelmäßig neue Ideen zu "Codierungsstandards" und "Best Practices", die er ausprobierte (und oft gelungen), uns aufzuzwingen. Beispielsweise:
Alle C / C ++ - Arrays beginnen bei Index 1 anstelle von 0. Tatsächlich ist die Verwendung von 0 als erster Index eines Arrays veraltet und wurde durch die aufschlussreiche Array-Indexverwaltung von Visual Basic 6 ersetzt.
Alle Funktionen müssen einen Fehlercode zurückgeben: In VB6 gibt es keine Ausnahmen. Warum sollten wir sie überhaupt benötigen? ( dh in C ++ )
Da "Alle Funktionen müssen einen Fehlercode zurückgeben" für Funktionen, die aussagekräftige Typen zurückgeben, nicht praktikabel ist, müssen alle Funktionen einen Fehlercode als ersten [In / Out] -Parameter haben.
Unser gesamter Code überprüft die Fehlercodes ( dies führte zum schlimmsten Fall von VBScript-Einrückungen, die ich jemals in meiner Karriere gesehen habe ... Da die "else" -Klauseln nie behandelt wurden, wurde natürlich erst zu spät ein Fehler gefunden ).
Da wir ab diesem Tag mit C ++ / COM arbeiten, werden wir alle unsere DOM-Dienstprogrammfunktionen in Visual Basic codieren.
ASP 115-Fehler sind böse. Aus diesem Grund verwenden wir On Error Resume Next in unserem VBScript / ASP-Code, um sie zu vermeiden.
XSL-T ist eine objektorientierte Sprache. Verwenden Sie Vererbung, um Ihre Probleme zu lösen ( dumme Überraschung hat mir eines Tages fast den Kiefer aufgebrochen ).
Ausnahmen werden nicht verwendet und sollten daher entfernt werden. Aus diesem Grund werden wir das Kontrollkästchen deaktivieren und nach einem Destruktoraufruf fragen, falls die Ausnahme abgewickelt wird ( es dauerte Tage, bis ein Experte die Ursache für all diese Speicherlecks gefunden hatte, und er wurde fast wütend, als er herausfand, dass sie bereitwillig ignoriert wurden (und) versteckt) sein technischer Hinweis zur erneuten Überprüfung der Option, der einige Wochen zuvor gesendet wurde ).
Fangen Sie alle Ausnahmen in der COM-Schnittstelle unserer COM-Module ab und entsorgen Sie sie stillschweigend (auf diese Weise scheint ein Modul nicht abzustürzen, sondern nur schneller zu sein ... Glänzend! ... Da wir die oben beschriebene Über-Fehlerbehandlung verwendet haben, Wir haben sogar einige Zeit gebraucht, um zu verstehen, was wirklich geschah ... Sie können nicht sowohl Geschwindigkeit als auch korrekte Ergebnisse erzielen, oder? ).
Ab heute wird unsere Codebasis in vier Zweige aufgeteilt. Wir werden ihre Synchronisation verwalten und alle Fehlerkorrekturen / -entwicklungen von Hand integrieren.
Alle außer den C / C ++ - Arrays , den VB DOM-Dienstprogrammfunktionen und XSL-T als OOP-Sprache wurden trotz unserer Proteste implementiert. Natürlich wurden im Laufe der Zeit einige entdeckt, ähm , gebrochen und ganz aufgegeben.
Natürlich hat die Glaubwürdigkeit des VB-Königs nie darunter gelitten: Im höheren Management blieb er ein technischer Experte der "Top Gun" ...
Dies führte zu einigen amüsanten Nebenwirkungen, wie Sie sehen können, wenn Sie dem Link folgen.
Was ist der beste Kommentar im Quellcode, auf den Sie jemals gestoßen sind?quelle
In den 80ern / 90ern arbeitete ich für eine Flugzeugsimulatorfirma, die FORTRAN verwendete. Unser FORTRAN-Compiler hatte ein Limit von 8 Zeichen für Variablennamen. Die Codierungsstandards des Unternehmens reservierten die ersten drei für Informationen zum ungarischen Notationsstil. Also mussten wir versuchen, aussagekräftige Variablennamen mit nur 5 Zeichen zu erstellen!
quelle
Ich habe an einem Ort gearbeitet, an dem zwei Unternehmen fusionierten. Der "dominante" hatte einen großen Server in K & R C (dh vor ANSI) geschrieben. Sie zwangen die Java-Teams (aus beiden Büros - wahrscheinlich insgesamt 20 Entwickler), dieses Format zu verwenden, das die beiden Säulen der "Klammerdebatte" freudig ignorierte und direkt verrückt wurde:
quelle
Verboten:
Erlaubt:
quelle
for (;;) {
zum ersten Mal ein C-Idiom ist.Ein Freund von mir - wir nennen ihn CodeMonkey - hat seinen ersten Job am College [vor vielen Jahren] mit der internen Entwicklung in COBOL bekommen. Sein erstes Programm wurde als "nicht unseren Standards entsprechend" abgelehnt, weil es ... [Schauder!] Verschachtelte IF-Anweisungen verwendete
Die Kodierungsstandards untersagten die Verwendung verschachtelter IF-Anweisungen
Jetzt war CodeMonkey nicht schüchtern und war sich seiner Fähigkeiten sicher. Deshalb bestand er darauf, alle an der Kette und im Gang zu fragen, warum diese Regel existierte. Die meisten behaupteten, sie wüssten es nicht, einige erfanden Dinge über 'Lesbarkeit', und schließlich erinnerte sich eine Person an den ursprünglichen Grund: Die erste Version des von ihnen verwendeten COBOL-Compilers hatte einen Fehler und behandelte verschachtelte IF-Anweisungen nicht richtig.
Dieser Compiler-Fehler war natürlich seit mindestens einem Jahrzehnt behoben, aber niemand hatte die Standards in Frage gestellt . [baaa!]
CodeMonkey war erfolgreich darin, die Standards zu ändern - schließlich!
quelle
Einmal an einem Projekt gearbeitet, bei dem Unterstriche verboten wurden. Und ich meine total verboten. Wenn wir in der ac # winforms-App einen neuen Ereignishandler hinzufügen (z. B. für eine Schaltfläche), müssen wir den Standardmethodennamen von buttonName_Click () in etwas anderes umbenennen, um das Ego desjenigen zu befriedigen, der die Codierung geschrieben hat Standards. Bis heute weiß ich nicht, was er gegen den bescheidenen Unterstrich hatte
quelle
Völlig nutzlose Namenskonventionen für Datenbanken. Jeder Tabellenname muss mit einer Nummer beginnen. Die Zahlen zeigen, welche Art von Daten in der Tabelle enthalten sind.
Dies macht es schwierig, eine Tabelle zu finden, wenn Sie nur den ersten Buchstaben ihres Namens kennen. Da es sich um eine MSSQL-Datenbank handelt, müssen wir Tabellennamen überall mit eckigen Klammern umgeben.
quelle
Wir machten ein C ++ - Projekt und der Teamleiter war ein Pascal-Typ.
Wir hatten also eine Codierungsstandard-Include-Datei, um all diese lästigen C- und C ++ - Syntax neu zu definieren:
aber warte, es gibt noch mehr!
usw. Nach all dieser Zeit ist es schwer, sich zu erinnern.
Dies nahm den perfekt lesbaren C ++ - Code und machte ihn für niemanden außer dem Teamleiter unleserlich.
Wir mussten auch die umgekehrte ungarische Notation verwenden, dh
obwohl mir das seltsamerweise gefallen hat.
quelle
Bei einem früheren Job:
Ja, das ist richtig. Alle Felder in jeder einzelnen Tabelle. Damit wir erkennen können, dass es sich um ein Feld handelt.
quelle
Ein Kumpel von mir ist auf diese Regel gestoßen, als er in einem Regierungsjob arbeitete. Die Verwendung von ++ (vor oder nach) wurde vollständig verboten. Der Grund: Verschiedene Compiler können es unterschiedlich interpretieren.
quelle
=
wie es verwendet werden kann, um undefiniertes Verhalten zu verursachen.Die Hälfte des Teams befürwortete die Einrückung mit vier Feldern. Die andere Hälfte befürwortete eine Einrückung mit zwei Leerzeichen.
Wie Sie sich vorstellen können, hat der Codierungsstandard drei vorgeschrieben, um "alle gleichermaßen zu beleidigen" (ein direktes Zitat).
quelle
Reflection nicht verwenden zu können, da der Manager behauptete, es sei zu viel "Magie".
quelle
Das seltsamste, das ich hatte und das mich einige Zeit zum Sturz gekostet hat, war, als der Eigentümer unseres Unternehmens verlangte, dass unser neues Produkt nur IE ist. Wenn es unter FireFox funktionieren konnte, war das in Ordnung, aber es musste nur IE sein.
Dies mag bis auf einen kleinen Fehler nicht allzu seltsam klingen. Die gesamte Software war für ein maßgeschneidertes Server-Softwarepaket gedacht, das unter Linux ausgeführt wurde, und alle Client-Boxen, die unser Kunde kaufte, waren Linux. Ohne herauszufinden, wie man Wine (damals sehr unzuverlässig) auf all diesen Boxen zum Laufen bringt und ob wir den IE zum Laufen bringen und ihre Administratoren darin schulen können, wie man Weinprobleme debuggt, war es einfach nicht möglich um die Anfrage des Besitzers zu erfüllen. Das Problem war, dass er das Webdesign machte und einfach nicht wusste, wie man Websites mit FireFox kompatibel macht.
Es wird Sie wahrscheinlich nicht schockieren zu wissen, dass unser Unternehmen bankrott gegangen ist.
quelle
Verwenden von generischen nummerierten Bezeichnernamen
Bei meiner aktuellen Arbeit haben wir zwei Regeln, die wirklich gemein sind:
Regel 1: Jedes Mal, wenn wir ein neues Feld in einer Datenbanktabelle erstellen, müssen wir zusätzliche Reservefelder für die zukünftige Verwendung hinzufügen. Diese Reservefelder sind nummeriert (da niemand weiß, welche Daten sie eines Tages enthalten werden). Wenn wir das nächste Mal ein neues Feld benötigen, suchen wir zuerst nach einem nicht verwendeten Reservefeld.
Am Ende
customer.reserve_field_14
enthalten wir also die E-Mail-Adresse des Kunden.Eines Tages dachte unser Chef darüber nach, Reservetische einzuführen , aber glücklicherweise konnten wir ihn davon überzeugen, es nicht zu tun.
Regel 2: Eines unserer Produkte ist in VB6 geschrieben und VB6 hat ein Limit für die Gesamtzahl der verschiedenen Bezeichnernamen. Da der Code sehr groß ist, stoßen wir ständig auf dieses Limit. Als "Lösung" sind alle lokalen Variablennamen nummeriert:
Lvarlong1
Lvarlong2
Lvarstr1
Obwohl dies die Bezeichnergrenze effektiv umgeht, führen diese beiden Regeln zusammen zu einem schönen Code wie diesem:
Sie können sich vorstellen, wie schwierig es ist, alten oder fremden Code zu reparieren ...
Letztes Update: Jetzt verwenden wir auch "Reserveverfahren" für private Mitglieder:
EDIT: Es scheint, dass dieses Codemuster immer beliebter wird. Weitere Informationen finden Sie in diesem täglichen WTF- Beitrag: Astigmatismus :)
quelle
In meinen C ++ - Tagen durften wir ==,> =, <=, && usw. nicht verwenden. Es gab Makros dafür ...
dies war offensichtlich mit der „alten zufälligen Zuordnung in bedingten Fehler“, aber wir beschäftigen auch hatte die Regel „setzen Konstanten vor Variablen“, so
Ich erinnere mich nur, dass der einfachste Codierungsstandard, den ich je gehört habe, "Code schreiben, als ob der nächste Betreuer ein bösartiger Psychopath ist, der weiß, wo Sie leben."
quelle
Ungarische Notation im Allgemeinen.
quelle
Ich hatte viele dumme Regeln, aber nicht viele, die ich für geradezu seltsam hielt.
Das albernste war ein NASA-Job, an dem ich Anfang der 90er Jahre gearbeitet habe. Dies war ein riesiger Job mit weit über 100 Entwicklern. Die erfahrenen Entwickler, die die Codierungsstandards geschrieben haben, entschieden, dass jede Quelldatei mit einem Akronym aus vier Buchstaben beginnen sollte und der erste Buchstabe für die Gruppe stehen musste, die für die Datei verantwortlich war. Dies war wahrscheinlich eine großartige Idee für die alten FORTRAN 77-Projekte, an die sie gewöhnt waren.
Dies war jedoch ein Ada- Projekt mit einer schönen hierarchischen Bibliotheksstruktur, sodass es überhaupt keinen Sinn ergab . Jedes Verzeichnis war voll von Dateien, die mit demselben Buchstaben begannen, gefolgt von drei weiteren Unsinnbuchstaben, einem Unterstrich und einem Teil des Dateinamens, der wichtig war. Alle Ada-Pakete mussten mit derselben Warze mit fünf Zeichen beginnen. Ada „Verwendung“ Klauseln wurden entweder nicht erlaubt (wohl eine gute Sache , die unter normalen Umständen), so dass alle Verweise auf die Kennung gemeint , die nicht lokal auf diese Quelldatei war auch diese nutzlose Warze hatte aufzunehmen. Es hätte wahrscheinlich einen Aufstand darüber geben sollen, aber das gesamte Projekt wurde von Junior-Programmierern besetzt und frisch vom College eingestellt (ich selbst bin letzterer).
Eine typische Zuweisungsanweisung (in Ada bereits ausführlich) würde am Ende ungefähr so aussehen:
Zum Glück waren sie zumindest so aufgeklärt, dass wir mehr als 80 Spalten haben konnten! Trotzdem wurde die Warze der Einrichtung so gehasst, dass sie zu einem Code auf der Oberseite aller Quelldateien wurde, um Ada-Umbenennungen zu verwenden, um die Warze loszuwerden. Für jedes importierte ("withed") Paket gibt es eine Umbenennung. So was:
Was die kreativeren unter uns nahm zu tun versucht , zu verwenden , die Warze einen acutally sinnvoll (oder dumm) Paketnamen zu machen. (Ich weiß, was Sie denken, aber Sprengsätze waren nicht erlaubt und schämen Sie! Das ist widerlich). Zum Beispiel war ich in der C ommon Codegruppe, und ich brauchte ein Paket an Schnittstelle mit dem machen , W o rkstation Gruppe. Nach einer Brainstorming-Sitzung mit dem Workstation-Mitarbeiter haben wir beschlossen, unsere Pakete so zu benennen, dass jemand, der beide benötigt, schreiben muss:
quelle
Als ich an einem Ort anfing zu arbeiten und meinen Code in die Quellcodeverwaltung eingab, kam mein Chef plötzlich auf mich zu und bat mich, nicht mehr so viel zu tun. Er sagte mir, es sei nicht ratsam, mehr als 1 Commit pro Tag für einen Entwickler durchzuführen, da dies die Quellcodeverwaltung beeinträchtigt. Ich starrte ihn einfach an ...
Später verstand ich, dass der Grund, warum er überhaupt auf mich zukam, darin bestand, dass der SVN-Server ihm (und 10 weiteren Führungskräften) für jedes Commit, das jemand macht, eine E-Mail schickte. Und indem er die Quellcodeverwaltung verschmutzte, vermutete er, dass er seine Mailbox erwähnte.
quelle
Alle Datenbankabfragen über gespeicherte Prozeduren in SQL Server 2000 ausführen. Von komplexen Abfragen mit mehreren Tabellen bis zu einfachen Abfragen wie:
select id, name from people
Die Argumente für Verfahren waren:
Ich weiß, dass das Verfahrensthema ziemlich kontrovers ist, also zögern Sie nicht, meine Antwort negativ zu bewerten;)
quelle
Pro 1000 Codezeilen müssen 165 Unit-Tests (nicht unbedingt automatisiert) vorhanden sein. Das klappt bei einem Test für ungefähr alle 8 Zeilen.
Es ist unnötig zu erwähnen, dass einige Codezeilen ziemlich lang sind und Funktionen diese Zeiger zurückgeben, um eine Verkettung zu ermöglichen.
quelle
function(x).should == 2
einen einzelnen Test betrachten, während andere 10 davon zusammenfassen und es einen einzelnen Test nennen würden.Wir mussten alle Funktionen in Klassen alphabetisch sortieren, um sie "leichter zu finden" zu machen. Egal, die Idee hatte einen Dropdown. Das waren zu viele Klicks.
(Der gleiche technische Leiter hat eine App geschrieben, um alle Kommentare aus unserem Quellcode zu entfernen.)
quelle
Ungefähr 1987 nahm ich eine Stelle bei einer Firma an, die mich anstellte, weil ich einer von wenigen Leuten war, die wussten, wie man Offenbarung einsetzt. Offenbarung, wenn Sie noch nie davon gehört haben, war im Wesentlichen eine PC-basierte Implementierung des Pick-Betriebssystems - das, wenn Sie noch nie davon gehört haben, seinen Namen von seinem Erfinder, dem fabelhaften Namen Dick Pick, erhielt. Über das Pick-Betriebssystem kann viel gesagt werden, das meiste davon ist gut. Eine Reihe von Supermini-Anbietern (zumindest Prime und MIPS) verwendeten Pick oder ihre eigenen benutzerdefinierten Implementierungen davon.
Diese Firma war ein Prime-Shop und für ihre internen Systeme verwendeten sie Informationen. (Nein, das war wirklich der Name: Es war die Implementierung von Pick durch Prime.) Sie hatten einen Vertrag mit dem Staat über den Bau eines PC-basierten Systems und hatten ungefähr ein Jahr in ihr Offenbarungsprojekt investiert, bevor der Typ die ganze Arbeit erledigte. der auch ihr MIS-Direktor war, entschied, dass er nicht mehr beide Jobs machen konnte und stellte mich ein.
Auf jeden Fall hatte er eine Reihe von Codierungsstandards für ihre Prime-basierte Software festgelegt, von denen viele auf zwei Grundbedingungen beruhten: 1) die Verwendung von dummen Terminals mit 80 Spalten und 2) die Tatsache, dass Prime dies nicht tat. Ich hatte keinen visuellen Editor, er hatte seinen eigenen geschrieben. Aufgrund der magischen Portabilität von Pick-Code hatte er seinen Editor in Revelation heruntergebracht und das gesamte Projekt auf dem PC damit erstellt.
Revelation war natürlich PC-basiert, hatte einen perfekt guten Vollbild-Editor und hatte keine Einwände, als Sie an Spalte 80 vorbeikamen. In den ersten Monaten, in denen ich dort war, bestand er jedoch darauf, dass ich seinen Editor und seine Standards.
Der erste Standard war also, dass jede Codezeile kommentiert werden musste. Jede Linie. Keine Ausnahmen. Seine Begründung dafür war, dass selbst wenn Ihr Kommentar genau das sagte, was Sie gerade im Code geschrieben hatten, das Kommentieren bedeutete, dass Sie zumindest zweimal über die Zeile nachdachten. Außerdem hatte er, wie er fröhlich betonte, dem Editor einen Befehl hinzugefügt, der jede Codezeile so formatierte, dass Sie einen Zeilenende-Kommentar einfügen konnten.
Oh ja. Wenn Sie jede Codezeile kommentierten, gab es Kommentare am Zeilenende . Kurz gesagt, die ersten 64 Zeichen jeder Zeile waren für Code, dann gab es ein Semikolon, und dann hatten Sie 15 Zeichen, um zu beschreiben, was Ihre 64 Zeichen taten. Kurz gesagt, wir haben eine Assembler-Konvention verwendet, um unseren Pick / Basic-Code zu formatieren. Dies führte zu Dingen, die so aussahen:
(Eigentlich habe ich nach 20 Jahren endlich die Zeilenfortsetzungssyntax von R / Basic vergessen, so dass es vielleicht anders ausgesehen hat. Aber Sie haben die Idee.)
Wenn Sie mehrzeilige Kommentare einfügen mussten, lautete die Regel außerdem, dass Sie einen Blumenkasten verwenden:
Ja, diese schließenden Sternchen in jeder Zeile waren erforderlich. Wenn Sie seinen Editor verwendet haben, war es schließlich nur ein einfacher Editorbefehl, um einen Blumenkasten einzufügen.
Ihn zum Nachgeben zu bringen und mich den eingebauten Editor von Revelation verwenden zu lassen, war ein ziemlicher Kampf. Zuerst bestand er darauf, einfach weil das die Regeln waren. Als ich beanstandete, dass a) ich den Revelation-Editor bereits kannte, b) er wesentlich funktionaler war als sein Editor, c) andere Revelation-Entwickler die gleiche Perspektive hätten, erwiderte er, dass ich es nicht tun würde, wenn ich nicht auf seinem Editor trainieren würde jemals in der Lage sein, an der Prime-Codebasis zu arbeiten, was, wie wir beide wussten, nicht passieren würde, solange die Hölle nicht gefroren war. Schließlich gab er nach.
Aber die Kodierungsstandards waren die letzten, die gingen. Insbesondere die Kommentare zu den Blumenkästen waren eine blöde Zeitverschwendung, und er kämpfte gegen mich und sagte, dass es ganz einfach wäre, sie mit dem richtigen Editor zu pflegen. (Das Ganze wurde ziemlich passiv-aggressiv.) Schließlich gab ich leise nach und von da an hatte der gesamte Code, den ich zu Code-Reviews brachte, seine wertvollen Kommentare zu Blumenkästen.
Eines Tages, einige Monate nach Beginn des Jobs, als ich mich als mehr als kompetent erwiesen hatte (insbesondere im Vergleich zu der bemerkenswerten Parade anderer Programmierer, die durch dieses Büro gingen, während ich dort arbeitete), sah er mir über die Schulter arbeitete, und er bemerkte, dass ich keine Kommentare zu Blumenkästen verwendete. Oh, sagte ich, ich habe einen Quellcode-Formatierer geschrieben, der meine Kommentare beim Ausdrucken in Ihren Stil umwandelt. Es ist einfacher, als sie im Editor zu verwalten. Er öffnete den Mund, dachte einen Moment nach, schloss ihn, ging weg und wir sprachen nie wieder über Codierungsstandards. Danach wurden unsere beiden Jobs einfacher.
quelle
Bei meinem ersten Job hatten alle C-Programme, egal wie einfach oder komplex, nur vier Funktionen. Sie hatten die Hauptfunktion, die die anderen drei Funktionen der Reihe nach aufrief. Ich kann mich nicht an ihre Namen erinnern, aber sie waren etwas in der Art von begin (), middle () und end (). begin () öffnete Dateien und Datenbankverbindungen, end () schloss sie und middle () erledigte alles andere . Unnötig zu erwähnen, dass middle () ein sehr war lange Funktion war.
Und nur um die Dinge noch besser zu machen, mussten alle Variablen global sein.
Eine meiner stolzesten Erinnerungen an diesen Job war die allgemeine Revolte, die zur Zerstörung dieser Standards führte.
quelle
goto
.Ein extern geschriebener C-Codierungsstandard mit der Regel "Verlassen Sie sich nicht auf die Vorrangstellung des Operators, verwenden Sie immer Klammern".
Fairerweise war die offensichtliche Absicht zu verbieten:
zugunsten von:
Dies wurde durch ein Tool erzwungen, das den C-Syntaxregeln '=', '==', 'folgte.' und Array-Zugriff sind Operatoren. Also Code wie:
musste geschrieben werden als:
quelle