Gunnar Bittersmann: old style vs. new style

Beitrag lesen

Hello out there!

alle Anwendungen/Teile sind zeitkritisch.

Nein. Mit zeitkritisch meine ich _wirklich_ zeitkritisch.

Ob eine Anwendung für die Reaktion auf einen Tastendruck des Nutzers eine oder drei Millisekunden braucht, ist ziemlich egal, da in dieser Zeit keine weiteren Tastendrücke erfolgen.

Lieber nehme ich mir beim Entwurf oder bei der Implementierung ein paar Stunden mehr Zeit, als dass ich (oder andere Benutzer des Programms) mich später monatelang darüber ärgere, dass die Anwendung träge ist oder unnötig viel Speicher braucht.

Ja, das sollte man auch bei modalem Programmieren tun.

Nein, das ist Unsinn. Jeder Programmierer muss auch mit seinen "Nachbarn" zusammenarbeiten. Also müssen die Schnittstellen zwischen interagierenden Modulen so definiert werden, dass sie für beide Seiten praktikabel und sinnvoll sind. Das geht nicht, wenn man sich nur auf sein eigenes zugewiesenes Modul beschränkt und danach schreit "ich will das Datenformat aber so haben".

Nein, das ist Unsinn. Die Schnittstelle wird möglicherweise von einem Dritten bestimmt, völlig außerhalb der Reichweite der Programmierer des einen oder des anderen Moduls.

Und die Schnittstellen werden wohl nicht danach definiert, was sich der eine oder der andere Programmierer für sein Modul wünscht, sondern anhand der Daten, die in den Modulen verfügbar sein müssen.

Eben, und die werden auf der Basis eines gemeinsamen Kompromisses zwischen den Modulen definiert,

Eben nicht.

andernfalls würde man mindestens einem der Programmierer unnötig Knüppel zwischen die Beine werfen. Dadurch wird die Realisierung des Projekts aufwendiger, braucht mehr Zeit, und das fertige Programm wird umfangreicher und schwerfälliger, ohne einen Mehrwert zu bieten.

Der Mehrwert ist lesbarer Code, sind einfache Schnittstellen. Ein Modul hat eine bestimmte Aufgabe: bekommt Daten, verarbeitet sie und stellt das Ergebnis zur Verfügung. Wenn die Implementation eines Moduls bei komplizierterer Schnittstelle einfacher sein sollte, würde ich diesen minimalen scheinbaren Vorteil auf jedem Fall der Einfachheit der Schnittstelle opfern.

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)