Latest / Coding Buddies | Tech & Dev-Mindset / #156 Gute Software muss nicht Hipp sein - Die Schichtenarchitektur
Transcript
- 0:00Kennst du das? Du änderst Kleinigkeiten und
- 0:02plötzlich bricht dir die ganze Anwendung, dann würde ich sagen
- 0:04willkommen in schlecht verstandener
- 0:06schichtenarchitektur wir klären heute, was schichtenarchitektur
- 0:09eigentlich ist und warum sie in so viel Enterprise.
- 0:11Projekten stecken Coding Buddies, Dein Podcast rund um
- 0:15Softwareentwicklung und aktueller Tech News herzlich
- 0:18Willkommen. Halli Hallo und herzlich
- 0:32Willkommen zur neuen Folge des Coding Buddies Podcast.
- 0:35Schön, dass du wieder eingeschaltet hast, denn deine
- 0:39Gastgeber heute mal wieder wie immer von Anfang an meine
- 0:43Wenigkeit, der Tino und der fantastische Fabi Fabi, ich
- 0:47begrüße Dich zur neuen Folge was geht ab bei dir?
- 0:50Ja, halli. Hallo, was geht, was geht,
- 0:56geht's dir gut? Merkst, dass es immer mehr so
- 0:59eine Überraschung ist am Anfang, ich sag es immer so ein bisschen
- 1:01anders, aber ich verlier nicht meine meine Herkunft, dabei
- 1:04weißt du meine Anmoderationsherkunft ja.
- 1:08Du bleibst dir treu. Auf jeden.
- 1:10Fall, ich bleib dir da einfach treu.
- 1:13Also zumindestens die Frage was geht ab, muss sein.
- 1:17Ja ich finde wo du mir selten beantwortest was abgeht, aber
- 1:20okay ich sag dir was abgeht ja ich hab letztens sag mal was
- 1:23geht ab. Habe ich was gelesen, was ich
- 1:25irgendwie wieder ganz lustig fand?
- 1:27Da ging es darum, dass so AI Agenten es ne Website gibt mit
- 1:31so AI Agenten die sich sozusagen nen human buchen können.
- 1:37Weißt du da geht es quasi darum, dass du dich anbieten kannst als
- 1:40Mensch für Sachen die ne AI ja ohne physischen Körper nicht
- 1:44machen kann ne, also ne AI sagt dann so ey ich Buch mir n
- 1:47Menschen und damit er das für mich macht OK.
- 1:53Das ist krass. Irgendwie.
- 1:54Ich hab ich hab jetzt nicht verifiziert ob das wirklich ob
- 1:57das stimmt oder nicht. Also ich war jetzt nicht so
- 2:00Trust Me Bro oder was ja also Quelle, Quelle, Quelle, Quelle,
- 2:07schwieriges Wort, Social Media wollte.
- 2:09Ich eigentlich sagen geht ja schon gut los heute.
- 2:12Also wie gesagt, keine Ahnung ob das stimmt, ich hab es mir jetzt
- 2:15nicht im Einzelnen angeguckt, aber ich finde du kannst mir auf
- 2:19jeden Fall sowas erzählen und ich würde sagen ja gibt's
- 2:21locker. Locker.
- 2:22Heutzutage verwundert mich hier nichts mehr und wenn ich jetzt.
- 2:25In 2 Jahren oder so. Ja, ja, es sind ja eh sehr
- 2:29witzig. Ich fand auch die ja auch wieder
- 2:32Quelle Trust Me Bro, Ich weiß gar nicht wie es heißt, aber es
- 2:35gab da irgendwie so ne Social Media Plattform so von AI für AI
- 2:40wo AI mit AI über Menschen sprechen kann und so, das fand
- 2:44ich auch ganz witzig, den Ansatz aber gleichzeitig auch ziemlich
- 2:47erschreckend was da denn so drin war, aber.
- 2:51Heute soll es ja nicht um RI gehen.
- 2:53Ja, also klar, wir greifen ab und zu Themen auf, es ist
- 2:57einfach das Thema in der letzten Jahre und wahrscheinlich auch in
- 3:01den nächsten Jahren und soll heute aber nicht unser Thema
- 3:06sein, denn heute wollen wir ja mit einer Reihe weitermachen,
- 3:09die ja noch gar nicht so alt ist.
- 3:10Quasi erst dieses Jahr so gestartet ist und es wird Zeit
- 3:14für die nächste Folge und zwar möchte ich heute mit dir.
- 3:17Wieder über Softwarearchitekturen reden und
- 3:20mir quasi das nächste Pattern, das nächste
- 3:26Softwarearchitekturdesign vornehmen und das mal
- 3:30ausführlich besprechen, erklären, warum es vielleicht
- 3:34schon so n bisschen in die Jahre gekommen ist, warum es aber
- 3:37immer noch, sag ich mal irgendwie einen Grund gibt,
- 3:41warum es noch im Umlauf ist und das ganze Mal mit dir
- 3:44analysieren. Und deswegen möchte ich einfach
- 3:49mal mit dir heute über Schichtenarchitekturen sprechen.
- 3:53So, und ich glaub jeder der irgendwie in der Informatik
- 3:56schon n bisschen länger unterwegs ist.
- 3:58Aber nicht nur in der Informatik ja überall gefühlt wird diesen
- 4:02Begriff schon mal gehört haben und dem begegnet sein.
- 4:06Und woran liegt das eigentlich? Ja, also warum ist
- 4:09Schichtenarchitektur immer noch wichtig und das würde ich gerne
- 4:13mal so am Anfang mit dir. Beleuchten, denn da braucht man
- 4:18sich eigentlich nur mal so den deutschen deutschsprachigen
- 4:21Markt angucken. Also gehen wir mal nur so von
- 4:23unseren Regionen hier aus, ja dann ist es ja so.
- 4:27Wir haben viele Banken, wir haben viele Versicherungen, ne
- 4:30starke Industrie war sie zumindestens, wird auch wieder
- 4:33denk ich Behörden natürlich jede Menge und halt so unseren
- 4:39wohlgeliebten Mittelstand, die Firmen und.
- 4:44Witzig ist, dass viele Systeme, die da drin laufen, ja die lange
- 4:48laufen, die auch am besten nicht geändert werden sollten.
- 4:50Auch gerade bei Banken und so ja oft so Schichtenarchitekturen in
- 4:55den Systemen ja n Standard ist. Ne, also das begegnet einem
- 4:58immer wieder, sag ich mal. Also ich hatte zum Beispiel
- 5:01damals als Hiwi. Zur Studienzeit auch in einem
- 5:07Unternehmen gearbeitet, was so Bankensoftware hergestellt
- 5:10hatte. Und da war das halt auch so.
- 5:13Ja hier schichtenarchitektur und Oh, das werden wir auf gar
- 5:17keinen Fall, werden wir da rangehen nein nein nein nein,
- 5:19nein, nein, nein, das läuft, das ist robust.
- 5:22Wir werden das erweitern. Wir werden das Main Tain, aber
- 5:24das Ding bleibt so ne, dann hast du nämlich auch so Rubriken und
- 5:29sag ich mal Branchen, wo man halt auch Angst vor Änderung
- 5:32hat, ne und dann diese Schichtenarchitektur einfach
- 5:35seit Jahren da gelebt wird und trotzdem find ich es halt so
- 5:42spannend. Ja das überall begegnet einem
- 5:45das und es wird aber trotzdem sehr oft nicht sauber gelebt.
- 5:49Also war auch da so n Ding, dass man sich n paar mal dachte, ah
- 5:53wär ja schon geil das so und so zu machen.
- 5:55Ja, aber das würde aber unsere Architektur reißen, das wäre
- 5:58gegen unsere Vorstellung der Architektur ja, aber das würde
- 6:03es schon schneller machen jetzt ja, also es könnten wir das
- 6:06schnell abhaken, das Thema und deswegen wird auch diese
- 6:10Architektur sehr oft gebrochen. Das haben wir schon immer so
- 6:13gemacht. Machen wir auch weiterhin so
- 6:16das. Brechen, ja.
- 6:21Und dann hört man ja auch ziemlich oft und ich denke, das
- 6:24kennst du auch. Ja, die Architektur ist schuld,
- 6:28ja, warum auch diese Architekturentscheidung, oder?
- 6:30Ja, das ist ja auch eigentlich keine richtige Architektur, was
- 6:33da was da passiert, ja. Das Schichtmodell jetzt oder was
- 6:36meinst du? Schichtenarchitektur ja.
- 6:41Ja, kenn ich. Also erstmal will ich ganz kurz
- 6:43noch mal sagen es. Krass, dass wir so schnell von
- 6:46diesem lustigen Thema, das ich angefangens hier erwähnt hab,
- 6:50jetzt auf einmal bei Banken sind OK.
- 6:52Ja, ich, wir machen auch gleich noch so n bisschen Investment.
- 6:56Talk hinterher. Nee, aber was wollt ich sagen,
- 7:03ja, wir machen ja hier auch die Schicht ne, also erstmal
- 7:05Begrüßung ja ja dann ins Thema. Ganz genau.
- 7:10Also es gibt ja niemals, es geht ja niemals ins Thema ohne eine
- 7:13Begrüßung, es muss immer durch die Begrüßungsschicht, richtig.
- 7:16Genau. Und das muss aber auch richtig
- 7:18gelebt werden. Wie du schon meinst, weil
- 7:20ansonsten kommen halt solche Probleme und dann wird es am
- 7:24Ende auch wieder auf irgendwie auf die Architektur geschoben.
- 7:27Ich kenne es auch oft, dass dann gesagt wird, ja
- 7:28schichtenarchitektur ist ja eh scheiße, sollte man gar nicht
- 7:30machen, wie wir ja auch immer so schön sagen, es kommt immer ein
- 7:35bisschen auch auf den Anwendungspfeil drauf an.
- 7:39Aber was natürlich definitiv ein Problem ist, wenn du sagst, du
- 7:45hast irgendwie eine Architektur und Schichtenarchitektur und du
- 7:47ziehst es nicht richtig durch ne oder machst es nicht sauber,
- 7:50dann treten natürlich Probleme auf und das ist natürlich klar.
- 7:55Es ist halt Fakt, dass wenn du etwas machen möchtest und das
- 8:00dann nicht richtig durchziehst, das Problem auftreten ja also.
- 8:05Und das ist. Unter dem Stern stehen ja viele
- 8:07Themen, die wir hier besprechen, ja.
- 8:09Und das ist aber glaub ich halt, also halt generell das wirklich
- 8:14das Hauptproblem, ne dass du sagst OK wir machen das so und
- 8:16so und dann die Disziplin Halt eben fehlt es wirklich auch so
- 8:20zu machen meistens ja aus ich sag mal bestimmten
- 8:23Entscheidungen heraus wie zum Beispiel muss jetzt schneller
- 8:25gehen Ach komm mach das erstmal so wir ziehen das später gerade
- 8:29so diese typischen Sachen. Aber dann gibt es natürlich
- 8:33Probleme, Probleme, die halt eben auftreten.
- 8:36Angenommen, du hast jetzt zum Beispiel deine deine Schichten,
- 8:39wir gehen jetzt mal ganz abstrakt davon aus und sagen,
- 8:41wir haben einfach irgendwie erstmal schichten.
- 8:44Ja, die einzelne Verantwortlichkeiten in unserer
- 8:46Software haben Mhm und wenn man das natürlich nicht richtig
- 8:50macht und sagt, OK, wir haben zwar die Schichten definiert und
- 8:54sagen es gibt Schicht, ich nenn das mal 123.
- 8:57Und wir kriegen es aber nicht richtig hin, diese Schichten
- 8:59auch durchzuziehen und richtig zu trennen.
- 9:01Ja, weil man vielleicht erst mal anfängt und dann aber irgendwann
- 9:04anfängt zu sagen, Ah, aus Schicht 1, da kann ich aber auch
- 9:07schon, ich kann in Schicht 1 auch schon n bisschen was von
- 9:09Schicht 2 machen, in diesem speziellen Fall, dann fängt es
- 9:12natürlich an, dass so diese Verantwortlichkeiten der
- 9:14einzelnen Schichten halt eben verschwimmen.
- 9:16Ja, ineinander sozusagen. Ne.
- 9:18Also wenn du jetzt sagen wir mal, du hast ne Schicht, die ist
- 9:22gelb und eine Schicht ist blau, ja und dann fängt es auf einmal
- 9:25an, dazwischen ja sich so ne grüne Schicht zu bilden, die
- 9:27eigentlich nicht da sein sollte. Krasse Farblehre beeindruckt
- 9:31habe ich gelernt, jetzt voller Mücke, also niemals grün
- 9:37dazwischen. Ne, verständlich, das kann man
- 9:40sich gut merken, ne? Absolut ja.
- 9:43Also ich find es ja auch gut, dass du sagst, lass uns mal
- 9:45vorstellen, es gibt so verschiedene Schichten und
- 9:47Verantwortlichkeiten, weil das oft dahinter steckt, auch sehr
- 9:51technisch gesehen, das muss man auch dazu sagen, ne, dass es oft
- 9:54eine technische Umsetzung von Schichten ist an der Stelle und
- 9:59genau dieses Verschwimmen ist. Super oft der Fall.
- 10:04Also das ist keine Seltenheit, dass vielleicht jetzt manche
- 10:06sich denken, ja gut, in der Theorie, ist doch logisch, ja
- 10:09ich hab jetzt ne Schicht, die macht das, die hat ne
- 10:11Schnittstelle zur unteren Schicht und es geht immer nur
- 10:14von unten nach von oben nach unten und wieder hoch und nie
- 10:18irgendwie kreuz und quer oder so, aber das wirklich sauber
- 10:22umzusetzen und genau das ist das Problem, dass das irgendwann
- 10:25nicht mehr der Fall ist. Durch Shortcuts, Abkürzung
- 10:27Hotfixes die rein müssen und man sich denkt Boah nee ja ich muss
- 10:30das jetzt hier aber erstmal so machen.
- 10:32Technische Schuld, die sich aufbaut, gar die ganzen
- 10:34Klassiker, die du auch schon angerissen hast, sorgen ja
- 10:36dafür, dass Grün entsteht. Am Ende ne ja und ich find gut,
- 10:41dass du das direkt als ersten Punkt nennst, weil das genau
- 10:44deswegen macht man so Schichten, zum Beispiel um da einfach
- 10:48Klarheit zu schaffen, das nicht verschwimmen zu lassen.
- 10:51Das und selbst wenn du dir das Team technisch vorstellst, ja
- 10:55gehen wir mal davon aus, ich arbeite in einem Softwareprojekt
- 10:58mit 3 Teams. Wir, wir machen jetzt keinen
- 11:02Aufbau hier, nur einfach mal gedanklich Team AB und C und die
- 11:07Software ist so aufgebaut, dass es eine Schicht A, eine Schicht
- 11:09b und eine Schicht C gibt, dann kann ich dadurch allein schon
- 11:13gewährleisten, dass ich sage, Team A arbeitet natürlich an
- 11:16Schicht AB an BC an C. Ob das jetzt sinnvoll ist jetzt
- 11:19ein Gedankenbeispiel, aber dadurch kriege ich halt eine
- 11:22klare Trennung hin und klare Verantwortlichkeiten und Team a
- 11:26weiß genau wie sie mit B reden muss und b weiß ganz genau, dass
- 11:29es nur Input von. A annimmt und nicht von C da
- 11:33drunter beispielsweise. Also dass du klare Regeln hast,
- 11:36dann am Ende ne und doch ohne. Spasteln eigentlich, oder?
- 11:40Genau am Ende, ganz genau. Und was bringt das mit sich?
- 11:43Nämlich schon ne Verbesserung des klassischen zweiten Problems
- 11:47dabei, wartbarkeit ja, also wann?
- 11:52Wie kann ich sicherstellen, dass mein System heile bleibt, dass
- 11:54es nicht chaotisch wird, dass ich einfach wirklich das Ganze
- 11:59betreuen, verwalten kann und auf Kurs halten kann und das
- 12:03steigere ich damit auch besser, als wenn ich statt 3 Teams oder
- 12:073 Schichten dann habe ein Haufen jeder macht überall irgendwas
- 12:11mal und keiner weiß mehr was wurde gemacht, was wurde nicht
- 12:13gemacht, wer redet mit wem, wer kümmert sich darum und genauso
- 12:18ist es ja auch innerhalb einer Software, das kannst du jetzt
- 12:20auf alles map, das kannst du. Team mappen das kannst du auf
- 12:23teamübergreifende Sachen mappen, aber halt auch auf eine
- 12:26Softwarearchitektur und deswegen macht man das Ganze damit nicht
- 12:30mehr alles kreuz und quer geht am Ende ne aber ich find wenn du
- 12:33n wichtiger Punkt. Wenn du wartbarkeit sagst, ich
- 12:36find da so n bisschen Erweiterbarkeit kommt da auch
- 12:38mit rein, was auch durchaus n Problem sein kann, weil
- 12:40angenommen zum Beispiel du hast irgendwie ne arbeitest an einem
- 12:44an einem System und hast zum Beispiel n sagen wir mal
- 12:47Controller und der Controller nimmt irgendwelche Daten, also
- 12:50ne irgendwelche. Objekte an zum Beispiel ne und
- 12:53du hast in jetzt in dem Objekt hast du 5 Felder und dieses
- 12:56Objekt machen wir mal. Gedankenexperiment ist genau das
- 13:00Objekt genau die Entity die du am Ende auch in die Datenbank
- 13:03reinspeicherst. Wenn du das hast.
- 13:05Und du änderst nur n bisschen was an deinem am Frontend, zum
- 13:09Beispiel was diese API oder irgendwie was zum Beispiel Daten
- 13:12über n Post oder n Put Endpunkt Reingeben möchte.
- 13:15Ne und da kommt n bisschen mehr dazu und du änderst zum Beispiel
- 13:18nur im Controller, dann zum Beispiel das willst du irgendwie
- 13:21dein deine also n weiteres Feld hinzufügen das sechste.
- 13:27Dann kannst du ja diese Anwendung gar nicht weiter
- 13:29betreiben, außer du gehst quasi durch deine ganze deine ganzen
- 13:34Schichten durch, bis zum Ende, bis zu deiner Datenbank, wo du
- 13:37dann am Ende noch ne Datenbank Migration machst, damit du
- 13:39dieses sechste Feld drin hast. Ne, das heißt diese diese
- 13:42Erweiterbarkeit ist ja dann echt deutlich quasi komplexer
- 13:47geworden, anstatt dass du sagst, du hast vielleicht n einzelnes
- 13:50Objekt NDTO nur in der zum Beispiel am Controller.
- 13:53Wenn wir jetzt da sind, ne und du hast n Entity Objekt und du
- 13:55hast vielleicht noch. Ich sag mal domainobjekte, da
- 13:58kommen wir gleich noch n bisschen drauf.
- 13:59Aber also irgendwo in der Mitte hängen ne, aber dann hast du ja
- 14:02quasi und und wenn das nur ja ich sag mal eigentlich die
- 14:07gleichen Objekte sind, die aber an unterschiedlichen Schichten
- 14:10stehen, ne wie du schon wieder meinst ne also Team A Team B
- 14:12Team C hat sein Ne hat seinen eigenen Scope, dann kannst du ja
- 14:17im Controller dieses Feld hinzufügen, was ja noch lange
- 14:19nicht bedeutet, dass du dieses Feld bis in die Datenbank
- 14:21durchziehen musst. Das heißt du kannst erstmal was
- 14:23erweitern, musst aber deine Datenbank noch nicht anpassen.
- 14:27Das heißt, du kannst es ganz inkrementell Regeln.
- 14:29Entspannt. Absolut absolut.
- 14:32Und dadurch, dass ich das so machen kann, habe ich auch einen
- 14:37anderen sehr guten Benefit dabei und zwar, dass ich auch die
- 14:39Testbarkeit damit erhöhen kann und Leute ja testen ist sehr
- 14:43wichtig, wir sagen es immer wieder, wir appellieren immer
- 14:46da. In die Richtung.
- 14:47Aber es ist auch hier natürlich n absoluter Vorteil, wenn ich
- 14:51sage, ich habe definierte Schichten, auch das Beispiel,
- 14:54was du gerade genannt hast, ne, selbst wenn es nicht komplett
- 14:57durchimplementiert ist, was bei Schichten schichtlosen Systeme
- 15:02sag ich mal ne, es gibt natürlich auch andere
- 15:03Architekturen, aber sagen wir mal wir haben keine.
- 15:06Und ich baue das ein. Dann wird es sehr wahrscheinlich
- 15:08an allen Stellen klingeln, weil ich die Funktion mit einem
- 15:11Parameter zu wenig aufrufe, weil die Funktion im zweiten
- 15:14Parameter auf einmal erwartet und so weiter das heißt, es wird
- 15:18überall klingeln in der Software und es funktioniert nicht mehr,
- 15:21ich kann sie nicht mal mehr bauen, sage ich mal.
- 15:23Ja, und das ist halt ein Problem und genauso wenn ich die
- 15:27Schichten habe, kann ich sie ja zum Beispiel für eine Schicht
- 15:29implementieren, weil ich genau weiß, wie meine Abhängigkeiten
- 15:33aussehen wie. Mein Scope ist, was meine
- 15:36Verantwortlichkeit ist, und ich kann das auch schon abtesten,
- 15:39weil ich die Schnittstellen nach außen kenne.
- 15:42Dann kann ich ja quasi mir selbst im Test vorgaukeln, dass
- 15:46die anderen das schon erledigt haben und damit umgehen können.
- 15:49Das ist ja super. Das ist also besser, geht ja
- 15:50nicht, weil dann kann ich genau meine meine, sag ich mal
- 15:55Verbindlichkeiten, meine Verantwortlichkeiten umsetzen
- 16:00und abtesten, ob das im Gesamtsystem schon verknüpft
- 16:03ist, wie du ja meintest, darum geht es ja gar nicht, ich kann
- 16:06es ja aber für mich, wenn ich jetzt zum Beispiel Team C bin
- 16:08und Team C hat Schicht C und die soll erweitert werden, kann ich
- 16:11das machen, ob B das jetzt schon abfragt oder nicht und das ist
- 16:15halt ne super Sache am Ende ne. Und gehen wir mal, gehen wir mal
- 16:19davon aus, dass dass man testen sollte, ne, das ist wichtig,
- 16:22weil das reduziert, sag es noch mal.
- 16:25Ich hab es eben schon gesagt, aber sag es noch mal bitte ja
- 16:27weil es es reduziert ja die Komplexität der Tests, wenn man
- 16:30jetzt keine Tests hat, kann man sich ja hinstellen und sagen
- 16:32scheißegal ne aber das mein ich also.
- 16:34Nein, nein, Test wichtig noch mal Test sehr wichtig und das
- 16:41muss halt auch bei dem letzten ankommen.
- 16:43Fabi und ich find das gut, dass wir das nach außen tragen, das
- 16:45ist wirklich gut. Wir sagen es nachher noch mal
- 16:47OKOK und so n fünften Punkt, da weiß ich nicht wie du dazu
- 16:54stehst. Aber ich denke da stimmst du mir
- 16:56zu. Ist so ne typische
- 16:59Architekturerosion ne das fängt dann irgendwann an so n bisschen
- 17:03zu bröckeln das ganze und das fällt dann einfach in sich
- 17:06zusammen. Und ich finde, dein Farbbeispiel
- 17:09ist so super witzig, weil es stimmt einfach ne, du hast ne
- 17:12gelbe und blaue Schicht und warum?
- 17:14Wo kommt Grün auf einmal her, warum seh ich n grünen Klecks
- 17:17auf einmal auf meinem Software Bild sag ich mal ja genau weil
- 17:20das passiert ne dann werden regeln gebrochen dann werden
- 17:24Sachen nicht eingehalten es gibt so n Cross Layer Zugriff wie man
- 17:27das ja auch gerne mal nennt ne also cross Layer im Sinne von
- 17:30ich überspringe Schichten. Und ich gehe auf einmal in die
- 17:34falsche Richtung. Es gibt ja so klare Vorgaben,
- 17:37wir hatten ja schon zum Beispiel über das hexagonale Architektur
- 17:41Pattern gesprochen, was natürlich einen anderen Ansatz
- 17:43verfolgt, aber trotzdem ja regeln hat, und genauso hat eine
- 17:47Schichten Architektur regeln, und wenn ich diese Aufweiche
- 17:51breche, dann habe ich genau den Punkt, dass mir die ganze
- 17:55Architektur zusammenbricht und am Ende nur noch auf dem Papier
- 17:58existiert. Ich habe irgendwann so viel
- 18:00technische Schuld aufgebaut, dass ich eigentlich gar nicht
- 18:02mehr von einer umgesetzten Architektur sprechen.
- 18:03Sprechen kann. Ja, ich hab es auch schon mal
- 18:06erlebt, dass man zum Beispiel, wenn wir jetzt noch mal bei dem
- 18:09Controller, wenn wir das Controllerbeispiel noch mal
- 18:11ranziehen, dass man einfach aus dem Controller heraus direkt,
- 18:15sag ich jetzt mal datenbankenanfragen gemacht hat.
- 18:19Ne, also dass man halt wirklich sozusagen diese was heißt, ich
- 18:23nenn es jetzt mal serviceschicht oder wie auch immer du das jetzt
- 18:25nennen möchtest. Na ja, dass du die einfach
- 18:26überspringst, dass du einfach sagst, OK, du kriegst irgendwie
- 18:28was an Controller und der fragt direkt dann halt die Datenbank
- 18:31an. Was natürlich auch echt Käse
- 18:34ist. Ne und dann hast du vielleicht
- 18:35auch sogar in dem Beispiel auch noch direkt nicht nur die
- 18:38Kopplung der Objekte durch die Schichten sozusagen.
- 18:40Was ich vorhin meinte, sondern dann hast du vielleicht sogar
- 18:44nicht mal mehr die Schichten dazwischen ne, sondern wirklich,
- 18:46also direkt ne Controller auf Datenbank und dann wenn du dann
- 18:51noch Logik brauchst, dann packst du die auch noch gleich in den
- 18:52Controller rein und dann hast du im Endeffekt einfach genau diese
- 18:55Erosion wie du meintest. Du hast eigentlich dann
- 18:57eigentlich hast du nur noch ne grüne Schicht am Ende ja.
- 19:01Ja, genau. Und dann dann verlier ich halt
- 19:03diese ganzen Vorteile oder beziehungsweise die Probleme
- 19:06werden wieder real und die Architektur verhindert nicht
- 19:09mehr die Probleme, sondern ich hab es soweit aufgeweicht, dass
- 19:12ich schon gar keine Architektur mehr hab und absoluter Klassiker
- 19:16ist nicht so, ja warum sollte das passieren?
- 19:18Ja ich mein in der Theorie klingt immer alles einfach die
- 19:21Realität in Projekten wo vielleicht auch Zeitdruck drauf
- 19:23ist sieht anders aus und ich denke, dass jeder der halt auch
- 19:27im Projektgeschehen schon mal gearbeitet hat wird.
- 19:30Da jetzt nicken zu hören, sage ich mal und sich denken.
- 19:32Ja, es ist leider so, dass das immer wieder eine Gefahr ist und
- 19:36man sich immer wieder selbst disziplinieren muss zu sagen,
- 19:40Nein, wir ziehen das jetzt so durch wie du, wie du schon
- 19:44meintest. Ja, ich änder in der obersten
- 19:47Schicht etwas, das zieht sich jetzt durchs ganze Projekt
- 19:50durch, durch alle Schichten, ja gut, ich kann das einzeln für
- 19:52mich implementieren, wie wir meinten, aber das heißt ja
- 19:55nicht, dass es dann im Gesamtsystem funktioniert, das
- 19:57heißt, alle Schichten müssen das implementieren, die Änderungen.
- 20:00Und die Anpassung. Und vielleicht ist es eine
- 20:03Sache, wo ich mir denke, aber ich kann doch in der obersten
- 20:05Schicht doch schon entscheiden, ob das durchgeht oder nicht,
- 20:08oder ich kann doch entscheiden, was für Daten zurückkommen, ich
- 20:11kann das doch ableiten aus denen, die ich schon habe.
- 20:14Ja okay mag sein, dann kannst du vielleicht alleine das ändern
- 20:18und das Feature funktioniert erstmal, aber es ist halt
- 20:20einfach ein Designbruch an der Stelle, weil es per Definition
- 20:24per Regeln durch die Software gehen muss.
- 20:27Also du. Du nimmst dir quasi ne
- 20:29Verantwortlichkeit raus, die aber nicht deine ist.
- 20:32Das ist so. Ich ruf bei einer Hotline an und
- 20:36hab irgendwie ne spezifische Frage und ich werd nicht
- 20:39weitergeleitet, sondern die Person sagt du weißt du, ich
- 20:41glaube das passt schon alles Gute so weißt du, das machst du
- 20:46ja auch nicht, sondern du hältst da ja auch.
- 20:49Es sind ja am Ende auch Schichten, das geht irgendwann
- 20:51in die Fachabteilung, in die Kundenservice Fachabteilung weiß
- 20:54ich wohin, bis hin ins Aktenlager, was sozusagen deine
- 20:57Datenbank ist, wo deine Akte rausgezogen wird, jetzt ja
- 21:01digitale Akte von mir aus ja, also was darf ich nichts, aber
- 21:07dann wird doch am Ende nachgeguckt und dann geht doch
- 21:09die Info wieder nach oben, sozusagen weißt du, egal ob das
- 21:13jetzt digitalisiert passiert oder wirklich einer noch ins zu
- 21:17den Akten rennt ne. Ins Lager.
- 21:21Aber das ist doch am Ende der Ablauf dahinter und dann kann
- 21:24ich ja nicht einfach vorgelagerter außerhalb meiner,
- 21:28sag ich mal, Verantwortlichkeit schon Entscheidung treffen, dann
- 21:31das mach ich da ja auch nicht und genauso sollte ich es auch
- 21:33nicht in der Software tun. Mal kurz sagen sollte man nicht
- 21:36tun, manchmal wird es getan, aber wir haben jetzt viel von
- 21:40Schichten gesprochen, ganz allgemein Schichten irgendwelche
- 21:43Schichten ja 123 ABC, wie auch immer.
- 21:48Aber also wir können ja mal so n bisschen gucken, dass wir
- 21:51vielleicht so wirklich auf Schichten gehen, die man
- 21:55vielleicht auch so kennt, gerade im Schichtenmodell, dass man zum
- 21:58Beispiel sagt, so Presentation Layer, application layer domain
- 22:01Layer, presistance layer, sowas zum Beispiel ne, und damit man
- 22:06sich das vielleicht n bisschen besser vorstellen kann, hast du
- 22:10da vielleicht irgendwie ne Analogie aus der Rubrik Essen.
- 22:18Du meinst eine klassische Coding Buddies Analogie können wir
- 22:24machen, da bin ich so richtig anzuheizen.
- 22:25Ja und jetzt wird jetzt geht es wieder los ich hoffe alle sind
- 22:29bereit Hunger zu haben jetzt ja lass einfach wieder ein
- 22:32Restaurant nehmen, Restaurants einfach unsere klassischen
- 22:35Analogien weil sie einfach so gut auf Informatik und
- 22:38Softwareentwicklung mappen. Ja, so ne Schichtenarchitektur
- 22:43und diese klassischen Schichten, die du gerade genannt hast, da
- 22:46geh ich voll mit. Ja, man redet oft von einem
- 22:47Presentation Layer, der irgendwie sag ich mal die
- 22:51Software nach außen repräsentiert.
- 22:53Du hast n Application Layer wo so die Application an sich drin
- 22:57ist. N Domain Layer mit so Business
- 23:00Logik persistance hast du glaube ich noch gesagt, da steckt
- 23:04meistens dann auch so die Repositories mit der Datenbank
- 23:06dahinter. Aber wie?
- 23:08Wie kann man jetzt sich so n Ablauf vorstellen und ich finde
- 23:11da wird jetzt auch noch mal gut ersichtlich, warum man nichts
- 23:15überspringt. Ja das könnte man damit glaube
- 23:17ich jetzt auch ganz gut darstellen, weil wenn wir uns n
- 23:19Restaurant vorstellen, wie sieht das aus?
- 23:21Ich als Gast gehe in das Systemrestaurant sagen wir mal
- 23:26Software ne setzt mich da an Tisch hab diesen presentation
- 23:30layer dass ich ne Karte habe, ich kann gucken das ist ja genau
- 23:35das gleiche als hätte ich jetzt. Auf einer Website ne auch
- 23:39irgendwie ne Liste an Essen und ich kann darüber bestellen.
- 23:42Wie auch immer, jetzt Sitz ich halt gerade im Restaurant, guck
- 23:45in die Karte und sag schnitzelpommes heute
- 23:48schnitzelpommes ich weiß nicht warum Sitz eigentlich beim
- 23:51Italiener keine Ahnung, aber schnitzelpommes so und dann geh
- 23:56ich ja nicht los und sag OK schnitzelpommes ich geh jetzt in
- 24:00die Küche mach mir schnitzelpommes passiert ja
- 24:04nicht was passiert es kommt jemand.
- 24:07Und ich kann die Bestellung aufnehmen, zum Beispiel, weil
- 24:09zum Beispiel n. Kellner ja und der Kellner und
- 24:12diese ganze Koordination, dieser Bestellvorgang, das bildet
- 24:15irgendwo ja schon ne nächste Schicht ab, das ist ja gar nicht
- 24:18mehr die ich biete, was nach außen hin anschicht, die das
- 24:22klärt. Zum Beispiel sieht die Karte
- 24:24aus, welche Nummer steckt hinter Schnitzel, Pommes so also es
- 24:28gibt dann irgendwie so n wert irgendwas, was ich als Gast
- 24:31weitergebe, die 35 bitte zum Beispiel mit Ketchup.
- 24:37So und die Application Schicht der Kellner zum Beispiel, der
- 24:40weiß jetzt OK 35 mit extra Ketchup und sorgt jetzt dafür,
- 24:45dass das so abgearbeitet wird, dass am Ende des Tages, oder ich
- 24:49hoffe schneller als am Ende des Tages das Essen wieder rausgeht.
- 24:53So ne. Das heißt, dass ich den Gas
- 24:54jetzt Schnitzel Pommes mit extra Ketchup gebe.
- 24:57Ja. So.
- 24:58Aber was passiert dahinter? Der Kellner geht ja jetzt auch
- 25:02nicht in die Küche und bereitet das zu, das heißt, da gibt es ja
- 25:05anscheinend noch irgendwie ne Schicht.
- 25:07Heißt, und da sind wir zum Beispiel dann irgendwann schon
- 25:10bei der Domainschicht, die Du genannt hattest, so richtig
- 25:12klassisch mit Business Logik, weil Schnitzel, Pommes ist nicht
- 25:17in jedem Restaurant, Schnitzel, Pommes, das steckt zwar irgendwo
- 25:20grundlegend das gleiche Essen hinter, aber jeder hat ja noch
- 25:24sein Geheimnis wie er n super Schnitzel macht.
- 25:26Die Pommes werden noch n bisschen anders gemacht.
- 25:28Ja, und trotzdem ist es am Ende in Presentation Layer Schnitzel,
- 25:32Pommes, das heißt der Kellner geht zur Küche und sagt
- 25:36Schnitzel, Pommes bitte die wiederum weiß genau regeln ja
- 25:42Business Logik OK ich brauche jetzt keine Ahnung 200 Gramm
- 25:45Pommes keine Ahnung ist das viel ist das wenig ich würd sagen OK.
- 25:50Ist viel, oder? Also kriegt er aber weil er
- 25:53hungrig ist und n großes Schnitzel so und er weiß wie es
- 25:55zubereitet werden muss. Was ist der persistance Layer an
- 25:59der Stelle persistance Layer Datenbank ja ich hab irgendwo n
- 26:02Lager mit Zutaten ich muss natürlich jetzt auch die Zutaten
- 26:05holen aus der Kühltruhe, von mir aus ist ja auch irgendwo wieder
- 26:08ne eigene Schicht der Zugriff da drauf und so weiter und dann
- 26:12geht das quasi von der obersten Schicht runter wieder hoch und
- 26:15der Gast denkt sich Schnitzel Pommes geil.
- 26:18Freut sich darüber. Wer freut sich darüber nicht,
- 26:21aber wie du schon meintest, so, es ist ja also weder der Kellner
- 26:24kocht noch der Kellner rennt aber auch nicht ins Lager und
- 26:27holt was und bringt es dann dem Koch, sondern das ist ja
- 26:29wirklich ne, das wäre dann auch wieder ein Architekturbruch wenn
- 26:32du sagst. Das wäre wohl geil.
- 26:35Der Kellner geht schon mal los, der weiß ja Pipapo was für
- 26:37Zutaten braucht hier Koch übrigens 35 hier hast du schon
- 26:41mal das Schnitzel, ja klar. Aber so ne das das wär halt, das
- 26:47wär halt nicht das was man sich dann vorstellt.
- 26:49Wie gesagt, es passiert halt zu häufig.
- 26:53Also in vielen Projekten trotzdem noch, dass es halt sich
- 26:56auch mal einschleicht. Ne, es ist ja auch nicht immer
- 26:58ganz hundertprozentig offensichtlich, es kann ja auch
- 26:59sein, dass vielleicht auch jemand neu ins Team kommt und
- 27:02noch nicht ganz das durchblickt hat und so ne dafür ist
- 27:05natürlich auch immer gut das ganze nochmal zu reviewen und so
- 27:07weiter und sofort, aber die Ursache sei mal dahingestellt
- 27:11und genau darauf muss man halt eben achten.
- 27:14Dass man eben genau diese Schichten ordentlich halt
- 27:17anordnet und ordentlich bespielt.
- 27:19Und weil wir jetzt gesagt haben, es gibt jetzt zum Beispiel
- 27:23Presentation, application Domain und persistance Layer, OK, es
- 27:28sind ja nicht immer nur, also n Layer Architektur heißt ja
- 27:32nicht, es gibt jetzt genau diese Layer, es gibt jetzt
- 27:34unterschiedliche Layer, ne, es kann ja auch wie gesagt n gelben
- 27:36und n blauen Layer geben, kein Grün wichtig.
- 27:40Aber ich sag mal, es gibt ja auch andere Beispiele von
- 27:45Layern. Ne, also zum Beispiel also ich
- 27:47sag mal Praxis Praxisbeispiele wie zum Beispiel ne
- 27:51zweischichtenarchitektur ne ist ja dann vielleicht zum Beispiel
- 27:54n kleinen Server, kennt man ja zum Beispiel, das heißt du hast
- 27:58irgendwie im kleinen vielleicht irgendwie die Oberfläche nur n
- 28:01Beispiel jetzt ne Server ist vielleicht dann die Logik
- 28:04wiederum und dann deine Daten. Wie wie man es jetzt auch immer
- 28:08schneiden möchte, ne. Also zum Beispiel gerade bei so
- 28:10Games ist es ja oft so ne, bei Games hast du dann so dies du
- 28:14siehst etwas und irgendwo wird was berechnet ne.
- 28:16Also wenn du jetzt zum Beispiel dir vorstellst, du hast
- 28:18irgendwie so Multiplayer Game und dann hast du zum Beispiel
- 28:21als Spieler hast du ja dein Spiel, was ja irgendwie so mehr
- 28:24oder weniger der Client ist und synchronisiert wird es dann auf
- 28:27dem auf dem Server, das ist ja wie zum Beispiel wir haben ja
- 28:30jetzt gerade bei Twitch, sind wir gerade dabei unser Neues
- 28:34unseren neuen Programmierwettbewerb zu
- 28:35entwickeln. Und da ist es wieder dazu.
- 28:38Ja genau, und da ist es ja mehr oder weniger auch so, dass wir
- 28:43dann ne Boardschnittstelle anbieten mit Clients.
- 28:45Ja, also wir nennen sie auch Clients, die man dann wieder
- 28:48implementieren kann und diese Clients können dann sozusagen
- 28:52dem Server Daten schicken und der hat dann sozusagen diese
- 28:55ganze Logik, wo dann alles verrechnet wird und so weiter
- 28:58ne, das ist ja. Genauso, und da kannst du jetzt
- 29:00natürlich sagen, OK, innerhalb deines Web Socket Servers, wo
- 29:04dann auch das Spiel drauf läuft und so sind vielleicht auch noch
- 29:06Schichten irgendwo da mit drin. Möglicherweise ja, aber ich sag
- 29:12mal es kommt auf die Größe drauf an, das ist jetzt nicht so
- 29:15Großes, eher n Blog, also haben wir Clients ne serverschicht so.
- 29:20Ja, ja, und warum macht man das? Ne?
- 29:23Warum haben wir das gemacht? Das ist natürlich auch einfach.
- 29:25Es bringt halt so oft Vorteile mit sich, dadurch, dass sich
- 29:28Schichten klar getrennt sind, dass die aber bei Spielen zum
- 29:31Beispiel nicht gescheatet werden, kann am Ende ja.
- 29:33Also wenn ich jetzt sage, es läuft alles auf dem Client und
- 29:37da wird alles berechnet und das geht dann irgendwie an den
- 29:39nächsten, dann kann ich das manipulieren im Prinzip, aber
- 29:43wenn ich einfach die. Berechnungen ja, und die Logiken
- 29:47auf dem Server laufen hab und der Client sagt mir nur was er
- 29:51tut, sozusagen dann hat der Server das in der Hand, dass das
- 29:54nicht manipuliert wird. Jetzt gehen wir mal davon aus,
- 29:56der ist nicht manipuliert, wenn dann ist er für alle gleich
- 29:58manipuliert ne, aber du kannst halt schwieriger betrügen, dann
- 30:02einfach an der Stelle und das ist ja auch beim Wettbewerb zum
- 30:05Beispiel wichtig ne mal angenommen jeder lässt das bei
- 30:07sich laufen und baut quasi das Spiel an sich zugunsten seines
- 30:11Bots um. Dann ist das unfair.
- 30:13Einfach am Ende des Tages ne und genau deswegen, um auch
- 30:17konsistent zu sichern, ist das Halt zum Beispiel jetzt ne gute
- 30:19Architektur dafür und kleinen Server hat glaube ich jeder mal
- 30:23gehört und kann man halt auch als so Schichten dann betrachten
- 30:26an der Stelle, deswegen finde ich das wirklich n cooles
- 30:28Beispiel. Ich mein Server, also Server ist
- 30:31bei uns natürlich momentan dann, wenn wir es so sehen.
- 30:33Der Server läuft dann auf unserem Rechner, aber wir haben
- 30:35ja auch schon mal drüber nachgedacht, dass wir sagen nach
- 30:37dem Turnier oder so machen wir n Kleinen.
- 30:39Also hosten wir das Spiel so ne, dass man das wirklich auf dem
- 30:42Server hostet und dann hat man die Möglichkeit eben sozusagen
- 30:46auch einfach so aus Spaß seine Bots dann gegeneinander antreten
- 30:49zu lassen, auf dem Server, auf dem wir es dann hosten.
- 30:51Ne, genau, dass die Clients lokal laufen und dann der
- 30:54Spieleserver quasi richtig gehostet ist.
- 30:57Und das ist ne coole Sache. Dafür brauchen wir natürlich
- 31:00aber n Server, auf dem das quasi deployed werden kann und auch
- 31:05läuft. Da möchte ich mal ganz kurz
- 31:07Werbung machen. Für, und zwar für unseren
- 31:09heutigen Partner Strato. Denn Strato hat zurzeit wieder
- 31:12absolute No brainer Angebote, gerade bezüglich Server, denn 1
- 31:16ist Fakt ja bei egal welcher Architektur, muss ja auch
- 31:20irgendwo das Frontend oder das Backend laufen.
- 31:22Und da stellt sich natürlich die Frage, warum nicht direkt auf
- 31:25einem Strato Server, denn das bedeutet, dass.
- 31:27Deutsche Standorte DSGVO konform und Green Hosting was wir beide
- 31:32auch super wichtig finden, steht nämlich auch im Fokus des
- 31:35Unternehmens. Richtig, und wenn das jetzt zum
- 31:38Beispiel dein erster Server ist, dann passt das auch, denn es
- 31:40gibt ein super einsteigerfreundliches User
- 31:42Interface, aber du kannst natürlich auch als
- 31:44Fortgeschrittener natürlich den Root Zugriff.
- 31:46Verwenden und die Strato v Server sind natürlich ideal zum
- 31:50Hosten kleiner Projekte oder allgemein deiner Projekte.
- 31:54Vielleicht auch das nächste Blockbuster Spiel, was du gerade
- 31:57in. Entwickelt, weil wir gerade über
- 31:58Spiele gesprochen haben. Wenn du also nicht nur saubere
- 32:01Softwarearchitektur bauen willst, sondern auch n passenden
- 32:03Server dazu haben willst, dann schau dir auf jeden Fall mal die
- 32:06Angebote an. Den Link findest du in den
- 32:08Shownotes und damit unterstützt du auch zusätzlich das Coding
- 32:11Buddies Projekt ohne Mehrkosten. Werbung Ende.
- 32:15Aber man muss natürlich sagen, dass gute Infrastruktur alleine
- 32:18ja keine saubere Struktur ersetzt.
- 32:20Also man braucht natürlich ne saubere Struktur in der
- 32:22Software, das stimmt. Man kann natürlich das ganze
- 32:25auch jetzt, weil wir jetzt 2 Schichten hatten.
- 32:27Man kann das Ganze natürlich auch noch ein Feingranularer
- 32:29machen, zum Beispiel eine 3 Schichten Architektur, wo
- 32:33Wunder, vielleicht auch eine 4 Schichten Architektur drosseln,
- 32:38aber zum Beispiel jetzt so eine 3 Schichten Architektur um so
- 32:40ein Praxisbeispiel zu bringen. Wir hatten ja vorhin auch über
- 32:44eine Bank gesprochen oder ein Webportal einer Bank
- 32:47beispielsweise, also dass man jetzt zum Beispiel eine
- 32:50Presentation hat. Dann die Business Logic und halt
- 32:53die Data Schicht. Ne, also dass man wirklich sagt,
- 32:56OK du hast einmal das was du siehst ne nach außen präsentiert
- 32:59wird. Du hast deine Logik irgendwo und
- 33:00du hast deine Daten deine Grundlage von von Daten die du
- 33:04hast ne und so also zum Beispiel wenn du jetzt so ne so ne Bank
- 33:08hast ne ist es ja auch schön das ganze dann ordentlich zu trennen
- 33:12weil wie wir ja schon meinten du willst ja die die Logik ja zum
- 33:16Beispiel also weil wir jetzt weil ich jetzt gesagt hatte man
- 33:18wir haben so ne Logikschicht so ne Business logikschicht die.
- 33:22Die willst du ja zum Beispiel auch nicht in die Presentation
- 33:24reinziehen, ne da, da soll ja wirklich nur gesagt werden, das
- 33:26und das hast du zum Beispiel auch deinen weiß ich, Kredit
- 33:29rahmen nee beziehungsweise wie heißt das hier deine Kreditrate,
- 33:33ne, dass du zum Beispiel sagst so ey Zinsen sind gerade so und
- 33:36so hoch was weiß ich ne hier kannst du so und so viel sparen.
- 33:40Das siehst du im Frontend beispielsweise oder in deiner
- 33:42Presentation und gleichzeitig wird aber in der Logik in einer
- 33:45Business Logik ja dann im vielleicht diese Regeln werden
- 33:48da angepasst und wieviel du aber am Ende wiederum was weiß ich
- 33:51auf dem Konto hast oder so, das ist halt ne Sache, die ist
- 33:54persistent irgendwo in einer Datenschicht zum Beispiel
- 33:56gespeichert ne. Sowas zum Beispiel.
- 34:01Ne ja, also oder auch wenn du so n Antrag denn zum Beispiel wenn
- 34:04du Kredit meinst ne, dann füllst du ja was da was du in der Hand
- 34:08hast ist wie du den Antrag ausfüllst ja, aber wie der
- 34:11verwertet wird, wie der wie deine Bonität geprüft wird, ne
- 34:14was denn am Ende rauskommt, das hast du ja gar nicht in der
- 34:16Hand, das ist nicht deine Schicht an der Stelle ne und da
- 34:20da sieht man das auch, dass da so n schichtmodell einfach auch
- 34:23auch aus Security Sicht logischerweise absolut Sinn
- 34:26macht, ne? Oder, oder wenn bei 3 Schichten
- 34:30ja glaube ich denken gerade hier, Grüße gehen raus an alle
- 34:33Fronthändler unter uns denken natürlich die Front, die ist
- 34:37genau denken natürlich auch viele gleich direkt an sowas wie
- 34:41das MVC Pattern, ne was im Prinzip ja auch so 3 Schichten
- 34:44hat, dass du sagst MVC Model View Controller.
- 34:49Ja, und das ist im Endeffekt auch nichts anderes als aus U
- 34:54also mit starkem UI Fokus zu sagen.
- 34:57Wie können wir sauber das voneinander trennen?
- 34:59Ne was sehe ich, wer verwaltet das wie ich interagiere damit
- 35:04und greift quasi auf das unterliegende Modell zu und dann
- 35:08ist so ne Schichten Architektur auch halt absolut sinnvoll an
- 35:11der Stelle. Damit du das nicht vermischt, ne
- 35:14damit nicht der Button selbst sagt Ich wurde geklickt.
- 35:17Übrigens gib mir mal die Daten und hier hast du sie weißt du
- 35:21das ist ich hab das ja auch nicht da.
- 35:23Ich hab das auch schon mal erlebt, weil du gerade sagst
- 35:25vermischen und Frontend und so hatte ich auch schon mal da.
- 35:30Wenn du jetzt zum Beispiel also angenommen du hast NN Endpunkt
- 35:33den du ansprichst, weil du irgendeine Suche machst, ne,
- 35:34dann ist zum Beispiel fand ich n ganz spannende n ganz spannendes
- 35:37Gespräch mal, dass du zum Beispiel du hast ja die
- 35:40Möglichkeit zu sagen, ich frag. Frage die Daten an ne und du
- 35:45kannst ja entweder sagen ich schicke jetzt so ne Art Filter
- 35:48mit ans Backend und das Backend schickt dir dann im Endeffekt
- 35:51anhand dieses dieses Filters die Daten raus oder du fragst alle
- 35:55Daten an erstmal und filterst dann im Frontend.
- 35:57Ne das ist natürlich dann am Ende n bisschen
- 36:01designentscheidung, aber und wie du das machen willst und wieviel
- 36:04Daten überhaupt mitkommen ne angenommen du würdest sagen ich
- 36:06hole mir immer alle Daten und das sind super viele Daten ne
- 36:08dann sollte man sich die auf jeden Fall nicht holen aber.
- 36:12Aber rein theoretisch ne. Wenn man jetzt sagt Logik
- 36:15trennen irgendwie. Ich finde das ist immer noch so
- 36:17ne Logik, die man auch im Frontend haben kann im
- 36:19Verhältnis zu die Abfrage darauf, ob dein Username und
- 36:23Passwort vielleicht gültig ist oder so oder was weiß ich ne,
- 36:28dass du zum Beispiel auch n gültiges Passwort zum Beispiel
- 36:31beim Erstellen eines Accounts angibst.
- 36:33Und wenn das zum Beispiel im Frontend getestet wird, aber
- 36:35nicht im Backend oder vielleicht unterschiedlich, dann hast du
- 36:38konntest du dir zwar n Account erstellen mit dem Passwort, aber
- 36:41das Passwort kannst du nicht mehr eingeben, weil dieses
- 36:43Zeichen zum Beispiel gar nicht mehr erlaubt ist.
- 36:44Hinterher oder so ne. Also da muss man halt gucken, es
- 36:48ist ja möglich irgendwie auch Logik in natürlich im Frontend
- 36:51zu haben, kommt man ja wahrscheinlich gar nicht
- 36:53drumherum, aber es ist immer die Frage, gehört es irgendwie mehr
- 36:55oder weniger zur Businesslogik dazu oder nicht ne Filterung für
- 36:59die Seite muss nicht unbedingt businesslogik sein.
- 37:02Wenn wir jetzt noch mal bei Business Business Logik sind,
- 37:04beispielsweise, aber bestimmte Dinge sind halt einfach wichtig,
- 37:08dass die nicht im Frontend stattfinden, ja.
- 37:11Genau. Und ja dann. 4 Schichten würde
- 37:17ich noch mal jetzt nennen, weil ich merke gerade wir haben es in
- 37:20unseren Analogiebeispiel ja auch schon direkt vierschichtig
- 37:23gemacht, weil viele Sachen sind halt so 4.
- 37:28End Schichten ja, man kann sich halt immer noch welche
- 37:31dazwischen bauen, aber so ne klassische 4 Schichten
- 37:34Architektur ist jetzt wirklich nicht selten gerade so auch in
- 37:37Backends, wenn man beispielsweise mit Spring Boot
- 37:42arbeitet oder cater, also so mit Frameworks, dann sind die also
- 37:46ich sag mal Sie zwingen einen nicht unbedingt dazu, aber man
- 37:49merkt halt, dass es schon viele Mechanismen gibt, die auch
- 37:52darauf aus sind das so zu verwenden, ja.
- 37:55Oder ja frontend, weil du Frontend meintest.
- 37:59Wenn ich jetzt so mit sowas wie Engular arbeite beispielsweise,
- 38:02dann habe ich ja auch so verschiedene Schichten, die mir
- 38:04indirekt vorgegeben werden. Ne, dass ich zum Beispiel ne
- 38:07Application Service Layer hab beispielsweise oder Components
- 38:12die nach außen gehen, ne, also man kriegt es so indirekt halt
- 38:17so über Frameworks mit, dann würde ich halt gerade.
- 38:21Allein schon Beispiel nur mal ganz kurz, weil es gibt ja
- 38:23Annotations, zum Beispiel wie Controller oder Service oder so
- 38:26ne, das sind ja. Genau sowas genau und dadurch
- 38:28kriegst du ja das sozusagen indirekt mitgegeben, sag ich
- 38:33mal. Und da muss ich halt dann immer
- 38:34irgendwie an backends denken, wenn ich halt sage, zum Beispiel
- 38:37Presentation Layer sind meine Controller mit den Endpunkten.
- 38:40Application Service Layer ist denn der Service den ich
- 38:44verwende aus dem Controller heraus.
- 38:46Der Service hat dann gewisse Logiken, aber sagt am Ende auch
- 38:50nur was soll gemacht werden und geht auch nur auf die nächste,
- 38:54zum Beispiel den Domain Layer, also die Domain Schicht, dass
- 38:57ich dann irgendwann in meiner Business Logik in meinen
- 39:00Datenmodellen angekommen bin, was wiederum mehr.
- 39:04Auf Repositories zugreift und auf die Datenbank dann
- 39:07letztendlich ne. Das heißt dann bin ich schon
- 39:09wieder in der Persistance Layer und so weiter und dieser Aufbau
- 39:14macht es halt unglaublich robust meiner Meinung nach.
- 39:18Es fördert halt auch, dass es robust ist.
- 39:21Wie gesagt, Wartbar, Testbar zum Beispiel.
- 39:24Ich möchte den Controller testen, ich möchte einfach nur
- 39:26wissen, dass wenn. Das und das zurückgemeldet wird
- 39:30von meinem Service den ich aufrufe.
- 39:31Dann geb ich n 404 zurück oder nen 200 ob der Tester an der
- 39:36Stelle jetzt Sinn macht oder nicht, aber ich bin in der Lage
- 39:39weil es klar getrennt ist und nicht direkt da auf dem
- 39:41Repository oder so zugegriffen wird.
- 39:44Den Service zu faken ne also ich bau mir n mog für den Service
- 39:47geb dann dementsprechend vor was ich möchte und kann testen ob
- 39:50mein Controller das macht, genauso kann ich den Service ja
- 39:53auch einzeln abtesten indem ich beispielsweise dann die nächst
- 39:57tiefere Schicht mocke und so weiter und das ist ja ne super
- 40:02Sache. Dann kann ich das so weit runter
- 40:04gehen bis ich sage OK und jetzt gaukel ich nur noch ne Fake
- 40:09datenbank vor ne wenn ich ne testdatenbank anbinde oder was
- 40:12auch immer also ich kann bin halt in der Lage das einzeln
- 40:15alle zu betrachten ja und zu testen und das ist halt auch
- 40:19gerade bei Backins einfach ne super Sache ja das wäre halt für
- 40:22mich so n klassisches 4 Schichten Modell oder?
- 40:25N je nachdem, wie wie einzeln du die dann irgendwann in der Tiefe
- 40:29betrachtest, ja. Ja, du kannst es natürlich noch
- 40:32weiter ausführen. Auf jeden Fall.
- 40:34Also auch hier die Anmerkung, dass wir unser Backend ja auch
- 40:39war ja so n Community, wie soll ich sagen, Vorschlag an der
- 40:44Stelle ne n Community Vorschlag zu sagen ey guckt euch doch mal
- 40:48cator an ne ihr sagt ihr seid mit Springboot unterwegs und
- 40:51Springboot haben wir auch viel verwendet vorher aber.
- 40:54Lasse einfach mal Cato nehmen, ne schön nativ kotlin, geil
- 40:58mögen wir und ist geil geiles Framework, Empfehlung geht raus,
- 41:03aber da im Prinzip sieht unser Backend genauso geschichtet auch
- 41:06aus ne also dass wir sagen OK ja das Backend hat irgendwo ne
- 41:11schichtenarchitektur wir haben zwar noch so n Domain Fokus sag
- 41:15ich mal ja also dass wir das ganze Domain.
- 41:19Ich würd nicht sagen komplett domain driven betrachten, aber
- 41:22schon ne Domain in Vordergrund stellen sag ich mal
- 41:25fachlichkeiten abbilden wollen und Schichtenarchitektur an der
- 41:29Stelle muss man sagen, das ist ja was wir sagen sehr technisch
- 41:31ne. Du hast klare Schnittstellen,
- 41:33der darf nur das Aufrufen, der darf nur das Aufrufen, niemals
- 41:36in die andere Richtung. Das sind ja so sehr technische
- 41:38Sachen, keine fachlichen. Ja, Domain Design schließt er
- 41:42jetzt eine Schichtenarchitektur nicht aus?
- 41:44Unbedingt. Nee, genau.
- 41:45Aber man muss es halt klar differenzieren an der Stelle,
- 41:49also dass das eine sehr technisch ist und Domain driven
- 41:53ist. Der Ursprungsgedanke ist
- 41:55fachlich zu betrachten. Auch hexagonale Architektur um
- 41:58mal ne Gegenüberstellung zu bringen ist sehr domain driven
- 42:01wir hatten ja auch gesagt, im Kern ist die Business Logic, da
- 42:04sind unsere Domain, da sind unsere Fachlichkeiten und dann
- 42:06geht es nach außen. Ja, aber also das auf jeden Fall
- 42:11der der Fokus ist natürlich dann irgendwo n anderer und trotzdem
- 42:14ist es ja nicht so, dass Domain driven Design im.
- 42:18Haben wir auch eine Folge darüber gemacht?
- 42:19Aber dass es jetzt nicht primär eine Architektur ist, sondern
- 42:24halt eben mehr eine Designentscheidung, muss man ja
- 42:26auch sagen. Genau weil ich kann ja zum
- 42:30Beispiel für jede Fachlichkeit mir diese Schichten aufbauen,
- 42:32genau, aber es ist ja natürlich auch so, dass also es hat
- 42:37Vorteile, auf jeden Fall sowas zu verwenden, definitiv.
- 42:41Es ist natürlich, also es ist, wie wir immer so schön sagen, es
- 42:45kommt auf die Sache drauf an, auf die.
- 42:47Die auf den einzelnen Fall wann macht etwas Sinn, wann macht
- 42:51etwas nicht, denn das ist natürlich aber definitiv auch
- 42:53so, dass es durchaus sein kann, dass vielleicht so ein
- 42:56Schichtmodell auch vielleicht weniger geeignet ist für etwas
- 42:59ne oder für einen Anwendungsfall oder für eine, sagen wir mal, du
- 43:04programmierst etwas und kommst dann irgendwann relativ schnell
- 43:08vielleicht an den Punkt, dass du sagst, du hast irgendwie dein
- 43:11Controller als Beispiel und. Musst irgendwie eigentlich gar
- 43:16nichts machen und musst wirklich trotzdem nur an deine Datenbank
- 43:19ran und dann denkst du dir so ja gut, aber irgendwie fehlt mir
- 43:22jetzt noch eine Schicht, weil wir ja gesagt haben
- 43:24schichtenmodell und dann hast du im Endeffekt irgendwie nur so
- 43:27eine Art Durchreiche, die dann da stattfindet, also dass du
- 43:32sozusagen eine du ziehst per Definition eine Schicht ein, die
- 43:37aber eigentlich nur eine leere Hülle ist.
- 43:39Ja, und dann macht es halt irgendwie keinen Sinn mehr,
- 43:42sowas halt irgendwie unbedingt durchzuziehen.
- 43:44Wenn du merkst, so OK, was mach ich hier eigentlich, warum hab
- 43:47ich jetzt ne Schicht die macht nichts das.
- 43:50Ist n sehr guter Punkt. Also klar, wir haben jetzt
- 43:52gesagt, so zum Beispiel Backend, so klassische Architektur oder
- 43:56klassische klassische Schichten, die da drin sind, sind die die
- 43:59und die und die, ja, und das waren jetzt 4 bis 5, also muss
- 44:03ich das machen, die beiden haben das jetzt so gesagt, Nein, so
- 44:05ist es natürlich nicht, ne und du hast recht.
- 44:09Wenn ich eine Leerhülle habe oder beziehungsweise nur so eine
- 44:12Durchfahrtsstraße als Schicht, dann ist das sogar ein Anti
- 44:16Pattern, was oft als Think Cole bekannt ist oder beziehungsweise
- 44:20benahmt wird, weil es am Ende dann auch nichts anderes mehr
- 44:23ist. Ja, also ich baue irgendwie eine
- 44:25Schicht ein, aber das sickert einfach nur so dadurch die da
- 44:28die Daten uns passiert nichts damit.
- 44:30Also wozu ist sie da, wie du ja meintest, wenn mein Backend
- 44:33einfach nur. Eigentlich wie n Datenbankserver
- 44:36ist sozusagen und ich frag Daten an und ich krieg die Daten und
- 44:39da wird nichts mitgemacht, da wird nichts geprüft, da ist
- 44:41keine Businesslogic mehr, da brauch ich da auch die ganzen
- 44:44Schichten dazwischen nicht. Ja ja, also zumindestens die die
- 44:47Application Service Schicht ist fraglich dann.
- 44:51Ja genau, und da muss man natürlich dann n bisschen
- 44:55challengen, dass man sagt, OK, ist das jetzt geeignet.
- 44:59Macht das jetzt Sinn, muss ich das jetzt genauso durchziehen
- 45:01oder nicht? Ne das wie gesagt, da muss man
- 45:03immer. Genau das ganze Betrachten und
- 45:05überlegen, was wann wie wo Sinn macht.
- 45:09Was auf jeden Fall oder wo es ja auf jeden Fall gut geeignet ist
- 45:13würde ich sagen, wenn man jetzt noch mal guckt, ne, wann macht
- 45:15es wirklich auf jeden Fall Sinn, sind halt eben so Business
- 45:19Anwendungen mit geschäftslogik ne wenn man sagt Okay zum
- 45:23Beispiel du hast ein Backend und du musst nicht nur mehr als
- 45:29Daten irgendwie weiterreichen, sondern dass du wirklich eine
- 45:31Trennung hast, dass du sagst du. Du hast irgendwie.
- 45:34Du nimmst Daten an. Diese Daten müssen vielleicht
- 45:36verarbeitet werden, du musst noch irgendwas damit machen,
- 45:38hast zum Beispiel so eine Art Service Schicht, die dafür
- 45:41sorgt, dass wo die Business Logik vielleicht drin steckt,
- 45:44irgendwas wird verrechnet und erst nach der Verrechnung kann
- 45:47irgendwas gespeichert werden, dann ist es halt sinnvoll so was
- 45:51zum Beispiel zu nutzen. Und da fand ich dein
- 45:55Bankbeispiel halt super. Das zeigt das Halt.
- 45:57Gut ist auch der Grund, warum ich eine Einleitung gesagt habe,
- 45:59es ist in. So vielen Unternehmen noch
- 46:02vertreten, weil Bank ist einfach das beste Beispiel.
- 46:04Der Kreditantrag, der soll sich ja nicht das Formular ändern
- 46:08oder an dass ich andere Daten angeben muss, nur weil quasi die
- 46:12Kreditberechnung zinssatzberechnung, ob ich
- 46:15überhaupt kreditwürdig bin, wenn sich da Gesetze ändern, regeln
- 46:18ändern, was auch immer, dann ist das n Teil der unteren Schicht
- 46:22das zu ändern. Ne darunter, dass die
- 46:25Kundendaten richtig gespeichert werden oder der Kreditantrag
- 46:27soll auch nicht verändert werden, deswegen es geht ja dann
- 46:30nur darum, lass mal die Berechnung ändern ob er den
- 46:32Kredit kriegt oder nicht und dann will ich ja auch nur eine
- 46:34Schicht anrühren und deswegen ist das halt n super Beispiel
- 46:37weil das kann man sich gut vorstellen.
- 46:39Also ich kreuz ja nicht in meinem Antrag an, aber bitte
- 46:42nach 2022 berechnen und nicht die aktuelle oder sowas weißt du
- 46:46oder welche welches Gesetz wollen sie denn nehmen dafür?
- 46:49Gerade für die. Berechnung weißt du von 6
- 46:51passiert ja 118 10 als Gold. Ja, aber das ist halt n gutes
- 46:59Beispiel, weil der Rest soll unberührt sein.
- 47:01Ich will da keine Änderung machen, nur weil sich quasi n
- 47:03Gesetz geändert hat und steuerberechnung sich geändert
- 47:06hat, der Zinssatz sich ändert whatever.
- 47:08Ja, auf jeden Fall. Das das ist auf jeden Fall n
- 47:14wichtiger Punkt. Das heißt, du hast ja vielleicht
- 47:15irgendwie so bestimmte, vielleicht auch wenn du so
- 47:19Domain regeln hast ne oder Domain regeln ich mein gut ne,
- 47:22da hast du ja haben wir wieder das Wort Domain drin, ne dass du
- 47:25sagst OK du hast irgendwo ne Business Logik die aber jetzt
- 47:28natürlich an einer Schicht verortet ist.
- 47:31Und ob du jetzt zum Beispiel sagst, du hast jetzt ne
- 47:33hexagonale Architektur oder n schichtenmodell, aber wichtig
- 47:37ist ja, dass es trotzdem sinnvoll ist, an der Stelle
- 47:40irgendwo zu sagen, dass du deine Business Logik kapselst, egal
- 47:44wo. Ja, aber in dem Fall zum
- 47:47Beispiel kannst du es halt in einer bestimmten Schicht machen,
- 47:49wo du sagst diese Schicht. Auch wenn du zum Beispiel sagst,
- 47:52du passt deinen Controller irgendwie an, es kann ja auch
- 47:55sein, dass du vielleicht einfach nur unter bestimmten Bedingungen
- 47:57andere Rückgabewerte zurückgeben willst, weil du irgendwie aus
- 48:02blöder Weise an dem Controller immer gesagt hast, OK, egal was
- 48:06passiert, gibt 200 zurück, aber das willst du irgendwie nicht
- 48:08mehr machen, weil dein Frontend jedes Mal du machst eine
- 48:11Überweisung und jedes Mal kommt. Okay super, wir haben deine
- 48:15Überweisung bestätigt, alles klar, super Sache und irgendwann
- 48:18kriegst du ein Brief und dann heißt es so, sorry, aber uns
- 48:21fehlt nur ein bisschen Geld, weil die Bank halt eben nicht
- 48:24sozusagen tritt ne Trennung von den Antworten gemacht hat,
- 48:28obwohl die Business Logik halt immer die gleiche ist, ne?
- 48:33Ja oder halt wie gesagt, denn die Außenschicht sich ändert ne,
- 48:36weil ich halt verschiedene Anbindungen hab, aber die
- 48:39Business Logik da drunter die Gleiche ist.
- 48:40Dann macht es halt auch Sinn, dass ich sag na gut, wenn ich so
- 48:43n architekturmodell hab, dass ich die obere Schicht
- 48:45austauschen kann beispielsweise das ist ja auch noch so n Punkt,
- 48:49dass ich sage ich hab ne Kernanwendung mit Schichten und
- 48:52die Application Layer da oben kann ja zum Beispiel auch mal
- 48:55adaptiert werden ausgetauscht werden wie du meintest ne dann
- 48:58spricht das halt auch schon ganz klar dafür das so zu machen.
- 49:01Ja ja. Aber ich meine, es gibt ja auch
- 49:04noch andere Modelle, dass man sagt, OK, also offensichtlich
- 49:10kann es ja auch nicht immer geeignet sein, es kann ja auch
- 49:12mal vielleicht weniger geeignet sein oder wo man sagt, OK, also
- 49:14wenn wir jetzt sagen, ja, also man könnte sich jetzt hinstellen
- 49:18und sagen, OK, klingt ja jetzt, klingt ja, kann ich für alles
- 49:21benutzen, aber warum gibt es denn noch andere Architekturen,
- 49:23weißt du? Also wir haben ja gesagt, robust
- 49:27ja. Ich finde, wenn etwas robust
- 49:30ist, ist es oft halt auch einhergehend mit starr so n
- 49:34bisschen. Und das mein ich nicht negativ,
- 49:36überhaupt nicht, weil wie gesagt, wenn du zum Beispiel so
- 49:39feste Logiken hast, ne und darüber sich nur Sachen ändern,
- 49:42dann ist das genau das was du willst an der Stelle, ja, dass
- 49:46du so n richtig krasses Fundament hast und da drunter,
- 49:48das ist robust, da passiert nichts so ne.
- 49:51Wenn ich aber beispielsweise. Weil wir Domain driven gesagt
- 49:56haben. Ja, wenn ich sehr, sehr stark
- 49:59domain driven Design umsetze und mein ganzes Projekt darauf
- 50:03auslege, sehr stark auf Fachlichkeiten gucke, was habe
- 50:07ich für Use cases da, was für Fachlichkeiten, was wie kapselt
- 50:11sich mein System überhaupt? Dann haben wir gesagt, so
- 50:14hexagonale Architektur, das matcht halt sehr geil dann
- 50:17miteinander und dann wäre das vielleicht eine bessere Wahl an
- 50:20der Stelle als zu sagen wie. Packe ich jetzt meine Domain
- 50:27driven Überlegung, sag ich mal ne, also meine mein fachlichen
- 50:31Ansatz in ein technisches Modell, also technisch im Sinne
- 50:35von weil man wie gesagt klare Schichten hat, die klar getrennt
- 50:38sind und dann und dann diese Regeln gelten, das ist halt
- 50:42wirklich sehr technisch und das zum Matchen ist dann halt
- 50:45vielleicht nicht immer optimal oder noch besser, wenn ich sage
- 50:48es ist so Event driven es gibt ja auch Event driven design, ne,
- 50:51dass ich halt wirklich alles. In Events.
- 50:54Mir denke, wenn das passiert, dann das das und das.
- 50:57Wenn das passiert dann dann das und das und so, ja können wir
- 51:00auch mal ne Folge zu machen Event driven ist halt auch
- 51:03spannend, dann ist das wahrscheinlich nicht die beste
- 51:07Architektur Entscheidung dahinter, weil wie gesagt, dafür
- 51:10gibt es ja denn eigene Architekturen auch ja und?
- 51:14Je mehr ich das aus diesem, aus dieser Sicht betrachte, umso
- 51:17weniger wird denn für mich so ein bisschen die
- 51:19Schichtenarchitektur, sage ich mal, als richtige Entscheidung
- 51:23gelten. Ich weiß nicht, wie es anders
- 51:24sagen soll, nicht, es ist auf jeden Fall nicht falsch, aber
- 51:27das zeigt mir so ja vielleicht denn doch in eine andere
- 51:30Richtung gucken. Na guck mal, wenn du sagst, du
- 51:32hast zum Beispiel so ein auch vielleicht eine ein System, was
- 51:36aus vielen einzelnen Services besteht.
- 51:40Nur mal, sagen wir mal jetzt ne Microservices.
- 51:43Da hatten wir auch mal ne Folge drüber gemacht.
- 51:47Wenn du jetzt zum Beispiel angenommen, du hast vielleicht
- 51:50so irgendein Service und sagst ey ich möchte aber diesen
- 51:53Service, da möchte ich noch n anderen Service benutzen, weil
- 51:55du zum Beispiel sagst du hast n System und dieses System damit
- 51:59möchtest irgendwie ne Authentication zur Verfügung
- 52:00machen, ne zur Verfügung stellen.
- 52:02Du möchtest irgendwie, dass du sagst.
- 52:04Auf diesem System kann man sich authentifizieren, so, aber es
- 52:07muss nicht unbedingt unser System sein, mit dem du dich
- 52:09authentifizierst. Du kannst ja zum Beispiel auch
- 52:11mit dich mit Google oder Github oder Frami nicht kannst du dich
- 52:13halt authentifizieren, gibt es ja manchmal ne sign in with so
- 52:17und so, ich hab aber noch nie gesehen.
- 52:19Ja und also. Noch mal ganz kurz abschließend,
- 52:22da macht es vielleicht Sinn zu sagen, Ey setzt deine einzelnen
- 52:25Services auf, dass du quasi deine dein System verteilt ist.
- 52:29Aber ich habe auch noch nie gesehen, dass zum Beispiel du
- 52:31eine Bank hast, wo es heißt sign in US Google, du willst ja quasi
- 52:37nicht Google die Anmeldedaten deiner Bank geben, also
- 52:41beziehungsweise dass dass du rein theoretisch, wenn du Google
- 52:44hacken würdest, nicht dann oder gehackt werden würde oder
- 52:48irgendein anderer Service muss ja nicht jetzt nicht unbedingt
- 52:50Google sein, aber. Dass du dann, wenn dieses System
- 52:52gehackt wurde, dass dann irgendwie jemand auf deinen Bank
- 52:55Account zugreifen kann. Jetzt kann man sich natürlich
- 52:57hinstellen und sagen, gut ja, aber wenn ich die Bank Hacke
- 52:59klar OK, aber du hast halt einfach diesen diesen diesen
- 53:03Hoheitsbereich wo du sagst, OK das ist sinnvoll für diesen
- 53:08Anwendungsfall, aber nicht immer ja aber wie gesagt, ich möchte
- 53:12mich jetzt zum Beispiel nicht mit Google bei meiner Bank
- 53:14anmelden können, möchte ich jetzt nicht.
- 53:17Und das ist halt auch das Ding. Ich finde Micro Services absolut
- 53:21geiler Vergleich, weil das ja auch so ein bisschen State of
- 53:24the Art oft genannt wird, Serverless, Micro Services,
- 53:27alles in der Cloud ja, es gibt die Anwendungsfälle dafür, gar
- 53:32keine Frage, und die sind gut und das ist geil, dass dass es
- 53:34so was gibt, aber wie zum Beispiel eine Bank, eine
- 53:38Versicherung, ja oder Behörden auch.
- 53:41Klar, ob das jetzt altbacken ist oder nicht, aber es gibt halt
- 53:44auch einfach Gründe, warum man auf so n geschlossenes System
- 53:47dann zum Beispiel setzt und sagt da, das setzen wir in einer
- 53:50Schichtenarchitektur um, das muss robust sein, das muss klare
- 53:54Verantwortlichkeiten haben, wie du meintest.
- 53:55So ne Hoheit haben dahinter, ja und das ist nämlich genau der
- 53:59Grund. Warum?
- 54:02Wenn man sich die Frage stellt, ich find die ist n bisschen
- 54:04provokant, aber man kann sich ja jetzt hinstellen und sagen ist
- 54:07schichtenarchitektur 2026 überhaupt noch zeitgemäß oder
- 54:11sollte man das alles einstampfen und neu aufbauen?
- 54:13Mal abgesehen davon, dass diese Unternehmen definitiv nicht
- 54:16sagen werden, Jo klar machen wir jetzt direkt neu, hatte ich ja
- 54:18anfangs das Beispiel gebracht, da hütet man sich ja vor so ne
- 54:22krassen Änderungen zu machen ja aber.
- 54:26Ist es denn wirklich notwendig oder ist es gar nicht so
- 54:29schlecht, was sie machen? Und ich finde sehr gut, dass du
- 54:32diese Gegenüberstellung bringst, weil es wie gesagt, was ist eine
- 54:36Schichtenarchitektur am Ende, sie ist verständlich, was ja
- 54:40auch zum Beispiel für verschiedene Normen und Prozesse
- 54:42super wichtig ist. Kann ich das nachweisen, kann
- 54:45ich nachweisen, dass es Main tainable ist, dass sie es warten
- 54:48kann, es ist Testbar, ist es komplett abgetestet.
- 54:51Ist alles nachvollziehbar da drin ne und wenn ich jetzt so n
- 54:55Konstrukt nehme und sage ja jetzt mach ich aber mal Tausende
- 54:57microservice da draus, ja und das Warten ist die Hölle im
- 55:02Vergleich zu dem anderen. Ja wie gesagt Vor und Nachteile
- 55:05aber Fakt ist wenn ich so viele Teilsysteme hab müssen die
- 55:08einzeln deploint werden, die müssen einzeln maintained werden
- 55:11und ergeben zusammen das Gesamtsystem am Ende da hab ich
- 55:15einen geschlossenen Bau Baustein sag ich mal der mein System
- 55:19abbildet diese Architektur beinhaltet.
- 55:21Haltet und da ist einfach alles klar geregelt, auch wenn es
- 55:24natürlich irgendwo technisch geregelt ist.
- 55:26Ne, aber es funktioniert, es ist robust.
- 55:28Ja ja, und damit ist ja auch so, ein bisschen kann man ja auch
- 55:33noch mal, ich sag mal zusammenfassend sagen, klar, wir
- 55:36haben 2026, es gibt Architekturen wie Microservices,
- 55:40Event driven Systeme oder Event driven architectures, was auch
- 55:45immer ne domain driven design so, weil es diese ganzen Sachen
- 55:47ja gibt, alles. Und trotzdem, aus den Gründen,
- 55:51die wir genannt haben, ist es ja durchaus auch sinnvoll und
- 55:54wichtig und auch je nach Entscheidung richtig zu sagen,
- 55:58dass man vielleicht auch einfach mal ne ganz normale ich nenn es
- 56:02jetzt mal ganz normale Schichtenarchitektur verwendet,
- 56:04ne? Fakt ist, ist nicht modern,
- 56:08wissen wir, ist nicht hip, wissen wir auch, aber manchmal
- 56:13so oder weißt du sowas etabliertes, Kerniges, robustes
- 56:17ist doch nicht schlecht, oder? Genau.
- 56:20In dem Sinne, ich würd sagen wir sind glaub ich auch schon wieder
- 56:23zeitlich n bisschen fortgeschritten.
- 56:27Können wir die Folge abschließen?
- 56:29Hat auf jeden Fall Spaß gemacht. Tino vielen Dank dafür.
- 56:34Softwarearchitektur ist auf jeden Fall immer ne wichtige und
- 56:38interessante Sache, sollte man sich auf jeden Fall immer
- 56:40genauestens durch den Kopf gehen lassen wir.
- 56:45Finden es auf jeden Fall spannend.
- 56:46Liebe, zuhören, Liebe zuhören, sag auf uns auf jeden Fall, was
- 56:48du cool findest beziehungsweise welche softwarearchitekturen
- 56:51dich sehr interessieren. Was hast du schon genutzt, was
- 56:53hast du vielleicht noch nicht genutzt, worüber möchtest du
- 56:55vielleicht unbedingt noch mal ne Folge hören?
- 56:57Schreib uns auf jeden Fall, komm gerne dazu auf n Discord,
- 57:00schreib uns ne DM, schreib in die Channels, kannst uns auch ne
- 57:03Mail schreiben. Oder bei Instagram.
- 57:06Frag mich nicht. All diese Links gibt es auf
- 57:08jeden Fall in den Shownotes und wenn du sagst ey geiler Podcast.
- 57:12Richtig Spaß hat, richtig Spaß gemacht, die Folge zu hören,
- 57:15generell den Podcast zu hören und du hast noch nicht eine
- 57:17Bewertung da gelassen, dann macht es auf jeden Fall
- 57:19unbedingt sehr sehr wichtig, das würde uns mega helfen und
- 57:23genauso wenn du jetzt zum Beispiel sagst, Ey meine Güte,
- 57:26ist das cool, da möchte ich noch ein bisschen mehr dazu geben.
- 57:30Dann kannst du zum Beispiel auch mit einem Kleinen mit einer
- 57:32kleinen Spende uns unterstützen. In dem Falle bedanken uns
- 57:36natürlich auch ganz recht herzlich und dann würde ich
- 57:39sagen, Tino, das war es mal wieder bis zur nächsten Woche,
- 57:43deine Kollegin. Gemeinsam besser.
- 57:48So, ich werde mich jetzt mal bei dieser Plattform da anmelden,
- 57:51die nicht bezahlt werden. Können ja i kriegt dann also AI
- 57:53Credits, die ich dann wieder für Proms ausgeben.
- 57:55Kann.