dedlfix: String-Problem mit dem Zeichen '

Beitrag lesen

Tach!

Wenn dabei das Wort „und“ auftaucht, ist das ein sicheres Zeichen von schlechtem Software-Design. Eine Funktion soll genau eine Sache tun.

Sorry, aber das ist ziemlicher Unfug. Eine Funktion soll das tun, was der Programmierer damit im Sinn hatte.

Es ist zwar immer noch des Programmierers Entscheidung, was die Software tut. Es ist aber auch so, dass sich eine hohe Komplexität üblicherweise schwer verstehen und pflegen lässt. Deswegen ist es eigentlich sinnvoll, diese Komplexität in kleinere einfacher zu verstehende und zu wartende Teile herunterzubrechen. Die Aussage mit dem "und" ist natürlich kein Gesetz, sondern eher eine Faustregel, dass man mal darüber nachdenken könnte, den Code besser zu strukturieren. Die Komplexität insgesamt bleibt gleich, solange man nicht zu umständliche Lösungen drin hat, die bei weniger Aufwand dasselbe Ergebnis bringen würden. Aber die Überschaubarkeit sollte steigen, besonders wenn man sprechende Namen für die Teilstücke verwendet. Das erhöht idealerweise die Lesbarkeit des Codes auch ohne Kommentare.

Es ist auch eine Frage der Kombinatorik beim Testen. Je mehr ein Softwareteil tut, desto höher werden auch die Kombinationsmöglichkeiten, die man alle testen müsste.

Ich erspar' Dir jetzt die Frage, was genau im programmiertechnischen Sinn mit "einer Sache" gemeint ist, aber "Sachen" können jedenfalls sehr komplex werden, das hat mit der Aufgabenstellung etwas zu tun, und nicht notwendigerweise etwas mit "Software-Design".

Du kannst ja mal in die Wirtschaft schauen. Je komplexer ein Produkt herzustellen ist, desto feingliedriger wird der Produktionsprozess. Da ist nicht ein einzelner Mitarbeiter, der das Ding von Anfang bis Ende herstellt, sondern viele, die jeweils eine mehr oder weniger spezialisierte Aufgabe erledigen.

Wenn Du meinst, daß eine Funktion einen Wert zurück geben soll, dann bin ich schon eher bei Dir, aber dann heben schon wieder meine Zweifel an und ich frag' mich, ob Funktionen, die ein Array zurückgeben, aus Deiner Sicht ebenfalls "schlechtes Software-Design" sind...

Jetzt begibst du dich so langsam in die Unsinnsfalle, wenn du das auf diese Weise rhetorisch zu überspitzen versuchst. Da könntest du dich dann auch fragen, ob man die Elemente des Arrays nicht gleich byteweise oder sogar bitweise zurückgeben sollte. Natürlich kann man das so formulieren, dass das "ein Bit und noch ein Bit und ..." sind. (Was ja auch sinnvoll wäre, wenn man eine Routine zur seriellen Datenübertragung schreibt.) Die "und"-Regel verbietet jedenfalls nicht, dass man nach oben hin abstrahiert. Eine Liste von Records ist am Ende immer noch eine Einheit, auch wenn es in den tieferen Ebenen mehrere Schritte gebraucht hat, diese zu erstellen. Diese Schritte kann man jedenfalls auch so zu kapseln versuchen, dass man gut sehen kann, welche Teilaufgaben sie zu erledigen haben.

dedlfix.