Bei dem Love Dimitam war die Frage der Zuständigkeit, eins der Kriterien,
um die Einhaltung zu überprüfen und genau mit dieser Zuständigkeit möchte ich weitermachen.
Wir möchten, ich möchte das sozusagen als wichtiges Leitprinzip hier mit Ihnen besprechen.
Dieser Entwurf nach Zuständigkeiten ist schon eine Idee,
die man sehr zeitig schon erkannt hat,
so schon Ende der 80er Jahre,
gab es so etwas wie diesen Responsibility-Driven Design.
Wir müssen diese Methoden ja alle nicht sklavisch verfolgen,
aber es ist ganz gut,
Ideen daraus zu kennen
Rebecca Würfsbrook ist einer der alten, sozusagen weisen Alten,
die diese Prinzipien entdeckt haben und uns für uns formuliert haben
in einer Form, die eingängig und gut wiederholbar ist.
Und dieses Single Responsibility, Principle und Separation of Concerns,
das sind Schlagworte, die wir nutzen können, um über diese Zuständigkeiten zu diskutieren.
Ja, also jedes Ding sollte eine klar definierte Aufgabe haben und
die Betonung liegt auf einer. Ja, also versuchen sie nicht,
das allumfassende Tool und Bruttomodul und Klasse und Methode zu machen,
sondern immer jedes für eine Aufgabe und am besten entsprechend der fachlichen Aufgabe.
Separation of concerns, Trennung nach Zuständigkeiten, zur Verlegung nach Zuständigkeiten.
Das ist das, was wir tun wollen. Und als kleines Beispiel,
wir haben gelegentlich so Mediatheksbeispiel, ja,
wenn wir das vormerken, jetzt einbauen wollen, ja,
Gui, ist schon nehmen wir mal an,
Gui ist schon da, wir sollen lediglich Services dazu machen,
in der Gui gibt es einen Button,
der nur aktiviert werden soll,
wenn etwas vormerkbar ist.
Wer ist zuständig,
das zu ermitteln
Ja, wir könnten sagen, okay, es gibt ein Vormerk-Werkzeug.
Ja, und das Vormerkzeug, Werkzeug kümmert sich,
verwendet den Verleihservice und der Verleihservice hat dann Verleihkarten und Vormerkkarten.
Ja, halt, das wäre zum Beispiel eine Möglichkeit,
um zu sagen, ja, okay,
diese Funktion des Vormerkens soll irgendwohin.
Ja, und da nehmen wir ein separates Werkzeug dafür,
was genau diese eine Aufgabe hat.
Und vor mehr Karten unterbringt,
so ähnlich wie wir sonst Verleih hatten
Wenn. Als Möglichkeit, um dieses, sowas wie das hier skizziert,
das ist natürlich nur die fertige Lösung und wir hören jetzt
nichts über die Diskussion, die dahin geführt hat.
Da möchte ich Ihnen das Prinzip der CRC-Karten vorstellen.
Das stammt aus der gleichen Zeit, wo wir eben Rebecca Wolfsburg erwähnt haben.
Das ist aus ihren, von ihrer Lehrer sozusagen,
ist das mit entwickelt worden und wir verwenden eigentlich nur diesen Prinzip,
das Prinzip, was ich gern bei Ihnen verankern möchte,
dass sie sich gelegentlich daran erinnern.
Diese CRC ist die Abkürzung für class, responsibility collaboration.
Man hat die Idee, ich nehme Pappkärtchen, ja,
Papier oder man kann das natürlich digital nachbilden im Computer
und versuche fachliche Begriffe auf diese Karten zu sammeln.
Und das kann man in einer Diskussion ganz gut machen,
deswegen eben die Pappkarten. Man diskutiert ja ganz gerne so im Kreis,
wo man im Tisch stehend oder wie auch immer.
Und ich schreibe jeden wichtigen Begriff eines Anwendungsgebietes auf so eine Karte.
Und dann überlege ich mir, was ist denn die Dienstleistung,
die dieses Ding, was da auf der Karte beschrieben ist,
denn er bringt, wir versuchen da zusammenhängende Dinge zusammenzufassen auf einer Karte.
Und dann suchen wir heraus, womit, mit welchen anderen Karten,
mit welchen anderen fachlichen Dingen aus dem Anwendungsgebiet Arbeit denn so eine Klasse, eine Komponente zusammen.
Und dabei, deswegen heißt das Ganze seinen Namen, Classes,
Responsibilities, Collaborations, das ist das, was wir je Karte sammeln.
Und hier ist das Buch, wo das erklärt wird,
Sie sehen hier, die Jahreszahl ist schon ein bisschen zurückliegend,
aber das ist immer noch aktuell.
Tatsächlich ist es so, dass viele von diesen Entwurfsmethoden,
oder Domaintreffen, Design, die wir hier so erwähnen,
dass die Anleihen nehmen bei solchen Prinzipien, die schon viel früher eingeführt worden sind.
Um das zu illustrieren, hier noch ein Beispiel,
wie das aussehen könnte, also es könnte sein,
dass sie diese CAC-Karte sich so einteilen, der Name steht oben,
der braucht nicht so viel Platz und hundertteilen wir den verbleibenden Platz in zwei Dinge.
Das eine, diese Services, die Dienstleistungen,
für die das Ding zuständig ist und das andere,
womit es zusammenarbeitet
Das gibt uns die Möglichkeit,
wenn hier ein bisschen Platz ist, ein Meeres zu sammeln,
wenn in der weiteren Diskussion von Use Cases man drauf kommt,
oh, ich brauche noch einen weiteren Service,
dann kann ich immer überlegen, da liegt so ein Stapel,
Kartner auf dem Tisch oder so, eher eine Wolke-Verteilung,
wo gehört denn das hin?
Soweit zu den CRT-Karten, genau weiter springen wir jetzt mal nicht,
ich springe lieber zurück zur Frage,
da haben wir die Frage 5,
die uns von uns wissen möchte, was sind CRC-Karten,
wozu können sie sinnvoll eingesetzt werden?
Das war genau das von den letzten beiden Folie