Probleme beim Einloggen
Nur für XING Mitglieder sichtbar IOSP
Dieser Inhalt ist nur für eingeloggte Mitglieder sichtbar.
Manfred Sprenzel Ralf Westphal Stefan Lieser
+13 weitere Kommentare
Letzter Kommentar:
Ralf Westphal
Nur für XING Mitglieder sichtbar

>Könnt ihr bitte näher ausführen, warum IOSP viele Interfaces überflüssig macht?
Interfaces ermöglichen Polymorphie. Polymorphie ist vor allem interessant fürs Testen: Objektnutzer wissen nicht, welche Klasse hinter dem Objekt steht, sondern sehen nur ein Interface. Das kann durch eine Produktionsklasse oder eine Attrappenklassen implementiert werden.
Solange Funktionsbäume auf "hybriden" Funktionen bestehen, muss man auf jeder Ebene Attrappen einsetzen, um die Logik der Ebene zu testen.
Wenn man aber nach IOSP Funktionsbäume baut, dann steht Logik nur in Operationen, d.h. in Funktionen, die Blätter in den Bäumen sind und also keine weiteren Funktionen mehr aufrufen. Es ist keine Attrappe nötig, um eine Operation zu testen.
Integrationsfunktionen über den Operationen hingegen müssen entweder nicht getestet werden, obwohl sie andere Funktionen aufrufen. Oder wenn man sie testen will, dann gerade nicht mit Attrappen.
Ergo: Bei IOSP reduziert sich der Bedarf an Interfaces, weil man keine Polymorphie extra fürs Testen einführen muss.
Das heißt nicht, dass man keine Interfaces braucht. Hier und da sind Attrappen auch in IOSP-Hierarchien mal nützlich. Nur ist eben die Anzahl deutlich geringer.
Manfred Sprenzel Was ist TCR?
TCR wurde als die neueste Programmiermethode von Kent Beck vorgestellt. Die Methode wird derzeit als Nachfolger von Test Driven Development (TDD) gehandelt. Mein Artikel beschreibt was TCR ist, wie es entstanden ist und was der Unterschied zwischen TCR und TDD ist Es werden die Vor- und Nachteile der beiden Methoden gegenübergestellt und es werden eigene Ideen zur Diskussion gestellt.
Philipp Stiefel Manfred Sprenzel Ralf Westphal
+3 weitere Kommentare
Letzter Kommentar:
Manfred Sprenzel

>Interessant, dass hier mehrere längere Beiträge zu TCR geschrieben werden, aber niemand den Ansatz von TCR zumindest in 1-2 Sätzen erklärt, oder zumindest die Abkürzung auflöst.
Ich dachte eigentlich, dass mein Blog-Post den Ansatz von TCR ausreichend erklärt. Da so eine kurze knackige Definition aber anscheinend vermisst wird, habe ich Ihre Definition fast wörtlich übernommen und in meinem Blog-Beitrag eingefügt.
Vielen Dank für diese konstruktive Kritik.
Manfred Sprenzel Software Sunshine Blog
Hallo,
vielen Dank für die Aufnahme in diese Gruppe.
Mein Anliegen ist es, Wissen und Informationen zu Clean Code und Test Driven Development weiterzugeben. Als Programmierer verbringt man viel mehr Zeit damit fremden Code zu lesen als welchen zu schreiben. Fast immer ist die Codequalität, die man antrifft sehr schlecht. Meistens verstricken sich die Programmierer in unnötige Komplexität. Ich suche Wege zurück zur Simplicity und freue mich auf anregende Diskussionen.
Nur für XING Mitglieder sichtbar
Hallo Manfred, ich wollte Dich schon anschreiben, ob Du mein TDD-Coach sein kannst :-)
Jetzt abonniere ich erstmal Deinen Blog.
Viele Grüße,
Stefan
Nur für XING Mitglieder sichtbar Testbarkeit Schritt für Schritt verbessern
Hallo zusammen,
Um mir die von Ralf Westphal in seinem Buch "Handreichungen zum Code-Review" vorgestellten Konzepte, Ideen und Beispiele zu verdeutlichen habe ich das letzte Kapitel "Grade der Testbarkeit" mal Schritt für Schritt nachprogrammiert. Genutzt habe ich dafür ein Gitlab-Repository, dass ihr euch hier anschauen könnt:
Jeder commit spiegelt mehr oder weniger einen Schritt aus dem Kapitel wieder. Um alles "buchgemäß" anschauen zu können, muss es also commit für commit ausgecheckt werden (Erst spät ist mir eingefallen, dass branches evtl. sinnvoller gewesen wären). In den commit messages habe ich grob geschrieben, was warum wie geändert wurde.
Ich hoffe, dass es verständlich ist, das Buch zu lesen hilft sicherlich. Es gibt ein paar Abweichungen aber sonst stimmt es im Großen und Ganzen überein.
Bei den am Schluss sinnvoll übrig zu bleibenden Tests bin ich mir allerdings nicht sicher. Von daher wird es bestimmt noch den einen oder anderen commit geben.
Ich wünsche euch viel Spaß damit und bin für jede Idee, Verbesserung, etc. dankbar,
Stefan
Manfred Sprenzel Alexander Kriegisch Ralf Westphal
+8 weitere Kommentare
Letzter Kommentar:
Manfred Sprenzel
Es freut mich, dass soviel Übereinstimmung entstanden ist. Was ich an Robert C. Martin mehr mag als seine Bücher, das sind vor allem seine Uncle Bob Videos. Sie sind didaktisch gut gemacht und motivierend. Insbesondere - aber nicht nur - für Geeks und Nerds.
Bei aller Euphorie für Clean Code benötigt die Bewegung Querdenker. Nur kritisches Hinterfragen verhilft zu weiterem Fortschritt.
Hier noch ein Artikel zum Thema Widerstand, der mir gut gefallen hat. Ich hoffe, das ist nicht zu sehr off topic:

Moderatoren

Infos zu den Moderatoren

Über die Gruppe "Clean Code Developer"

  • Gegründet: 11.03.2009
  • Mitglieder: 5.116
  • Sichtbarkeit: offen
  • Beiträge: 501
  • Kommentare: 3.027