Ein spezieller Charakterzug – Traits für Flow-Design in Scala

Copy and paste is a design error. – David Parnas Im letzten Artikel haben wir die Funktionseinheiten in Scala zusammengesteckt. Aber bei der Implementierung der Funktionseinheiten wiederholen sich viele Methoden immer wieder, ohne dass sie sich von einer Funktionseinheit zur anderen unterscheiden. Zum Beispiel ist die Methode input gleichlautend sowohl in der Funktionseinheit ToUpper class ToUpper { def input(msg: String) { process(msg) } … } als auch in der Funktionseinheit ToLower zu finden. class ToLower { def input(msg: String) { process(msg) } … } Traits Dies widerspricht ganz dem DRY Prinzip. Schön wäre es doch, wenn man die Ein- und Continue reading Ein spezieller Charakterzug – Traits für Flow-Design in Scala

Steckspiele – Flow-Design-Funktionseinheiten in Scala verbinden

Im letzten Artikel hatte ich an einem Beispiel gezeigt, wie eine EBC-Funktionseinheit in Scala aussehen könnte. Nun soll es darum gehen, wie mehrere solcher Funktionseinheiten zusammengesteckt werden können. Dazu soll folgendes Flow-Design-Modell als Beispiel Verwendung finden: Die Semantik des Modells ist extra simpel gehalten: Eine Zeichenkette fließt in die Funktionseinheit Reverse hinein, die die Zeichen in ihrer Reihenfolge umdreht. Die umgedrehte Zeichenkette fließt danach jeweils in die beiden Funktionseinheiten ToUpper und ToLower. Wie die Namen der beiden Einheiten nahelegen, wandelt die eine alle Kleinbuchstaben in Großbuchstaben um, während die andere genau das Umgekehrte vollbringt. Die beiden veränderten Zeichenketten werden dann Continue reading Steckspiele – Flow-Design-Funktionseinheiten in Scala verbinden

Treppengeplätscher – Flow-Design in Scala

Wie ich in meinem einleitenden Artikel zu diesem Blog geschrieben hatte, möchte ich den Entwicklungsweg, den das Flow-Design-Paradigma genommen hat, nachgehen. Deswegen soll es zunächst darum gehen, Event-Based Components (EBC), wie sie Ralf Westphal in seinem Artikel skizziert hat, in Scala zu realisieren. Das EVA-Prinzip Aus meiner Sicht adressiert EBC vor allem ein Grundproblem der Software-Entwicklung – Abhängigkeiten. Der EBC-Ansatz versucht den Entwickler in der Lösung dieses Problems zu unterstützen, indem Funktionalität in Funktionseinheiten (engl. Function Unit) gekapselt wird, die ganz dem EVA-Prinzip (Eingabe-Verarbeitung-Ausgabe) folgen. Eine Funktionseinheit hat einfließende Nachrichten, die sie verarbeitet. Das Ergebnis dieser Verarbeitung verlässt die Funktionseinheit wiederum als Continue reading Treppengeplätscher – Flow-Design in Scala

Warum dieser Blog

Früher habe ich nie verstehen können, warum Leute Blogs schreiben – ich hatte nie das Bedürfnis verspürt, einem Blogger zu folgen. Was hätte er mir mehr an Informationen bieten können, die ich nicht über andere Medienkanäle auch hätte erlangen können, wenn ich wollte? So bin ich auch auf Ralf Westphal über die Zeitschrift dotnetpro aufmerksam geworden. Seine Herangehensweise an die Software-Entwicklung als Ingenieursdisziplin, an den Entwurf von Software, war in seinen Artikeln so grundsätzlich anders und unkonventionell, frei von aus der Uni und den Erfahrungen im Beruf gewohnten Schemata, und damit innovativ, dass ich keine seiner Ideen mehr verpassen wollte. Seitdem Continue reading Warum dieser Blog