Hallo,
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.
ob eine Anwendung aber schon nach drei Millisekunden wieder bereit ist, ein Datenpaket über eine Schnittstelle zu empfangen oder erst nach zehn, kann für den späteren Einsatzfall durchaus entscheidend sein. Das Ziel sollte daher IMO *immer* sein, Software so zu implementieren, dass sie bei gegebener Hardware- und Systemumgebung das Optimum an Performance erreicht. Das bedeutet z.B., dass Daten in dem Format gespeichert und übertragen werden, das für die Verarbeitung am besten geeignet ist. Immer davon ausgehen, dass der spätere Anwender eine Hardware-Plattform hat, die den Anforderungen nur gerade so eben genügt.
Ja, das sollte man auch bei modalem Programmieren tun.
Modal? Du meintest modular? Wenn du wirklich "modal" meintest, erklär bitte, was du darunter verstehst.
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.
Auch das kann vorkommen - wenn es um Schnittstellen des entstehenden Software-Projekts zur Außenwelt geht. Aber wir sprachen ja von internen Schnittstellen der einzelnen Module untereinander. Da hat kein Dritter reinzupfuschen, der mit dem Projekt gar nichts zu tun hat.
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.
Richtig, und sie werden dann so definiert, dass die Module auf beiden Seiten der Schnittstelle so effizient wie möglich implementiert werden können.
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.
Auf keinen Fall. An erster Stelle der Prioritäten steht für mich immer die Leistungsfähigkeit des fertigen Produkts. Dazu gehört auch, dass interne Abläufe technisch optimiert und sauber dokumentiert werden. An zweiter Stelle wird man sich dann bemühen, den Code auch noch "schön" zu machen - wobei nach einer kurzen Eingewöhnungsphase (und wenn man fähig ist, hardwarenah zu denken) C-Code in vielen Fällen umso besser lesbar und verständlich ist, je "optimierter" er ist.
Und erst an der Mensch-Maschine-Schnittstelle sollte man anfangen, den Aspekt "Mensch" den technischen Bedürfnissen überzuordnen - nicht durchgängig in allen Ebenen.
Ciao,
Martin
You say, it cannot be love if it isn't for ever.
But let me tell you: Sometimes, a single scene can be more to remember than the whole play.