Ich habe einen starken Java / Groovy-Hintergrund und wurde einem Team zugewiesen, das eine ziemlich große C-Codebasis für eine Verwaltungssoftware unterhält.
Einige Probleme, wie das Behandeln von Blobs in der Datenbank oder das Generieren von Berichten in PDF und Excel, wurden in den Java-Webdienst ausgelagert.
Als Java-Entwickler bin ich jedoch ein bisschen verwirrt über einige Aspekte des Codes:
- es ist wortreich
- Es gibt viele große Methoden (Methode mit mehr als 2000 Zeilen)
- Es gibt keine fortgeschrittenen Datenstrukturen (ich vermisse List, Set und Map sehr)
- keine Trennung von Bedenken (SQL wird fröhlich rund um den Code gemischt)
Infolgedessen habe ich das Gefühl, dass das Geschäft in Tonnen von technischem Code verborgen ist und mein Gehirn, das mit objektorientierter und einer Prise funktionaler Programmierung geformt wurde, sich nicht wohl fühlt.
Die gute Seite des Projekts ist, dass der Code einfach ist: Es gibt kein Framework, keine Manipulation des Bytecodes zur Laufzeit, kein AOP. Und der Server kann gleichzeitig über 10.000 Benutzern mit einer einzigen Maschine antworten, indem er weniger Arbeitsspeicher benötigt, als Java zum Spucken von "Hallo Welt" benötigt.
Ich möchte lernen, wie man C-Code entsprechend den allgemein anerkannten modernen Prinzipien schreibt. Gibt es allgemein anerkannte Prinzipien, wie modernes C geschrieben und strukturiert werden sollte?
Etwas wie das Äquivalent des Buches 'Effective Java', aber für C.
Bearbeiten Sie im Licht der Antworten und Kommentare:
- Ich werde versuchen, meine Denkweise an C-Code anzupassen und nicht, sie in OOP zu spiegeln.
- Ich habe begonnen, die empfohlenen Coding-Style-Guides aus dem Kommentar (The GNU Coding Standards und The Linux Kernel Coding Style) zu lesen.
- Ich werde dann versuchen, meinen Mitarbeitern diesen Codestil vorzuschlagen. Der schwierigste Teil könnte darin bestehen, die Mitarbeiter davon zu überzeugen, dass eine große Methode in kleinere Teile aufgeteilt werden kann und dass die Wiederholung derselben vier Zeilen Fehlerbehandlungscode mithilfe einer Methode vermieden werden kann.