Clean Code Developer

Clean Code Developer

Posts 1-1 of 1
  • Carsten von Olnhausen
    Carsten von Olnhausen    Premium Member
    The company name is only visible to registered members.
    About me,
    Hallo Kollegen,

    seit nun mehr über zwanzig Jahren programmiere ich jetzt. Ich war in ein paar Teams, habe viel gelernt und meine Philosophie gefunden. Sauberer strukturierter Code der nachvollziehbar und über Jahre wartbar ist, ist etwas das mir in den letzten Jahren gerade im .net Bereich erheblich das Leben erleichtert hat.

    Von dem Clean Code Buch habe ich jetzt erst gelesen und habe mir das Buch eben bestellt. Ich bin neugierig welche Ideen sich darin finden.

    Meine Erfahrung ist leider aus Sicht der Entwicklungsleitung bzw. der kaufmännischen Leitung und Führung leider oft eine andere. Wenn man erste Anwendungsbestandteile implementiert, getestet und am Laufen hat, waren die Grundlagen meist gelegt und man durfte den Code nicht mehr großartig verbessern. Für einen leidenschaftlichen Entwickler wie mich kein schöner Zustand. Aber betriebswirtschaftlich leider oft zu verstehen. Die Argumentation neue weitere Features sind wichtiger, als den vorhandenen, ja laufenden und funktionierenden Code zu verbessern, habe ich regelmäßig gehört.

    Gerade in ASP.net Umfeld in dem ich die letzten Jahre überwiegend tätig war, entwickelt man sich immer weiter und findet bessere elegantere Möglichkeiten. Ich war immer wieder mit Anforderungen konfrontiert, die nicht fürs Web gemacht waren und daher besondere Lösungen Erforderten. Nicht das ich damit nicht sehr positiv gefordert war, ganz im Gegenteil. Immer wieder dasselbe zu entwickeln ist keine echte Aufgabe für mich. Standard Aufgaben umsetzten kann heute jeder mit ein wenig Verstand und Ausbildung.

    Wie sagte mein Bruder einmal so schön, die wirklichen guten Entwickler sind selten. Entwickler wie mich, welche diesen Job als Berufung sehen und darin aufgehen, wären eher die Ausnahme. Ob man nur gut darin ist, muss man primär erst mal selbst beurteilen. Man ist entweder ganz Softwareentwickler oder gar nicht, es ist nicht nur ein Job. Leider habe ich in den letzten Jahren auch Kollegen erlebt, die von 8 – 17 Uhr diesen Job machen, weil man da gut und locker Geld mit verdient, studiert hat man das ganze deswegen. Aber Herz und Seele einer Maschine und der Programme welche diese am Laufen halten, spielten da keine Rolle. Nicht meine Welt, meine Hochschule war das Leben, training on the job, verdammt viele Nächte in denen man sich das beibrachte, was man aktuelle brauchte und was einen einfach faszinierte oder interessierte. Wer in diesem Job der Meinung ist, das Lernen und Weiterentwickeln wäre vorbei, ist meiner Meinung nach, nicht der Richtige für diesen Job. Ich bin neugierig auf die kommenden Jahre, wie sich die Welt der Software und deren Entwicklung weiter entwickeln wird!

    Was meine ganz private Softwareentwicklung angeht, kann ich anders agieren. Hier gelten meine Werte und Qualitätsansprüche. Die Code Basis meiner gesammelten .net Werke ist nun über 8 Jahre alt. Gute Ansätze die teilweise meiner Definition von Clean Code entsprechen. Nicht alles ist wirklich Clean, denn auch hier ist eine Basis über die Jahre gewachsen, welche man einfach nicht in ein paar Wochen neu implementieren kann. Hier sehe ich selbst den kaufmännischen Aspekt, es würde die Entwicklung unnötig ausbremsen, wenn man vieles zwangsweise neu (clean) implementieren müsste. Ein über Jahre gewachsenes System, (z.B. eigener MS-SQL OR-Mapper mit Code Generator) ist einfach die Basis von zu vielen Anwendungen und Tools die ich entwickelt habe. Ohne meine Werkzeuge könnte ich nicht dermaßen schnell und effektiv entwickeln. Die Bereiche, welche im Lauf der Jahre den Anforderungen nicht mehr gerecht wurden, überarbeite (cleane) ich bei Bedarf. Eine immer währende Aufgabe, denn man lernt neues und bekommt neue Funktionen mit jedem neuen Framework. By the Way, endlich habe ich meine Default Parameter wieder, das war einer der absoluten Kritikpunkt am C#. Warum man diese simple und Geniale Technik des C++ nicht direkt implementiert hatte, werde ich wohl nie verstehen. Die zwangsweisen params Workarounds durch Default Parameter zu ersetzen ist zwar nur ein minimalstes Refactoring, aber mir wichtig.

    In den letzten 3 Monaten hatte ich die Gelegenheit auf Basis dieser Technologien eine komplett neueASP.net Web-Anwendung aufzusetzen, welche alle Erkenntnisse der vergangen Jahre zusammenfasste und den nächsten Evolutionsschritt darstellt. Wieder konnte ich weitere Ideen und Techniken testen und implementieren. Was mir an den vergangenen Entwicklungen nicht gefallen hatte, war hier primär der Fokus. Nebenbei entwickelt sich aus dieser Arbeitsprobe ein interessantes Produkt. Die Erfahrung sich auf gar keinen Fall auf zugekaufte Controls zu verlassen habe ich hier ebenfalls umgesetzt. Bei meinen eigenen Controls bin ich Herr über den Quellcode. Anpassbar, wartbar und vor allem nicht mit dem nächsten Browser Version ein Projekt Stopper. Ganz zu schweigen davon, dass die Anforderung schlanken html Code zu erzeugen, von mir umgesetzt werden konnte.

    Es mag viele unglaublich (fette) leistungsfähig Controls geben, die unglaubliche Funktionalitäten gerade im Web-Bereich bieten. Aber meine Erfahrung mit den zugekauften Monstern sind nicht immer positiv gewesen. Gerade im letzten großen Projekt war es passiert, dass man Infragistics Controls unbedingt verwendet haben wollte. Das nun Infragistics die Controls welche fast jede Seite verwendete, einfach sterben lies, anstelle sie im IE 9 zum Laufen zu bringen, war einmal wieder die Bestätigung, eigene Controls sind nicht so schick, länger zu entwickeln, aber eben zukunftssicherer. Leider fehlt die Erfahrung, dass man Produkte erheblich länger als vermutet pflegen, warten und am Laufen halten muss dem einen oder anderen.

    Meine Begeisterung für diese Weiterentwicklung ist ungebrochen. Ich finde es sehr spannend, etwas zu schaffen, das anfängt meinen Ansprüchen zu genügen. Wenn man unglaublich schnell eine Anwendung umgesetzt bekommt, kann die Basis heute nur .net sein. Wenn ich an meine alten Tage unter C / C++ denke, auch spannendes Codieren, aber Verglichen mit den Möglichkeiten des .net leider zu aufwendig. Was man heute mit .net alleine umsetzen kann, brauchte damals ein Team von 5 -10 Mann, je nach Aufgabe.

    Das ich damals Ende 2003 gezwungen wurde vom C / C++ zum .net und C# zu wechseln klingt heute fast lustig. Danke Boss, eine gute Entscheidung :)

    Carsten von Olnhausen, leidenschaftlicher Softwareentwickler