Clean Code Developer

Clean Code DeveloperClean Code Developer

5239 members | 593 posts | Public Group
Ralf Westphal
Hosted by:Ralf Westphal

Clean Code Development in der Diskussion

... Log in to read more

Es kostet Zeit, die Clean Code Developer Prinzipien zu beachten und die Praktiken anzuwenden. Muss das sein? Ein paar Gedanken dazu:

https://ccd-akademie.de/clean-oder-schnell/

Ich habe angefangen, an einer Einführung in die Programmierung zu basteln. Nach meiner Clean Code Buchreihe "Programming with Ease" (https://leanpub.com/u/ralfw) quasi mein Alterswerk. Ob es jemals herauskommt... Mal sehen.😁

Jedenfalls fühlt es sich von hoher Flughöhe betrachtet stimmig an, wenn ich die Vermittlung auf (zumindest) vier Ebenen teile. Es macht mir Spaß, mich so "in die Niederungen der Programmierung" zurückzuversetzen. Auch eine Form von beginner's mind🤣

Level 1 - Creating behavior: It‘s all about logic

Level 2 - Creating flow: It‘s all about functions

Level 3 - Creating order: It's all about modules

Level 4 - Creating efficiency: It's all about hosts

Es ist kein Zufall, dass das irgendwie mit zumindest drei Dimensionen des Softwareuniversums zusammenfällt (s. Bild)😉 Trotzdem stand das gar nicht am Anfang, sondern mir ist es erst hinterher aufgefallen.

Normalerweise wird Programmierung anders unterrichtet. Das, was ich hier trenne, wird sehr vermischt. Beispielsweise kommen eigene Funktionen üblicherweise sehr früh dran. Ich verschiebe sie aber bewusst ins Level 2 und konzentriere mich vorher darauf, im Grunde "alles" zu vermitteln, was nötig ist, um überhaupt Verhalten herzustellen. Dass dadurch Code womöglich unhandlich wird, nehme ich in Kauf; es ist sogar eher Feature als Bug. Dadurch steigt der Wunsch, eine Lösung zu finden.

Auf jeder Ebene ist natürlich Clean Code ein Thema. So, wie es eben möglich ist mit den Konstrukten bis dahin.

Die Sprache meiner Wahl: Typescript. Da ist alles drin, die hat Relevanz für heutige Entwickler im Frontend wie im Backend.

Was meinst du, das ich nicht vergessen darf bei einer Einführung?

Hallo Ralf, gute Idee. Aber ich finde der Begriff "Level 1-4" erinnert ein wenig an Schichten, die auf einander aufbauen. Dabei sagst Du selber, dass die Teile später in der "freien Wildbahn" eigentlich sehr gemischt vorkommen können. Wäre es da nicht besser von Teilen (also Part 1-4) zu sprechen, um gedanklich nicht in die "Schichten-Falle" zu tappen? Viele Grüße, Christof
Hm... sind Schichten hier ein unglückliches Bild? Darüber hab ich gar nicht nachgedacht. Wenn du es aber so empfindest... Ich hänge an "Level" nicht, würde es aber eher mit "Ebene" als mit "Schicht" (layer) übersetzen. Level habe ich gewählt, um anzudeuten, dass es eine Progression gibt. Wie bei einem Spiel. "Level unlocked" oder so. Es könnte unterwegs auch "achievements" geben😉 "Part" ist sehr neutral. Vllt "Season"? Darin könnte es auch "episodes" geben. Die Staffeln einer Serie können auch aufeinander aufbauen. Mit "episodes" wäre ich motiviert, den Inhalt innerhalb einer "season" nochmal kleiner zu schneiden im Rahmen einer "Story". Wie klingt das? (Bei Artikelserien benutze ich auch die Staffel als Klammer, zb hier: https://workwithease.substack.com/p/tanz-um-den-engpass-i-die-arbeit Gerade erscheint Staffel 2. Staffel 3 ist in Arbeit. Es gibt ein Oberthema - Theory of Constraints - und darin Geschichten.)

Test-first Codierung ist auch nur ein Werkzeug. Die Frage ist, wann ist der passende Zeitpunkt, es einzusetzen.

#tdd #programmieren #coding

https://ralfwestphal.substack.com/p/codieren-ohne-tests?sd=pf

Ein Traum wird wahr: Ich kann nun dasselbe Programm entweder in einem Terminal-Fenster oder in einer HTML-Seite im Browser ausführen. Die Interaktion mit dem Benutzer funktioniert in beiden Fällen gleich mit simplem writeLine() und readLine().

Ja, genau: Ein sooo einfaches UI will ich. Nicht HTML/React oder dergleichen. Nein, ganz, ganz simpel. Warum? Weil es in vielen Fällen für "kleines Tool für zwischendurch" völlig reicht. Wenn ich das nicht für die Ausführung auf dem Desktop im Terminal Fenster auf viele Rechner deployen will, sondern über einen Web-Server, dann musste ich bisher HTML-Aufwand treiben. Aber jetzt nicht mehr!

Gebastelt habe ich mir das für Typescript auf der Deno Runtime. Es ist so klein und so simpel - doch es macht mein Herz leicht. Eine Last ist mir genommen, die Last des Nachdenkens über ein Frontend.

Wofür kann das im Zusammenhang mit Clean Code Development interessant sein? Auf diese Weise kann ich leichter Teile einer Anwendung für interaktive Tests zugänglich machen. Automatisierte Tests sind schön - aber manchmal will man zügig interaktiv mit einem Programmteil umgehen. Dafür ein GUI aufzusetzen, mag nicht lohnen. Andererseits soll auch kein Deploymentaufwand entstehen. Ich finde ein Terminal-Programm, das alternativ auch im Browser laufen kann, hier eine Bereicherung. Ein weiterer Pfeil in meinem Köcher.

Hier das Github Repo dazu: https://github.com/ralfw/Typescript-Console-in-Browser

Und hier das kleine Programm aus der Abbildung: https://typescript-console-in-browser.netlify.app/guessinggame/

#frontend #html #ui #typescript

Xing folgt den Clean Code prinzipien nicht!

https://cutt.ly/ZXGz62V kostenlos anmelden und Ihre Gruppe vorschlagen

Wir werden ein eigenes Forum unter dem Dach der clean-code-developer.de Initiative anbieten. Stay tuned.
> Wir werden ein eigenes Forum unter dem Dach der clean-code-developer.de Initiative anbieten. Stay tuned. Ok, aber mein Vorschlag gilt, für Sie kein Administrationsaufwand, Sie bestimmen wer der Mod sein wird, die Gruppe kann auch durch Passwort sogar nur für Ihre Mitglieder zugänglich gemacht werden. Vor allem es ist alles kostenlos.
Clean Code Development in der Diskussion

Die Gruppe lädt alle Softwareentwickler ein, darüber zu diskutieren, wie die Wandelbarkeit von Software und die Produktivität von Teams verbessert werden können. Sie schließt an das an, was die Initiative http://clean-code-developer.de an Bausteinen für sauberen Code zusammengetragen hat.

Aber natürlich soll die Diskussion dort nicht stehenbleiben. Wie kann die Softwareentwicklung über die bisherigen Ideen von Clean Code und Agilität hinausgehen? Lasst uns darüber nachdenken...

Wir sind gespannt auf eure Beiträge!

-Ralf Westphal & Stefan Lieser, Gruppenmoderatoren

PS: Laut Entscheidung der Gruppenmitglieder soll die Gruppe frei von Werbung sein. Offensichtlich kommerzielle & werbende Beiträge von Gruppenmitgliedern werden daher ohne Vorankündigung gelöscht und die, die sie einstellen blockiert. Dasselbe gilt für Stellenanzeigen.