Mein persönlicher Coding Style Horror

Seit ich bei meinem neuem Arbeitgeber tätig bin, refactore ich viel Code von meinem Vorgänger. Er hat leider nur sehr funktionell gedacht, selbe Funktionen mehrfach implementiert anstatt ordentliche Überladungen oder ähnliches zu nutzen und sich leider auch nicht an vorgegebene Coding Styles gehalten. Mittlerweile habe ich hier schon sehr viel Zeit investiert, finde jedoch immer wieder Stellen, bei denen ich einfach nur die Hände über den Kopf zusammenschlagen kann. Einige Dinge passieren mir auch gerne mal, was ich dann aber doch viel schlimmer finde, ist die Tatsache, dass es andere Kollegen kopieren, den Variablennamen ändern und sich den Mist nicht einmal anschauen. Und sich so natürlich Fehler einschleichen können, welche sich durch die ganze Anwendung ziehen. Und das bereits seit einigen produktiven Versionen. Hier mal ein paar fiktive Beispiele:

if(!string.IsNullOrEmpty(groupName) && (groupName != "Wert1" || groupName != "Wert2")) { .. }

So eine Code-Stelle war bereits seit 2 1/2 Jahren implementiert. Die if-Bedingung ist immer wahr, sobald groupName gesetzt ist. Die hinteren beiden Bedingungen waren total sinnfrei. Glück im Unglück, in der if-Bedingung wurde zufällig noch mal gefiltert, so dass es hinhaute.
Oder das hier:

public bool MyProperty {
    get { 
         bool myProperty = MethodeSowieso(..);
         return myProperty;
    }
}

Warum erst in eine Variable packen?

if(irgendeineTrueFalseBedingung) {
      return true;
}
else {
       return false;
}

Brauch ich ja nicht weiter zu erläutern oder?
Einen kleinen Trieb bekomme ich persönlich beim Klammern. Nehmen wir noch mal das Beispiel von ganz oben, diesmal korrekt aber ohne Klammern:

if(!string.IsNullOrEmpty(groupName) && groupName == "Wert1" || groupName == "Wert2") { .. }

Ich muss erstmal genau Nachdenken, um zu sagen, bei welchen Werten die Bedingung erfüllt ist. Mit zwei Klammern wird dieses Problem sofort gelöst und man kann es als Entwickler nicht mal falsch interpretieren. Ein anderer Kollege klammert auch gern zu viel:

return (variable);

Es stört meiner Meinung nach nur beim Lesen und Sinn erkenne ich hier absolut nicht.

Ich erwarte ja keinen perfekten Code, sicherlich habe ich auch einige Coding Styles an mir, welche andere zum Würgen bringen. Aber ist es zu viel verlangt, zwei mal darüber nachzudenken, was man grade programmiert hat? Und das es auch andere verstehen müssen?

JM2C

Aufklärung mal anders

Vor kurzem wurden bei uns im Unternehmen Drucker an die Mitarbeiter verkauft. Nun kam heute morgen eine Kollegin mit einem SCSI-Kabel und fragte, ob es denn einen Adapter für SCSI auf USB gäbe.
Erstmal habe ich wie ein Auto geschaut und mich dann erkundigt, warum sie denn das bräuchte. Sie sagte mir, dass sie den Drucker ja nur so anschließen könne, aber der topaktuelle Laptop vom Sohnemann habe halt nur einen USB Anschluss.

Kurze Aufklärung, welches Kabel sie benötigt (USB-A auf USB-B) und wo sie die anschließt. Sie war sehr erstaunt. Als Rache für die morgendliche Störung (kleiner Scherz natürlich) erzählte ich ihr von der Netzwerkschnittstelle, damit alle Rechner zuhause drucken können 😉

Lüfter kaputt? No Problem!!

Was, auf der Platine ist der zweite Lüfter ausgefallen? Wollen ja nicht das die Kiste durchbrennt.
Also kommt unser Administrator vorm Herrn und zeigt was er so alles kann.

(das in dem kleinen Pappkarton ein extra für diesen Fall vorher bestellter Ersatzlüfter liegt, muss ich nicht erwähnen)

Lüfter 1 Lüfter 2 Lüfter 3 Lüfter 4

Ach übrigends der selbe Kollege mit dem F(S)-1010. Lacher wars wert..

Internet geht nicht

Grad mitgehört bei meinem Kollegen der mit seiner Frau telefoniert:

Internet geht nicht? Starte mal den Router neu, und wenn dann nicht Lämpchen sowieso leuchtet, meld dich noch mal! Der sollte sich automatisch verbinden

2 Sekunden später klingelt wieder das Telefon:

Internet geht immer noch nicht? Leuchtet denn das Lämpchen an deinem Laptop? Was? Dann mach den Laptop mal an!

Da war dann vorbei!!!!