Hi kuddlmuddl
Das ganze wird mit einem FacadePattern zusammengehalten das die Komplexität der Formel für den Anwender der Klasse verschleiert.
Klar wäre soetwas übertrieben für ein $x=$a+$b; eine eigene Funktion zu schreiben. Aber das ist ja auch lesbar. Es geht darum nicht wirklich leicht zu verstehenden Code aufzubrechen und in einzelne Funktionen auszulagern so das sich der Code der in den einzelnen Funktionen steht leichter lesen lässt und wenn die Funktionen die dann dort aufgerufen werden noch sprechende Namen haben, hat man guten OOP Code der 1. leicht zu warten ist selbst für Leute die damit sonst nichts zu tun haben, als auch 2. muß sich keiner in schweren Code reinarbeiten.
Und guter Code hat nichts mit erfahren zu tun sondern mit Fleiß. Man muß halt seinen eigenen Code immer und immer wieder unter verschiedenen Aspekten refaktorieren. Und da scheitert es meistens. Da machen halt die meisten ein Copy and Paste .. bevor sie drüber nachdenken was macht die Klasse/Methode, warum will ich den Code duplizieren. Was kann ich in eine eigene Klasse auslagern, kann ich eine Abstracte Klasse oder ein Interface draufsetzen das den gemeinsamen Code bündelt. Kann ich über Vererbung erreichen das der Code gekapselt ist und nicht verdoppelt. Und so weiter. Das machen halt wenige Leute. Die Leute die ich kenne machen das weil sie irgendwann gelernt haben das Kommentare, guten Code nicht ersetzen können. Und entweder haben sie das alleine herausgefunden oder aber man mußte sie beim ersten mal dazu zwingen es herauszufinden. Es ist kein leichter Weg, da er viel mehr arbeit ist als klatsch klatsch nen Kommentar drüber und hoffen der andere Versteht das. Anstatt seine eigene Klasse zu refactorieren und eventuell sogar komplett neu zu schreiben bzw in mehrer Klassen aufzubrechen. Heißt halt viel Arbeit.
Und wenn du das Prinzip verstanden hast und umsetzt kannst du mir keinen Chef zeigen der sagt das ist unnütze arbeit das bezahl ich nicht. Weil damit schneidet er sich ins eigene Bein.
Gruß Maria.
PS: wie immer nicht bös gemeint ... hoffe das hört sich auch nicht so an
Siehst du und das ist falsch .. jedes einzelne Zwischenergebniss kommt aus einer Funktion die im Kopf stehen hat was sie tut.Stellt euch vor jemand braucht in einer komplizierten Berechnung ein wichtiges, lange ausgebrütetes Zwischenergebnis wie ne Ableitung einer mehrdimensionalen Funktion oder so.
Ich finde die einzelnen Schritte und Zwischenergebnisse können dann durchaus Stück für Stück als Kommentar in der Funktion stehen.
Das ganze wird mit einem FacadePattern zusammengehalten das die Komplexität der Formel für den Anwender der Klasse verschleiert.
Klar wäre soetwas übertrieben für ein $x=$a+$b; eine eigene Funktion zu schreiben. Aber das ist ja auch lesbar. Es geht darum nicht wirklich leicht zu verstehenden Code aufzubrechen und in einzelne Funktionen auszulagern so das sich der Code der in den einzelnen Funktionen steht leichter lesen lässt und wenn die Funktionen die dann dort aufgerufen werden noch sprechende Namen haben, hat man guten OOP Code der 1. leicht zu warten ist selbst für Leute die damit sonst nichts zu tun haben, als auch 2. muß sich keiner in schweren Code reinarbeiten.
Die Erklärung was da wie berechnet wird und was dabei rauskommt gehört in ein AnwendungsfallDiagramm bzw kann in einem Klassendiagramm nachvollzogen werden. Die Mathematische Erklärung gehört in eine extra Dokumentation wenn es wirklich so eine schwere Formel ist.Wo soll sowas eurer Meinung nach sonst hin?
Und guter Code hat nichts mit erfahren zu tun sondern mit Fleiß. Man muß halt seinen eigenen Code immer und immer wieder unter verschiedenen Aspekten refaktorieren. Und da scheitert es meistens. Da machen halt die meisten ein Copy and Paste .. bevor sie drüber nachdenken was macht die Klasse/Methode, warum will ich den Code duplizieren. Was kann ich in eine eigene Klasse auslagern, kann ich eine Abstracte Klasse oder ein Interface draufsetzen das den gemeinsamen Code bündelt. Kann ich über Vererbung erreichen das der Code gekapselt ist und nicht verdoppelt. Und so weiter. Das machen halt wenige Leute. Die Leute die ich kenne machen das weil sie irgendwann gelernt haben das Kommentare, guten Code nicht ersetzen können. Und entweder haben sie das alleine herausgefunden oder aber man mußte sie beim ersten mal dazu zwingen es herauszufinden. Es ist kein leichter Weg, da er viel mehr arbeit ist als klatsch klatsch nen Kommentar drüber und hoffen der andere Versteht das. Anstatt seine eigene Klasse zu refactorieren und eventuell sogar komplett neu zu schreiben bzw in mehrer Klassen aufzubrechen. Heißt halt viel Arbeit.
Und wenn du das Prinzip verstanden hast und umsetzt kannst du mir keinen Chef zeigen der sagt das ist unnütze arbeit das bezahl ich nicht. Weil damit schneidet er sich ins eigene Bein.
Genau das kann dir mit Kommentaren passieren. Aber mit gutem Code kann jeder der die Hochsprache beherscht nachvollziehen was passiert. Zumal der Code immer aktuell ist und niemals wie ein Kommentar veraltet sein kann.Ein Projekt darf nicht den Bach runtergehen, nur weil plötzlich ein wichtiger Mensch ausfällt (überfahren wird), der als einziger den entscheidenen Mathe-kram versteht oder so. Sowas muss zumindest ansatzweise nachvollziehbar kommentiert sein, damit sich jemand anderes da reindenken kann.
Gruß Maria.
PS: wie immer nicht bös gemeint ... hoffe das hört sich auch nicht so an