Moin zufolge 25 von einfach komplex.
Burkhard ist wieder da. Mein Burkhard Moin Gerrit so und
zwar soll es heute gehen um Versionsverwaltung spezifischer
sogar um Git, wahrscheinlich die berühmteste Versionsverwaltungs
so geht. Aber Burkhard, in der Historie
gab es ja auch noch andere Systeme, hab ich schon gehört,
die dazu verwendet wurden, oder? Also ja ja, mich gibt es schon
länger als geht, insofern auseinander Sachen genau, ja ich
hoffe wir werden euch nicht. Also Gerd hat schon hier so n
hat mich heute schon n bisschen demotiviert heute morgen meinte
ich hab schon geguckt Podcasts über Git.
Aber ich glaube, er fand sie alle noch nicht so richtig
überzeugend. Also haben wir, also bin ich
doch wieder motiviert, um zu gucken, ob wir geht irgendwie
auch mal n bisschen lustig und überzeugend erklären können.
OK, ich wollte nicht demotivieren, das tut mir leid,
wenn ich das gemacht habe, demotiviert auch, aber mir ist
das Wort nicht eingefallen, aber demotivierend, bevor du
schneidest k genau bevor wir dann aber ein G reingehen und
die versionsverwaltungs lasst mich einen Hinweis geben, wir
haben ja Discord Server wo wir ja mit ja Hörerinnen und Hörer
diskutieren können, so viel wird der Discord Server noch nicht
genutzt, aber wir haben jetzt dort Feedback.
Bekommen, das wären Folge 20 und 22, hier und da mal kleine
Fehler eingebaut haben, natürlich nicht und nicht mit
Absicht, ja, aber das passiert natürlich bei den ganzen
Inhalten, kann können wir kann wird auch nicht alles auf dem
Schirm haben, ja wen interessiert was genau
schiefgelaufen ist. Soll sich bitte bei Discord
anmelden, der Link ist in den Show Notes und wir haben
überlegt wir wollen jetzt nicht folgende kleine Korrektur wieder
einspielen, sondern wir machen vielleicht irgendwann eine große
Ja Shame on US Folge wo wir dann irgendwie fehlerchen korrigieren
die aufgelaufen sind ist aber nichts gravierendes 4 lustige
Idee, da freu ich mich schon drauf haben auf jeden Fall ein
bisschen dabei heute morgen also heute ist nämlich morgen ist ihr
nicht. Heute können wir nicht nebenbei
Kaffee, sonst dahin ne gut das nur zur Vorrede.
Ja und dann lass uns in die Versionsverwaltung einsteigen
und ich vermute du hast irgendeine Art von Einführung,
aber ich würde erstmal interessieren was ist
Versionsverwaltung beziehungsweise warum ist sie
eigentlich so wichtig und wie sieht die Welt ohne
Versionsverwaltung aus? Du hast dann wahrscheinlich
nicht schon Erfahrung gemacht ne o.
Die Welt ohne Versionsverwaltung, die kenne
ich fast gar nicht, ich glaube die haben die Entwickler
manchmal immer noch, so ist relativ, das wäre schon krass,
ja ohne Versions, also Versionsverwaltung in der
Software ist Brot und Butter. Also es gibt eigentlich keine
Software mehr, die die ohne Versionsverwaltung geschrieben
wird. Ja, weil das so essentiell ist.
Ja, selbst wenn du alleine schreibst, ist es noch
essentiell irgendwie, warum weil weil weil, weil du so eine
Software ja nicht außer der Autor von G.
Selber hat das irgendwie n paar Monaten zusammengestellt hat,
vielleicht sogar verzichten können, nämlich Linus Torvalds
aber gleich ne, weil du, weil du ja an einem Softwareprojekt
irgendwie das machst du nicht an einem Tag fertig und dann ist
fertig, sondern das dauert ja im Moment und du gehst ja auch
nicht, also es sei denn du bist der Mozart, der
Softwareentwickler geht das ja nicht ohne Fehler von vorne nach
hinten, sondern du stellst dann irgendwann fest meine
Entscheidungen vor einer Woche. Ich weiß auch nicht, dann nicht
hin und dann musst du wieder zurück, damit er auch nicht
alles zurück machen hast. Vielleicht anderen Teilen der
Software gearbeitet und so weiter.
Das heißt, du brauchst irgendwie was dabei hilft.
Genaue Historie zu wissen wann hast du was gemacht?
Damit musst du auch selber ein bisschen was rein, also nicht
nur das kann nicht komplett abgenommen werden, muss halt
immer schreiben, was hab ich gemacht tatsächlich und warum
kommen wir gleich zu? Aber wenn du das hast, dann du.
Willst halt sauber was rückgängig machen können.
Ja bestimmte astala Aspekte sogar vielleicht rückgängig
machen können, ne. Das ist das eine, was du auf
jeden Fall brauchst. Dann hab ich schon genommen.
Ich weiß gar nicht, welche Folge ist auch egal.
Wenn du Software im schreibst, was der typischer typischerweise
der Fall ist, dann kann man sich so vorstellen, als würden
irgendwie 1020 Leute nach dem großen Team ist an einem Buch
schreiben, was gefälligst irgendwie dann, wenn es fertig
ist sehr lesbar ist. Ne Einleitung hat einen roten
Faden und so und wo du auch gar nicht merkst, dass 20 Autoren
waren, sondern im besten Fall liest sich das wie aus einem
Guss und jetzt kannst du überlegen n probieren, würdest
irgendwie 20 Leute die ein Buch schreiben, ja und dazu eine
Idee. Äh, die dürfen ja alle Ideen
haben zu allen Kapiteln. Also du willst nicht auch du
schreibst Kapitel 1, du Kapitel 2, das wäre einfach, aber die
schreiben alle gleichzeitig im ganzen Buch rum.
So so kann man sich vorstellen Software und wenn du das nicht
koordiniert mit dem System wo die wo die ihre Konflikte, ja
sie wollen an der gleichen Stelle editieren im Buch, ja
weil der weil der eine findet, die Geschichte soll so
weitergehen und der andere so, wenn du das nicht irgendwie
koordinierst technisch, dann kannst du dir schon vorstellen
wie das dann aussieht und lesbar ist.
Zum Schluss ja, also dafür brauchen wir wir brauchen, dafür
sind Kontrolle, Software ist einfach quasi Texte entsteht
großer Langer. Den Text von vielen Leuten
geschrieben und die Versionskontrolle sortiert, den
ganzen Kram aus, sodass zum Schluss irgendwie sauber wird.
Ja, dass du uns zurückgeben kannst und dass du siehst, wer
hat was gemacht. OK, ich glaube das Beispiel hast
du in einer der echt letzten Folgen, also noch nicht so lange
her, dass du dieses Buch Beispiel gesagt hast.
Und jetzt hat vielleicht jeder schon mal ein Buch geschrieben,
aber ich glaube, wir kennen ja alle die ganzen Office Dateien,
weiß ich, Verträge, irgendwelche Pamphlete, irgendwelche, ja
memos die man vielleicht schreibt und dann auch im Team
schreibt der Google Street oder wie das heißt von Google oder
Halt bei bei. Office 365 inzwischen kann man
sich ja heutzutage dieses ganze V 1 v 2 v 3 V final V, final
final und so weiter irgendwelchen Bachelorarbeit
oder Masterarbeit irgendwas geschrieben hat, der überhaupt
einen längeren Aufsatz vielleicht schon kennt, das
vielleicht so ne und ich noch dazu.
Wenn ihr stell dir mal vor, du schreib und dein Hauptquartier
heißt irgendwie, will ja jetzt hast du irgendwie eingeschrieben
und das ist immer da und dann vielleicht noch die seine
Freundin, die oder so ja kommt auch vor und jetzt überlegst du
dir a Bild n richtig blöder Name aus irgendeinem Grund ja jetzt
den Umbenennen, der soll halt Werner heißen oder so ja.
Das ist mal Factoring bei der Software und jetzt musst du halt
an jeder Stelle wo Bild vorkam den Werner einführen.
Das geht jetzt einfach bei Word auch, also Search replace kennen
wir, das heißt aber, dass du halt quer durch das ganze Buch
wurde, immer aufkommt, ne kleine Veränderung machst.
Ja und und wenn du halt mit mehreren Leuten machst, die dann
vielleicht auch schon ne, also zum Beispiel du bist dein, du
schreibst nicht alleine und mindestens zu zweit und dein
Kollege, der ist irgendwie gerade auf der Insel, er sich
gut entspannen kann, einen tollen Beitrag zu deinem Buch
schreiben, der kriegt ja gar nicht mit, dass du jetzt gerade
mal den Bild zum Werner gemacht hat und der schreibt immer noch
einen mit. Bilder und und wenn ihr dann
wieder quasi in die Hauptlinie des Buches Reinpackt, dann hast
du einen Werner und Buche, das ist der, dann ist der Leser, der
komplett verwirrt so und genau das alles wird dann aussortiert
durch. Durch Technik und auch durch
Prozesse, die da drüben etabliert werden und auf beides
gehen, glaube ich. OK, das war ne coole Einleitung,
also Versionsverwaltung erlaubt, Anpassungen diese transparent zu
machen in diesen Code oder in was am Ende auch Textdateien
letzten Endes sind und sorgt dafür, dass es dann eben auch
für alle nachvollziehbar ist, was dort passiert ist, indem man
vielleicht kommentiert oder irgendwelche Notizen mit
abspeichert, das glaub ich so angerissen gerade ja prima, hast
noch hinzufügen sonst. Ja, ich hab was auf der Zunge,
was ich vorbereiten will, ich nämlich.
Ich hab nämlich eine dieser Folge eine Wendung zu geben,
eine vielleicht überraschende, aber das ich will eine sagen was
das System technisch leisten muss ist quasi kleine Blöcke von
Editierungen verwalten. Wenn ich jetzt nicht anfange und
fange anzuschreiben, dann schreib ich vielleicht eine
halbe Seite, oh da habe ich Wein getrunken, Schwein oder so und
dann will ich diese 2 Seiten einspielen in dieses dieses
Versionierungssystem also habe ich wieso ne Art Block von von
Content. Bei uns Software als Code.
Und dann mach ich weiter. Und was dieses System leisten
muss, ist, dass die das immer diese Blöcke sauber aneinander
hängt. Ja in einer Kette quasi einen
Block nach dem anderen und dass ich quasi immer und zu jederzeit
manipulationsfrei weiß. Ich kann auch zurückgehen ja
also ich kann dann quasi wenn ich ich sag mal 10 abschnitte
geschrieben hab 10 Blöcke gemacht hab mal geschrieben habe
ich gerade gemacht, dann kann ich halt ganz transparent
zurückgehen und gucken an welchem Tag, zu welcher Uhrzeit
hab ich was verändert in diesem Buch, ja weil diese Blöcke quasi
kryptographisch sauber aneinandergereiht sind, so
funktioniert geht intern auch ja.
Mehr sag ich mal nicht. Also vielleicht der gewiefte
Zuhörer, der bei dem, bei dem schon irgendwas geklingelt mit
Block und einander hängen und kryptographisch und so, aber
wenn es klingt, ja gut, lustigerweise ist in einem der
Podcast ich zur Vorbereitung gehört habe, auch die Blockchain
dann entsprechend h sehr schön ja jetzt auf ein aufmerksamer
mit Podcast, das ist cool, ja, die die Blockchain, die werden
wir nochmal kurz anrufen und dann machen wir noch eine
Blockchain, aber wer geht gut verstanden hat, der hat schon
90% der Blockchain verstanden und das geile ist ja ich, ich
sag jetzt. Wir haben das coole ist ja das
Git. Ich würde sagen, ja, klar, also
wir können ja alle jetzt irgendwie die Bitcoin und so.
Das ist ein bisschen speziell, aber wirklich in der krassen
Anwendung und verteilt und und und.
In vollen Einsatz ist die Blockchain und ich, ich sage es
ist nicht ganz eine Blockchain, da streiten sich die Geister,
was ist wann Blockchain, aber g ist schon.
Ziemlich krasse Block also ziemlich nach einer Blockchain
und das ist voll im Einsatz, überall ja, und zeigt den coolen
Nutzen von so einer Technologie, ja.
Also an dieser Stelle ist es richtig, richtig nice so.
Ich erzähle nachher noch mal, warum es nicht ganz so ist wie
Blockchain, die wir heute unter Blockchain verbinden, weil das
ganze Proof of Work nicht dabei ist.
Das wäre schlecht, es ist nämlich, das ist nämlich jetzt,
mache ich gerade Überleitung, das ist nämlich einer der
Designgründe überhaupt, der Hauptgründe gewesen, warum geht
entstanden ist, nämlich Performance, müssen wir ganz
kurz, wenn ich einhaken darf, dann noch mal zu kommen oder von
Versionsverwaltungs zu git und dann nachher, ich glaube, wenn,
dann geht, erklärt ist oder noch mal das Ganze wäre sowie jetzt
verwendet wird, dann wahrscheinlich den Schließen.
Zur Blockchain. Aber wir machen ja genau
Versionsverwaltung ist klar, jetzt haben wir schon gehört, es
gibt Ähnlichkeiten zur Blockchain auch, aber dann lass
doch anfangen mit Einführung git ja was ist git, ja warum ist
gerade das das Versionsverwaltungssystem was
wir uns jetzt herausgepickt haben und wie ist es so
gekommen, da hast du auch schon Linus Torvalds erwähnt.
Ja genau, also wir wollen nicht so lange Geschichten machen, das
kann jeder auch bei Wikipedia nachlesen, aber genau so grob
gesprochen ist der Linus Torvalds ist ja der ja der
Hauptautor des Linux Betriebssystems und wacht quasi
auch über diesen ganzen Linux. Wie heißt der Kanal?
Sind quasi das Betriebssystem von von Linux und da kann man
sich vorstellen, dass er nicht alleine, sondern eine riesige
Menge von von Mitentwicklern entwickelt an dem Linux System
und machen das besser, also Veränderungs quasi und der arme
Linus Torvalds, der ist auch so ein bisschen invent dictator
irgendwas aber den also man kann sich vorstellen, dass die ja
dass fast alles an Veränderungen bei ihm irgendwann auf dem
Schreibtisch vorbeikommt und sich das angeguckt, ob das
passt. So ja, und wenn das so sein
soll, dann braucht er halt ne versionssystem ja weil die
Sachen kommen ja synchron ja vorbei und dann gibt es noch
eine Anmerkung, dann geht das. Zurück kommt nochmal vorbei und
in der Zwischenzeit sind andere Sachen vorbeigekommen und so
weiter und sofort. Ja, für den ist das, für den ist
so ein System zu haben, das total transparent und sehr
schnell diese ganzen Sachen irgendwie darstellt.
Was würde jetzt passieren, wenn dieser Schnipsel noch eingefügt
wird und so also das sogenannte Ding ne also sowas vorher sieht
es danach aus und so weiter für den ist das Ultra wichtig ja und
Linus Torvalds selber mega genervt um um 2000 muss ich n
bisschen um 2005 herum gab es nämlich zwar Systeme die
Versionsverwaltung gemacht haben, aber die waren halt alle
irgendwie auch n bisschen langsam.
Ja, und der liegt in der Linux Con ist auch mal richtig dickes
Buch so das braucht halt. Also wenn du dann langsam bist,
dann dauert es halt einfach Zeit bis also durch waren die langsam
wahrscheinlich weil es in ein zentrales System war.
Ja genau das war ein zentrales System, was heißt zentral, also
das heißt quasi, dass dein, dass deine Single Source of Truth,
also dein Buch quasi an einer Stelle auf einem zentralen
Server quasi gehalten wird und alle die daran arbeiten, die
schicken quasi ihre Blöcke, also ihre Änderungswünsche quasi
gegen diesen zentralen Server. Das setzt voraus, dass du
irgendwie Internet hast. Das setzt voraus, dass diese
Zentrale. Könnt ihr irgendwie relativ
performt ist und so weiter so waren die meisten und dann kam
noch dazu, dass auch ein, ich glaube es war Bitkeeper genau 1
von diesen Control Management System wie man sagt es CM auch
die Abkürzung die haben glaub ihre Lizenz noch wechselt
irgendwie und es war irgendwie frei und sollte nicht mehr sein
und dann hat dann hat irgendwas gesagt nee jetzt wir brauchen
irgendwas schnell ist was frei ist und was alles diese was
meine großen Anforderungen System erreicht dann nicht gibt
keins was machst du Softwareentwickler sich selber?
Weise hatte das, Glaube ich, in ein 2 Monaten unter Gekickert
so. Ja, also die erste
funktionierende Station von Gitta hatte glaube ich im April
2005 angefangen und ich meine irgendwie Monat später hat das
Ding schon den ersten Release gemacht, quasi wann hast du das
erste Mal davon gehört oder warst du da schon aktiver
Softwareentwickler 30 nicht? Ja, mich hat das voll, mich hat
das auch voll aus dem Hocker gehauen, ich habe vorher SVN
benutzt, das war das Subversion hieß das wardas.de facto System,
zu der Zeit habe ich noch am European XL programmiert, auch
mit einer ganzen Gruppe und hatten unsere Versicherung quasi
und das war ein zentrales System darauf.
Gestellt mit den ganzen Nachteile.
Ich hatte die jetzt hier nicht ausbreiten, aber das war schon
schmerzhaft, auch für mich als Gruppenleiter drauf zu gucken
und so und alles zu koordinieren.
Wir hatten auch ein mega Fail kurze Anekdote im.
Ich hab da mal nicht aufgepasst irgendwie und das war auch nicht
ganz so sicher gegen du konntest das auch richtig auseinander
treten irgendwie wenn du da nicht aufpasst hast.
Das wurde irgendwie in sich gehabt oder nicht korrupt
vielleicht, aber so unüberschaubar mit den Kommerz,
dass irgendwie nicht mehr und nicht gekommen bist.
Und ich hab tatsächlich, und jetzt kann man mal sehen, wie
wichtig so ein versicherungssystem, ich musste
tatsächlich fast n fahren, ganzer Monat Entwicklungsarbeit
die Bäche Runtertreten von meinem Team, weil wir jetzt
nicht mehr geschafft haben, aus diesen ganzen verzettelten
Branches, wie man das nennt, also aus diesen
Einzelanforderungen ein gesamtes Bild zu schaffen.
Wir haben es nicht geschafft. Du kannst dir vorstellen, also
es wurden so viele Extrakleine Kapitälchen geschrieben und wir
haben es nicht geschafft, dieses eine Buch so hinzufügen, dass
das Buch halt fehlerfrei lesbar, also der Code funktioniert nicht
mehr und mussten zurück an die Stelle, wo es noch ging.
Ja natürlich mein Fehler. Aber vielleicht auch ein
bisschen von der Technologie, weil die halt nicht so
überschaubar war. Ja, und das und das ist einfach,
ja, ich würde sagen mit kann heute sowas nicht passieren,
weil das nicht dazu, also das lässt sich nicht dazu führen,
dass du irgendwie komplett in die Hölle trittst.
So, ja, und das ist mein Team, war natürlich sehr dankbar
dafür, dass ich gesagt habe, jetzt müsst ihr noch mal
anfangen und Entschuldigung, die letzten 2 Tage waren für n Arsch
so, jetzt könnt ihr nochmal neu machen und so krass ich hoffe,
dass sie mir nie wieder in meinem Leben, aber lernt so, ja
und das zeigt wie komplex und wie also der Prozess an sich
auch schon im großen Team Software entwickelt und wie gut
man das Tool verstanden haben muss.
Damit umgehen muss damit s. Klappt es dann so, dass
tatsächlich, ich sag jetzt mal an einem Feature, zum Beispiel
wenn du sagst Kapitel, aber ich würde jetzt einfach ein Feature,
das irgendwas mit der Software, das typischerweise an diesem
Feature auch mehrere Entwickler und Entwicklerinnen arbeiten
oder hat, dann schon jeder seine Domäne und es gibt nur bestimmte
Bereiche im Code, wo dann doch wieder mehrere zusammenkommen.
Das ist total individuell, das ist so wieder wie die Entwickler
das Team Bock hat oder der Manager von dem Team und das
darf überhaupt keinen Einfluss haben auf das Tool, was wir
heute besprechen muss abbilden genau kommen, aber ich n
bisschen dieses Thema. Es gibt natürlich
konfliktreichere Prozedere mit so einem Team, mit so einem Tool
zu arbeiten als andere. Machen wir Schluss, passt
völlig, hat mich interessiert, weil man könnte ja auch sagen,
warum hat nicht jeder wirklich an die Entwicklerin einfach ein
Kapitel und macht das fertig, Enns zusammenbauen, aber es gibt
offensichtlich die Anforderungen, dass auch
gemeinsam an Themen einfach gearbeitet wird, an den gleichen
Themen genau und du hast ja solcher Programming.
Manchmal hast du Features ziemlich dick ist ne, also ein
Feature kann ja was ganz Kleines sein, manchmal einfach einen
Teil sagt irgendwie keine Ahnung, der Knopf der soll jetzt
noch das können das kann ein Entwickler an einem halben Tag.
Frauen plus Tests und dann hast du ein anderes Feature, keine
Ahnung irgendwie. Wir müssen hier das
Authentifizierungssystem umstellen, dauert auf einmal 2
Monate und schafft gar nicht einer alleine.
Ja so Feature ist nicht gleich Feature und ist auch nicht
gleich Bug, aber da wie gesagt lass uns noch ein bisschen
verschieben total sprechen wir nachher ja gut dann ist 2005 und
Linus Torvalds hat er gesagt Mensch hier Linux Kernel lässt
sich mit mit Bitkeeper hast du gesagt ich soll verwalten und
versionieren ich habe es raus genau und dann war da und hat
sich dann verbreitet in der Community.
Ja, wieso ein? Das ist so wie in den sozialen
Medien, das Ding ist viel gegangen und heute, ich glaube,
es gibt nichts mehr anderes als geht auf der ganzen Welt, es ist
also alle nutzen geht, ich habe jetzt gehört, dass hier und da
dann vielleicht auch gerade da, wo er auf Windows vielleicht
entwickelt wird, vielleicht hier und da noch mal Subversion
benutzt wird, aber aber das sind ja die sollten dann bitte
schnell umsteigen. OK, es gab früher
Versionsverwaltungs, gibt auch heute noch andere, aber geht ist
der Branchenstandard und der Branchenprimus und voll und zu
recht ja und wenn jetzt irgendwo als Entwicklerin oder Entwickler
anfängt, dann sollte man das auch gefällt, das muss man erst
mal lernen und tatsächlich gibt und da braucht man eine Minute.
Das ist, weil dieses Tool, was muss man erstmal verstehen, es
ist gar nicht so einfach. Ja, also da das wenn man noch
nie was von gehört, ich brauche das tatsächlich auch, ich kann
mir auch Subversion und dann haben wir gesagt, das geht so
nicht weiter, du musst jetzt gehen, wir wollen alle gehen,
OK, dann machen wir jetzt so und ich hab echt Schmerzen gehabt,
so dass ich musste ich mir also das ist echt schon ein Konzept
dings und jetzt fangen wir an, lass mal kurz verstehen was geht
ungefähr ist wir müssen ein paar Glossaries machen, also das Wort
repository müssen wir können in Repository ist quasi.
Kannst du dir vorstellen, wie ein Pfeil System oder wird sie?
Ja genau das sind quasi die Daten die du über eine
Versionskontrolle verwalten möchtest.
Das ist das Repository, ja. So und in diesem Repository gibt
es sogenannte Branches. Wir verstehen ne, also du kannst
quasi, ich glaub mal dieses Beispiel ne, also du,
typischerweise gibt es einen Master Branch.
Das ist so ne Art. Ja, der ist immer da.
Ist so der Hauptbranchen überhaupt so genannt, denn der
macht halt Versionskontrolle und ein Branch ist quasi.
Jeder Branche für sich macht eine eigene Versionskontrolle.
Ganz so sagen. Du kannst dann immer quasi
kleine Blogs sind so nette hinzufügen, ne n Gespräch ist
wenn du n wenn du nen Block hinzufügt, dann machst du einen
Commit tut mir auch sagen ja also wenn du wenn du jetzt bei 0
anfängst sag ich mal so ein Projekt, dann hast du den
Masterbranch jetzt noch gar nix drauf und dann macht man so
einen Initialen Commit sagt man Initial commit ja dann hast du
also quasi vielleicht hast du so ne gemacht so steht was du jetzt
zu tun hier was wird das für ein neues Projekt und dann gehst du
quasi hinschreibst deine Rede als Text und jetzt hast du
einen. Das ist wichtig, dass Repository
lebt. Mit dem du sprichst zunächst
erst mal ganz lokal bei dir, dass die Idee auf deinem
Rechner, auf deinem Rechner ja, das heißt, du brauchst kein
Internet und Versionskontrolle zu machen, ist total wichtig.
Ja, und es gibt es gibt halt auch Speed.
Ja, du kannst erst mal ganz lokal bei dir anfangen, ja, das
heißt ja, aber jetzt sagst, du hast mich nächstes Jahr, wie
krieg ich dann irgendwie irgendwie die die Sachen
zusammen. Lilly hat auch ein lokales
Repository. Ja, und jetzt ist die jetzt ist
die Kunst und jeder hat ein lokales Repository bei Git und
deswegen kann jeder irgendwie schon mal arbeiten, jeder kann
irgendwie kommts machen, also Blöcke von Code in dieses in das
Repository einfügen und dann gibt es ein zentrales oder auch
mehrere Zentrale ich lass mal weg, sonst wird es kompliziert,
aber sagen wir mal, es gibt ein zentrales Repository, das auf
einem Server liegt in der Cloud, wo ich tatsächlich dann
irgendwie mal zu einem gewissen Zeitpunkt Internetverbindung
brauche. Denn irgendwann will ich das mal
synchronisieren. Ja zu der Wahrheit, dem zu
meinem, zu meinem, zu meinem zentralen Repository.
Und so funktioniert git also das deswegen ist es am Anfang ein
bisschen kompliziert, weil du verschiedene Levels hast, der
Synchronisierung ja, also du, wenn du deinen Teil editiert,
und heute ist das so, dass das Geld ist quasi, das ist
eigentlich Kommandozeilentool, das reicht auch völlig aus, wenn
das mit der Kommandozeile bedient, aber wir wissen
kommandozeilen musst n bisschen, das ist halt supergeil eingebaut
und alles was irgendwie heute in Editor ist oder auch in diese
Weboberflächen und so da da. Es geht quasi mit grafisch
eingebaut und du kannst es halt einfach klicken und so.
Und wenn du das jetzt benutzt, sagen wir mal du hast also also
was passiert, du musst halt natürlich erstmal quasi.
Normalerweise ist das ein Ordner, du hast einen ganz
normalen Ordner auf dem Windows oder Linux für dich Wurst und in
diesem Ordner sagst du mal geht nit also initialisierst diesen
Ordner, dass du jetzt quasi von diesem Repository, also quasi
unter Versionskontrolle kommen so ja und dann entsteht in in in
Linux wahrscheinlich ein kleiner Ordner, der ist versteckt, der
heißt Punkt Git in diesem Ordner und da steckt die ganze Magic
drin, so ja ganz lokal. Das ist quasi eine Datenbank
drin, die quasi dann, wie ich es gesagt habe, die quasi
blockartig quasi Track. Was hast du verändert, ja.
Und wenn du jetzt einen Editor hast, wie zum Beispiel Visual
Studio Code und Du schreibst dann was dann schreibt, dann ist
das schon direkt grün an einem Pfeil oder Rot oder mit Farben
markiert. So ist das neues Pfeil was ich
nicht kenne, das muss also neu eingefügt werden.
Im Repository ist das ein Fall wo ich drum editiert hab und
dann siehst du schon, dann siehst du irgendwie markers dann
weil das so integriert ist kannst du auch drauf die roten
Dinger und dann siehst du direkt wie sieht es denn vorher aus?
Also das macht gleich eine Veränderung ja so ne Vorschau
kennt man auch schon bisschen wird und so, aber das ist halt
mega cool integriert, so dass du immer genau siehst was hast du
hier gemacht ja und wenn du ausversehen mal was.
Wenn du hast nicht geguckt und der hat auf der Natur rum ja und
verschwindet wieder, setzt du dich an Rechner und siehst so
roten Balken an der Seite das modifiziert wurde, dann
alarmiert die schon das System da irgendwie Käse ist auch schon
ganz ist passiert deswegen Danke Frederik hatte Papa arbeiten und
wollte mitarbeiten, wollte Mitarbeiter nicht gerade
irgendwie draußen irgendwie ich hab ne Tochter hab ich geguckt
und hatte gestern die Kinder alleine und in der Zeit wo ich
dachte ich hatte Recht machen wenn Kinder sehr wichtig nicht
nur im Büro Tipps der auf der Tastatur rum.
Hat den editiert, haben wir auch wieder geholfen und gesagt, Oh,
das ist ja noch irgendwo anders. OK, du ganz kurze
Zusammenfassung bevor noch weitere hast.
Also das das Repository oder ich glaube repo dann häufig auch
umgangssprachlich genannt, gibt es lokal auf jeden Beteiligten
bei jedem beteiligten Entwickler Entwicklerin Plus.
Es gibt dann diesen Master oder Main der irgendwo zentral ist.
Ne Vorsicht, der Master ist der Branchen haben sich alle also
die alle Branchen sind auch quasi ist alles dupliziert ja es
gibt das man Repository ja. Dass wir vorsichtig sind, den
Begrifflichkeiten Repository Repository hält beliebig viele
Branches und hält quasi diese das gesamte Konglomerat von
allem, was ich versionieren werde, werde ich sag zu dem
Brand des gleich noch ja, aber dieses Repository gibt einmal
zentral und für jeden Mandanten, der irgendwie teilnehmen will an
diesem, an diesem Repository und ein Repository Manager zu
typischerweise ein Softwareprojekt, ein Produkt,
ein irgendwas auch immer richtig genau, ja, ja, genau,
typischerweise hat man für eine für ein geschlossenes
Softwareprodukt und dann hast du die ganze Branche und dann gibt
es irgendein Flow. Im Prozess um diese Branches
dann wieder zusammenzubringen, und das ist dann wahrscheinlich
der nächste Schritt, pass auf, genau, also du kannst.
Normalerweise hast du den Master Branch und jetzt gibt es
verschiedene Modelle. Das ist ja alles beliebig.
Ja was du damit machst. Du und ich nenne mal das Modell
was ich immer nutze, es gibt ganz viele andere noch, das hat
auch einen Namen, den ich gerade vergessen hab, das ist der
featurebranch Workflow ich hier gerade gespielt hat doch vor mir
gehabt ich hab wenn man sagt zum Beispiel den Masterbranch, da
ist immer der ist immer die Wahrheit, so dass die Akte der
aktuellste Stand der Entwicklung ne der wird auch manchmal Main
Branch genannt heute aus politisch korrekten Gründen,
weil Master aus der Zeit von Master und Slaves ist.
Aber ich glaube man hat sich wieder zurück.
Dann Master, weil man schon weiß, dass jetzt das nicht
meinte, aber das ist quasi der Haupt Master Branch, wo die
ganze aktuelle Entwicklung stattfindet.
So und jetzt kann man sich überlegen, wie Krieg ich das
jetzt gebacken alles wenn ich zum Beispiel und ich, ich mag
das Beispiel, also was haben wir eigentlich meistens zu tun,
entweder entwickeln wir ein Feature oder wir fixen Bug in
meiner Welt ist das ist das, so mache ich mir das so einfach,
ja, also alles was an der Software an Veränderungen
passiert ist entweder ein neues Feature oder einen fix von einem
Bug so und wenn ich jetzt nen Bug fixen möchte jetzt könnte
ich ganz naiv. OK, dann nehme ich jetzt halt
den Master Branch, der quasi synchronisiert ist über alle.
Fangen wir an, Master Branch Code zu editieren.
Ja und machen einen Commit, also schicke diese Veränderung direkt
auf den Master Branche. Das kann ich machen, wenn ich
alleine bin, weil ansonsten ist das ne schlechte Idee.
Wenn ich jetzt zum Beispiel mit dir arbeite, Gerrit und im Wir
haben jetzt beide einen neuen Feature und Du entwickelst ein
Feature, ich n Bug ja und und und blöderweise muss ich bei
deinem muss ich den Bug zu fixen auch an Kosten ran, die in
deinem Feature vorkommen. Ja und jetzt bin ich etwas
schneller als du entwickelst dein Feature da und ich fix n
Bug, dann ist das ziemlich doof für dich ja weil du dann weil du
dann irgendwie wenn ich den jetzt in den Masterbranch im
zentralen Repository gespielt hab, bist du quasi out of Sync.
Dann musst du quasi, dann ist die echte Wahrheit dem Master
Branch schon neue, während du deinen Feature machst.
Auf einer alten Version des des Masters ja S geht man, weil ich
diesen Master vorher zu mir rüber kopiert habe und dass dann
mein Branches, in dem ich arbeite, genau das muss ich
gleich sagen, dann mach das war für mich so ein aha Erlebnis,
also die dieses ganze Geld gram, das funktioniert tatsächlich in
dem Ordner und dieses Kit selber sorgt dafür, dass die die
Dateien in dem Ordner sind tatsächlich ändern, also trägt
on the Fly in diesem Ordner ja also wenn man sagt zum Beispiel
Checkout wenn du Checkout vom von einem von einem also
Checkout. Quasi eine Kopie einer gewissen
Stelle eines Branches. Ja, wenn du jetzt, wenn du jetzt
angefangen hast, dein Feature zu machen, dann würdest du quasi
den den Master auschecken an der Stelle, wo er ganz aktuell ist,
also am letzten Commit, ja. Warum solltest du auch ne will
nicht alteer ja genau und dann passiert tatsächlich, dass die
ganzen Pfeile um dich rum, die sind dann so verändert, dass sie
genau diesem Stand entsprechend ne, was du aber auch was du
machen könntest einfach machst. Du könntest quasi Checkout an
einer beliebigen anderen Stelle machen, an deren Stelle zum
Beispiel von dieser Branche, was dann passiert ist dann unter
deinem Hintern dies geändert, so dass sie wieder spiegeln den
Status zu einem anderen Zeitpunkt, ja das passiert immer
alles auf dem gleichen, Wir werden nicht mehrere
nebeneinander angelegt, so war es so Version mäßig, ja da musst
du das alles in verschiedenen Ordnern selber verwalten.
Gibt, ändert einfach deine Files unter dir so.
Ja und du kannst dann auslesen mit geht was zeigt sich denn
gerade, wo bist du gerade? Ja so wenn wir das jetzt
ordentlich organisieren wollen und das sage ich nur heute, das
funktioniert normalerweise so. Du hast den Master Branch und
wenn ich jetzt den Bug mache, dann dann geh ich hin, dann muss
ich erstmal dafür sorgen, dass mein, dass mein lokaler Master
Branche gibt mir auch nochmal erstmal synchron ist mit dem
jetzigen zentralen Masterbranch. Ja, das nennt man dann mache ich
ein sogenanntes mache ich einen g Fetch sagt man also fetch
heißt ich hol mir erstmal alle Informationen vom zentralen
Repository runter, dass die da sind bei mir lokal ist dann
quasi Synchronisation und dann sage ich geh pullern geh ich
quasi selber, gehe ich quasi lokal auf den Masterbranch.
Sage Gepult und dann zieht er quasi von dem zentralen
Repository die alle Informationen in mein Lokales
rein. Ja, und dann bin ich erst mal,
dann bin ich erstmal mit dem Master Branch synchronisiert und
nicht das hab. Dann mach ich einen neuen
Brunch, also quasi ich fange quasi eine neue Entwicklung, man
kann sich so ein Zweig also wenn der Master irgendwie Linie ist
mit LA LA LA und dann sind das immer Punkte normalerweise
dargestellt sind quasi Einspielung neue Commits, also
neue Blöcke von Änderungen in den Code ja Punkt Punkt, Punkt
die Linie und jetzt brauche ich jetzt mache ich n Bug jetzt zeig
ich ab jetzt zeig ich nach unten.
Quasi von der Linie. Nenne den die haben immer Namen
diese Branches, also Master heißt der Master und dann Branch
heißt typischerweise so wie dieser Bug ist irgendwie was
weiß ich. Das ausloggen da bei uns zum
Beispiel ja genau fix Lock out ist oder irgendwas.
Ja und dann ist und der hat normalerweise auch eine Nummer
und das wird dann alles muss nicht aber das verwalten
ordentlich so und jetzt und jetzt kann ich ganz in Ruhe
diesen Bug fixen und mache das so ja und bin quasi auf einer
parallelen Spur unterwegs und du hast zu der gleichen Zeit
irgendwann gesagt, hier in meinem Alter und so weiter und
du hast den Feature Branch erstellt an einer bestimmten
Stelle vom Master. Ja und das ist auch quasi n
Seiten, also auch quasi runter gebracht und dann machst du
deine Entwicklung ja und jetzt können wir unabhängig
voneinander machen. Du bist nicht gestört und jetzt,
kurz bevor du fertig wirst, macht man es meistens so, dass
man sagt, so, jetzt muss ich erst mal gucken, bevor ich das
jetzt irgendwie in den Master reiner, musst du jetzt noch mal
deinen Branch mit dem Master synchronisieren und das ist
wieder eine private Sache für dich.
Ja, das heißt du wirst jetzt hier fertig mit deinem Feature
ja doch genau das Feature gemacht und dann sagst du, OK,
jetzt Spiel mir mal den neuen Master rein in meinen Code in
diesem neuen Master ist unter Umständen noch gar nicht drin,
was du gefixt hast. Nee, aber da ist da ist alles
das der kann genauso aussehen wie vorher, vielleicht hat
keiner gearbeitet, hast du einfach da?
Musst du dich nicht kümmern, sagt ihr, ist alles Aufstand
perfekt. Gerrit so alles prima, ja, oder?
Und das gibt dir das alles oder gibt es so ja hier sind
irgendwie 2345 commits auf dem Mars zwischendurch eingegangen
von deinen Mitentwicklern so, und die spielen wir jetzt mal
ein so ja und jetzt kommt's das kann, das kann im schlechtesten
Fall für dich schlecht sein, weil es kann ja sein, dass
jemand rumeditiert hat, ohne dass du wusstest auf Files, die
du jetzt selber gespielt hast und auf einmal funktioniert
nicht mehr so wie du gedacht hast.
Ja und im schlimmsten Fall ist sogar ein Konflikt und das kann
auch, gibt dir nicht helfen. Wenn du mit jemandem anders
genau an der gleichen Zeile Code an der gleichen Stelle jetzt
verschiedene verschiedene Ideen habt, was stehen soll, ja dann
ist das ein sogenannter Konflikt.
Den muss man manuell lösen, ne und zeigt dies aber an, da steht
dann hier Gerrit, hast du das editiert und Lilly hat irgendwie
andere editiert, so was willst du denn jetzt haben das von
Lilly oder das von dir oder was ganz Neues irgendwie ein
Kompromiss zwischen Soja und jetzt musst du mit Lilly n
bisschen kommunizieren hilft nichts ja hat Entwickler muss
man ein bisschen an der Stelle und rausfinden wie kriegen wir
das hin, dass beides funktioniert ja so und alles und
alles dies transparent zu machen.
Dann brauchen wir Versionskontrolle.
Krass, und jetzt kommst du mit dem Bund gleiches Prinzip, du
Prinzip, ich werde mit meinem fertig so dann muss ich auch
meinen Master quasi erstmal synchronisieren.
Ja und jetzt gibt es auch noch 2.
Ich erwähne das nur ich den G ist wirklich kompliziert, ich
hab gerade ich hab am Anfang von Blockchain gesprochen, es ist ja
nicht so, dass Blockchain irgendwie in einem Atemzug
versteht und dann auch noch die sind echt kompliziert jetzt kann
ich mir auch überlegen wie ich das mache, es gibt bei gibt 2
Möglichkeiten man das sogenannte Basing und das Marging ja also
ich kann quasi dann sagen OK ich Merch.
Meine Änderungen quasi mit den mit den vorherigen Sachen
zusammen. Ja und dann gibt es einen neuen
Commit und die kommen ID, das ist quasi der kryptographische
Schlüssel ish oder ich rebase und das Rebase heißt quasi, das
will ich nochmal erklären, dass wir hier und da hab ich von
einem ich hab das früher nicht gemacht, das habe ich, ich kann
den Mal erwähnen Christian Sting gelernt ein ich würde sagen der
hat den schwarzen Gürtel in Git Karate und der hat gesagt es ist
viel schicker weil reason was da passiert ist quasi die einzelnen
Änderungen. Jetzt zum Beispiel am Master
vorgenommen wurden, während ich meinen Bug gefixt hab und hab
ich gar nicht mitgekriegt, erst so, da kann ich sagen OK pass
mal auf Linearisieren die rein, also spiele die zum richtigen
Zeitpunkt einfach so rein als hätte ich die gemacht.
Ja in meinem Brunch so, ja das heißt da wird nichts gemerkt,
sondern es bleibt quasi von einer von der Historie lineare
Punkte, ja, aber die werden quasi an der richtigen Stelle
retro, mäßig reingefügt ja und diese ganze Kette wieder neu
aufgebaut, so ja das irgendwie noch hört sich jetzt noch
synchrone an irgendwie als es ist halt schick weil es halt
dann dann dann bleibt, quasi wenn du dann später auf deinen
Master. Brunch guckst, dann sieht es so
aus, als hätten alle einfach sequenziell.
Tack, Tack, Tack neue Comics gemacht.
Ja, ist. Dieses zeitgleiche und
ineinander geschobene wird dann quasi durch das Reason aufgelöst
und du kannst dann später, wenn du von außen guckst, diesen
diesen Master Branch lesen und der hat zur richtigen Zeitpunkt
immer die richtigen Einfügungen gemacht.
So ja das ziemlich schick, das machen wir auch fein teiliger am
Ende letzten Endes auch die Historie, dann ist es ja genau
die Historie ist Clara, du hast nicht diese Mergers, weil die
Mercedes beinhalten wiederum von anderen und so weiter und so
kannst du immer genau sehen welche Nase hat was, wann wie
irgendwie da in diesem in diesen Master irgendwie reingehängt so
also Releasing sagtest du. Leasing, Merching oder Mercedes
sind die. Man kann Releasing kann man
quasi, man kann es wirklich so verstehen, als würdest du schon
die du in der Kette hattest wieder auflösen, die Kette quasi
und das kurz kurz in der Hand halten, dann die Änderungen an
den richtigen Stellen die von anderen einspielen und deine und
deine Änderungen wieder einfügen.
Ja also du brichst einmal die ab bis zu der Stelle wo wo es noch
synchron war und dann willst du das neu und bringt es in der
richtigen Reihenfolge wieder zusammen ne das nennt sich jetzt
hätte ich noch eine Frage zu git bevor wir dann vielleicht zum
nächsten Punkt dann auch kommen und weitergehen.
Jetzt verstehe ich das so, dass dann jede Menge Ärger ist oder
so Releasing passiert und irgendwann entscheidet mal
jemand. Jetzt gibt n Release dieses Maß
wieder und also eine neue Softwareversion wird irgendwie
veröffentlicht. Richtig also das ist dann
richtig Liebig irgendwann oder es wird vorher festgelegt, wenn
das wenn das ist ne also jetzt nicht Thema, aber irgendwann
muss ja passieren das ist ne gute Frage, habe ich noch gar
nichts gesagt und du fragst dich wie funktioniert das jetzt in
diesem Bild? Ja genau wie funktioniert das
Bilder Wischer auch gelöst in Teams also ja also über dem also
bei dem Flo den ich gerade gesprochen habe.
Bei diesem also der featurebranch Workflow, wo du
quasi einen zentralen Master hast und immer die Bugs und
Features aus Branchen wieder reinbringst.
Ne, gehst mal raus und wieder raus und wieder rein, da
funktioniert n Release so, dass quasi auf dem Master Branch da
laufen übrigens die ganzen ich mal kurz NICD und so weiter ne
also ja das müssen wir nicht im Detail im Detail, aber die
passieren auf dem Master Branch, also immer wenn der Master
Branch quasi neuen Comic Bubble erhält, neue Änderungen erfährt,
dann wird quasi im besten Fall automatisiert alles testen, Test
Gedöns drumherum angeschmissen. Und auf dieser neuen Version des
Masters wird der ganze Software getestet.
So ja und sagen wir mal, jetzt ist alles toll und der Master
Chief oder irgendwer entscheidet, jetzt müssen wir
machen, was man im besten falle immer machen kann, das ist die
das schicke an dieser an diesem Flow, ja weil dein Master wenn
der ständig durchgetestet ist und wenn diese Prozesse des
neuen Code einfügen, da hab ich noch nichts gesagt, auch im
Review Prozess unterhalten, dann heißt es quasi der ist immer die
Software dahinter steht ist immer Release fähig ist einfach
nur eine Entscheidung, eine politische Entscheidung, dann
sage ich mach das Release. Wie viele Features und Bugfixes
fasse ich zusammen, die mehr wert sind im neuen Release zu
erscheinen, so dass dann noch ein Politikum, aber kein
Technikum ist? Wichtig, wenn es passiert, dann
gibt es neues Wort nicht das sogenannte Tag.
Also ich hab jetzt von Branches gesprochen und von Comics
gesprochen und so weiter und einen Tag ist quasi auch ein
Commit, also quasi auch so n Bubble auf dieser Linie ja mit
einem Namen und dieser Tag Name ist dann quasi den Namen des
Releases 1.2.4 oder so zum Beispiel.
Und damit setze ich einfach nur n Zeitstempel.
Ja, damit ich da auch zurückverfolgen kann, was wie
sah der Code genau aus bei diesem Release.
Ja total wichtig so ja ne und und auch dieser dieser Tag,
diese Bubble ist quasi auch dann stelle wo ich dann Branchen
würde, denn jetzt wird es noch komplizierter, haben vielleicht
unsere Zuhörer gar nicht so auf dem Zettel, aber es ist halt so,
wenn ich zum Beispiel mehrere Versionen einer Software
maintain, wie man so schön sagt, also ich hab vielleicht ne
Version 2 Komma x ja und ne Version 1 für die noch nicht 2
migriert sind. Ich hab auf beiden ne und wenn
ich die also meine dann muss ich ja quasi für beide.
Personen gleichzeitig wachse fixen und alles sauber managen
so ja und auch diese dieser Tag den ich dann setze, der erlaubt
quasi auch noch mal Brunch zu machen, das wäre dann kein
Feature oder Bug Brunch, sondern dass dieser eine andere Branche
nicht erlaube in diesem Flow zu entstehen um das Release.
Weiterzuentwickeln. Ein altes an dieser Stelle,
davon sollte man nicht zu viel haben, weil das ja mega
aufwendig ist für das Team. So ja, also am besten ist, wenn
100 sollten die im allerbesten Fall auf der gleichen Version
sein, aber wir wissen es ja, wissen wie es ist genau, aber
ich habe immer gesagt so ich bin damit durch eigentlich Software
ich habe gesagt so allerhöchstens 2 Version OK aber
selbst dafür bietet gilt noch technische Lösungen an total ja
du kannst, aber der Aufwand steigt, der Aufwand steigt weil
man also man kann auch immer von zwischen Branchen und diese
Dinger verschieben und so, aber man kann sich vorstellen jetzt
wenn ich das jetzt erzähle also du fickst zum Beispiel eine
Branche in der neuesten Version im Feature 2.
Und dann denkst du so A den hatten wir garantiert in 1 auch
so und jetzt willst du diesen fix quasi rückwärts reinspielen
in Version 1. Da ist aber schon deine ganze
Umgebung anders, weil alles anders ist.
Jetzt musst du da ziemlich aufpassen, dass händisch
einfügen und so, das kannst du nicht einfach, den kannst
einfach nicht die Änderung darüber spielen und so, jetzt
merkt man dann was das für ein Aufwand ist.
Ja also also Softwareentwicklung und dieses ganze Maintain von
dem Kram und als als Softwareanwender erwarte ich
alles schön, funktioniert ja im Hintergrund ist das eine
hochkomplexe Projektmanagementproblem so ja,
es gibt bestimmt anderen auch und deswegen ist vielleicht ganz
andere Bereiche, aber es hat sich halt vor allen Dingen
darüber, weil das echt. Wenn man drüber nach sinniert,
was da alles passieren muss und was sie alles richtig machen
muss im Team mit mehreren Versionen, mit Bugs und
gleichzeitig asynchronen und so, das ist schon relativ komplex.
Ja ja OK, du auch in Anbetracht der fortschreitenden Zeit würde
ich dann dich erst fragen, gibts noch was wichtiges zu gehen
hinzufügen, ansonsten lass uns kurz über die gängigsten
Plattformen mal dass wir anreisen, es gibt ja dann github
und Gitlab und die haben irgendwie auch gut im Namen
schon und es gibt auch Bucket und ich hab nochmal geschaut
sourceforge und und und diverse andere Plattformen die
wahrscheinlich dann irgendwie dieses Open Source.
Produkt oder tue git nutzen und wiederum nochmal also dafür
sorgen, dass man sich selbst hosten muss.
Nämlich jetzt mal selber aufbauen muss, sondern einfach
nur Plattformen, die Cloud basiert ist oder ich warte, dass
man einen Satz alle diese Tools sind im Prinzip Web Plattformen,
die genau das tun was du gesagt hast.
Die die Sorgen dafür, dass ein zentrales Repository gehostet
wird und transparent anschaubar wird, indem da ne
webfunktionalität drumherum gebacken ist.
So und du kannst dann genau angucken, was ist da los, ja und
die erlauben, also die basieren alle auf dem Git unten drunter.
Und das hatte auch Linus Torvalds schon so vorgesehen,
hat gesagt, ich mache hier x quasi die, die Technik kann, da
gibt es keine UI zu und es soll einfach sein für alle möglichen
Leute ganz tolle Oberflächen dazu zu machen um das zu
bedienen. Ja und das sind Sie alle in
Ihrer in ihren Varianten so ja einer so der andere so ja und es
gibt halt quasi diese ganzen Tools, dafür gibt es welche,
sind besonders dafür, dass du quasi ein zentrales Repository
gegen die alle Managed. Und da gibt es viele andere
grafische Tools auch ich hatte schon die Editoren genannt, ja,
also die, die es selber die haben, das hat auch, die machen
quasi die die liefern die UI. Und die Transparentmachung für
die verteilten anderen Repositories für die lokalen
Repositories, mit denen du entwickelst und die Sachen
änderst. Ja, und alles ist voneinander
völlig unabhängig und du kannst das wild miteinander
kombinieren, weil es einfach nur Grafik über immer das Gleiche
geht. Unterliegende Kernsystem ist es
voll schön so. Ja, das funktioniert einfach
herrlich, ja, aber jetzt könnte man, auch wenn man jetzt ganz
besonders nervig ist oder ganz besonders das mag sich, dann
gehts selber irgendwie aufsetzen, voll, ja klar, also
haben wir das Anfang Ende OI benutzt OI ganz genau, du
brauchst nichts sagen. Das ist auch total schmal und
richtig effizienter, hat kaum Baum Speicher.
Es ist total schnell, ist gemacht und einer mit einem
Befehl hast du ein zentrales Postfach, Server irgendwo
zentral erreichbar ist. Mit einem Befehl hast du deinen
Repository erstellt, ich denke, dass dann auch github und gitlab
und so dann doch noch wieder einmal mehr hier und da
unterstützen und noch einfacher viele Dinge machen, je größer
das Team wird, desto eher würde man vielleicht auch gehen.
Ja voll es ist nicht, es ist nicht zu empfehlen heutzutage,
dass ohne UI zu machen, warum auch ja also die so so kann ich
jetzt nicht sagen, soll ich ja beisteuern, also zumindest kann
ich bei uns im. Repository oder im github Bugs
anlegen. Ja kommt ja auch mal vor oder
neuen Features reinschreiben und den du oder jemand anderes aus
der Entwicklung dann aufgreift und und und weiterverfolgt.
Ich will noch ein wichtiges Konzept sagen was wofür auch
gerade diese Web Oberflächen sehr gut sind und wo dich da
sich vielleicht auch die beiden trennt obwohl die mittlerweile
muss sagen früher war es vielleicht noch krasser
unterschiedlich, heute sind die alle sehr sehr gut ja das
Reviewing ist ein wichtiger Punkt, sowas hab ich noch gar
nicht erwähnt ja hab ich weggelassen aber jetzt wir
nochmal kurz den Faden auf von du bist fertig mit deinem
Headset. Und willst jetzt und hast auch
sauber den Master synchronisiert.
Alles ist fertig, technisch, dass dein Feature quasi wirklich
in den Master rübergehen kann, dann wird auch dann wird quasi
dein Feature Branch Gemerged je nachdem am besten falle based
und gibt quasi neue Bubble in den Master, also ein neuer Blog
wird quasi angehängt an die Entwicklungskette ja des Mars
bis dahin. Das könntest du jetzt machen.
Dumm und fertig so, dann ist es verändert.
Ja, das wäre aber dann krass, das hätte ich ja gar keiner
drauf geguckt, weil bis jetzt hast du lokal gebrannt, hast du
das gemacht, hast vielleicht irgendwie mit jemandem
gesprochen oder auch nicht, ja, und wenn du jetzt das einfach da
rein knallen würdest, dann hättest du quasi dieses Buch,
was entsteht das Software Buch verändert, ohne dass jemand
Mitsprache gehabt hätte, das passiert typischerweise nicht in
der Software zum zum Glück genau, sondern jetzt passiert
quasi in dem Moment wo du technisch fertig bist es mit dem
Master quasi zu verheiraten dein deine Änderungen.
Passiert Review Prozess, das heißt, jetzt kommt normalerweise
ein anderer Entwickler mit ins Spiel.
Das machen die Tools jetzt ziemlich toll.
Ja, da kannst du dann quasi sagen, bitte lieber liebe Lilly,
ja ich bin jetzt fertig mit Dee, kannst du bitte mit drauf
schauen? So ja kannst du das mal Review
und macht das Sinn? Habe ich hier irgendwo n Fehler
oder irgendwas ja. Kannst du dir das angucken und
dann kriegt, dann kann Lilly quasi sich auf sie nimmt dann
quasi lokal. Sie macht dann wieder falsch, so
dass sie alle Informationen hat, die Du, die du mit dem hast.
Du Chronist hat sich alles da und dann Lilly sich ja auch auf
Deinen auf deinen Feature Branch setzen, sie checkt den aus, dann
hat sie alles so wie du es sehen würdest und kann quasi den Code
durchgehen, so wie du ihn vor dir hast da und diese Tools wie
geht hab und so weiter die können das sogar im Web machen,
das heißt Lilly muss gar nicht mehr zu Hause machen weil ihr
sie kann sie Review Prozess auch in auf der Weboberfläche machen
was ziemlich. Was ziemlich elegant, weil ich
gesagt habe, wenn wenn du, wenn du jetzt quasi wenn du jetzt
quasi dich hinsetzt, auf einen anderen Branchen anderen mit,
dann wird quasi der ganzen Files, die du hast, während du
entwickelst, wenn neue hingeschrieben, so dass sie
dementsprechend wie der Status ist.
Jetzt kannst ja sein, ist mittendrin im Bug fix und hat 3
oder 45 Files modifizierten angefangen das alles was sie
jetzt nicht will ist das quasi wie das alles wegspeichern muss
kurz, dann kriegt sie ganz andere Codebase vor der Nase,
weil sie dann review machen soll, ja und dann wieder alles
zurück so ja da hat sie vielleicht überhaupt kein Bock,
hab ich auch kein Bock drauf und dann ist es einfach zu
verhandeln. Dann geht halt Lilly loggt sich
halt auch mit ein in Github so und dann und dann sieht sie
quasi in github schon diesen Review Prozess und das sind dann
einfach 2 Fenster sie genau was Herr gemacht und da gemacht und
dann könnt ihr quasi auch mit so einem Ding natürlich n Chat
Funktionen, dann kann sie mit dir sprechen und sagen Gerrit
Warum hast du das gemacht und du antwortest das und und dann wäre
das so wenn wenn wenn Lilly einen validen Änderungswunsch
hat, dann würdest du sagen OK cool dass das füge ich noch ein
und dann machst du halt in deinem Feature Branch 12345,6
bis Lilly glücklich ist. Ja dann ist Lilly glücklich und
gibt ihr OK Prof ja. Und und wenn, wenn das so ist in
der Firmenpolitik, dass Lilly das entscheiden darf und ihr
beiden seid glücklich, dann passiert der kommt in den Master
und dann werden noch alle Tests angeschmissen und dann ist alles
prima und dann geht es weiter. So ungefähr könnte aber
vielleicht sogar noch eine dritte Instanz wieder sein, die
dann den finalen Commit noch ja das also das ist beliebig, wie
man wie kompliziert man dieses Review macht und wer drauf
gucken muss und wer dann f geben kann und ob man das sogar
technisch du kannst alles machen, du kannst sagen, du
darfst das gar nicht, verbiete das Gerät so, du hast erst wenn
der grüne grüne Licht leuchtet vielleicht noch dem Senior oder
irgend sowas darfst du. Also das ist dann ist das hab
ich gesagt am Anfang ne, das hat mit an Technologie nichts zu
tun, das sind die Prozesse drum herum und die erweitern halt
diesen diese Grundfunktionen von GTH um alles was teamprozesse,
Sicherheiten und so weiter angeht.
Ja und das ist sicherlich sehr unterschiedlich, ich glaube mit
der Größe der Firma muss man auch tatsächlich Prozesse machen
mit da so bist du klein, kannst du n bisschen einfacher und
schlanker halten, wie es im echten Leben ist.
Eine Riesenfirma musst du da garantiert mehrstufige Review
Prozesse und so alles etabliert geht aber alles ja ja dann.
Was Geschwindigkeit für vielleicht noch höhere Qualität
von 90,9 auf Komma 9 kommen oder wie auch immer die Qualität
stimmt. Aber also der Prozess bringt dir
leider auch nicht die Qualität so wichtig ist, dass die dass
auch n jetzt n bisschen, aber. Wenn du im Team arbeitest, dann
die Entwickler denken ja meistens, sie werden daran
gemessen, wie viele Features und Bugs sie selber fixen oder
programmieren. Das ist leider aber nur Teil der
Aufgabe, wenn du ein guter Entwickler bist, dann musst du
halt vor allen Dingen reviewen. Also du musst halt einfach ganz
viel Zeit haben vom Management bekommen um ordentliches Review
zu machen. Ne von deinen Kollegen und sagt
überhaupt nicht unterschätzen, das ist nämlich viel schwieriger
kurz den du selber nicht geschrieben hast auf
Ordentlichkeit zu überprüfen als selber ordentlichen Code zu
schreiben verstehe. Weil wir Menschen haben
unterschiedliche Ideen zulässt. Mal verstehen, was ist da los.
Ja, und dann musst du. Du hast dich ja dann wochenlang
damit beschäftigt in hast dich irgendwie mit allen Cases, die
passieren können und so weiter geschafft, aber nicht jetzt n
Review machen soll irgendwie im besten Fall n paar Stunden
dauern, dann muss ich ganz schnell schaffen alles auf die
Platte zu laden. Deine ne alles was wichtig ist
drumherum zu sehen und zu verstehen was du da tust und ob
das gut ist oder nicht, ja das ist eigentlich die höchste
Kunst. Schnell ein sehr gutes Review zu
machen, was auch objektiv ist. Denn, und das ist auch noch was
ganz Krasses, dass ich an dieser Stelle sagen, und da muss man
das gute Software Teamführung. Wirklich essentiell.
Das ist ja auch ein Ruch emotionales Thema, denn wo in
der Arbeit werden wir als Softwareentwickler bist du ja so
transparenter durch diese Review Prozess läuft die ganze Zeit
runter gelassener Hose holen, ja und jeder könnte drauf gucken,
so ist es wirklich ja und und wenn dann auch noch n noch der
Kommentar kommt nee sieht irgendwie komisch aus, also dann
bist du erst recht irgendwie angefressen so denn wenn Review
heißt ja man gibt Kritik auch ab ja also wir machen das nicht nur
um zu sagen Boah ist das schön gemacht ja oh ja die Stelle ne
sondern da kommt ja hier sowas wie raff ich nicht, versteh ich
nicht ja was soll das? Das müssen wir probieren, das
geht hier schief und das ist doch kacke.
Wurst. Die Exception gefangen hier und
so weiter ja und du hast ja mit Schweiß des angesichts das
codiert und dann kriegst du noch Kritik dafür.
Ja dafür, dass du auch schon irgendwie gearbeitet hast.
Ja und da muss man dann halt gucken, dass man das auf einer
emotionalen Ebene von der emotionalen Ebene wegbringen und
ganze Sachlichkeit reinbringen und auch diese ganze Review
Prozess, also auch das Wording, also wie schreibe ich das und so
weiter. Mit ganz viel Höflichkeit
verpackt, so extrem wichtig, und das müsste das, finde ich,
Aufgabe des Teamleiters der Softwareentwicklung, da
entsprechende Policies durchzusetzen und zu sagen,
jetzt Pass mal auf, ihr Lieben, ja, hier wird ein ganz, ganz
freundlicher Ton angeschlagen, ansonsten gibt es hier sofort
eine Abmahnung, weil. Weil man sich nicht vorstellen,
aber das ist das, das entwickelt eine Eigendynamik in der Gruppe.
Wenn sich da ich das alles erlebt haben, sich also die
haben sich da wie wie die Wahnsinnigen, die den Kram, also
einem Review ja also da, das ging rechts und links mit dem
Chat, da glaubst du dich, tritt ein Pferd so, ja, und dann haben
sich die Entwickler, wenn sie hassen, werden sie ein Buch
schreiben sollen, dann ist das alles nicht gut, ja cool da
bisschen Philosophie am Schluss zu, aber ja, ich glaube, das ist
ziemlich wertvoll, weil weiß, wir haben jetzt nicht, wir haben
ja zum Teil, aber ja nicht zum Großteil Entwicklern und
Entwickler auch. Hiermit die zuhören.
Ja, und dann ist das ja coole Management lehren die man
mitnehmen kann. Ja genau und für alle Manager
die zuhören bitte beachten sollen jetzt noch zuhören, ja
schon lange kommen jetzt du wolltest nochmal die schließen
oder einen Bogen schießen sagt man glaube ich zu zu Blockchain
du hast schon erläutert bei mir hat es im Kopf schon
zusammengepuzzelt ja genau genau genau also die geht an sich von
der inneren Struktur ist wie eine, ja wie eine riesige
Blockchain Blockchain deswegen weil du auch nicht also Comics
die du mal gemacht hast kannst du nicht manipulieren.
Weil der nächste Hash also hast, ist ja die kommt ID quasi, also
jeder Comic, quasi jede Änderung des Codes wird quasi da ist
natürlich die Content Änderungen selber mit drin und es wird
versiegelt mit einem sogenannten Hash wert.
Der sich aus dem Davorige ergibt.
So, und deswegen kannst du quasi die Kette nicht manipulieren, ja
ohne dass jeder sofort mitkriegen würde sich alles
ändern, so ja eines der fundamentalen Grundgedanken, wie
die Blockchain funktioniert, ja. Und eigentlich, es gibt noch
noch viel krasser als jetzt so ne normale Blockchain, weil wir
auch noch ganz viele Ketten haben, die lokalen und
zentralen, die verschiedenen Branchen und so weiter und alles
das muss irgendwie gegeneinander ne, diese ganzen kommt also die
James, die Blocke die Blöcke in R Chain die fliegenden und
trotzdem bleibt alles sauber und nachvollziehbar, deswegen ist
ein schönes Beispiel, wir machen vielleicht schon die nächste
Folge über Blockchain oder die übernächste und dann bring ich
das alles zusammen, wohl noch die Unterschiede sind aber da
werde ich auch noch irgendwie Bezug nehmen, vielleicht
vielleicht auch erst in 2 bis 3 Wochen mal gucken, wir haben
schon eine Planung für die Herstellung, ja richtig, aber
Blockchain wird kommen, so viel versprochen.
Cool, alles klar, ich, ich würde den Sack zumachen, ich hab
bestimmt was Wichtiges vergessen, aber das macht
nichts, wir haben ein bisschen Ahnung bekommen, was kann man
auf Discord lesen? Ja genau, weißt uns gerne darauf
hin wie immer entweder n Podcast heimweg.com als e Mail Adresse
oder eben auf Discord. Und vergiss nicht zu abonnieren,
das musst du jetzt sagen. Leute, vielen Dank fürs Zuhören,
Danke Burkhard, Ich habe viel gelernt, fand ich richtig gut
die Folge, auch wenn es jetzt wieder länger als wir dachten
oder ich zumindest. Das ist ja meistens so und ist
ja auch bei der Software immer so ne leider alles cool prima
danke fürs Zuhören und bis nächste Woche dann Tschüss machs
gut Tschüss.