Latest / Coding Buddies | Tech & Dev-Mindset / #145 Neues Jahr, saubere Architektur – spar dir 100 Stunden Refactoring
Transcript
- 0:00Also ich hab mich immer vorne hingestellt, hatte so 5 Jacken
- 0:03an und hab dann meine Architektur erklärt, indem ich
- 0:05immer so eine Jacke mehr ausgezogen hab als.
- 0:07Mies geschwitzt bis dahin. Coding Buddies Dein Podcast rund
- 0:12um Softwareentwicklung und aktueller Tech News herzlich
- 0:16Willkommen. Halli Hallo und herzlich
- 0:30Willkommen zur neuen Folge des Coding Buddies Podcast.
- 0:33Ein neues Jahr ist gestartet, es geht wieder los.
- 0:36Wir sind natürlich wieder dabei und am Start, wir werden dich
- 0:39dieses Jahr wieder begleiten und deswegen erstmal Fabi herzlich
- 0:44willkommen im neuen Jahr und zur neuen Folge was geht ab.
- 0:47Keep coding Tino, keep coding fabi.
- 0:51Das ist nicht Diät, das ist nicht nur die Neujahrsfolge ne,
- 0:54nicht nur eine neue Folge, sondern die Neujahrsfolge so
- 0:57rum. Ja, richtig, richtig krass,
- 0:59oder? Ja, also vor allem geil, dass es
- 1:02so ne Punktlandung ist. Auch ne ja stimmt, das ist genau
- 1:05der erste heute, ja es ist es geht los, quasi das ja gerade
- 1:10los, es geht los, ja wie ist es dir so ergangen, bist du gut
- 1:16reingerutscht ja ja ich würd sagen ich würd jetzt mal nicht
- 1:19meckern ja wir halten gar nicht verkatert aus ja wir halten
- 1:23krass wir halten jetzt live fest ja.
- 1:26Auditiv, dass wir nicht verkatert sind.
- 1:29Ja, hast du dir auch 5 Kopfschmerztabletten vorher
- 1:32reingeworfen? Klar und ne tatsächlich ne,
- 1:39tatsächlich bin ich ganz fit, das ist ganz cool, ich hab auch
- 1:42richtig Bock auf die Folge, aber ich würd gern mal noch mal so n
- 1:44ganz klassisches Thema weil es ist passt halt so perfekt das
- 1:48ist so der 1.1. Ne müssen da jetzt einfach ganz
- 1:51kurz drüber reden, auch wenn es zu klischeehaft ist.
- 1:53Neujahrsvorsätze ne. Hast du welche?
- 1:58Ja, du weißt ja, wie das bei Neuers Vorsitz noch mal ist.
- 2:00Weißt du, man denkt sich so, oh, ich nehme mir dies vor, ich
- 2:02nehme mir das vor und dann hinterher guckst du drauf und
- 2:04denkst dir so scheiße habe ich ja gar nicht gemacht, deswegen
- 2:07habe ich mir jetzt einmal vorgenommen, dass ich mir sage,
- 2:09ich möchte, ich habe mir wirklich vorgenommen, dieses
- 2:12Jahr Software zu entwickeln, weil ich glaube, ich schaffe es.
- 2:17Okay krass krass. Also einfach mal ein bisschen
- 2:19Software entwickeln, so, ja. Ja, ich denke never change a
- 2:22running. Ist das möglich, dass du
- 2:24schaffst? Ja cool, cool, ja, ich denke ja,
- 2:26da bin ich guter Dinge, also notgedrungen wirst du es einfach
- 2:29erreichen, allein durch den Job denke ich okay bei mir ist es
- 2:35also ich habe wirklich einen Vorsatz, falls es dich
- 2:37interessiert und zwar habe ich so für mich ein bisschen
- 2:41entschieden, ein Vorsatz für dieses Jahr ist genau ja genau,
- 2:45endlich jetzt der muss. Wenn alle quasi aufhören wollen,
- 2:52dann denk ich mir, ich fang einfach mal an.
- 2:54Ja nee Real talk, ich hab mir vorgenommen dieses Jahr einfach
- 2:58n bisschen weniger zu planen. OK.
- 3:02Insofern, dass ich einfach Bock hab, n bisschen spontaner und
- 3:06flexibler zu werden in meiner Freizeit, weil das war letztes
- 3:11Jahr krass, also da war alles so ziemlich durchgetaktet.
- 3:13Ja, dieses Wochenende, das nächstes Wochenende, das jetzt
- 3:16wieder das. Und so die letzten freien
- 3:19Wochenenden wurden dann auch noch verplant und ich dacht mir,
- 3:21ey, lass doch mal so n bisschen spontaner werden, einfach mal
- 3:26immer mehr so Platzhalter haben, weißt du wo du sagst, nee an dem
- 3:29Wochenende plan ich jetzt erstmal nichts direkt wenn ich
- 3:32so ein 2 Tage vorher das entscheide OK dann hab ich ja
- 3:34spontan Bock drauf aber ich hab halt keinen Bock wieder in die
- 3:37Situation zu kommen zu sagen so Oh ey weißt du was jetzt 5
- 3:41Wochenende nicht zu Hause nur unterwegs?
- 3:44Das kann halt auch schon stressig werden, weißt du, und
- 3:47da dachte ich mir, das probier ich mal.
- 3:48Ich werd in ungefähr 12 Monaten berichten, wie es funktioniert
- 3:51hat. Ich bin gespannt in 12 Monaten,
- 3:54aber das witzige ist ich hab mir ich hab mir was ähnliches.
- 3:57Ich, ich will nicht sagen vor, also schon vorgenommen, aber
- 3:59irgendwie zählt das für mich gedanklich nicht als
- 4:02neujahrsvorsatz, weil ich mir das eigentlich letztes Jahr
- 4:04schon vorgenommen hab, weil. Es ist einfach n zweiter Versuch
- 4:09quasi. Na ja, also nicht.
- 4:10Also ich hab es mir letztes Jahr für dieses Jahr vorgenommen,
- 4:12aber es zählt nicht als Neujahrsvorsatz, weil ich den
- 4:16schon viel früher gefasst hab für das ja jetzt weißt du.
- 4:19Ja, aber so sind nicht die Regeln.
- 4:21So sind nicht die Regeln. Also es ist jetzt entweder n
- 4:23neujahrsvorsatz oder du machst es nicht, da musst du dich
- 4:27entscheiden, das Ding ist einfach, also das letzte Jahr
- 4:31war super voll wie du auch meintest das.
- 4:34War ging bei also war bei mir genau das gleiche und.
- 4:38Am Ende des Jahres war es aber n bisschen schöner.
- 4:40So weißt du n bisschen entspannter, da hat sich es dann
- 4:42gelichtet. Das blöde ist halt, dass ich mir
- 4:45das schon öfter auch trotzdem vorgenommen hab, dass ich mir
- 4:47zumindest sage, Ey, der Sommer soll jetzt nicht mal nicht so
- 4:50voll geballert sein. Und das sind doch gerade die
- 4:53Monate, die immer total voll geballert sind.
- 4:55Genau und spätestens am. Mai.
- 4:57Genau. Und.
- 4:57Spätestens im Mai guckst du wieder in deinen Kalender und
- 5:00denkst dir so, boah. Vielleicht nächstes Jahr.
- 5:03Wir können ja. Weißt du, wenn dann irgendjemand
- 5:05fragt, hast du irgendwie Zeit, dann kannst du immer so im Mai
- 5:08sagen, Jo klar, auf jeden Fall, wie wär es mit Oktober?
- 5:12Ja. Sieht schlecht aus, vielleicht
- 5:14Oktober, frühestens. Ja ja, ich wünsch dir auf jeden
- 5:17Fall viel Erfolg damit, dass das klappt bei uns beiden, das ist
- 5:21ja sehr ähnlich, aber hier natürlich die Anmerkung, das
- 5:24Ganze betrifft natürlich nicht das Projekt Coding Buddies, da
- 5:27werden wir weiter Vollgas geben, wir haben ja auch ne Menge vor
- 5:30dieses Jahr und auch. Schon wieder keine Zeit.
- 5:32Da nee, das mal ausgeklammert. Wir haben ja ne Menge vor und
- 5:38schon so Ideen, was wir dieses Jahr alles so.
- 5:41Anstellen können, sag ich mal. Das wird auf jeden Fall geil.
- 5:43Ich hab Bock auf das Jahr und deswegen würd ich sagen, lass
- 5:46uns auch einfach mal direkt in die 1.
- 5:48Folge des Jahres Reinstarten passt nämlich auch ganz gut, wir
- 5:51haben ja heute wieder so n etwas grundlegendes Thema, was
- 5:55vielleicht auch so n bisschen einleitend sein können für
- 5:58weitere Folgen. Ja, aber ich würd gerne mit dir,
- 6:02du hast das ja vorgeschlagenes Thema und ich find es mega cool,
- 6:05dass wir da jetzt einfach mal so ganz basic mäßig drüber
- 6:09quatschen so allgemein. Ja, also wir hatten
- 6:13beziehungsweise ne, es gibt ja so verschiedene
- 6:16Softwarearchitekturen und wir hatten ja auch schon über BDD
- 6:19gesprochen, also behavior driven Design und domain driven Design,
- 6:25was ja so n bisschen sag ich jetzt mal gut zusammen spielt
- 6:29und ja auch irgendwie auch auch mit mit Softwarearchitekturen
- 6:34gut vereinbar ist, sozusagen. Und deswegen haben wir uns jetzt
- 6:38gesagt, OK, lass uns noch mal n bisschen über
- 6:39Softwarearchitekturen sprechen, und zwar allgemein über
- 6:42Softwarearchitekturen beziehungsweise
- 6:44Softwarearchitektur und aber dann halt zum Beispiel auch,
- 6:48weil das auch n Wunsch war so hexagonale Architektur ne wird
- 6:52dann aber ne einzelne Folge. Ja, also heute mal.
- 6:55Fokus. Auf generell
- 6:57softwarearchitektur. Was ist das zum Beispiel?
- 7:01Beziehungsweise wo? Warum nutzt man das eigentlich?
- 7:04Warum sollte man sich darüber Gedanken machen, ist das
- 7:06vielleicht auch irgendwie was für Einsteiger, sollte man da
- 7:10schon n bisschen Plan von haben oder sagt man dann zum Beispiel
- 7:13nee, brauchst du gar nicht am Anfang all so ne Fragen, dass
- 7:17man das klärt und einfach logischerweise wie immer auch
- 7:21guckt OK was sind unsere Erfahrungen, was läuft da gut,
- 7:25was läuft nicht so gut zum Beispiel oder beziehungsweise
- 7:28warum. Braucht man das?
- 7:30Was sind denn die Vorteile davon?
- 7:33Ja, ist natürlich jetzt der ein oder andere, der so richtig Fan
- 7:37von Softwarearchitekturen ist oder sich sehr viel damit
- 7:40beschäftigt. Denkt sich natürlich gerade so,
- 7:42wie kann er es wagen das Ganze in Frage zu stellen, ob man das
- 7:46überhaupt braucht, wie kannst du nur, aber ich finde das ist ne
- 7:50sehr sehr valide Frage. Weil man ja einfach mal
- 7:54begründen oder beziehungsweise mal auseinanderklamüsern sollte.
- 7:58Warum beschäftigen sich Leute so intensiv mit diesem Thema, was
- 8:02ist der Grund dahinter und das mal zu beleuchten ist ja auch
- 8:04gerade wenn ich am Anfang der Softwareentwicklung stehe n
- 8:08super spannender Punkt und deswegen find ich es cool, wenn
- 8:10wir damit auch so n bisschen einsteigen, Mhm.
- 8:15Hast du vielleicht ne Analogie? Also ich ich, die ich jetzt
- 8:18gerade so im Kopf hab ist vielleicht nicht die Schönste,
- 8:20deswegen hoffe ich jetzt einfach, dass du vielleicht ne
- 8:22Coolere hast, die einfach mal so n bisschen zeigt.
- 8:27Warum macht man sich beim Cohen darüber Gedanken?
- 8:32Also ne richtige Analogie. Also ich finde die absolute No
- 8:35brainer Analogie zu der ganzen Geschichte ist so n Gebäude ne
- 8:39also wenn du jetzt sagst du baust irgendwie n Haus oder so,
- 8:42dann fängst du ja bei na ja. Fängst ja jetzt auch nicht an
- 8:45und sagst OK ich bau einfach mal n paar Mauern, leg irgendwo n
- 8:48paar Leitungen hin und am Ende denkst du dir so irgendwie wollt
- 8:51ich das Badezimmer da haben, aber komischerweise kann ich das
- 8:54da gar nicht hinpacken weil ich hab gar keinen Wasseranschluss
- 8:56in diesem Zimmer, dann denkt man sich halt irgendwie auch so, er
- 9:01ist irgendwie n bisschen blöd ne also man plant ja im Endeffekt
- 9:04vorher was man gerne haben möchte und baut es meistens dann
- 9:09auch so, dass man irgendwie in der Lage ist auch zu sagen.
- 9:12Ich kann vielleicht auch noch was anbauen oder weiß nicht,
- 9:15wenn irgendwie mal irgendwo n Schaden ist, dann kann ich den
- 9:19vielleicht auch relativ gut warten oder was auch immer ne
- 9:22und beziehungsweise reparieren und das ist ja ne Sache.
- 9:26Das ist finde ich eigentlich relativ logisch, dass man so
- 9:30über bestimmte Dinge denkt, also selbst wenn du selbst irgendwie
- 9:33mal was bastelst oder so ne, dann denkst du dir im Zweifel
- 9:37auch nicht, na ja. Ich mach es mal so, dass ich das
- 9:41zum Beispiel weiß nicht, dass ich damit gar nichts mehr
- 9:43anfangen kann. Das ist jetzt so und ich kann
- 9:45das nicht mehr verändern oder so ne, egal was so ne, mir geht es
- 9:50jedenfalls so ne und genau das ist ja eigentlich auch bei
- 9:53Software oder sollte bei Software der Fall sein, dass man
- 9:56sich überlegt, OK wenn ich da irgendwie mir ne Software baue,
- 9:59dann muss ich ja auch irgendwie in der Lage sein nachträglich
- 10:02noch was hinzuzufügen oder sagen wir mal etwas.
- 10:08Zu verändern, ohne dass jetzt gleich das ganze
- 10:10Kartenhauseinander in sich zusammenfällt.
- 10:14Genau und vor allen Dingen auch warten zu können, ne oder
- 10:16reparieren zu können wie du meintest.
- 10:18Ne, also dass ich halt auch einplane, dass mal etwas kaputt
- 10:22geht oder verändert werden muss und es so eingeplant ist.
- 10:26Jetzt beispielsweise auch beim Haus zum Beispiel die Elektrik,
- 10:29ne, dass ich da halt auch irgendwie noch im Nachhinein
- 10:31rankomme oder es erweitern kann, ne?
- 10:35Das nicht wie du meinst, alles kreuz und quer geht, sondern
- 10:38keine Ahnung ist. Auch sag ich mal ganz trivial
- 10:40gesagt n Sicherungskasten gibt wo ich auch mal n bisschen
- 10:43Zugriff hab. Ja und das find ich ist n cooles
- 10:48Beispiel, gerade weil wir ja von Softwarearchitektur sprechen und
- 10:56der gleiche Begriff ja auch bei bei Häusern verwendet wird ne
- 11:00also dass du sagst es gibt n Architekten der das plant.
- 11:04Ein Konzept erstellt, wie das Ganze umgesetzt werden soll, da
- 11:07natürlich die Kundenwünsche, die ja ne riesenrolle spielen, auch
- 11:11bei der Softwareentwicklung logischerweise berücksichtigt
- 11:15sind. Ja, also wo soll das Button,
- 11:17wieviel Räume soll es geben, wie soll die Aufteilung sein, gibt
- 11:21es vielleicht auch Extrawünsche, die jetzt nicht in die Norm
- 11:24passen, was ja auch n wichtiger Aspekt ist?
- 11:26Ne weil jedes Projekt ist ja irgendwie unique ja und
- 11:30einzigartig, genauso wie die Häuser ja irgendwie immer denn.
- 11:34Ab einem gewissen Punkt sag ich mal so Eigenheiten haben die
- 11:39dann nur dieses Haus betreffen. Genauso ist es ja bei der
- 11:42Softwareentwicklung auch und deswegen ist das Halt einfach n
- 11:45sehr klassisches n gutes Beispiel, weil du halt genau
- 11:49dieses Pendant hast. Ne es gibt n Architekten für
- 11:51Häuser und es gibt n Architekten die Rolle gibt es ja oft
- 11:54softwarearchitekt ja in Projekten oder in Teams.
- 11:59Die sich halt genau mit diesem Thema dann beschäftigen, damit
- 12:01nicht wir als Entwickler oder sag ich mal diverse Handwerker
- 12:06einfach ihr Ding durchziehen und am Ende es irgendwie nicht
- 12:09zusammenpasst. Also ja, auf jeden Fall ich.
- 12:12Ich würd tatsächlich aber zumindest sagen, dass also ich
- 12:15persönlich bin zum Beispiel nicht so n Fan von geteilten
- 12:19Rollen in Sachen Softwareentwickler oder
- 12:23Entwicklerin und Software Architektin oder Software
- 12:25Architekt. Weil ich finde, irgendwie jeder
- 12:28sollte sich schon irgendwie Gedanken darüber machen, wie
- 12:30Software designt werden sollte, aber das fällt jetzt noch mal
- 12:33auf n anderen Acker, aber ich glaube das siehst.
- 12:36Du ja, das ist ja quasi wie wie n Team aufgebaut ist.
- 12:38Ja, aber ich sag mal so, im traditionellen Sinne ist es ja
- 12:41oft so, dass du schon Leute hast, die sich da mehr mit
- 12:44beschäftigen, sag ich mal. Ja.
- 12:46Also so im traditionellen, in der traditionellen
- 12:49Softwareentwicklung hast du ja, oder?
- 12:53Sagen wir mal so, es ist vielleicht nicht unbedingt ne
- 12:55100% Rolle, aber es sind so Sachen, die Leute anstreben.
- 12:58Ja, also ganz oft hört man ja ja, ich möchte mehr so in die
- 13:02Architekturrichtung gehen und ich möchte irgendwie Senior
- 13:05softwarearchitekt werden, so was jetzt dahinter steht oder
- 13:09beziehungsweise was man im Team am Ende wirklich ist, steht ja
- 13:12auf einem anderen Blatt, ne, aber im Prinzip hast du, so sag
- 13:15ich mal rollen oder oder Bereiche, um die man sich
- 13:21kümmert. Ob du jetzt quasi ne Rolle hast
- 13:23und dich um mehrere Bereiche kümmerst oder nicht.
- 13:25Aber du hast ja diese architektenbereich sag ich mal
- 13:28genauso wie denn auch beim Hausbau, um jetzt die Analogie
- 13:30einfach noch mal aufzugreifen. Versteh ich, versteh ich.
- 13:33Genau das ist nämlich genauso der Grund zu sagen, OK, es
- 13:37müssen strukturelle Entscheidungen getroffen werden
- 13:40mit langfristiger Auswirkung. Ja, also in dem Moment, wenn ich
- 13:44dieses Haus plane, dann soll es ja hoffentlich eine Auswirkung
- 13:47für die Ewigkeit sagen. Meine Planung soll ja Bestand
- 13:50haben, sozusagen und nicht morgen wieder über Bord geworfen
- 13:53werden. So ist es auch bei der
- 13:54Softwareentwicklung, dass du sagst, wir treffen grundlegende
- 13:58Architektur Entscheidungen und danach wird entwickelt, so wird
- 14:01die Software aufgebaut, dann kannst du natürlich einen
- 14:05Schritt weiter gehen und ich finde, dass es geht dann auch
- 14:07schon wieder mehr noch in das, was du gerade meintest.
- 14:11Das Ganze muss man aber so n bisschen auch von Design
- 14:14trennen. Ja also du hast so ne
- 14:16grundlegende Architektur wo eigentlich so wirklich die
- 14:20Basics drin sind, da können gehen wir ja später.
- 14:22Sicherlich geh ich jetzt mal von außen noch genauer drauf ein und
- 14:25da übergelagert oder beziehungsweise nicht
- 14:28übergelagert sondern feingranularer kommst du
- 14:30irgendwann zu designentscheidung und da sollte sich auch jeder
- 14:33Entwickler zu 100% Gedanken drüber machen.
- 14:36Ja. Ja, auf jeden.
- 14:37Fall ne, also da kommst du nicht mehr drumherum.
- 14:39Wenn du sagst, hey hier, das ist Architektur da ich bin
- 14:42Entwickler. Ja ja das hat mit mir nichts zu
- 14:43tun, kann man bis zum gewissen Grad vielleicht so Hardline
- 14:46durchziehen und sich davon freimachen, aber bei so
- 14:49Designentscheidung nicht mehr. Ja, das stimmt.
- 14:51Und weil wenn du dann noch. Und bei der Implementierung
- 14:54schon gar nicht. Ich wollt Grad sagen, wenn du
- 14:55noch n Schritt weitergehst in die Implementierung, dann na ja
- 14:59bin ich raus. Genau nein, aber ich find es
- 15:03gut, dass du zum Beispiel sagst. Also Architektur sind quasi,
- 15:06also hat auch was für, also für langfristige oder Entscheidung
- 15:10für langfristige Auswirkungen, wenn man sich überlegt, weil man
- 15:15könnte jetzt relativ schnell auf den Gedanken kommen und sagen,
- 15:17ja gut, aber man Software ist schnelllebig, da muss man ja
- 15:20auch vielleicht mal wieder was ändern können und so und genau
- 15:22das ist halt der Punkt, du designst ja zum Beispiel deine
- 15:25Architektur, je nachdem wie was sozusagen dein.
- 15:29Zugrundeliegendes System machen soll.
- 15:31Und wenn du zum Beispiel weißt, Deine Software ist relativ
- 15:35schnelllebig, da kommen neue Sachen hinzu, alte Sachen gehen
- 15:39vielleicht wieder weg oder verändern sich, wie auch immer,
- 15:41da musst du das halt dementsprechend, also nicht
- 15:43Design, sondern deine Architektur dahingehend so
- 15:46wählen. Ne und das ist ja wie zum
- 15:50Beispiel wenn du jetzt, wenn wir noch mal bei diesem Gebäude
- 15:52bauen, Analogie sind. Du überlegst dir ja zum Beispiel
- 15:57auch OK, ich brauch irgendwie vielleicht NNN Wohnhaus oder n
- 16:00Leuchtturm so, da sind 2 komplett grundlegende
- 16:02unterschiedliche Architekturen. Ja von einem Gebäude, aber das
- 16:08eine ist halt. Für einen bestimmten Zweck
- 16:10gedacht und das andere für n anderen Zweck.
- 16:12Also du sagst jetzt im im in den seltensten Fällen ja gut, dann
- 16:16wohne ich jetzt mal in einem Leuchtturm so, das ist
- 16:18normalerweise kein Wohngebäude, ne und das sind halt, das ist
- 16:21halt genau das Ding, genauso wie zum Beispiel n Wohngebäude sehr
- 16:24unwahrscheinlich auf einmal an der Küste steht und man jetzt
- 16:27auf einmal sagen müsste, ja wir brauchen jetzt aber keine Ahnung
- 16:31n hohen Punkt wo wir irgendwie leuchten ne also das sind halt.
- 16:36Anders kannst aber klassische Anforderungen, wenn du n Haus
- 16:38baust. Ja, aber andersrum kannst du ja
- 16:40genauso sagen. Ey, ich hab jetzt n Haus, das
- 16:43ist hat jetzt zum Beispiel ne gewisse Energiequelle und ich
- 16:46möchte diese Energiequelle umbauen, das ist halt
- 16:48prinzipiell kein Problem mehr. Du kannst zum Beispiel sagen OK
- 16:50ich ich leg irgendwie ne andere Zuleitung, irgendwie ist der
- 16:53Grundstock schon geschaffen und ich kann jetzt aber anstatt was
- 16:57weiß ich Gas oder Öl kann ich jetzt ne Wärmepumpe zum Beispiel
- 17:00irgendwie anschließen ne Mhm das sind halt so Dinge wo man sagt
- 17:04OK klar. Der Grundstock muss für den
- 17:07entsprechenden Zweck da sein. Aber es ist natürlich natürlich
- 17:12sinnvoll, auch dann zu sagen, OK, ich Design ist aber so oder
- 17:16wähle meine Architektur so, dass ich eben auch bestimmte
- 17:20Veränderungen zulassen kann. Ne, diese Erweiterbarkeit
- 17:25beispielsweise. Ja.
- 17:27Ja, das sind halt wichtige Eigenschaften.
- 17:29Im Prinzip greift da an der Stelle auch vieles zusammen, was
- 17:33wir auch im Podcast besprochen haben, wir hatten ja so
- 17:35verschiedene Prinzipien der Softwareentwicklung.
- 17:40Ja, also Kiss hatten wir gemacht, 3 hatten wir gemacht,
- 17:44Jakni solid, ich glaub ja doch die hatten wir auf jeden Fall
- 17:47abgedeckt, dann haben wir ja auch, weil wir ja gesagt haben,
- 17:50OK, nächste Stufe ist Design, ja, wir besprechen ja auch
- 17:53aktuell Design pattern. Die jetzt wieder für den
- 17:56Entwickler dann sehr interessant sind, die alles irgendwie
- 18:00ineinandergreifen und genau diese Eigenschaften die du
- 18:03nennst ja fördern sollen ja zum Beispiel Erweiterbarkeit ja,
- 18:08Skalierbarkeit ja kann ich zum Beispiel sagen, ich brauch mehr
- 18:12Wohnraum um die Analogie noch mal aufzugreifen, bin ich in der
- 18:15Lage es zu erweitern um zu ändern, ja zu warten was wir
- 18:19auch meinten, ne dass wenn was kaputt geht.
- 18:22Genau, und da gibt es jetzt so verschiedene.
- 18:24Gibt es gibt so viele Ansätze, wie man das Ganze machen kann,
- 18:28um einfach mal n Paar zu nennen. Wir hatten ja mal ne Folge
- 18:31Monolithen versus Microservices zum Beispiel.
- 18:34Genau das sind schon 2 Architektur, Architektur
- 18:37Entscheidungen die du da hast. Ne setz dich auf n Monolithen
- 18:41oder setz dich auf Microservices auf viele kleine Bestandteile.
- 18:45Ein Beispiel hat man ja so gegenübergestellt.
- 18:48Du hast hexagonale Architektur vorhin genannt, das war n
- 18:51Wunsch, den werden wir auch umsetzen, also diejenigen, die
- 18:54das jetzt hören und sich gewünscht haben, ja wir werden
- 18:56ne Folge zu hexagonaler Architektur machen, weil es auch
- 18:59n super cooles Thema ist. Wär jetzt auch so n Beispiel was
- 19:03auch viel besprochen wird ja serverless Event driven eine
- 19:09klassische Schichtenarchitektur auch ja was du auch viel in der
- 19:13technischen Informatik zum Beispiel hast.
- 19:16Das sind so so wirklich spannende Sachen und zeigt, es
- 19:19gibt sehr, sehr viele Konzepte, die alles vor und Nachteile
- 19:22haben, aber sich halt genau mit diesen Grundfragen, die wir
- 19:25jetzt so angeteasert haben und schon angesprochen haben, immer
- 19:28auseinandersetzen, um diese Eigenschaften quasi zu erfüllen
- 19:32oder bestmöglich zu ermöglichen. Ja, das ist ja genau der Punkt
- 19:36ne, je nachdem was du für n. Ne Gebäude baust gibt es
- 19:41vielleicht dann als also ne, diese Gebäudeanalogie gibt es
- 19:45dann in der Softwarearchitektur verschiedene Architekturansätze,
- 19:48mit denen man halt arbeiten kann und.
- 19:50Genau. Da passt halt das eine.
- 19:52Passt mal besser als das andere oder ist halt einfach sinnvoller
- 19:56und es ist ja nicht so, als würde man sagen, jetzt
- 19:59beispielsweise, diese Architektur ist auf jeden Fall
- 20:00besser als ne andere, sondern es ist halt eben genau der Punkt,
- 20:04dass man sagt, du musst gucken in welcher.
- 20:08In, in, in welcher Region du sozusagen unterwegs bist und was
- 20:11für dich passt. Ne, das ist genau finde ich dann
- 20:13im Endeffekt die Kunst bei der softwarearchitektur dir zu
- 20:16überlegen, was ist denn überhaupt sinnvoll?
- 20:18Ne, wenn du jetzt so als kleines Beispiel, du willst irgendwie ne
- 20:22Webanwendung oder sowas bauen, ne, da macht es halt einfach
- 20:26allein schon Sinn ne ich mein das ist jetzt.
- 20:28Ich will jetzt nicht direkt, also wir wollen jetzt nicht
- 20:30direkt auf eine bestimmte Architektur oder so eingehen,
- 20:32aber es ist ja zumindest irgendwie sinnvoll zu sagen, OK,
- 20:35pass auf, wir trennen etwas, ne wir modularisieren überhaupt
- 20:39irgendwie bestimmte Punkte und packen nicht alles irgendwie in
- 20:41einen Riesen. Wie heißt das Ball of Matt
- 20:46sozusagen? Also so dieses Antipatter, weißt
- 20:48du, wo einfach alles zusammengepresst wird in einem
- 20:51Moorloch sozusagen, sondern du hast irgendwie n frontend, du
- 20:53hast n Backend, du hast ne eigene Datenbank, die
- 20:56kommunizieren dann irgendwie zum Beispiel über ne Rest API, du
- 21:00hast möglicherweise noch Cloud Services, die du anbinden
- 21:03kannst. Ne, und das sind alles im
- 21:07Endeffekt Dinge, die man sich auf jeden Fall überlegen sollte,
- 21:12so. Jetzt nur als kleines Beispiel
- 21:14ne, wir wollen ja in anderen Folgen noch mal n bisschen
- 21:15genauer darauf eingehen, aber da kannst du dich halt zum Beispiel
- 21:19auch Fragen. OK, soll mein Frontend und mein
- 21:20Backend irgendwie n riesen Monolith sein oder sollen es
- 21:22eher kleine Microservices sein? Ne so und dann kommt es halt n
- 21:26bisschen auf den den Anwendungsfall am Ende drauf an,
- 21:30ne auch noch mal Stichwort zum Beispiel.
- 21:34Domain driven design was für Domänen hast du denn, dass du
- 21:38zum Beispiel sagst, OK, du hast einzelne Fachlichkeiten, die du
- 21:41zum Beispiel in die entsprechenden Microservices
- 21:42packst, oder? Genau.
- 21:46Und das was halt einfach klar sein muss an der Stelle ist ja,
- 21:51dass wie du meinst, dass das ein Abwägen ist.
- 21:54Es gibt nicht die perfekte Lösung.
- 21:57Es ist nicht so, dass ich quasi ne Art Fragebogen hab.
- 22:00Was möchte ich machen, was möchte ich verwenden.
- 22:04So und so und so OK, diese Architektur ist es, du könntest
- 22:08jetzt quasi anhand von sag ich mal Wahrscheinlichkeiten gute
- 22:12Empfehlung rausgeben, das geht auf jeden Fall ne was sich
- 22:15erstens bewährt hat ganz ganz wichtiger Punkt ne wie setzen,
- 22:19was haben andere eingesetzt und was hat gut funktioniert das
- 22:22sind auch Erfahrungen die man selbst sammelt.
- 22:25Denn einen Punkt darf man auch nicht unterschätzen.
- 22:27Es muss auch irgendwo zum Team passen.
- 22:31Das heißt jetzt nicht, dass sich jetzt Teammitglieder irgendwie
- 22:34dagegen sträuben sollten oder so, sondern es ist nicht, also
- 22:38nicht für jedes Projekt funktioniert der gleiche Ansatz
- 22:41mit den gleichen Leuten so, das war jetzt vielleicht n
- 22:43komplizierter Satz, aber so ist es am Ende ja, also du musst
- 22:47halt gucken, womit kommen die Leute gut klar und was matcht zu
- 22:50unserem Projekt noch zusätzlich, sozusagen ne.
- 22:53Weil ganz oft hatten wir ja auch in der Community sowas wie, ja,
- 22:57wir haben uns jetzt entschieden, unser neues Projekt so und so
- 23:01umzusetzen. Läuft gut, läuft nicht gut so,
- 23:05läuft so lala, also gibt es ja alle möglichen Outcomes daraus
- 23:09ne und da sieht man das kann halt n sehr ähnliches Projekt
- 23:12sein, aber mal läuft es gut, mal nicht ja also das das das muss
- 23:15man halt irgendwie ja validieren für sich selbst auch und ich
- 23:20finde es ist auch wichtig. Zu erkennen, dass ne Architektur
- 23:24nicht in Stein gemeißelt ist. Ja, das ist natürlich n riesen
- 23:27Refacting. Das ist n kompletter
- 23:28Strukturbruch. Wenn ich jetzt sage, ich änder
- 23:30meine grundlegende Architektur, aber wenn das Projekt da quasi
- 23:35danach schreit, dass das passieren soll, dann muss man
- 23:37den Weg auch gehen und man kann den Weg auch gehen, das ist halt
- 23:40nicht in Stein gemeißelt am Anfang und genauso finde ich es
- 23:45halt auch wichtig wie du meintest so Skalierbarkeit,
- 23:49Wartbarkeit. Das sind alles schöne
- 23:52Eigenschaften, aber es ist n trade off.
- 23:55Ich kann nicht alles maxen sozusagen ne, dass ich sage ich
- 23:58hab jetzt alles optimal und ich bin einfach perfekt unterwegs,
- 24:02es ist ja eher so, wenn ich zum Beispiel in die eine Richtung
- 24:06gehe, dass die andere n bisschen weniger gut ausfällt zum
- 24:10Beispiel. Ja.
- 24:12Ja. Also da mögen jetzt vielleicht
- 24:15der ein oder andere aufschreien und sagen, ja, nee, nee, nee, so
- 24:17ist das nicht. OK, ja gut, das ist wie gesagt
- 24:19Einzelfallentscheidung, aber nehmen wir mal irgendwie n
- 24:22triviales Beispiel, wenn ich sage, ich möchte unfassbar gut
- 24:26skalieren können, ja kann es halt einfach sein, dass zum
- 24:29Beispiel meine Main tainability schlechter wird, beispielsweise
- 24:34ja. Wird ja auch komplexer dadurch
- 24:35ne. Genau also ne.
- 24:37Also man muss halt immer gucken, das kann nicht in alle
- 24:40Richtungen gleich. Ausgedehnt werden sozusagen,
- 24:44sondern es ist halt so ne ne Eigenschaft wird mal n bisschen
- 24:47besser sein und n bisschen schlechter und das muss aufs
- 24:49Projekt matchen. Aber ich find es gut, dass du
- 24:52sagst, weil im Endeffekt ist es ja auch genau die Frage, die man
- 24:55sich stellen muss. Welche Punkte sind denn zum
- 24:56Beispiel wirklich relevant für die entsprechende Anwendung, die
- 24:59du machst? Ne, weil es bringt ja nichts,
- 25:01wenn du keine Ahnung versuchst, ne absolute Outperformance zu
- 25:05bringen. Wenn Performance aber an der
- 25:07Stelle völlig egal ist. Ne, also angenommen du sagst du
- 25:11machst irgendwie weiß nicht du hast ne Anwendung was
- 25:13irgendwelche Modelle simuliert die was weiß ich immer nachts
- 25:17laufen und da eh keiner arbeitet und dann ist es völlig egal ob
- 25:21du zum Beispiel ob dein deine Performance sagt ey ich brauch
- 25:25ne Stunde für das Modell um das zu simulieren zum Beispiel oder
- 25:283. Wenn aber quasi 8 Stunden eh
- 25:31nichts passiert so mal als Beispiel ne dann.
- 25:34Ist es, dann ist es egal ne irgendwo an einem gewissen Punkt
- 25:37wird es vielleicht wieder wichtig, weil wenn du dann
- 25:39irgendwann keine Ahnung 100 Stunden brauchst ist blöd, aber
- 25:43nur um sich das kurz vorzustellen, ne, da ist es
- 25:46wichtig wirklich zu definieren, was sind denn unsere wichtigen
- 25:49Punkte? Ja ich find das ist manchmal ist
- 25:52es nicht unbedingt, also es klingt so einfach und so trivial
- 25:57und logisch, dass man sagt, Na klar überlegt man sich was
- 26:00wichtig ist für mein System und klar mach ich das dann und.
- 26:04Komischerweise ist aber genau das nicht immer der Fall, dass
- 26:07man sich dann denkt, Moment, aber Mhm, wieso ist das jetzt so
- 26:10gemacht worden? Also beispielsweise guck mal,
- 26:12wir hatten jetzt unser letztes letzten Programmierwettbewerb,
- 26:14ne der war ja Ende letzten Jahres jetzt und da hatten wir
- 26:19zum Beispiel auch angefangen, uns tatsächlich gar nicht so
- 26:22genau überlegt, weil wir dachten es ist n kleines Projekt, es ist
- 26:24so n ne 4 gewinnt kriegt man schon irgendwie hin.
- 26:28Und trotzdem haben wir am Ende gemerkt, Na ja, pass auf, alles,
- 26:30was wir hier sozusagen zeitlich steuern, macht viel mehr Sinn,
- 26:33es zum Beispiel Eventbasiert zu steuern, ne, also bestimmte
- 26:37Sachen, die irgendwie stattfinden, und das haben wir
- 26:42uns im Vorfeld nicht genau überlegt und man hätte es aber
- 26:45machen sollen rückblickend ne, es wär schon besser gewesen für
- 26:48uns, wenn wir das einmal so n bisschen konzeptionell überlegt
- 26:52hätten und gesagt hätten, OK und dazu muss man sagen, es ist ja
- 26:55nur wirklich nur ne Kleinigkeit gewesen.
- 26:58Aber, und das ist auch find ich wieder n übelstwichtiger.es, das
- 27:03muss man ja auch lernen. Weißt du also, es ist ja nicht
- 27:05so, ich find immer, gerade wenn man sich denkt so, ja jetzt fang
- 27:09ich hier an Softwarearchitektur, das ist aber nicht perfekt, es
- 27:13muss nicht immer alles sofort perfekt sein, ich glaub der
- 27:16wichtigste Schritt ist anzufangen damit ne und halt aus
- 27:20bestimmten Dingen zu lernen, auf jeden Fall, aber das ist halt
- 27:22der der der Knackpunkt den ich eigentlich meine.
- 27:27Man sollte sich überlegen, was wichtig ist, weil wie du meinst,
- 27:29man kann nicht alles maxen. Ja, ja, aber ich find das, das
- 27:34ist n gutes Beispiel mit unserem for connect Turnier, weil immer
- 27:38wenn man das Gefühl hat so ah na ja hier brauchst du das nicht so
- 27:41machen, hier brauchst du ja nicht so Gedanken machen, das
- 27:43ist n kleines Projekt, das ist immer schon so ne Warnung, dass
- 27:47man es wieder maßlos unterschätzt und am Ende es
- 27:50einem doch auf die Füße fällt. Weißt du, man denkt so kleines
- 27:53Projekt ja gut, aber dann hat man sich in der Community
- 27:56entschieden, ey lass doch noch n Feature hier einbauen und da wär
- 27:59doch cool wenn das im Spiel so und so wäre, dann ne dann
- 28:02erweiterst du und erweiterst du und merkst so ey wir bauen hier
- 28:05aber auf keinem guten Fundament auf, wir bauen gerade dieses
- 28:09Hauskreuze und quer und hoffen, dass am Ende sag ich mal es
- 28:14regendichte so die Tür zugeht. Nee, keine Ahnung, aber.
- 28:17Das war einfach wieder n Paradebeispiel, dass selbst
- 28:20kleine Projekte nach sowas schreien, dass man sich da
- 28:22Gedanken drüber macht. Ja und das ist auch wieder n
- 28:25Learning für uns wie du meintest zu sagen, egal wie klein das
- 28:30Projekt ist. Lass doch am Anfang mal kurz da
- 28:32drüber nachdenken, weil 10 Minuten hätten vielleicht
- 28:34gereicht. Ja und uns ne Menge Arbeit im
- 28:37Nachhinein. Erspart also auch hier, man
- 28:40lernt nie aus. Weißt du was ich aber auch immer
- 28:42gut finde, also mein das hab ich auf jeden Fall auch schon n paar
- 28:44mal erlebt. Du hast ja bestimmte
- 28:46Entscheidungen, die du triffst. Du sagst, ey OK, wir haben
- 28:49jetzt, das ist wichtig für uns, für unser System, das sollten
- 28:52wir machen, das heißt, wir sollten unser System auf jeden
- 28:54Fall darauf auslegen, dass es zum Beispiel diese
- 28:57entsprechenden Punkte berücksichtigt oder halt
- 28:59beherrscht, so OK, kein Problem, machen wir so, und dann macht
- 29:05man das so und hat halt eben diese Entscheidung getroffen, ne
- 29:07und denkt sich so, super Sache was ich so geil finde ist und
- 29:12das ist halt einfach immer dieser Klassiker.
- 29:14Das möchte ich jetzt mal so in Raum stellen.
- 29:17Man wird diese Entscheidung treffen und diese Entscheidung
- 29:19werden, ich sag jetzt auch mal unter Umständen richtig sein,
- 29:23angenommen, die sind mal richtig in diesem Moment oder auch
- 29:26darüber hinaus, es wird trotzdem irgendwann wieder der Punkt
- 29:29kommen oder irgendjemand kommen und sagen, warum macht man das
- 29:34denn so, warum habt ihr das denn so gemacht, das ist doch echt
- 29:37Quatsch das so zu machen, warum habt ihr es jetzt nicht
- 29:38andersrum gemacht? 130%, dass das passiert,
- 29:43irgendwer kommt ja cool, das ist halt auch immer die Frage,
- 29:48wieviel Einblick hat er auf die aktuellen Ergebnisse, sozusagen
- 29:51ne oder die aktuellen Erkenntnisse, die man damals
- 29:54nicht hatte, das vergessen auch Leute immer sehr gerne, ne, also
- 29:58sowas entwickelt sich über die Zeit und ne Architektur kann
- 30:01sich über die Zeit halt auch als richtig oder falsch oder nicht
- 30:05optimal sag ich mal herausstellen und muss angepasst
- 30:09werden. Ja, ein Bauplan muss auch mal
- 30:12überarbeitet werden und so weiter ich find es, es ist n
- 30:17witziger Punkt. Wir hatten ja auch die Folge so
- 30:19über toxisches Verhalten und das kickt da halt auch rein, wenn
- 30:22Leute sich so die Hände reimen denken, Oh ja jetzt kann ich
- 30:26das, jetzt kann ich sie bloßstellen so nach dem Motto
- 30:29aber ich denke wenn jeder ehrlich zu sich selbst ist, wird
- 30:32er an diesem Punkt gekommen sein und sich zurück erinnern können.
- 30:36Ja gut, war nicht die richtige Entscheidung.
- 30:38In dem Moment war es aber gut und hat den Projekt gefördert,
- 30:40also das Projekt gefördert. So ne die Entwicklung und das
- 30:45ist halt. Ja, gehört dazu ja, dass man
- 30:49Sachen auch mal überdenken muss und hinterfragen muss und dann
- 30:51auch im Nachhinein ändern muss. Ja, wichtig ist, sich im Vorfeld
- 30:55einfach mal Gedanken zu machen und das hilft halt zum Beispiel
- 30:58auch solche Architekturentscheidungen dann
- 31:00auch unter Umständen zu dokumentieren.
- 31:01Ne, also gerade wenn du jetzt zum Beispiel sagst, OK, wir
- 31:04haben das und das. Wir haben uns da und dafür
- 31:07entschieden, zum Beispiel. Wir haben gesagt, EY, wir machen
- 31:10Microservices, weil wir wirklich viele verschiedene kleine
- 31:16Fachlichkeiten haben, die einzeln abgebildet werden
- 31:18können, die miteinander, sag ich mal, kommunizieren müssen, aber
- 31:21eigentlich sehr autark sind, weil sie nicht wirklich viel
- 31:24miteinander zu tun haben, mal so als Beispiel so, dann kann man
- 31:28das ja aufschreiben und sagen, genau aus diesen Gründen haben
- 31:31wir jetzt zum Beispiel die und die Architektur gewählt, so ne
- 31:33sehr kleines Beispiel, aber. Das macht halt Sinn, weil dann
- 31:37kannst du dich zumindest immer noch hin, weil es wird genauso
- 31:40der Punkt kommen, dass irgendjemand sagt, aber wieso
- 31:43wurde das nicht so gemacht und die Leute, die sich dafür
- 31:46entschieden haben, je nach Argumentation sag ich jetzt mal
- 31:50von der anderen Person könnten sich muss ja nicht mal böse
- 31:52gemeint sein, könnten sich aber fragen, ja, hast du recht, warum
- 31:55eigentlich ne also wie oft hab ich schon auch erlebt, dass man
- 31:59an den Punkt kommt mit. Jetzt nicht
- 32:02softwarearchitektonisch ne, sondern wirklich um wenn es
- 32:05jetzt um Implementierung geht, dass man an n Punkt kommt, wo
- 32:08man vielleicht irgendwann mal dran gearbeitet hat und sich für
- 32:10irgendwas entschieden hat und irgendjemand dazu kommt und sagt
- 32:13wieso hast du es so gemacht? Ich hätt ne Idee wollen wir es
- 32:16nicht vielleicht so machen? Denkst dir so ey das ist
- 32:18eigentlich ne ganz geile Idee, es klingt irgendwie klingt
- 32:20lässig so das zu machen ne und dann überlegt man das baut es
- 32:25vielleicht um kommt an einem Punkt wo man sich dann wieder
- 32:27denkt weißt du was? Ich weiß wieder, warum nicht
- 32:30gemacht. Ja, ich weiß wieder, warum wir
- 32:32es so gemacht haben. Also und das ist bei
- 32:34Softwarearchitektur unter Umständen auch so und deswegen
- 32:36ist es halt nicht verkehrt dann auch zu sagen, wenn man sich für
- 32:39etwas entschieden hat, OK halt es fest Dokumentierst irgendwo,
- 32:42schreibst mal nieder und wenn es nur fürs Team ist.
- 32:44Wenn es nur für den nächsten ist der ne gute Idee hat oder
- 32:48vielleicht auch n bisschen drauf lauert wie du meintest.
- 32:53Ja, absolut. Was sind denn so?
- 32:58Wenn ich jetzt so drüber nachdenke ne und ich versetz
- 33:00mich so in mein altes ich zurück, der jetzt anfängt sich
- 33:03damit auseinanderzusetzen. Ne wenn ich so an meine Zeit
- 33:09zurückdenke, wo es damit losging, weiß ich noch, dass ich
- 33:12so gewisse Architekturen vielleicht gelernt hatte, ne
- 33:15oder davon gehört hatte und dann.
- 33:19Im Prinzip dachte neues Projekt alles klar, ich bau jetzt so
- 33:22diese Struktur auf, ich will jetzt genauso meine Software
- 33:24entwickeln, das ist ja total gegensätzlich zu dem, was wir
- 33:28jetzt gesagt hatten, so, man muss das entscheiden,
- 33:30projektweise und so weiter trotzdem neigt man ja dazu so n
- 33:35bisschen over Engineering zu betreiben oder dass man
- 33:38vielleicht für n Projekt für n Projekt, wo es überhaupt nicht
- 33:40notwendig ist, komplexe Architekturen aufbaut und das
- 33:44finde ich ist halt auch einfach so ne so ne übungssache, ja.
- 33:48Und Erfahrungssache. Ich glaub Erfahrung und Übung
- 33:50spielt da natürlich zusammen, aber muss jetzt mal einzeln
- 33:53genannt werden, weil es gibt diesen Moment, wo du dann
- 33:56irgendwann besser entscheiden kannst.
- 33:58Also ich habe geübt diese Architekturen umzusetzen, ich
- 34:01kann das und die Erfahrung kommt irgendwann dazu zu sagen, wann
- 34:04macht es Sinn also oder ist das jetzt gerade einfach over the
- 34:08top, ist das over Engineering wie wie, wie, wie sind denn da
- 34:12deine Erfahrungen so das würde mich mal interessieren, weil ich
- 34:14weiß halt wie gesagt damals noch.
- 34:16Ja, so, jetzt so wird es gemacht.
- 34:18Genauso wie ich das bei den Design Pattern ja schon gesagt
- 34:21hatte. Ich hab neues Design pattern in
- 34:23in der Uni gelernt und es war einfach erstmal überall und
- 34:26genauso war es eigentlich auch so mit so Basic Architekturen.
- 34:30Ja, ich weiß, ich. Also ich glaube, bei mir war es
- 34:33eher ich überleg gerade. Also ich hab mir glaub ich immer
- 34:38eher so gedacht, also irgendwie bei Design Pattern war es bei
- 34:42mir auch so bei Software Architekturen dacht ich mir
- 34:45immer so. Boah, keine Ahnung, lass einfach
- 34:49mal irgendwie überlegen wie es sein könnte, am besten ohne da
- 34:52überhaupt nen ne richtige ich sag mal Architektur mit Namen
- 34:59hinter zu sehen. Weißt du also ich glaube es gibt
- 35:01so verschiedene Herangehensweisen, es gibt so
- 35:03Leute die so sich die sich erstmal freimachen von den
- 35:06Architekturen und einfach erstmal überlegen was wär
- 35:08irgendwie sinnvoll, wie könnte man es aufbauen und versuchen
- 35:11dann so zu gucken OK wo sind wir eigentlich gelandet, ist das
- 35:13jetzt eher das oder dies oder ähnliches?
- 35:15Also sozusagen so n wie nennt man das Bottom vielleicht oder
- 35:18so n top Down Ansatz, wo man sich dann so denkt, so Na ja,
- 35:21pass auf, wir nehmen, es klingt für mich wie hexagonale
- 35:24Architektur, das sollten wir dann nehmen und jetzt gucken wir
- 35:27uns mal an wieso das sinnvoll ist.
- 35:28Weißt du also in die andere Richtung zu gehen deswegen, also
- 35:33bei mir war es ungefähr mal so, dass ich erst mal angefangen hab
- 35:35mir was zu überlegen und dann aber nie am Ende gesagt hab, ah
- 35:38und das ist die Architektur zum Beispiel soweit hab ich gar
- 35:42nicht gedacht. So, deswegen kann ich mich da
- 35:45nicht ganz so reinversetzen. Aber bei wenn du jetzt dieses
- 35:47Beispiel von Design Pattern nimmst, kann ich auf jeden Fall
- 35:50verstehen, dass man dann, wenn du sagst, du hast irgendeine
- 35:53Kleinigkeit, ne und versuchst irgendwie ne Architektur drüber
- 35:57zu ziehen, das ist schon, also dass dass man da schon schnell
- 36:00in over Engineering kommen kann und das finde ich ist immer so,
- 36:05wenn wenn man da reinkommt hat man das Problem, ich will ne
- 36:08Kleinigkeit anfangen. Und man plant und plant und
- 36:11plant und plant. Und irgendwie passiert dann am
- 36:13Ende gar nichts so. Ja, das ja, dass man es einfach
- 36:18zerdenkt das ganze ne, aber um n Beispiel zu geben, ich hatte
- 36:21damals es war so einer meiner ersten hiwi Jobs neben des
- 36:24Studiums und Hab an so einem Projekt mitgearbeitet wo so ne
- 36:28Art na ja es war von der Architektur halt so diese
- 36:31typische Zwiebelschale ne also gibt es ja auch so, dass du
- 36:35sagst ich hab so verschiedene Layers ne und die Kommunikation
- 36:38geht quasi. Also das Wissen geht immer nur
- 36:41nach innen, sozusagen. Ja, das deswegen sagt man ja ne
- 36:45Zwiebel, ne, ich kann jetzt immer eine Schale weiter
- 36:47abmachen, komm halt immer tiefer, sozusagen bis zum Kern
- 36:51und das dachte ich mir so damals OK warte mal.
- 36:54Ich hab bis jetzt nur so einzelne Funktionen entwickelt
- 36:56als Übung im Studio und ihr fangt jetzt an hier in wirklich.
- 37:00Also für mich war das ne Riesen Software damals ja.
- 37:03Ne große Software zu bauen und ihr habt so n Konzept dahinter
- 37:07und ihr könnt mir das an Bildchen zeigen.
- 37:09Voll geil mach ich jetzt immer so ne und ja aber die klasse
- 37:13darf niemals wissen über die andere haben und immer nur nach
- 37:16innen so weißt du und so das meinte ich halt mit so
- 37:19angesteckt und sich gedacht so muss ich jetzt immer Software
- 37:22entwickeln, aber dass das natürlich nicht immer die
- 37:24richtige Lösung ist ja oder überholt ist, das war mir damals
- 37:28egal, das war so ich ich ich hab das jetzt gelernt, ich muss das
- 37:31machen so weißt du. Aber das sind, natürlich, muss
- 37:35man sagen, sind es ja trotzdem architekturentscheidung gewesen,
- 37:39die das Team damals getroffen hat.
- 37:41Ne, sich zum Beispiel über den Datenfluss Gedanken zu machen,
- 37:45ja, von wonach wo fließen meine Daten, wer hat überhaupt Zugriff
- 37:49da drauf, wer hat überhaupt wissen über dem, was quasi auf
- 37:52der nächsten Ebene passiert. Das Gleiche ist ja auch zum
- 37:55Beispiel bei so Schichten Architektur was wir meinten ne.
- 37:59Wenn du jetzt gerade auch mal so in die Netzwerktechnologie gehst
- 38:01oder so und du hast so verschiedene Schichten, die dann
- 38:03aufgebaut sind, und das sind, das sind ja alles Sachen, die
- 38:07hat man damals gelernt, aber so richtig ja, also man konnte es
- 38:12nicht so richtig differenzieren, weißt du, sondern du hattest so
- 38:15die Übung, hast du denn da angefangen sowas zu machen, aber
- 38:18das ist das, was ich meinte mit der Erfahrung, dass du dich
- 38:20irgendwann dann fragst, so muss ich das jetzt so machen, oder
- 38:24mach ich das nur, weil das jetzt gerade so mein mein
- 38:26Werkzeugkoffer ist, der das hergibt?
- 38:28Hast du dich dann in der Uni mal hingestellt und gesagt, so
- 38:31Leute, bevor ich euch jetzt meine Übungsaufgabe zeige, das
- 38:34ist jetzt hier meine Architektur, diese klasse hat
- 38:37eine Static Funktion, bitteschön.
- 38:42Ja, ich hab. Ich bin ja immer so Fan von
- 38:44weißt du, da sind wir beide immer so von Analogie ne und
- 38:47Veranschaulichung. Also ich hab mich immer vorne
- 38:50hingestellt, hatte so 5 Jacken an und hab dann meine
- 38:53Architektur erklärt indem ich immer so ne Jacke mehr
- 38:55ausgezogen hab, mies geschwitzt bis dahin ja das wär doch mal n
- 39:01joke. Ja, aber ich meine aber an sich
- 39:05würde ich ja trotzdem sagen, OK, es ist ja aber völlig in
- 39:07Ordnung, wenn du das so gemacht hast.
- 39:10Weil du ja dadurch einfach auch Erfahrung gesammelt hast und
- 39:13gelernt hast, oder? Also ich meine, im Endeffekt
- 39:17hilft es ja mehr, sich darüber Gedanken zu machen und zu
- 39:20versuchen, etwas zu tun, um dann am Ende vielleicht zu merken,
- 39:24OK, so kann ich es besser machen oder das bringt mir irgendwie
- 39:27überhaupt nichts. Also ich find.
- 39:32Und ich glaub. Das hab ich jetzt auch schon n
- 39:33paar mal gesagt, aber es bringt ja irgendwie nichts mit der
- 39:36Herangehensweise. Zu starten, dass man sich sagt,
- 39:41OK, ich muss jetzt mal das und das machen und es muss jetzt
- 39:45perfekt werden, also bei allen möglichen, also bei allen
- 39:47Themen, die wir hier irgendwie auch im Podcast schon besprochen
- 39:49haben, ob es jetzt über wirklich ein bestimmtes Software Design
- 39:54Pattern geht, über Softwarearchitektur oder ne
- 39:57agile Arbeitsweise, oftmals wird ja darüber gemeckert und gesagt,
- 40:01das funktioniert aber so und so nicht, weil man, weiß ich nicht,
- 40:04also oftmals, wenn man. Paar Leuten darüber redet,
- 40:08kommen solche Argumente dann auch von Leuten, die gesagt
- 40:10haben, ich hab es einmal ausprobiert, hat nicht geklappt
- 40:12ne so und da denk ich mir so OK, aber gerade auch wenn du jetzt
- 40:16bestimmte Architekturen nutzt oder jemand sagt Na ja, aber so
- 40:19würd ich es nicht machen, ja warum denn hab ich mal
- 40:21ausprobiert, geht nicht so weißt du da hilft es einfach viel mehr
- 40:26sich auch frühzeitig, vielleicht auch wenn es ne gewisse Art von
- 40:29over Engineering erstmal ist. Das trotzdem auszuprobieren und
- 40:33dann seine Erfahrungen damit zu sammeln, um dann zu sehen, OK,
- 40:35das geht, geht nicht oder geht dafür gut und dafür nicht gut.
- 40:38Weißt du, das ist n super wichtiger Punkt und deswegen
- 40:41hatte ich auch das Beispiel jetzt so mal n bisschen gebracht
- 40:43zum ermutigen, gerade für Leute, die da jetzt quasi erst
- 40:46anfangen, erst anfangen damit sich zu beschäftigen mit dem
- 40:49Thema ne man muss es ausprobieren, man muss selbst
- 40:53spüren was vor und Nachteile sind.
- 40:56Sich als Theoretiker hinzustellen und aus dem Buch
- 40:58die vor und Nachteile zu lesen und dann zu sagen, ja, nee, so
- 41:01ist nicht, und so weiß ich nicht, ob das der richtige Weg
- 41:04ist, ne, weil wie gesagt, das ist immer sehr individuell am
- 41:08Ende und man muss halt einfach die Erfahrung sammeln und sich
- 41:11dann auch ehrlich hinstellen am Ende und sagen, das war gut, das
- 41:15war ziemlich herausfordernd für uns im Projekt und wie könnte
- 41:19man nächstes mal vielleicht ne bessere Entscheidung treffen da.
- 41:22Ist ja, das ist ja n wichtiger Punkt, dann am Ende auch daraus
- 41:26zu lernen. Definitiv.
- 41:28Ich meine, wenn du gerade ganz am Anfang bist in der
- 41:31Softwareentwicklung, also wirklich relativ, das hatte ich
- 41:34ja am Anfang jetzt auch von der Folge so n bisschen
- 41:37angesprochen. Man muss nicht immer direkt in
- 41:40Architekturen denken, ne, also gerade wie gesagt, wenn du
- 41:44startest ne und liebe zora lieber zora, wenn du jetzt sagst
- 41:47ey ja ich bin relativ am Anfang, wann, wann, wann wird denn sowas
- 41:51wichtig? Ich würde so als groben Daumen,
- 41:57als grobe Daumenregel sagen, wenn du anfängst, mit Frameworks
- 42:00zu arbeiten, dann könnte es langsam interessant werden, über
- 42:03Softwarearchitektur nachzudenken.
- 42:06Ja, ja oder ja, genau das passiert ja meistens im Zuge von
- 42:11den ersten größeren Projekten, ne, deswegen verwenden wir ja
- 42:14auch Frameworks, ja. Wenn ich sage, ich hab jetzt zum
- 42:18Beispiel etwas, das würde ich sehr gerne längerfristig nutzen,
- 42:21oder das ist umfangreicher als bisher.
- 42:24Meine kleinen Funktionen, die ich geschrieben hab, und das ist
- 42:27nicht abwertend gemeint, ne zum Beispiel wenn ich so ja jetzt
- 42:30war ja zum Beispiel auch wieder Advent of Code, ne, das sind ja
- 42:33so kleine Funktionen, da fang ich ja nicht an und sag mir so
- 42:36jetzt mal erstmal ne Architektur für dieses Problem was ich hab
- 42:38für Tag 1 oder so, das macht natürlich gar keinen Sinn ja
- 42:41oder Code wars was wir ja auch auf Twitch öfter mal machen.
- 42:45Absolut. Aber wenn ich dann anfange zu
- 42:47sagen, ich hab jetzt n für mich ernstes Projekt, egal wie groß
- 42:50das ist, aber das ist jetzt so n Projekt was ne Lebensdauer hat
- 42:54sozusagen, dann ist das n guter Zeitpunkt sich da mal Gedanken
- 42:59drüber zu machen und dann immer n bisschen mehr sozusagen.
- 43:03Definitiv. Also ich hatte find ich
- 43:05eigentlich auch ganz fand ich immer ganz spannend so in dem
- 43:08Projekt, das war so richtig so von Grund auf angefangen ne also
- 43:11von 0 ja und? Da haben wir uns auch so im.
- 43:17Ich würd jetzt nicht unbedingt sagen, es war ne absolute
- 43:19Architekturplanung, aber ich find es gehört da so n bisschen
- 43:21mit rein einfach im Team auf bestimmte Sachen geeinigt.
- 43:25Wir haben überlegt OK ist denn beispielsweise diese Software,
- 43:29wie lange wird sollte sie denn überdauern?
- 43:32Ne es bringt zum Beispiel nichts, das hatte ich auch mal
- 43:35von so einem ich ich nenn es mal nachbarprojekt mal gehört da
- 43:39ging es um n Projekt was echt lange.
- 43:43Also wirklich ne lange Laufzeit haben sollte ne und dann wurde
- 43:49aber für dieses Projekt einfach so, dass das neu, also so 1 der
- 43:52neuesten Frameworks gewählt ne wo man sich so denkt so OK,
- 43:54warum nimmst du jetzt zum Beispiel n Framework irgendein
- 43:58ich sag jetzt mal irgendein Java Script Framework was wo jedes
- 44:03Jahr so hunderte aus dem Boden sprießen und aber dafür 200
- 44:06wieder sterben und weg vom Fenster sind ne und da muss man
- 44:11sich zum Beispiel das sind. Dinge, über die man sich auch
- 44:14schon Gedanken machen sollte in seiner Architektur.
- 44:16Was nehm ich denn für Technologien zugrunde liegend,
- 44:19für das, was ich bauen möchte, für den Horizont, für die diese
- 44:23Anwendung ausgelegt ist? Ne, weil sich zum Beispiel auch
- 44:26manche Leute dann überlegen, so, warum wird da jetzt zum Beispiel
- 44:28irgend ne Java Version verwendet für das und das Projekt, das ist
- 44:32ja übelst altbacken und überhaupt nicht mehr so envogue
- 44:35ne, aber es macht halt manchmal Sinn sowas zu tun, einfach nur
- 44:38weil du dir denkst, OK, das ist halt, es sind bestimmte.
- 44:43Frameworks oder bestimmte Sprachen, die halt einfach
- 44:47irgendwie gezeigt haben. Damit kannst du arbeiten und
- 44:51damit kannst du in Zukunft auch arbeiten und es wird auf jeden
- 44:54Fall noch soweit quasi am Start sein alles und und es wird auch
- 44:58noch Leute geben, die das dann irgendwie maintainen können
- 45:02vielleicht oder so ne, also das sind so bestimmte Dinge und das
- 45:04hatte ich auch in diesem einen Projekt mal fand ich ganz
- 45:06interessant, dass man sich einfach überlegt hat, was nehmen
- 45:08wir für Frameworks wie wie soll dieses Projekt eigentlich.
- 45:12Wofür ist es eigentlich gedacht? Was für ne Sprache nutzen wir,
- 45:16woraus sich dann natürlich auch irgendwie wieder so n Framework
- 45:18teilweise sag ich mal rauskristallisiert oder oder
- 45:21Framework sag ich mal. Also die die Auswahl der
- 45:25Frameware eingeschränkt genau solche Dinge und das war
- 45:29irgendwie cool, weil du ja auch am Anfang meintest so klar, die
- 45:32Rolle Architekt gibt es. Aber trotzdem war es halt so,
- 45:37von der meint es ja traditionell.
- 45:39Es war n bisschen moderner und da ging es halt einfach darum,
- 45:42dass wir so im Team so wir waren alle ein großer Architekt und
- 45:46haben uns da so, also halt quasi geeinigt, auch worauf wir im
- 45:50Team Lust hatten, weil du ja auch meintest, es muss zum Team
- 45:53passen, ne und es war ne coole Erfahrung einfach wirklich mal
- 45:56so auf einer grünen Wiese anzufangen, so n Projekt
- 45:58aufzusetzen und dann diese ganzen Entscheidungen
- 46:02mitzumachen. Es hat echt Spaß gemacht, kann
- 46:04ich empfehlen. Ja, und das ist halt auch ne
- 46:07coole Herangehensweise. Ja, dass man sagt, OK, wir, die
- 46:10Architektur fängt erstmal sag ich mal so Brainstorming auf dem
- 46:14Papier an, was brauchen wir für Eigenschaften, daraus resultiert
- 46:19irgendwo, denn geeignete Frameworks und daraus die
- 46:22Sprache, die dann am Ende entwickelt wird, das wär ja
- 46:25grundsätzlich so, der würde ich sagen gute Weg.
- 46:28Man kann natürlich auch sagen, nee, wir filtern jetzt die
- 46:32Frameworks anhand von Sprachen. Auch wieder Limitiere ist dann
- 46:36halt immer n Trade off. Ne bin ich bereit zum Beispiel
- 46:38in einer Sprache, die ich nicht oft gecoded hab dieses Projekt
- 46:41umzusetzen und da wieder reinzuwachsen.
- 46:43Das wird mich natürlich am Anfang Zeit kosten, weil ich
- 46:45einfach nicht so geübt bin, dann da drin ne das ist das sind halt
- 46:50alles so fragen die man denn wie du meintest es muss zum Team
- 46:52passen die man denn entscheiden muss aber ja genau also anhand
- 46:57von meinen Anforderungen ergibt sich meistens schon welche
- 46:59Frameworks oder Sprachen dann gut geeignet sind dafür und dann
- 47:02kann ich das halt als ersten. Stein sozusagen, den ich vom
- 47:05Haus jetzt setze nehmen und darauf aufbauen, das sind halt
- 47:11ist ne coole Herangehensweise, auch noch mal so, wie kann es
- 47:13denn gut gelingen, find ich cool, dass du das mal so als
- 47:15Beispiel gebracht hast. Ja, ansonsten würd ich sagen,
- 47:20ich hab jetzt auch gar nicht mehr so viel dazu, wir haben es
- 47:23auf jeden Fall cool besprochen, find ich hat mir wieder mega
- 47:25Spaß gemacht. Ich fand es auch cool, dass du
- 47:29Domain driven Design dann noch mal reingebracht hast, weil das
- 47:32auch jetzt zum Beispiel da ja wenn ich jetzt auf dem Papier
- 47:35anfange, auch sehr hilfreich ist, um mir wirklich zu
- 47:37überlegen, was habe ich denn für Domains so, ja, also wo soll
- 47:41denn die Reise hingehen und nicht nur den technischen Blick
- 47:44da drauf zu haben, sondern das ganze fachlich sich zu
- 47:48überlegen, was löse ich denn mit meiner, mit meinem Projekt, mit
- 47:51meiner Software, was sind meine Ziele so am am Ende.
- 47:56Ja, auf jeden Fall. Das ist halt das.
- 47:58Genau der. Punkt.
- 47:59Wie. Gesagt, einfach ausprobieren,
- 48:01machen und dann kommt man auch irgendwann ans Ziel und wird
- 48:03halt besser darin. Ich hatte auch einmal genau das
- 48:08wir ich glaube in so ne Art. Monolith.
- 48:10Aufgebaut haben und dann am Ende aber irgendwie so
- 48:14Microservicemäßig dann umgebaut hatten.
- 48:17Ne, ist ja auch möglich, also. Learning kann man immer daraus
- 48:22ziehen und das ist das Wichtigste.
- 48:23Am Ende anfangen, ausprobieren und dann genau diese Learnings
- 48:26mitnehmen und nicht sagen, ah Scheiße, ich krieg es nicht
- 48:28direkt perfekt hin, deswegen würde ich sagen Tino, Danke fürs
- 48:33Gespräch über Softwarearchitektur bitte bitte
- 48:36ich glaube. Reicht der Jahresstart?
- 48:38Reicht jetzt auch das neue Jahr? Erstmal zumindest.
- 48:41Wir hören uns nächstes Jahr wieder genau ja, also in dem
- 48:47Sinne wünsche ich allen. Noch einen, wie sagt man n
- 48:52tollen Start ins neue Jahr. Frohes neues Jahr kann man noch
- 48:55sagen oder ist noch o. K.
- 48:57Geht noch, geht auf jeden Fall immer noch.
- 48:59Eine Woche, falls es jetzt n bisschen später dran ist.
- 49:02Aber um das Ganze jetzt abzuschließen, Liebe zuhören,
- 49:04lieber zuhören. Wenn du sagst, ey, das ist war
- 49:07wieder ne coole Folge, macht Spaß, ich freu mich auch schon
- 49:09auf einzelne Architekturen die besprochen werden.
- 49:14Lass uns da auf jeden Fall gerne zu Ohren kommen, was dich da
- 49:18brennt interessieren würde, dann können wir das vielleicht auch n
- 49:21bisschen einpriorisieren also schreib uns auf jeden Fall gerne
- 49:24auf der Podcast Mail oder auf Social Media oder auf dem
- 49:27Discord, komm auf jeden Fall auf den Discord, falls du da noch
- 49:29nicht bist. Coole Community ist dort, Grüße
- 49:33geht auf jeden Fall raus und wenn du sagst das ist n cooler
- 49:36Podcast, den kenn ich schon länger, hab ich aber noch nicht
- 49:39bewertet ne dann wird es heute Zeit, mach das einfach mal.
- 49:44Und dann jahresvorsatz Coding Buddies Podcast.
- 49:47Bewerten, das wird uns auf jeden.
- 49:50Fall Mega wird uns auf jeden Fall mega freuen und wenn es
- 49:53darüber hinausgehen sollte, gibt es auch einen kleinen
- 49:56Unterstützungs spenden Link. In den Shownotes guckt da gerne
- 49:58mal rein, ansonsten fröhliches Auskartern oder auch nicht, je
- 50:03nachdem und Tino Mach's gut, Liebe zu liebe Zuhörer, bis zur
- 50:08nächsten Folge Deine Coding Buddies gemeinsam besser.