All posts tagged: docker

Skillbyte Podcast #48: Grundkenntnisse und Skills für ALLE IT-Fachkräfte

Willkommen zum Skillbyte-Podcast! Skillbyte ist ihr Partner für digitale Exzellenz.

In diesem Podcast geht es um das Thema: Grundkenntnisse und Skills für ALLE IT-Fachkräfte

// Inhalt //
01:29 – Was euch die Hochschule NICHT beibringt…

02:59 – Themenkomplex: Datenhaltung und -verwaltung
03:34 – SQL – Structured Query Language bei relationalen Datenbanken
05:53 – NoSQL – Not only SQL bei schemafreien Datenbanken
07:02 – Hashtabelle / HashMap
08:23 – häufige Datenvormate: JSON, YAML, CSV
10:37 – Zusammenfassung: Datenhaltung und -verwaltung

10:49 – Themenkomplex: Netze und Protokolle
11:13 – IP Adressen und -netze, Ports, NAT, Router, Gateway, TCP/UDP, Routing, Datenpakete, Firewalls
14:20 – HTTP Protokoll inkl. Status Codes und Zertifikaten für HTTPS
15:19 – REST APIs

16:13 – Themenkomplex: Systeme und Plattformen
16:25 – Linux, Kommandozeile / CLI (Bash), vi, nano, SSH, scp
18:46 – Docker, virtuelle Maschinen
19:35 – Cloud computing, Dienste und Orchestrierung dieser
21:06 – Cloud Native Software Development

23:00 – Themenkomplex: Arbeit mit Sourcode
23:09 – Code Versioning: GIT (branching, merging, rebasing), github.com, gitlab.com
25:17 – Integration von CI/CD Pipelines, GitHub Actions, Gitlab CI/CD (gitlab-ci-yml)

26:14 – Themenkomplex: Debugging
26:19 – Logdateien lesen
27:48 – Debugger konfigurieren und einsetzen

30:06 – Themenkomplex: Produktivität & Zielorientierung

32:45 – Zusammenfassung aller Themengebiete
34:21 – Podcastempfehlungen zur Vertiefung

// Weiterführende Episoden je nach Schwerpunkt //

Podcast #9: Bull’s Eye Software Development – Einfach und fokussiert auf Unternehmensziele
https://soundcloud.com/skillbyte/podcast-9-bulls-eye-software-development-einfach-und-fokussiert-auf-
unternehmensziele

Podcast #8: Must-have Skills, Technologien und Weiterbildung für DevOps
https://soundcloud.com/skillbyte/podcast-8-must-have-skills-technologien-und-weiterbildung-fur-devops

Podcast #7: Must-have Skills, Technologien und Weiterbildung für Data Engineers und Data Scientists
https://soundcloud.com/skillbyte/skillbyte-podcast-7-must-have-skills-technologien-und-weiterbildung-
3fur-data-engineers-und-data-scientists

Podcast #6: Must-have Skills, Technologien und Weiterbildung für Full-Stack Entwickler
https://soundcloud.com/skillbyte/skillbyte-podcast-6-must-have-skills-technologien-und-weiterbildung-
fur-full-stack-entwickler

Podcast #29: Die Zwölf Faktoren des Cloud Native Development (Teil 1)
https://soundcloud.com/skillbyte/podcast-29-die-zwolf-faktoren-des-cloud-native-development-teil-1

Podcast #30: Die Zwölf Faktoren des Cloud Native Development (Teil 2)
https://soundcloud.com/skillbyte/podcast-30-die-zwolf-faktoren-des-cloud-native-development-teil-2

// Weiterführende Blogposts mit mehr Informationen //

Tutorial: IT-Basiswissen für DevOps, Big Data, Developer
https://www.skillbyte.de/tutorial-it-basiswissen-fuer-devops-big-data-developer/

Onboarding neuer IT-Mitarbeiter (DevOps, Big Data, Developer)
https://www.skillbyte.de/onboarding-neuer-it-mitarbeiter-devops-big-data-developer/

Must-have Ressourcen, Skills und Techniken für Data Engineers und Data Scientists
https://www.skillbyte.de/must-have-ressourcen-skills-und-techniken-fuer-data-engineers-und-data-scientists/

Abonnieren Sie diesen Podcast und besuchen Sie uns auf https://www.skillbyte.de

Feedback und Fragen gerne an podcast@skillbyte.de

// AUTOMATISCH GENERIERTES TRANSKRIPT //

Okay, ich habe jetzt meine Hochschule oder meine Ausbildung abgeschlossen. Was wird denn jetzt tatsächlich von Firmen im Alltag gefordert? Diese Skills werden oft an den Unis vernachlässigt, sind aber ganz relevant für den Berufsalltag, für die Berufspraxis. Wenn ihr mit Kollegen zusammenarbeitet.

Herzlich Willkommen zur Gewalt Podcast Episode Nr. Achtundvierzig Grundkenntnisse und Skills für alle IT-Fachkräfte Abonniert unseren Podcast für mehr spannende Themen aus dem Technologie Umfeld, wenn er IT Entscheider oder die Fachkraft seid. Wenn ihr eine Frage habt, sendet uns gerne eine E-Mail an Podcast Amtsgewalt D Wir freuen uns immer über Bewertungen und ganz besonders an Weiterempfehlung dieses Podcasts, an Freunde und Kollegen, die sich ebenfalls für diese Themen interessieren. Das ist uns ganz wichtig.

Und heute möchte ich darüber sprechen, welche Grundkenntnisse und Grundfähigkeiten denn für alle IT-Fachkräfte wichtig sind. Gerade wenn ihr vor dem Berufseinstieg steht und euch fragt Okay, ich habe jetzt meine Hochschule oder meine Ausbildung abgeschlossen, was wird denn jetzt tatsächlich von Firmen im Alltag gefordert? Und hier ist mir ganz wichtig, dass ich Themen anspreche, diese Wohlfühl Softwareentwickler, Admins, DevOps, Data Engineers von Belang sind und die für alle diese Berufsgruppen wichtig sind. Diese Skills werden oft an den Unis vernachlässigt, sind aber ganz relevant für den Berufsalltag, für die Berufspraxis.

Wenn ihr mit Kollegen zusammenarbeitet und häufig ist es so, dass das so Grundfähigkeiten sind, die euch dann auch niemand mehr so richtig erklären möchte, weil das einfach so ein Brot und Butter Geschäft ist, dass ihr das am besten dann zuhause nachliest oder die Kollegen schon mit den Augenrollen, wenn so eine Frage gestellt wird. Davor möchte ich euch bewahren und einfach ein paar Denkanstöße geben, paar Themen geben, die ja durcharbeiten könnt, wo ihr euch mit beschäftigen könnt und dann voll in den Berufseinstieg glänzen könnt und dadurch starten könnt.

Was befähigt mich dazu? Ich bin seit über 16 Jahren Softwareentwickler und seit über acht Jahren in der IT Beratung tätig, habe also schon viele Unternehmen gesehen und viele Projekte durchgeführt und habe dadurch einen breiten Erfahrungsschatz aufgebaut und sehe dann immer das neue Ankömmlinge Junior Entwickler Junior Dev Orbs Junior Atmens oft die gleichen Fragen haben, die mit einer Woche oder zwei Wochen Vorbereitung zu klären wären und wo man dann einen viel besseren Einstieg ins Berufsleben finden würde. Also vielleicht wenn ihr Einsteiger seid, sendet ihr euren Kommilitonen auch diese Podcast Episode und macht es euch sehr viel einfacher direkt erfolgreich ins Berufsleben einzusteigen.

Ich freue mich auf jeden Fall und wenn ihr Fragen habt. Wie eingangs erwähnt, schick mir gerne eine E-Mail, wenn ich ein Thema vergessen habe. Eurer Meinung nach sendet meine E-Mail an Podcast beide Punkte. Das erste Thema, wobei ich heute sprechen möchte, beschäftigt sich mit der Datenhaltung und Verwaltung. Ihr könnt euch ein Computersystem so vorstellen, dass es sich im Grunde um einen Datentyp handelt oder um mehrere Daten Zöpfe, um die drumherum Code gebaut wird. Also Decode nimmt die Daten, die in einer Eingangs Struktur vorliegen.

Das kann ein Bild sein und konvertiert diese Daten in ein anderes Format, ein Video, ein Bilder, Album usw.. Also im Grunde ist es immer so ihr habt Daten und der Computer Code macht etwas mit diesen Daten, transformiert diese Daten und gerade wenn es um das Thema Datenhaltung geht auch heute noch spielen relationale Datenbanken. Das sind Datenbanken wie Maria DB, My, SQL PostgreSQL, auch Oracle oder MS SQL eine große Rolle. Und alle diese Datenbanken werden über die STANDARD Abfrage Sprache SQL abgefragt.

Und egal in welchen Projekten, dieser SQL STANDARD wird euch immer wieder über den Weg laufen. Das ist auf jeden Fall eine Fähigkeit, die ihr brauchen werdet. In eurem Berufsalltag und die an der mannigfaltigen Stellen einsetzbar ist, ist es sogar so, dass neue Technologien, die hinzukommen z.B. wenn man an die Haddock Daten Platform denkt, die es jetzt auch gar nicht mehr so neu. Dann werden Werkzeuge extra so konzipiert, dass sie auf den vorhandenen SQL Standards aufsetzen können.

Also dass man mit der SQL Sprache, die sehr viele Entwickler bereits können, dann eben auch neue Anwendungsfälle abdecken kann. Also SQL absolut wichtig, um ein paar Beispiele zu geben. Ein paar Select Abfragen auf Tabellen Jeunes sind ganz wichtig. B. Jeune ich Daten zwischen zwei Tabellen Was ist eine Relation? Relation ist im Grunde genommen eine Tabelle. Was ist ein Primärschlüssel? Wie setze ich in die CS? Was für Vorteile haben in die CS? Welche Nachteile haben sie?

Schaut euch mal ihr Diagramme an. Also Entity Relationship Diagramme. Die habt ihr wahrscheinlich im Studium schon gesehen. Die werden auch in der Praxis eingesetzt und letztlich bilden die einfach nur Datenbank Schemas ab. Also an der Stelle nochmal wichtig die SQL Abfrage Sprache ist super wichtig. Schaut euch das an. Macht einfache Kluth abfragen also create read update Lettner fügt was ein, selektiert Ergebnisse, löscht meine Zeile. Update Meine Zeile so als Fingerübung. Da seid ihr auf jeden Fall schon mal gut gewappnet, weil SQL wird ihn mit an Sicherheit grenzender Wahrscheinlichkeit in eurem Berufsleben wieder auftreten.

Hier noch als Erweiterung. Die optionales Wenn ihr das Thema vertiefen wollt, könnt ihr euch auch Objekt relationale Mapper anschauen, sogenannte Ockhams. Hier geht es darum. Programmiersprachen sind häufig objektorientierte und ihr arbeitet mit Objekten. Daten werden aber immer, wenn sie in relationalen Datenbanken liegen, auf Tabellen abgebildet. Das heißt, es sind im Grunde zwei Welten und diese Object relationalen Mapper verbinden diese beiden Welten ist nicht unbedingt Voraussetzung, aber als Erweiterung. Wenn euch das Thema interessiert, würde ich das empfehlen, mal anzuschauen.

Kommt auch sehr häufig vor. Wir befinden uns immer noch in dem Blog Datenhaltung und Verwaltung. Und das zweite Thema, was sehr wichtig ist und was euch im Berufsleben auf jeden Fall über den Weg laufen wird, sind die sogenannten No ASCII Datenbanken wie beispielsweise Mongo DB, No SQL steht hier aber nicht für kein SQL, sondern für Not only SQL und es handelt sich um so genannte Schema freie Datenbanken. Was bedeutet das? Bei den relationalen Datenbanken haben wir schon festgestellt Es gibt Tabellen.

Diese Tabellen haben ein festes Format und alle Daten müssen in diese Tabellen hineinpassen. Bei den Schema freien Datenbanken ist das nicht der Fall. Da könnt euch vorstellen einen Such Index wird häufig mit Schema freien Datenbanken abgebildet und mit Dokumenten, die sich nach und nach erweitern. Also wenn man z.B. ein Dokument hat, das nennt sich Person, dann hat die Person vielleicht Vorname Nachname. Irgendwann kommt ein Führerschein hinzu, irgendwann kommt ein Schulabschluss hinzu, irgendwann heiratet die Person vielleicht und es kommt mir ein Link zu einer anderen Person hinzu.

Und das weiß man vorher alles nicht. Deshalb können die Dokumente in der Datenbank Personen nach und nach erweitert werden. Ohne Schema. Also SQL haben wir, No SQL haben wir, da gehen wir gleich noch genauer drauf ein. Ein weiterer Punkt zur Datenhaltung und Verwaltung, der euch auf jeden Fall begegnen wird, ist die sogenannte Hascht Tabelle oder auf Englisch Hash Map. Schaut euch bitte an, wie funktioniert eine Hash Map? Was für Vorteile habe ich bei der Hash Map?

Was? Eine Hash Map ist einfach eine Datenstruktur, die einen Schlüssel zu einem Wert abbildet. Im Grunde genommen könnt ihr euch vorstellen, ein Schlüssel muss eineindeutig sein wie eine Telefonnummer und der Wert könnte z.B. die Person sein, die hinter der Telefonnummer steckt. Wenn ich jetzt einen neuen Wert mit der gleichen Telefonnummer einfüge in diese Hash Tabelle, dann fällt der alte Wert raus und die neue Referenz. Also sagen wir mal die gleiche Telefonnummer gehört jetzt einer neuen Person, wird dann dort gespeichert.

Der Vorteil von einer hascht Tabelle ist, dass ein sehr schneller Zugriff ermöglicht werden kann, wenn man den Key errät. Wenn man die Telefonnummer weiß, kann man sofort den Namen der Person nachgucken in der O Notation, während er die Zugriffs Zeit würde sich als O von 1 darstellen, was der beste Fall ist und die Hash Tabelle läuft euch sehr sehr häufig über den Weg. Diese Datenstruktur beim Thema Caching, wenn ihr schnellen Zugriff auf Elemente benötigt bei Key Value Stores.

Ein unbekanntes Produkt aus diesem Bereich wäre z.B. Readers. Also schaut euch wirklich an, was ist eine Hash Tabelle? Wie funktioniert die? Gibt’s in allen Programmiersprachen. Macht euch mit dem Konzept vertraut. Das ist ganz wichtig. Als letzten Punkt bei Datenhaltung und Verwaltung möchte ich auf häufige Datenformate eingehen. Also ein häufiges Datenformat ist z.B. Jason Java Skript, Objekt Notation. Das habt ihr bestimmt schon mal gesehen. Das sind einfach abgerollt. Schlüssel, Werte, Kombinationen. Wenn man so möchte, also sucht nach Jason Fall, dann sieht er sofort, was ich meine.

Dieses Dateiformat kommt sehr sehr häufig vor. Und das wird zum Brot und Butter Geschäft während eurer täglichen Arbeitszeit werden bin ich ganz sicher. Ist auch sehr ähnlich beim Zugriff auf Novell SQL Datenbanken. Werdet die Abfragen an diese Datenbanken stellen. Da kommen dann Jason Dokumente zurück, also Jason Objekte zurück, wenn ihr auf irgendwelche Rest APIs zugreift. Da kommen wir gleich noch zu. Wird ebenfalls wie mit Jason Objekten gearbeitet und also an Datenformat. Jason kommt da nicht vorbei.

Wenn ihr nicht wisst was das ist. Schaut es euch an. Macht euch damit vertraut und es ist sehr, sehr wichtig. Ein zweites Datenformat, insbesondere für Konfigurationsdateien ist das sogenannte Jamel Dateiformate.

Jamel und Jason sind austauschbar. Also man kann Jason Datei als Jamil Datei schreiben und eine Jamel Datei als Jason Datei ist ein bisschen der Geschmacksfrage. Jason Dateien werden häufig zur Verwendung von Daten zum Austausch von Daten Objekten verwendet. Jamil Dateien sind oft Konfigurationsdateien, also Latin oder Markup. Länge ist die geschriebene Abkürzung und die neuen Technologien nutzen alle diese Sprache zur Konfiguration. Ein drittes sehr häufig anzutreffen das Dateiformat ist das sogenannte CSV Dateiformat. Häufig liegen Daten Exporte in dem CSV &comma.

Seppl rated beliefs vor. Das könnt euch so vorstellen, dass im Grunde einfach eine Tabelle abgerollt wird und alle Daten mit Kommas getrennt hintereinander geschrieben werden. Und das ermöglicht es auch Systemen, die keine Kenntnis voneinander haben, mit diesen Daten zu arbeiten. Also irgendein System, was mal erstellt wurde, kann Daten in CSV exportieren, z.B. eine Telefonrechnungen und ein anderes System. Was? Einige Jahre später erst danach erzeugt wurde, kann man diese Daten eben wieder einladen. Weil sich beide sind CSV STANDARD halten.

Das wären meine 4 Tipps zum Thema Datenhaltung und Verwaltung. Ich fasse nochmal zusammen SQL Abfrage Sprache superwichtig Der Umgang mit No SQL Datenbanken ist sehr wichtig. Die Funktionsweise einer hascht Tabelle sollte dir kennen und die geläufigsten Datenformate. Mit denen sollte dir auch was anfangen können. Okay, nach Datenhaltung UN-Verwaltung kommen wir jetzt zu dem Block Netze und Protokolle. Das wird einige von euch langweilen, andere von euch, wenn ihr großen Nachholbedarf haben. Das stelle ich immer wieder fest.

Und zwar geht es um nichts weniger als das Verständnis, wie das Internet funktioniert oder spezieller wie TCP IP Netzwerke funktionieren. Was ist eine IP-Adresse? Also ganz genau. Was ist das? Was ist eine IP V4 Adresse? Was ist eine IP V6 Adresse? Warum ist diese Adresse wichtig? Was bezeichnet diese Adresse? Ist diese Adresse änderbar? Wer teilt diese Adressen zu? Wer verwaltet diese Adressen? DHCP In diesem Kontext ist auch wichtig. Alles Stichworte, die er nachgucken könnt und die wichtig sind Ports.

Was ist ein Port? Von einem Service, der auf meinem Rechner läuft. Wie viele Ports gibt es? Welche Ports sind bereits belegt? Gibt Welche Konventionen existieren zu Ports? Hier insbesondere Ports unterhalb der Nummer 1024 dürfen eigentlich nur von Services verwendet werden. Die erhöhte Rechte haben und so weiter und so fort. Das sollte durch angucken gerne auch Wikipedia bietet exzellente Dokumentation zum Thema IP Netze an. Schaut euch das an! Also was sind IP Adressen? Was hat es mit den Ports auf sich?

Was ist ein Router bzw ein Gateway? Ein Router bootet innerhalb von Netzen. Ein Gateway verbindet zwei Netze. Wir sagen zwar im Sprachgebrauch häufig DSL Router, aber streng genommen ist es ein DSL Gateway, denn es verbindet das private Heim Netz mit dem Internet. Was bedeutet Network Address Translation kommt so häufig vor in Kunden Projekten. Bei Network Address Translation geht es einfach darum, dass die IP-Adresse im Internet, die euer Gateway im Internet hat, auf eure lokalen Geräte zuhause beispielsweise abgebildet werden muss.

Das heißt, euer Handy, euer PC, eurer Spielkonsole, euer Fernseher. Die haben alle die gleiche IP V4 Adresse im Internet. Aber trotzdem muss natürlich das Gateway Player DSL Gateway entscheiden. Wo schicke ich denn welche Daten hin und muss die Geräte auseinanderhalten? Wie funktioniert das genau? Ein weiteres Stichwort hier wäre Port vor Wording. Das solltet ihr auch wissen. An das habt ihr aber wahrscheinlich im Studium gelernt. TCP und UDP was ist der Unterschied zwischen TCP Verbindungen und UDP Verbindungen?

Ganz einfach kann man sagen bei TCP Verbindungen fallen Verbindungs Fehler auf und werden behoben. Also verlorene Datenpakete werden an Nacht gesendet. Bei UDP ist das nicht der Fall. Dafür ist UDP schlanker und hat weniger Management Overhead, was die Paket Verwaltung angeht. Das ist manchmal von Vorteil, wenn man einfach möglichst hohe Datenrate erzielen möchte oder wenn verlorene Pakete nicht wichtig sind z.B. bei Skype Verbindung. Wenn da ein Wort fehlt, dann nützt das nichts, das wenige Sekunden nach und später nach zu senden, sondern dann lässt man Safa weg und macht weiter.

Generell Wie funktioniert Routing? Was sind Datenpakete? Wie funktionieren Firewalls? Das ist Grundlagenwissen, aber immer wichtig in Firmen, weil Unternehmen oft sehr komplexe Systeme im Einsatz haben, die eben mit dem Netz verbunden sind. Und oftmals, wenn es Probleme gibt, liegt das an Komponenten in dem Netz, die eben diese Einzelkomponenten verbinden. Und wenn man nicht versteht, wie Alpines zu funktionieren, dann kann man den Fehler nicht entdecken und beheben. Es ist der einfache Grund.

Der zweite Punkt bei Netzen und Protokollen. Neben der Funktionsweise des Internets sein grundlegendes Verständnis des http Protokolls. Also was gibt es für Methoden geth post put die z.B.. Und was gibt es für http status codes? Viele kennen bestimmt den Status Code 404. Das ist wenden eine Ressource eine Webseite in dem Fall nicht gefunden wurde. Gibt auch den Status Quo 200, wenn der Request erfolgreich verarbeitet wurde. Es gibt noch viele, viele weitere Status Codes, die alle eine andere semantische Bedeutung haben.

Da sollte man sich mal die Tabelle anschauen, um einfach einen Überblick zu bekommen, was es alles gibt. Die muss man nicht auswendig können, aber man muss z.B. Klassen von Status Code sollte man wissen. Also die fünf Hunderter Codes bezeichnen Server Fehler als bei vier Hunderter Codes ist häufig eine Ressource einfach nicht gefunden worden. Bei 200 Codes ist der Request erfolgreich durchgeführt worden. Aber es gibt halt verschiedene Rückmeldungen, dass man einfach diese Klassen kennt. Das ist sehr wichtig und hochgradig Praxis irrelevant.

Ein dritter Punkt bei Netzen und Protokollen, der sehr wichtig und in den letzten Jahren noch an Wichtigkeit. Sind die sogenannten Rest APIs als Schnittstelle zwischen Microservices oder zwischen zwei Systemen, die miteinander sprechen, meistens über Jason? Geht es darum, System A ruft z.B. bei System B ein Login auf, System B sendet System A zurück. Okay, erfolgreich eingeloggt. Daraufhin kann System A System B sagen wieder ein Request schicken. Ok. Dann bitte möchte ich die und die Daten abrufen.

Dann weiß System B anhand von Informationen, die gesendet werden. System AS autorisiert und kann dann die entsprechenden Informationen zurück liefern. Immer wenn ihr euch irgendwo auf einer Website einloggt, wird im Hintergrund genau dieser Datenaustausch durchgeführt. Also Rest APIs in Verbindung mit dem HTTP Protokoll und der Funktionsweise des Internets. Also es sind absolute Basis Baustein und die braucht ihr mit Sicherheit grenzender Wahrscheinlichkeit auf jeden Fall in meinem Berufsleben. Kommen wir nach der Datenhaltung und Verwaltung über das Thema Netze und Protokolle.

Nun zum dritten Thema Systeme und Plattformen. Hier ist es wichtig zu wissen, wie das System Linux aufgebaut ist. Linux wird nach wie vor auf den meisten Servern eingesetzt. Auch die ganz Docke isierung und die ganzen Cloud Umgebungen basieren zum größten Teil auf Linux und sehr, sehr häufig. Wenn ihr Software entwickelt, die irgendwo ausgerollt werden soll, passiert das auf Linux Systemen. Und da sollte dir einfach ein grundlegendes Verständnis davon haben, wie das System aufgebaut ist. Da gibt es tolle Youtube-Videos zu, die das in der Kürze erklären.

Also was ist der Kernel, was ist der User Space? Was sind die häufigsten Verzeichnisse bei einer Linux Installation oder auch im Docker Container? Ist es oft so ähnlich? Was sind Konfigurationsdateien also häufig unter Slash etc., die wichtig sind, wo ich dein Haus eintragen kann oder irgendwelche anderen Systemeinstellungen verändern kann? Das lohnt sich immer. Also generell Linux System Aufbau verstehen und die häufigsten Verzeichnisse kennen. Das führt mich direkt zum nächsten Punkt dem Umgang mit der Linux Kommandozeile.

Ob das jetzt das Basch Terminal ist oder TCS h WGT, da Entwickler durch seine eigene Vorliebe. Es ist aber wichtig hier, dass ihr euch für einen Terminal entscheidet, dass ihr das so konfiguriert, dass er damit auch umgehen könnt und euch dann eben auf der Kommandozeile wegen könnt. Ob das jetzt Linux ist oder MacOS, das ist erst mal nicht so wichtig, aber dass ihr in Verzeichnissen navigieren könnt. Also mit CD in ein Verzeichnis reinspringen oder wieder rausspringen, das Sie mit lässt euch das Verzeichnis Inhalt anzeigen lassen können, dass ihr Dateien editieren könnt entweder mit den Editoren wie ein Nano oder euer Lieblings Editor, dass ihr per 6h auf einen Server zugreifen könnt.

CH Leerzeichen Server Namen entspringt er auf den Host, dass ihr z.B. mit SCP Daten zwischen Servern hin und her kopieren könnt oder von einem Server auf eurem Rechner kopieren könnt. Das wird häufig benutzt bei Log Dateien. Wenn man da etwas nachschauen möchte, das man erstmal vom Server auf den eigenen Rechner kopiert, dass man Dienste stoppen kann und neustarten kann und dass man sich einfach sicher auf der Kommandozeile bewegt. Das ist sehr, sehr sehr wichtig und das ist absolutes Grundlagenwissen.

Hab ich häufiger schon in meinem berufst Kontext gesehen, dass das nicht beherrscht wurde. Und dann entsteht im Team sehr, sehr oft Frustration, weil das eine Grundkenntnisse ist, die vorausgesetzt wird. Also wer mit dem System Ausbau von Linux besprochen und die Navigation auf Linux Kommandozeile auch die Verwendung von Docker und virtuellen Maschinen wie VirtualBox sind sehr, sehr wichtig zu wissen, wie man damit umgeht, weil die Entwicklung doch mehr und mehr in Docker Containern vollzogen wird oder auch in virtuellen Maschinen statt auf der eigenen lokalen Hardware.

Das hat einfach den Vorteil, dass man, wenn man einen Docker Container baut oder Diplomat, dass er sich überall gleich verhält und man nicht mehr das Problem hat, dass eine Software auf dem lokalen Rechner anders funktioniert als dann später in der Produktion auf dem Server, weil man das vermeiden möchte. Also schaut euch an, wie Docker funktioniert, wie man Docker Container runterlädt, wie das langjÃhrigen der Falz Systeme der Docker Images funktioniert und wie der Docker Dienst generell funktioniert auf der Linux Infrastruktur.

Ich denke ah es ist sehr interessant und b ist es auch hochgradig Praxis relevant. Ein weiterer Punkt bei System und Plattform ist natürlich, dass in den letzten Jahren immer stärker in den Vordergrund tretende Cloud-Computing auf der einen Seite versus der On Priamos Rechenzentren, die auf der anderen Seite noch laufen bei vielen Unternehmen und ich denke, es wird dahin gehen, dass bis auf sehr, sehr wenige Ausnahmen fast alle Anwendungen in der Cloud betrieben werden. Heute sind wir in einem Zwischenzustand, dass noch viele alte Anwendungen, die seit Jahren bestehen, im eigenen Rechenzentrum laufen und nicht in die Cloud wandern.

Aber Anwendungen, die neu entwickelt werden eben schon auf der Cloud Infrastruktur angelegt werden. Und da muss man sich dann einfach auskennen. Also auch mit der Terminologie Wie heißt eine virtuelle Maschine in der Amazon Cloud oder in der Cloud oder in der Google Cloud, je nachdem, welchen Cloud Provider man da verwendet?

Da ist es auch wieder wichtig. Ich die Netze und Protokolle zu verstehen. Wie können die Maschinen untereinander kommunizieren? Welche Cloud Tools gibt es? Wie heißt jetzt zum Beispiel DNS namens Auflösung jetzt bei dem Cloud Provider und so weiter und so fort. Also hier am besten wie kommt ihr da rein? Die meisten Club Weida bieten ja so ein Free Plan an, dass man sich da einfach anmelden kann und dann eine einfache Website auf diesem Cloud Host installieren. Ich glaube, da kann man sehr schnell Erfolge erzielen und sich sehr schnell in diese Infrastruktur als Dienst oder Infrastruktur as a Service Umgebungen einarbeiten.

Oft ist es auch so, dass Unternehmen schon eine Cloud Infrastruktur hab und wir die nicht von Null aufbauen müssen, sondern eben erweitert. Aber da muss man sich dann auch auskennen, welche Werkzeuge es da alles gibt. Wenn man schon bei Cloud Computing ist, muss man auch meiner Ansicht nach das Cloud Native Software Bell abmahnt ansprechen. Da haben wir bei Skill BYD 2 Podcast Episoden zu gemacht, die Episode Nummer neun und zwanzig und dreißig. Denn Anwendungs Software, die für Cloud Umgebungen entwickelt wird, die wird etwas anders entwickelt als man das vielleicht bei Legacy Anwendungen früher gemacht hat, wo alles auf einem Server ausgeführt wurde.

Heute ist es so, dass das Thema State zentral gehalten wird, dann Cloud Datenbanken oder Cloud Now, SQL Datenbanken und die Microservices drumherum. Diese Daten transformieren sehr schön. Da sind wir wieder bei dem Bild, was ich eingangs gezeichnet habe, dass man im Grunde sich einen Computer Computersystem als Datentyp vorstellen kann mit Code drumherum. Genauso ist es in der Cloud auch. Aber es gibt ja ein paar Besonderheiten, auf die man achten sollte bei der Anwendungsentwicklung, die eben unter Cloud Native Development zusammengefasst sind, damit man auch alle Vorteile der Cloud nutzen kann.

Also damit man so super breit skalieren kann, damit man sich Maschinenhaus fahren kann und im Grunde eine Milliarde User App frühstücken kann, muss man die Anwendungen in einer bestimmten Art und Weise entwickeln. Und das ist das Cloud Native Development, würd ich auch sagen. Schaut euch das mal an, müsste euch nicht so tief anschauen, aber ist auf jeden Fall wichtig. Und in dem Zuge Cloud Entwicklung macht euch mit so Schlagwörtern vertraut wie CDN konnte Delivery Network Was bedeutet AWS?

Was bedeutet CCP? Was bedeutet esgab? Wie gehe ich mit der neuen Infrastruktur aus der Cloud um statt echter Hardware im Server? Vielleicht steigt er auch direkt auf Cloud Services ein und kennt gar nicht mehr echte Server. Das ist auch okay, aber der Umgang mit den Cloud Diensten, das halte ich für sehr, sehr wichtig und hochgradig Praxisräume und auf jeden Fall. Und auch die meisten Cloud-Anbieter bieten Kommandozeile Tools. Als wenn man sich auf der Kommandozeile bewegen kann, kann man auch die Tools der Cloud-Anbieter verwenden.

Nach System und Plattform wäre der vierte Punkt von mir nun das Arbeiten mit Source Code. Wie geht man damit um? Und hier ist ein ganz, ganz grundlegendes System, was man auf jeden Fall beherrschen sollte und sich anschauen sollte. Das Git Code Version im System von Linus Torvalds himself, gegründet vor einem Jahr. Was heißt ersetz? Installiert euch Git schaut an, wie man einen Branch macht, wie man Branches wieder merkt, wie Rhee Basinger funktioniert, welche Vorgehensweise es gibt, Feature Entwicklung auf sogenannten Branches durchzuführen.

Dann, wenn das Feature entwickelt ist, muss der Branche wieder in den Master Branch zurückgemeldet werden. Da gibt es verschiedene Vorgehensweisen. Also ich sage nicht, dass man sich das alles anschauen muss, aber man muss Git so benutzen können, dass man Code einchecken kann, Code Versionierung kann, die geläufigsten Kommandos kennt, also mit blame schaut wer hat diese Code Datei geschrieben und wen kann ich da fragen z.b. Und wo kommt diese Änderung her, dass man einen Branch ziehen kann, dass man ein Branch wieder marjan kann?

Das ist super wichtig und habt ihr vielleicht schon im Studium benutzt. Wenn nicht, schaut euch bei Jude Ami oder bei YouTube an Git Kurs an, der euch die Basics vermittelt und wirklich die Basics Bronchien Marching Rebalancing. Damit seid ihr schon gut aufgestellt. Da gibt es noch sehr fortgeschrittene Themen, die wenn euer Unternehmen das einsetzt, werden sie euch das zeigen. Aber zumindest die Basis Sachen solltet ihr kennen, um damit umzugehen, dass es immer wieder ein Knackpunkt.

Und da solltet ihr zumindest Grunderfahrungen haben, um da nicht direkt anzuecken bei eurer neuen Stelle. Wenn ihr wollt, macht euch ein Account bei GitHub und komm oder Güttler Punkt kommen. Erstellt euch dort euer eigenes Repository zum Ladet mal Dateien hoch, ladet das runter. Fragt einen Freund, die Dateien zu ändern und die wieder hochzuladen, sodass er euch einfach. Ja, vielleicht nutzt er im Studium schon vor eurer Abschlussarbeit oder irgendein Text. Könnt ihr mal Git benutzen, um gemeinsam an einem Werk zu arbeiten und dann kriegt er schon Erfahrung, was für Probleme es gibt und was auch Git leistet.

Und das ist sehr sehr wichtig. Es gibt noch andere Wirsching Systeme außer Git z.B. SVR oder CVS, aber Git hat im Grunde genommen alle verdrängt. Und wenn ihr Git verstanden habt, dann könnt ihr auch mit allen anderen umgehen. Deshalb halte ich es für das Allerwichtigste. Ein weiterer Punkt Wenn ihr das Codewort Oenning mit Git beherrscht, ist die Integration von Kaikki. Die Pipeline, also Continuous Integration Continuous Delivery haben nämlich meistens in Unternehmen hört man ja nicht auf, wenn man denkt Sourcecode eingecheckt hat, sondern jetzt muss der Source Code ja in ein Programm überführt werden oder in einen Container überführt werden.

Und dieser Container wird dann ausgerollt auf dem Testsystem, auf dem Produktionssystem, je nachdem, was man gerade macht. Da gibt es bei GitHub die sogenannten GitHub Actions, die es machen können. Bei Gelabt gibt es die Key ICD Pipeline über die Gitter i-Punkt Jamel Datei lässt sich das steuern. Also schaut euch die Integration dieser Sie als Hedy Pipelines an ist ein etwas fortgeschrittenes Thema, wird aber auch hochgradig Praxis relevant. Hab ich in jedem Projekt bisher gehabt. Was man da zumindest verstehen muss.

Was da vor sich geht und gegebenenfalls auch Anpassungen durchführen können muss, würde ich empfehlen, sich auf jeden Fall da mal ein Youtube-Video zu anzugucken. Okay. Soviel zur Arbeit mit Sourcecode. Mein fünfter Punkt, der absolut wichtig ist, heißt Debugging. Womit die Bar gegen meine ich erstmal, dass ihr Log falls lesen könnt Dienste Linux Dienste System Dienste auch Windows System Dienste schreiben Ereignisse in Log Dateien Diese Log Dateien sind die erste Anlaufstelle, wenn es zu Fehlern kommt, wenn es zu Problemen kommt, wenn man irgendwie schauen muss, wie verhält sich der Dienst.

Und das ist tägliches Brot und Butter Geschäft, das man in Lokführers schauen kann. Also entweder springt man auf der Kommandozeile per Asha direkt auf die Maschine oder in den Docker Container und betrachtet dann eben die Lock falls mit den gebräuchlichen Editoren wie wie nano less more. Dies sind keine Editoren, aber Betrachter um dann die Log Dateien anzeigen zu können. Ihr könnt jeden Editor benutzen, der für euch passt. Wichtig ist, dass ihr wisst, wo sind Lokführers zu finden unter war oder jeweils an der konfigurierten Stelle im Container und dass ihr dort reinschauen könnt.

Superwichtig gibt auch so Log Aggregation Dienste wie e.K. Zum Beispiel oder Cubaner die Log Falls sammeln gerade in verteilten Umgebungen und die dann an zentraler Stelle aggregieren. Ihr könnt euch vorstellen, wenn ihr 20 Container habt, dann möchtet ihr nicht 20 Container abklappern per Kommandozeile, sondern möchtet die Log falls zentral an einer Stelle einsehen können. Dann habt ihr schon einen Dienst, der euch das abnimmt, die Lock Fields zu sammeln. Aber das Sorgfalt selber betrachten müsst ihr dann immer noch eben auf einer Web Oberfläche und vielleicht nicht in der Kommandozeile.

Aber Log falls lesen will gelernt sein kommt aber auch jeden Tag vor. Ein ganz ganz großes Thema. Was mir am Herzen liegt beim Thema Debugging ist das Richtige die Backen. Ich halte das für extrem wichtig für effektive Arbeit zu machen. Also stellt euch vor. Ihr baut eine Website und jedes Mal, wenn ihr eine Änderung gemacht hat, müsst ihr den Webserver neu starten, um zu gucken, welche Änderungen hat meine Änderungen denn jetzt bewirkt? Wie sieht die Webseite jetzt aus?

Wie sieht die Webseite jetzt aus? Jetzt würdet ihr so ein Plugin verwenden wie z.B. Hoth Reload, was einfach, wenn ihr die Datei speichert, die Webseite neu lädt und ihr sofort seht, was eure Änderung bewirkt hat. Und das ist jetzt nur Webentwicklung. Das kann man für alle möglichen Technologien gibt es einen dieBürger. Ob das im Browser ist, eine JavaScript Code schreibt, ob das auf JVM Sprachen ist wie Java oder Scala, da gibt es die Bagger.

Ob das bei iOS ist? Wenn ihr Apps entwickelt oder bei PHP. Überall gibt es die Braga, welche die Entwicklung und das Bugfixes extrem vereinfachen. Ihr könnt Breakpoint setzen, also an bestimmten Stellen im Programm stehen bleiben. Dann könnt ihr euch angucken, welche Werte alle Variablen haben. Ihr könnt oft auch die variablen Werte an dieser Stelle ändern. Teilweise könnt ihr das Programm zurückspulen, eine Änderung machen und dann nochmal vorwärts über diese Änderungen drüber gehen und gucken, ob eure Änderungen den gewünschten Effekt hat.

Ihr könnt variablen Werte ansehen und editieren. Ihr könnt OT Reload benutzen. Das heißt, dass ihr die geänderte Datei direkt kompilieren und wieder einladen könnt und direkt den geänderten Code testen könnt. Vorwärts rückwärts über eine Stelle gehen und kommt so viel schneller einem Back auf die Schliche. Oder wenn ihr auch Software entwickelt, als wenn ihr immer wieder den Server neu startet oder den Dienst neu startet und euch bis an diese Stelle durchklicken. Also nutzt ein Debugger. Das ist mein Appell.

Das ist auch ein riesen Hebel. Ich bin immer wieder überrascht. Auch fortgeschrittene Entwickler benutzen nicht immer einen Debugger, sondern erarbeiten erst einmal relativ lange ohne, bis sie dann die Bagger abklemmen. Und die Bagger ist für mich eins der Nummer eins Produktivitäts Werkzeuge überhaupt, um Softwareentwicklung zu betreiben oder Bugfix sing. durchzuführen. Also investiert wirklich die Zeit in die Bagger kennenzulernen und einzurichten. Das ist eine etwas größere Hürde. Oftmals muss man ihn konfigurieren und muss erst mal ein paar Settings gerade ziehen, bis man ihn auch nutzen kann.

Das sollte aber auf jeden Fall machen, auch wenn es etwas lästig ist, weil die Zeit holt er hinterher immer wieder raus. Nach dem Thema Diba gegen was ich abschließen möchte, komme ich zu dem sechsten Punkt und der sechste Punkt ist im Grunde genommen keine Werkzeug Empfehlung wie vorhin, sondern eine Empfehlung zu eurer generellen Einstellung. Der sechste Punkt heißt Produktivität und Zielorientierung und das ist ein ganz wesentlicher Punkt. Die Herangehensweise an ein IT bzw. Software Problem ist ganz wesentlich für euern Erfolg und ich sehe es sehr sehr oft, dass das ein Haupt Unterscheidungsmerkmal ist zwischen einem Entwickler, der vielleicht weniger Erfahrung hat und einem Entwickler, der sehr viel Erfahrung hat.

Die Entwickler mit sehr viel Erfahrung, die überlegen erst auf dem Papier, die planen eine Funktion, die schauen sich an, die lesen sehr viel. Was ist denn schon da? Was kann ich wiederverwenden? Gibt es eine Open Source Library, die ich benutzen kann, die mir schon sehr viel Arbeit abnimmt? Was ist denn schon da? Also wie ist genau mein Weg zum Ziel? Und sehr, sehr viel Zeit wird für die Planung aufgewendet, wohingegen eher Junior Entwickler meistens direkt anfangen Code zu tippen.

Ah hier, da weiß ich, da kann ich etwas implementieren und hier machen wir die Suchfunktion und so. Also die springen direkt ins Thema rein, statt erst mal zu planen. Und da ist mein Erbteil an euch. Überlegt erst einmal genau, was erreicht werden muss, was die Anforderungen sind und dann überlegt euch einen minimalen Weg, wie ihr genau diese Anforderungen auch umsetzen könnt. Nicht zu viel implementieren und gerne needed genau gucken. Okay, wie ist ein effektiver Weg von meiner Anforderung hin zur Implementierung?

Viel Zeit in das Verstehen des Problems zu investieren und auch viel Zeit in die gedankliche Entwicklung der Lösung zu investieren und dann erst mit dem Cone anzufangen und die einzelnen Blöcke zusammenzuziehen. Also desto Me im Vorfeld überlegt und plant, desto weniger Code schreibt ihr am Ende. Weniger Code heißt weniger Fehler, teils besseres Programm, bessere Software. Wichtig wäre bei dem Punkt auch noch daran zu appellieren, dass ihr, bevor er eine Änderung durchführt, überlegt Welchen Impact hat diese Änderung denn für das Business?

Und ist das wirklich wichtig? Sehr oft beobachte ich, dass Entwickler dann diese Technologie und jene Technologie und dies noch verwenden wollen. Aber das löst überhaupt nicht das Ziel Problem. Also man muss sich wirklich jeden Morgen deshalb ist das Daily bei Scrum auch so wichtig nochmal zentrieren und sagen Okay, was sind denn die wichtigsten Themen, die ich erledigen muss, damit die Anforderung umgesetzt wird, um nicht vom Weg abzukommen? Eine Podcast Episode, die genau das Thema aufgreift, ist die Episode Nummer 9 Bulls als Software Development.

Da geht es darum, wie man fokussiert auf die Unternehmensziele hin entwickelt und möglichst genau den Kurs hält. Ich fasse nochmal zusammen als der erste Themenblock Datenhaltung und Verwaltung. Da geht es darum, SKL solltet ihr beherrschen no SQL Datenbanken sollte die verwenden können und beherrschen, was eine hascht Tabelle ist Wissen und die häufigsten Datenformate Jason, Jamel und CSV verwenden können. Bei Thema 2 in Netzen und Protokollen sollte die Funktionsweise des Internets verstehen. Was sind IP Adressen usw.. Das HTTP bzw.

https Protokoll verstehen auch. Was hat es mit der Verschlüsselung auf sich und wie werden Zertifikate eingesetzt? Und ihr solltet Rest APIs ansprechen können und verwenden können. Bei Systeme und Plattformen den Linux System Aufbau verstehen, euch auf der Linux Kommandozeile sicher bewegen können. Docker und virtuelle Maschinen einsetzen können. Den Unterschied zwischen Cloud-Computing und Prims Rechenzentrums Anwendungen verstehen vielleicht die Faktoren des Cloud Native Development mal anschauen im Podcast Episode Nr. neun und zwanzig und dreißig und die geläufigsten Cloud Services habe ich mal angeschaut haben.

Also Google, Microsoft und Amazon sind hier zu nennen. Bei der Arbeit mit dem Sourcecode solltet ihr mit Geld umgehen können und die Integration von KI, als sie die Pipelines verstehen. Warum macht man das und wie geht das prinzipiell? Beim Thema Debugging Lock Falls lesen können und den Debugger einrichten. Das ist ganz wichtig, damit ihr produktiv arbeiten könnt und beim Thema Produktivität und Zielorientierung euch immer wieder daran erinnern. Planen. Problem verstehen. Möglichst viel über das Problem wissen und dann erst eine Lösung entwickeln.

Weil desto mehr man über das Problem weiß, desto einfacher ist die Lösung hinterher. Für weitere Podcast Episoden zu den Themen die packe ich euch in die Shownotes. Aber den Podcast Nr. neuen Bullshit Software Development einfach und fokussiert auf Unternehmensziele in entwickeln Must-Have Skills und Technologien für DevOps findet ihr in der Podcast Episode Nr. 8 für Data Ingenieurs und Data Scientists in der Podcast Episode Nr. 7 für Faulstich Entwickler. In der Podcast Episode Nr. 6 und die 12 Faktoren des Cloud Native Development findet ihr in der Episode 29.

und 30.. Nochmal wichtig zu sagen all die angesprochenen Themen haben eine sehr hohe Praxis Relevanz, das kann ich euch sagen aus 16 Jahren IT Erfahrung und über acht Jahren I Beratungs Erfahrung. Wenn ihr Fragen habt oder Feedback zu der Episode, weil ihr glaubt, dass ich ein wichtiges Thema vergessen habt, sendet uns gerne eine E-Mail an Podcasts. Gilbert D. Wenn euch die Podcast Episode gefallen hat, abonniert unseren Podcast und lass deine 5-Sterne Bewertung. Wir freuen uns auch immer über Weiterempfehlung an Freunde und Kollegen, die sich ebenfalls für Technologie Themen interessieren.

Ansonsten freuen wir uns noch, wenn ihr uns Gilbert D. Slash Blog vorbeischaut. Vielen Dank fürs Zuhören und bis zum nächsten Mal.

Maurice KnoppSkillbyte Podcast #48: Grundkenntnisse und Skills für ALLE IT-Fachkräfte
Mehr

Skillbyte Podcast #45: Das Spring Boot Framework

Willkommen zum Skillbyte-Podcast! Skillbyte ist ihr Partner für digitale Exzellenz.

In diesem Podcast geht es um das Thema: Das Spring Boot Framework

// Inhalt //
02:35 – Was ist Spring Boot?
03:26 – Erfahrungsbericht: Spring Boot Anwendungsentwicklung
14:43 – Spring Boot Paradigma: Convention over Configuration
15:16 – Lohnt sich der Einsatz von Spring Boot? Lernkurve?
16:39 – Ein kleiner Vergleich mit der Pyhton Welt
18:16 – Features von Spring Boot
22:31 – Spring initilizr auf start.spring.io
23:45 – Spring Support von IntelliJ IDEA
26:41 – Spring Boot Banner
27:44 – Dokumentation der Spring Boot Anwendung
29:00 – Fallstricke & Tipps
33:02 – Fazit: Ist Spring Boot empfehlenswert?

Show Notes:

Podcast #29: Die Zwölf Faktoren des Cloud Native Development (Teil 1)
-> https://soundcloud.com/skillbyte/podcast-29-die-zwolf-faktoren-des-cloud-native-development-teil-1

Podcast #30: Die Zwölf Faktoren des Cloud Native Development (Teil 2)
-> https://soundcloud.com/skillbyte/podcast-30-die-zwolf-faktoren-des-cloud-native-development-teil-2

Abonnieren Sie diesen Podcast und besuchen Sie uns auf https://www.skillbyte.de

Feedback und Fragen gerne an podcast@skillbyte.de

// AUTOMATISCH GENERIERTES TRANSKRIPT //

Ich denke auch, dass sich das als Blaupause und Grundlage für die voll regelrecht für Java Anwendungsentwicklung nehmen würde, weil die meisten Anforderungen aus Umgebungen kommen, wo man das eben gut umsetzen kann. Ich meine missis in den letzten Jahren nichts untergekommen, wo man jetzt auf einen klassischen ein Maschienen Server oder einen großen Mainframe irgendwas hätte entwickeln müssen, sondern man kommt eben immer eigentlich gerade wenn es Java sein soll in diese Microservices Richtung bzw. kann seine Anwendung zum Lösen eines Problems so designen, dass sie auch sinnvoll so umzusetzen ist.

Und dann ist Spring Boot wirklich ein Top Tool.

Herzlich willkommen zu unserer Skill bei Podcast Episode Nummer fünfundvierzig Das Spring Boot Framework abonniert unseren Kanal für mehr spannende Themen aus dem Technologie Umfeld. Wenn ihr die Entscheider oder die Fachkraft seid, wenn ihr eine höhrer Frage habt im Verlauf der Episode sendet uns gerne eine E-Mail an Podcast Skill Bild.de:. Wir freuen uns immer über Bewertungen und weitere Empfehlungen dieses Podcasts an eure Freunde und Kollegen, die sich ebenfalls für diese Themen interessieren.

Wenn ihr aktuell in der IT-Branche auf Jobsuche seid, schaut auch auf Skill weite Isles Jobs vorbei. Ich bin heute hier mit den beiden Skill BYD Data Ingenieurs Oliver und Andreas.

Hallo ihr zwei Callboys. Schön wieder dabei zu sein. Hallo Moritz Fela, endlich mal dabei zu sein.

Oli kennen ja schon einige Zuhörer, Andreas. Für dich ist es heute ein Novum. Aber ich freue mich wirklich, euch beide dabei zu haben, weil ihr euch sehr intensiv jetzt in dem letzten halben Jahr bzw. kann man so sagen die zweite Jahreshälfte 2000 und 20 mit dem Spring Boot Framework beschäftigt habt und auch eine recht komplexe Anwendung darauf entwickelt hat.

Genau. Wir haben als Projekt. Ich glaube, so ab August letzten Jahres bis Ende des Kalenderjahres genau haben wir eine Spring gut basierte Anwendung für den Kunden gebaut, was für uns ein völlig neuer Text steckt. Zu dem Zeitpunkt war uns aber die Möglichkeit gegeben hat, da sehr, sehr schnell production ready zu werden und eine Anwendung zu haben, mit der wir sehr schnell weiterentwickeln und testen können. Das war eine ziemlich coole Sache. Da kann Andreas aber auch noch was zu sagen, weil auch für den war das glaube ich ein neuer Einstieg.

Ja, genau. Also für mich war das eigentlich alles Komplettem, weil sowohl Java als auch Bimbos und bin tatsächlich erstaunlich schnell reingegangen. Das hat mich auch ein bisschen überrascht. Sobald man sich einmal an die Annotationen gewöhnt hat, ist man eigentlich sofort dran.

Genau das ist ja auch das Kernziel des Spring Boot Frameworks. Vielleicht kennt der ein oder andere Zuhörer ist noch nicht so oder kann auch nicht genau was damit anfangen. Deshalb würde ich kurz sagen, dass es sich um einen Quell offenes Framework für die Java Plattform handelt, welches meist genutzt wird, um eben Webanwendung zu implementieren, Microservices zu implementieren. Und das Ziel dieses Frameworks ist es eben möglichst schnell komplett Laufwege Anwendung erzeugen zu können, weil die default Einstellung der Konfiguration im Grunde sinnvoll sind.

Das ist der Anspruch, den dieses Projekt hat. Und wie das so ist z.B. beim Schachner im Menace to learn alive to Master, so ist das auch ein bisschen bei Spring Boot gestartet ist man sehr schnell, kann dann aber die Anwendung nach und nach um weitere Komponenten erweitern und eine sehr komplexe Anwendung bauen, was er ja auch gemacht hat.

Auf die genauen Inhalte müssen wir ja jetzt gar nicht eingehen, aber die Anwendung sollte als System von mehreren kleinen Microservices ineinander greifen. Wir brauchten unter anderem einen einfach zu nutzen. Das Web frommt und wir brauchten den eigentlichen Controller dahinter. Wir brauchten eine Datenbank Anbindung. Wir mussten die Möglichkeit haben, Daten im lokalen Dateisystem zu paar sistieren und und und. Das waren viele einzelne Komponenten, die wir dann entsprechend damit strukturieren konnten. Und das hat dem Ganzen wirklich einen hervorragenden Rahmen gegeben, wo man dann die Arbeit auch de facto gut aufteilen konnte, um eben das Ganze schön gekapselt zu haben.

Das hatte auch ganz viele Aspekte von der Pull-Faktor App, über die wir ja schon mal zusammen gesprochen haben, wie wir das dann Gebaute nachher auch die PEUT haben.

Andreas War das für dich? Hattest du das Gefühl, dass man es gut aufteilen kann und dass du dann so einzelne Häppchen abarbeiten konntest?

Ja, das ging eigentlich Duterte als ich zu dem Projekt dazugekommenen, was aber nur zwei Wochen war, nachdem Oliver auch damit angefangen hat, war quasi schon ein bisschen ein Grundgerüst da und werden dann aber recht schnell gemerkt. Wir brauchen jetzt noch zusätzliche Rest API Endpunkte von quasi zusätzliche Microservices. Und da hat es mich überrascht, wie einfach es war, da dann zusätzliche Sachen zu schreiben. Dann hat man einfach einen zusätzlichen Controller hochgefahren und dem Endpunkte gegeben und die konnten unabhängig voneinander dann bearbeiten.

Das hat einfach sofort funktioniert.

Das Gute ist halt bei dem Spring Framework und Spring Boot ist ja letztlich nur eine Geschmacksrichtung des großen vollumfänglichen Spring Frameworks, dass man diese Inversion of Control eben nutzen kann. Also Andreas hat es eben schon angesprochen per Annotation. Also Edin Denkakt oder Auto wiederholt sich dann die einzelnen Komponenten in die Klasse durch den Container oder durch das Framework Injektor lassen kann. Das deutsche Wort wäre glaub ich verdrahten lassen kann und dann eben diese Komponente vollumfänglich zu nutzen. Habt ihr das so Komponenten Weise aufgeteilt?

Die Arbeit oder jeder hat so ein bisschen Überblick über den gesamten Code gehabt.

Das werden glaub ich beide einen ganz guten Überblick über alles. Aber gut, wenn man zu zweit arbeitet, dann teilt man sich schon ein bisschen die Arbeit auf und Alianza ein bisschen mehr Erfahrung mit Docker Containern schon an denen, die. Deswegen hat er sich da mehr darum gekümmert und ein bisschen mehr um die Rest API selber, dann würde ich auch genau so unterschreiben und es war wirklich praktisch, dass man die ganzen Dependency es, die man ansonsten berücksichtigen müsste, dass man diese ganzen Weg gekapselt module dann sich einfach über dieses Auto via O-Ring direkter reinholen kann.

Da kann man vielleicht später nochmal kurz drüber sprechen, aber so angeteasert. Das hat es für uns dann eben auch super gemacht, das ganze mit Unit Test Abdeckung nachher zu versehen. Also diese modularer Bauweise, die hat uns da das Leben in vielerlei Hinsicht vereinfacht.

D. h. ihr habt dann wirklich Komponente für Komponente g Unit testet im Rahmen der Zeit, die wir zur Verfügung hatten.

Ja, also die war von Anfang an begrenzt. Das waren die letzten paar Wochen im Projekt Scope. Und wir haben mit den Kern Komponenten, die für den Betrieb nötig waren, entsprechend angefangen und haben entsprechend dann doch noch ein sehr akzeptables Level an Test Abdeckung für die ganze Applikation geschafft. Am Ende ja. Und das haben wir genauso gemacht.

Er war auch ein bisschen überrascht, dass wir dann doch noch so eine hohe Testa Abdeckung hingekriegt haben, weil dadurch das ganze zeitlich limitiert war. Haben wir jetzt nicht Testpiloten Development von Anfang an gemacht, da vor allem auch vieles zum Anfang noch nicht klar war, wie es am Ende aussehen würde, aber zumindest Järvi alle gesagt hat. Die Kernidee Teile der App und mit der nachträglich ziemlich einfach noch mit Tests versehen.

Das heißt, die Anwendung wurde zuerst entwickelt. Ich glaube, das kann man sagen. Es handelte sich um eine Brücke, einen Exporteur und einen Importeur von zwei verschiedenen Systemen, der einfach Daten transformiert hat zwischen diesen Systemen. So, und da waren wahrscheinlich die Schnittstellen nicht ganz klar und es hat sich erst im Verlaufe des Projektes herausgestellt und dann am Ende, als die Schnittstellen klar waren und die schon bespielt werden konnten. Habt ihr das dann nochmal getestet? Richtig. Also das Ganze war, wenn man es drastisch formuliert, wirklich als One-Shot Anwendung konzipiert.

Man hätte das natürlich dadurch, dass sowohl das Quelle als auch das Zielsystem weitverbreitet sind in der Branche, in der der aktuelle Kunde da unterwegs ist. Aber die Systeme waren jeweils so spezifiziert und an die Bedürfnisse des Kunden angepasst, dass es viel mehr Aufwand gewesen wäre, das deutlich generischer zu machen, um es als Produkt dann auszuarbeiten, sodass wir da wirklich eine maßgeschneiderte, schnell entwickelte Lösung gebaut haben.

K Perfekt. Jetzt habt ihr diese Anwendung gebaut. Wenn ich das richtig verstanden habe, Oliver, du hast dich so ein bisschen um die Pakete gekümmert. Docker Den Betrieb oder die DevOps Komponente. Andreas Du hast vielleicht etwas mehr an der Anwendungs Logik gearbeitet. Hattet ihr das Gefühl, dass euch springender Gut unterstützt, also dass ihr euch wirklich auf eure Kernthemen konzentrieren könnt Infrastruktur oder Anwendungs Logik? Oder hattet ihr oft das Gefühl oh ich schreib hier Boiler Pleite Code um die x te Datenbank Verbindung aufzumachen oder sowas?

Das muss doch einfacher gehen.

Er sei ein bisschen hatte ich schon den Eindruck, dass man ein bisschen Boiler Plaid Code schreibt. Gleichzeitig hatte ich aber auch den Eindruck, dass es weniger ist als meine Java sonst machen müsste. Da ich wohl noch nicht so Java Erfahrung hatte, war mir bewusst, dass ich da mehr bei der Palette Code schreiben muss, als z.B. ein Payton war. Das hat sich dadurch ein bisschen in Grenzen gehalten.

Hast du ein Beispiel für Boiler Plaid er gut alle Geta an CETA hat man einen Partner z.B. einfach nicht. In Ada kann man vieles umgehen in der Stelle.

Für mich hats massiv Code gespart. Du hast das Stichwort Datenbank Anbindung gerade genannt. Da ist durch JPY zu den technischen Feinheiten kannst du vielleicht gleich noch kurz etwas sagen ist uns extrem viel Arbeit abgenommen worden. Also da bringt Spring Boot von Hause aus die Möglichkeit mit, das sehr elegant zu nutzen, in dem nicht nur einfach die Gredenko sieals und die Konnektivität Informationen zu einer Datenbank übergeben werden, sondern man hat auch über vordefinierte Funktionen hat man die Möglichkeit, die Tabellen selber direkt anzulegen.

Also die Schemata. Das wird alles von Springflut über sehr viele einzelne Komponenten ermöglicht, ohne viel Aufwand an der Datenbank selber betreiben zu müssen. Das ist wirklich schön gemacht.

Ja, das stimmt. Also ein sehr komplexes Datenbank Schema, wie wir dann letztendlich doch eigentlich hatten, halte ich glaube ich hier. Wenn ich die hätte selber schreiben müssen ich in der Zeit hinbekommen. Auf jeden Fall.

Vor allem wenn man noch die SQL Schnittstelle selber in irgendeiner Form hätte bauen oder mit kleine SQL Code hätte bedienen müssen. Und da nimmt einem JPC dann eben schon extrem viel Arbeit ab. Und das hat dann auch def abseitig viel gespart, weil man einfach die Datenbank zur Verfügung gestellt hat, die Konfiguration in JPL mit ein paar Zeilen schnell gemacht hat und dann lief das. Das muss man einfach dazusagen. Das war wirklich einfach die JPL. Hier steht ja für die java persistent api die eben genau.

Für. Daten bank. anbindungen. Da ist. Oder persistenz. Schicht anbindungen da ist. Und das schöne hier ist. Dass man im grunde. Das es gerade gesagt. Diese tabellen relationen. Oder das datenbank schema. Das kann man einmal anlegen. Und jpl kümmert sich dann darum. Je nach dem ob du eine postgresql datenbank hast. Maisie. Soldaten. Bank. Oracle. Datenbank. Den. Richtigen exkl. Dialekt nenne ich es mal zu generieren, so dass das konkrete Backend dann eben unterstützt wird.

Und das macht natürlich auf Migration sehr einfacher. Der eine Kunde setzt die Datenbank Technologie ein, der andere Kunde setzt die Datenbank Technologie ein. Da möchte man kein Wenn du Login haben, sondern die JPL benutzt, läuft es überall oder auf allen Datenbank Plattform, die eben JPY Unterstützung erfahren, was die meisten sein dürfen.

Ja, das Thema Parketts hierum hast du eben angesprochen. Hass hat für mich auch nochmal leicht gemacht. Das war dann die Zusammenarbeit von Spring bzw. Spring gut und eben Maven als Paket Manager dies mir extrem leicht gemacht hat. Die Anwendung dann einfacher dem Docker Container zu betreiben, also sowohl schon für Entwicklungs Zwecke wirklich jeder auf seinem Entwickler Laptop was auch praktisch war war. In Docker waren wir dann eben auch völlig unabhängig davon, weil ich habe es offene Meek gemacht Andreas glaube ich auf einem Linux System.

Das lief dann alles sofort und auch der Roll outs beim Kunden war dadurch viel einfacher, weil der Ebene Container Umgebung zur Verfügung gestellt hat und wir dann nur noch da rein diplomen mussten und dann eben mit dessen, der vom Team geklärt wurde, wie dann der Betrieb abläuft. Aber dadurch, dass wir eben die Pakete hierum über Maven und Spring buht dann eben hatten und das ganze schon im Docker Container betriebsbereit zur Verfügung stellen konnten. Sehr einfach war das ein Kinderspiel und schnell gemacht.

Das war echt toll. Da habt ihr direkt eine Stärke von Spring Boot voll ausgespielt in Kombination mit Docker, weil ich sag euch das früher war das nicht so, dass man eine Java Anwendung direkt ausführen konnte oder es war ganz ungewöhnlich, sondern es gab einen sogenannten Application Server an Tomcat aus dem freien Bereich oder auch verschiedene proprietäre Produkte. Von RedHat hieß es z.B. J. Bors und das war ein sehr schwergewichtige Server, die also teilweise mehrere Minuten benötigt haben um zu starten.

Und da wurde dann die Anwendung alzu war fail oder eher fail wurde die Anwendung rein die bloed und rein geladen und die wurde dann auf diesem Server ausgeführt. Das ist natürlich heute in der kybernetisch Umgebung Microservices Umgebung ist das überhaupt nicht praktikabel, dass man da einen Server hat, der sehr viele Ressourcen braucht und der mehrere Minuten zum Starten braucht, sondern da möchte man eine kleine ausführbare Code Einheit haben, die ihre dedizierte Aufgabe übernimmt. Und da bietet sich natürlich das selbst laufende Spring Boot Programm an oder die selbst laufende Applikation ist es ja ein derFall was man direkt starten kann.

Wir haben in dem Zusammenhang genau das bekommen, nämlich ein Zerfall, was schon alle Dependency es enthielt. Man musste da keine Libraries mehr installieren und gar nichts. Man konnte mit einem minimalistischen Docker Image anfangen. Es musste nur Java installiert sein. Dann hat man das ja ausgeführt. Wenn man wollte noch ein paar Laufzeit Parameter mitgegeben und dann lief die Anwendung und die ethical schon eben diese Webserver Komponente. Zum Beispiel wenn ich mich erinnere an meiner Anfangszeit in dem Projekt, wo ich noch nicht so vertraut war.

Damit hab ich noch einen extra Docker Container hochgefahren, wo ich in Engine X Webserver drin betrieben habe, damit ich diese Rest API überhaupt irgendwie ansprechen konnte. Und irgendwann haben wir dann verstanden, dass Springflut das schon von Hause aus mitbringt. Aber da hat Andreas viel mehr mitarbeitet als ich.

Ja, da kam dann aber nochmal die zweite Erkenntnis. Also erstmal wie obligat gesagt hat, des Rest Framework selber. Aber man habe dann festgestellt, dass es ja wirklich war, seinen kompletten Webserver der auf Heilberufe mitliefert. Wir hatten dann nämlich doch nochmal eine Endings dazu, die Plots, um einfach statisch ein paar Fails für das Frontend können und das fand ein selber und dann feststellte Wir können das einfach direkt staatlich mit einbinden. Wir nennen einfach einen Ordner Public und dann passiert alles automatisch.

Das war dann nochmal so ein Aha-Erlebnis.

Das ist diese Opinio Nahtod Konfiguration. Also bring but leg dir schon so die Fold Ordner an oder bzw. die kannst du anlegen, wo dann Settings drin liegen können für die Anwendung oder eben statische HTML Falz, wo man sich dann nicht weiter kümmern muss, wenn man sich an diese die Fold Konfiguration hält. Man kann auch alles konfigurieren, aber das Ziel von Spring Boot ist es zu sagen Hammer, wir geben dir einen vernünftigen Grundstock auf dem kannst du aufsetzen und du kannst alles konfigurieren.

Aber so wie wir es dir liefern, ist es erst einmal in Ordnung für die meisten Anwendungen. Also könnt ihr bestätigen Spring Boot hat euch fÃr eure Entwicklung doch ordentlich unter die Arme gegriffen. Ihr seid schnell zu Rande gekommen, habt wenig kämpfen müssen. Leute, die um die Millennium Wende Java entwickelt haben, die kennen noch, wie schwerfällig das alles war. Habt euch gut in der STANDARD Konfiguration zurecht gefunden und wenn ihr Zusatz Komponenten eingebaut habt. Ich weiß jetzt nicht ob ihr den Spring Logger benutzt habt oder wahrscheinlich die Spring Datenbank Anbindung und so, dann war das wahrscheinlich mit 20.

Mal googeln. Bildung ist natürlich hier die Website, die sofort auf ploppt, war das relativ schnell eingebunden. Ja, würde ich genau so unterschreiben. Es war zunächst mal intuitiv ziemlich viel verständlich, muss ich sagen. Nun muss ich dazu gestehen, dass ich zumindest Java schon mal vorher gemacht hatte und auch Maven vorher schon mal gesehen hatte. Das hat mir die Grundlage ein bisschen bereitet, aber nachdem ich dann in die einzelnen Sachen besser reingekommen war, lief das sehr schnell.

Die Lernkurve war sehr steil und auch einfachste Internet-Recherche. Meistens kann man eben bei Bildung raus, hat da schon geholfen, weils eben auch so viel genutzt wird und so viele Leute sich damit beschäftigen und damit arbeiten.

Für mich war da die Lernkurve noch ein bisschen Tayler, weil ich hatte tatsächlich vorher noch keine einzige Zeile Java Code geschrieben. Aber selbst damit war das ohne Probleme machen. Also mit den Web Ressourcen kann man dann schnell zu Rande Andreas. Gibt es denn in der Python Welt ein mit Spring Boot vergleichbares Framework? Also was ähnliche Features anbietet oder was die vielleicht immer wieder aufgefallen ist, dass du gedacht hast oh stimmt, das ist so wie bei Falcon oder so.. Also mir geht es ganz häufig so Wenn ich mich in einer Welt relativ gut auskenne und dann mich in neue Themen einarbeitet, dann stelle ich fest Ah, okay.

Die NPD ist eine neue Form von Maven oder Gretl oder dass man quasi diese queer Referenzen herstellen kann.

Ich würde sagen, es gibt nicht so ein monolithischer Ding, was es alles kann. Ein bisschen. Also es gibt gute Respawn Frameworks, dem Rass ähnlich komfortabel auch eine Rest API aufziehen kann. Aber dann muss man halt nochmal einen Webserver dazu machen, was man zwar auch leicht geht, aber es halt erst ein anderes Projekt. Dependency Injection ist nochmal komplett anders. Man braucht es einmal in Payton nicht ganz so viel, da man in der Laufzeit natürlich viel austauschen kann.

Dynamisch auch, aber wenn man es wirklich vollständig benutzen will, dann muss man zu anderen Paketen gehen. Also es gibt nichts, was das alles miteinander verbindet und einem von Anfang an was funktionierendes gibt. Man muss das ein bisschen zusammensuchen, mehr und auch Entscheidungen treffen, welches man dann von mehreren Möglichkeiten wählt. Swing gibt’s ja auch Alternativen.

Genau, aber Spring Boot muss man schon sagen. Ich will nicht vom de facto STANDARD sprechen, aber das ist für Berat, also Rapid Application Development in der Java Welt so über die letzten Jahre ist das ein sehr, sehr großer Player geworden und man startet meistens damit, dass ganz viele große Applikationen, die man kennt, bestehen ja heutzutage aus vielen, vielen kleinen Microservices. Und diese Microservices, die die Arbeit im Hintergrund verrichten, die sind sehr oft mit Springflut geschrieben.

Welche Features von Spring Boot habt ihr denn verwendet? Also wir haben eben schon über ETT Auto Wired gesprochen. Andreas hatte die Notationen erwähnt. Das ist natürlich das Ding, oder? Diese Inversion of Control ist das Konzept, mit dem Spring damals bekannt wurde, Anfang der 2000er Jahre, dass man eben nicht mehr New Klassisch schreibt und damit eine harte Kopplung hat, sondern man sich über ET Auto Wired z.B. einen Logger in Jack tat, eine Datenbank in Jack That oder ein Transaction Manager in Jack That und dieser Transaktion Manager ist quasi entkoppelt davon, solang der ein gewisses Interface implementiert.

Bleiben wir mal beim Logger ist es egal, ob das ein Festplatten Logger ist, ein Screen Logger, ein Netzwerk Logger oder ein Logger auf einem ganz anderen Medium. Ein na Logger, der einfach nur alle Log Zeilen wegschmeißt oder ein Rauchzeichen lagert. Zur Not. Das Konzept ist ja ganz zentral und ich denke, das hat euch auch relativ früh. Habt ihr das bemerkt?

Ja also die Cernko Komponente für uns war, würde ich jetzt für mich sagen das Auto, wir O-Ring, dass man eben nicht jedes mal neue Instanzen von Klassen erzeugen muss, sondern wirklich diese Benes hat. Und wir haben die auch meistens eben als Singleton benutzt. Das war wirklich etwas, wo wir uns dann auch sukzessive beim Design der Anwendungen Gedanken drum gemacht haben. Also wir haben dann wirklich versucht, wo wir eigentlich zuerst intuitiv gesagt hätten Okay, wir brauchen mehrere Instanzen davon von der gleichen Klasse, dann haben wir trotzdem versucht, unser Design Pattern so umzubauen, auch gedanklich, dass wir eben diese Singleton Auto Viri Funktionalität benutzen können.

Und es hat uns halt auch beim Testing dann begleitet. Entsprechend ja eben das Logging. Andreas Was kann ich mir, wie haben wir das gemacht? Haben wir das von Spring genutzt?

Das Logging ist es auch per Annotation. Das war der SL vor J. Logger lassen hab der Franz Spring Boot selber ist oder?

Meistens sind das externe Libraries, die du einfach in Jackets. Beim Logging kippt es mehrere Standards. Es gibt Lock vor J, dann in CV. JJ Logger. Da gibt’s noch zwei, drei andere. Ich benutze den, der in der Anwendung schon drin ist, weil ich da kaum Unterschiede feststelle oder zumindest mit allen leben kann.

Sagen wir so. Was mir noch einfällt, das ist relativ gegen Ende gekommen, als es darum ging, die Anwendung beim Kunden in den Container Cluster. Zwar Masons zu Diplomen ging es darum, wie wir Health Checks unserer Anwendung im Betrieb machen können. Und weil das vom Dev OPs Team des Kunden angefragt wurde, wie man sicherstellen kann, dass die Anwendung auch vernünftig läuft und ich meine, da hättest bring uns die Funktionalität intrinsisch zur Verfügung gestellt. No Matrix Ja, genau, dass wir da nicht noch selber Health Brookes verschreiben mussten mit dedizierten Endpunkten in der API.

Genau. Wenn ihr das Micro Service Profil benutzt habt, haben wir glaube ich Letz endlich nämlich nicht.

Aber wir haben dann letztendlich die eigenen Endpunkte geschrieben gehabt und dann festgestellt, dass es bringt uns eigentlich frei Haus geliefert hätte. Aber da war es in dem Fall schon zu spät. Das lag dann eher daran, dass wir uns nicht genug damit auskannten. Okay, gut.

Aber das heißt im Grunde jetzt wisst ihr, dass es das gibt. Beim nächsten Service könnte man sich diese STANDARD Matrix also hier RAM verbraucht CPU Jukic, Disk Space könnte man sich auch sparen, sondern einfach die vordefinierten nutzen und die dann eben entsprechend erweitern. Wenn man das braucht.

Ja, was Oleh mir auch gesagt hat. Wir hatten dann ganz viele Klassen mit Autoritären, was am Ende darauf hinausgelaufen, dass wir ganz viele einzelne Klassen hatten, die quasi ein Objekt aus der einen Umgebung der neuen Umgebung übersetzen konnte. Und all diese Übersetzer waren dann letztendlich Singleton Wins, die dann an einer entsprechenden Stelle, wo sie benötigt wurden, einfach nur initiiert worden.

Genauso macht man es auch auch. Ich nehme an, als sie dann die einzelnen Komponenten getestet habt, dann injektor dir dann einfach Mock Objekte statt der realen Instanzen um dann die Kernfunktion einer Klasse zu testen. Richtig, genau so haben wir es dann gemacht.

Genau das war immer der Punkt. Wir haben versucht, das, was wir als Bian eben dann Jack Thot haben, vorher getestet zu haben, um es dann eben an einer anderen Stelle als fertigen Mock benutzen zu können.

Habt ihr bei Projektstart ich glaube es gab schon im Template Oleh Wanne. Ihr habt nicht den Spring Finisher Leisure, also auf Startpunkt Spring dort AIO gibt es den, den habt ihr nicht benutzen müssen, oder?

Nee, tatsächlich nicht. Da hatte ein Kollege schon was vorbereitet, um so eine grobe Projekt Struktur auch mal in Form von Place holder Klassen angelegt und eine grobe Funktionalität war auch schon gegeben. Also ich glaube man hat die Möglichkeit eine Liste zu migrieren oder Objekte einzulesen aus einem Testfall. Und es gab schon eine Anbindung an eine Postkarte oder Mail SQL Datenbank. Genau das war so unser Startpunkt zu dem Zeitpunkt und entsprechend gab es dann eben auch schon ein POM Fall mit dem ganzen Maven Setup A okay war.

Es gibt auch Startpunkt Spring Punkt Видео gibt es diesen Spring in leiser und da kann man dann sagen ich möchte eine Springflut Anwendung schreiben mit Datenbank Zugriff mit Maven oder Greendale Build System und man klickt so ein paar Sachen zusammen und am Ende fällt ein Zipfel raus, was quasi so die Basis Anwendung mit den getroffenen Einstellungen schon enthält. Quasi dieses schlachte schnell und kümmert sich um die Anwendungs Logik auf die Spitze getrieben. Jetzt habt ihr beide ja intelligent Diaa benutzt. Für das Projekt hat euch die Idee gut unterstützt.

Bei Spring Boot Anwendungen ist der Support dafür reif.

Der Support der war super. Tatsächlich. So war von den Socken. Wie einfach es doch ist, damit all die Sachen, die man sonst sehr manuell nachschauen muss in Variablennamen merken und dann ins Java natürlicher nach ner typisierte Sprache, d. h. das kommt noch dazu. All das. Da nimmt es einem ziemlich viel Arbeit ab.

Und auch die Kenntnis der Fidi über die Projekt Struktur. Also was kann ich überhaupt per Auto via O-Ring einbinden? Also was hab ich zur Verfügung? Oder wenn ich jetzt gerade nochmal an das Pom fail zurückdenke. Wenn ich da versuche in Versions takk von etwas einzubinden, was in der Form so nicht existiert, werde ich darauf hingewiesen oder dass ich das dann erst runterladen muss, damit es zur Verfügung steht. Für mich jetzt lokal all solche Sachen, um die man sich ansonsten zu einem späteren Zeitpunkt Gedanken machen müsste, um dann wieder zurückzugehen, um es zu fixen.

Das war schon klasse und natürlich die Möglichkeit, selbst in Module reinspringen zu können, die man nicht selber geschrieben hat, sondern die aus externen Libraries stammen und im Zweifelsfall dann eben de kompilierte Code vor sich zu haben. Was aber immer noch besser ist, als nicht zu wissen, was passiert.

Ja, das stimmt. Du hast Andreas hat eben auch gesagt die Gather und Zeta. Das stimmt, dass man die schreiben muss, das ist schon. Da entsteht diese riesen Text Tapete. Ich mache mal mit ALD einfügen generiere ich die einfach und habt ihr dann für alle Properties. Deshalb stört mich das gar nicht so sehr. Obwohl das eigentlich natürlich schöner geht, hat Andreas vollkommen recht. Was ich bei der Springflut Unterstützung ganz klasse finde ist Du kriegst ja dieses Blättchen, dieses Ahornblatt oder so wird dann angezeigt und dann siehst du die einzelnen Pins, dann kannst du bei den Autor via Pins kannst du so dadurch springen oder er schlägt dir dann schon die Methoden der Pins vor, wenn du da unten arbeitest.

Meistens läuft es da so hinaus. Du was hat deine Klasse, die die Anwendungs Logik enthält und du? Historiker Klassen, die dir halt zuarbeiten, also z.B. Du hast deine Anwendungs Logik und hast ein Database Worker, der Objekte aus der Datenbank holt, Objekte in die Datenbank speichert usw.. Kannst du die dann sehr einfach in deine aktuelle Klasse rein? Metten?

Ja, die Funktionalität hab ich zumindest auch hin und wieder mal benutzt. Was mir noch als Randnotiz positiv im Gedächtnis geblieben ist, ist die Tatsache, dass sehr intuitive Nomenklatur vorgeschlagen wird von der Idee. Also wenn ich das schreibe oder was haben möchte an möglicherweise vordefinierten Strukturen innerhalb meiner Klasse, dann ist die Nomenklatur entsprechend schon an das angepasst, was die tun soll. In dem Zusammenhang wies für mich jetzt gerade notwendig ist, auch wenn dann das schon mal sehr lange Methoden Namen bei rauskommen.

Aber es ist sehr gut. Human Redtube möchte ich mal sagen, was die Idee da einem vorschlägt. Also sie unterstützt da auch schon den menschlich intuitiven Zugang sehr.

Habt ihr eigentlich? Fällt mir gerade ein, bei Convention over Configuration habt ihr auch ein eigenes Banner erzeugt vor einer Anwendung.

Ja, ich hab das sogar in zwei erzeigt.

Wäre ja, ich hab zwischendurch mal gewechselt. Das ist richtig. Am Anfang habe ich ein Corporate Identity ähnliches Banner aus Asti Artzt da hinzugefügt. Genau Asgard Generatoren gibt’s ja genug online frei verfügbar und danach hab ich mir ein Zitat aus einem Musikstück, was ich sehr schätze da eingebaut, was in den Zusammenhang von dieser ganzen Worker Struktur ganz gut reinpasst. Richtig, das war so ein bisschen Selbstverwirklichung, muss ich zugeben. Aber ja. Haben wir gemacht.

Vielleicht für unsere Zuhörer. Kurz. Es gibt eine Band TX t, die kann man auch auf einem standardisierten Pfad ablegen. Und wenn die Anwendung gestartet wird, wird automatisch diese Textdatei quasi ins Lock Fail übertragen. Also normalerweise steht an Spring Boot Version 5.1 Delete, aber man kann das halt mit seiner eigenen SII Banner Punkt txt überschreiben. Was immer ganz interessant ist, was die Leute sich da ausdenken, weil das so ein Freitagnachmittag Task ist. Habt ihr denn auch die einzelnen Methoden dokumentieren müssen oder viel Dokumentation schreiben müssen?

Hat euch das bringt Boot irgendwie unterstützt?

Also da gibt es ja Bild Targets Chewie Java Doc die Dokumentation extrahieren. Da gibt es auch so Spring Boot Plug-Ins das ist alles ein bisschen schöner aussieht. Da purzelt dann diese Java STANDARD Dokumentation raus. Ich weiß nicht, ob das in dem Projekt gefordert war.

Das war nicht in Förderturm manuell dokumentiert, was zu dokumentieren war. Aber zwischendurch hatte ich mir tatsächlich auch diese automatischen Tools angeschaut. Die sind teils sehr umfangreich im Sinne von, dass sie natürlich automatisch alles dokumentieren, was in dem Fall einfach mehr war, als wir brauchten. Dann hätte man sich da dann nur die Teile rausziehen müssen, die man braucht. Von daher war es quasi. Es hat einem zu viel schon gegeben, mehr als von den Verbrauchter.

Zumindest war das mein Eindruck, was aber definitiv am Projekt Scope lag. Das war einfach nicht immer Anforderungsprofil der Aufgabe enthalten. Da ging es mehr um eine Übersicht Dokumentation und weniger in die Tiefe einzelner Methoden rein Dokumentation zu schreiben nach dem Festlegen vorgelegten Schema, sodass wir dann da eher eine Markdown Read Me geschrieben haben, die auch eher kurz ausgefallen ist und auf die Punkte eingegangen ist, die wirklich nötig waren. Deswegen konnten wir das Feature nicht nutzen. Sinnvoll.

Gab es denn bei dem Projekt irgendwie Fallstricke, die mit Spring Boot zusammenhängen, wo ihr sagen würdet Oh, wenn ich das nochmal machen würde, da hab ich viel Zeit gelassen, das würde ich anders machen. Also so Tipps, die im Grunde euch selber geben würdet, wenn ihr das Projekt nochmal durchführen würdet.

Ich weiß nicht, ob ich sie anders machen würde, aber auf jeden Fall Fallstricke, über die man wegkommen muss. Schon an seinem bisschen. Vor allem wann etwas ein Singleton Objekt ist und wann es kein Singleton Objekt mehr ist bzw. wenn du mal kein Singleton Objekt haben willst, musst du einfach ein bisschen mehr Arbeit machen oder muss überlegen ob du es wirklich nicht Singleton brauchst oder haben Singleton nicht auch ausreicht, weil einige Teile der Anwendung Wandern nachher ermutigt werdet. Da musste man dann ganz genau nachdenken, dass man da jetzt nicht dem Singleton irgendwie einen State verleiht, der dann von zwei setzt, sich gegenseitig überschreibt oder solche Dinge.

Da kann man perfekt wie Pattern einzelne Instanzen pro Thread Instance Ihren oder eben das ist ja fast schon dein generische Inversion of Control Anwendungs Design. Was du beschreibst.

Genau. Aber da fehlt ein bisschen die Zeit, dann auch für irgendwann. Aber ich würde sagen, dass das der wichtigste Punkt war, weil das einfach ein Konzept ist, was keiner von uns beiden zu dem Zeitpunkt wirklich angewandt hatte. Mal im Alltag, in der Programmierung und wenn man sich damit mal ein bisschen intensiver auseinandergesetzt hat, vielleicht auch auf einer theoretischen Ebene und an einfachen Beispielen angefangen, dann erleichtert das den Einstieg vor allem ins Design von so einer Anwendung, weil wenn man ständig wieder drei Schritte zurückgehen muss, um dann den Ansatz für eine Problemlösung doch nochmal komplett auf links zu drehen, weil man eben genau bei dieser Inversion of Control irgendwie das konzeptionell dann doch nicht richtig gemacht hat für den eigenen Anwendungsfall Gespartes schon.

Zeit, wenn man da einfach von vornherein das bei seinem Design Pattern berücksichtigt, als sie die Anwendung designt habt. Ich meine, wir haben eben schon kurz drüber gesprochen, habt ihr genug Beispiele für Spring gut Problem im Internet gefunden, also Bildung. Die Seite haben wir erwähnt und auch sonst bei Stack Overflow hattet ihr Immi Probleme für euern Fall was zu finden oder war das eigentlich immer gut? Wie würdet ihr die Dokumentation Situation einschätzen?

Ich würde sagen, Bildung war da sehr umfangreich. Es kam ein paar Mal vor, dass ich nach dem hin. Das reicht mir jetzt nicht nochmal einen halben Tag auf die Suche im Internet gegangen, nur um dann am Ende beim gleichen Bildung Artikel wieder zu landen und zu sehen. Okay, eigentlich stimmt es ja doch, was hier steht. Und wenn man es richtig liest und einen mit ein bisschen Abstand nochmal liest, dann steht da eigentlich alles drin.

Ich glaube, bei sehr spezifischen Problemen kommt es dann wie eigentlich immer ein bisschen aufwändiger werden zu recherchieren. So grundsätzlich war das Vorhandensein von Documentation ja schon gut ausgeprägt, aber ich erinnere mich, dass wir bei dem Thema Parallelisierung und dann eben Multi Reading unserer Anwendung doch die eine oder andere technische Hürde hatten, die ein bisschen schwieriger zu überwinden war, sowohl vom Design als auch von der technischen Umsetzung nachher, was dann auch ein bisschen mehr Recherche und Refactoring bei uns dann eben auch nötig gemacht hat.

Aber das sind dann schon sehr spezifisch die Themen der parallele Entwicklung oder?

Neben läufige Entwicklung ist natürlich immer noch ein Komplexität Stufe höher, einfach weil man eine ganze Menge bedenken muss, damit das auch funktioniert.

Ich hatte noch einen zweiten Fallstrick. Vielleicht hat mir eben am Anfang schon über das dpa gesprochen und wie Einfaches zu sagen gemacht hat, die Datenbank aufzubauen. Man hat dann aber am Ende schon gemerkt, wenn man relativ komplexe Abhängigkeiten mit mehreren von Civey, Strands und auch Manitoba Bennie Relationships. Irgendwann kommt man dann halt auch da ans Ende dieses Modells und kommt dann halt an Stellen, wo es dann noch mal her sich herausstellt. Okay, wenn ich das jetzt aber von der Seite aufziehe, funktioniert es perfekt und von der anderen Seite generiert es mir dann halt ganz ineffizienten ASCII Code.

Da muss man dann halt ein bisschen aufpassen, wenn man da angelangt ist.

Also einfach ein bisschen Augen offenhalten und vielleicht nicht nur eine Doku Stelle im Internet aufsuchen, sondern 2 3, um dann eben das für sich passende da rauszusuchen.

Genau da braucht ein bisschen mehr Recherche und muss sagen ein bisschen auch selber mehr ausprobieren, was dann da der beste Ansatzes würde.

Dir den Spring Boot als Plattform weiter empfehlen oder nochmal verwenden, wenn ihr eine weitere Java Anwendung in sagen wir mal im Kybernetisch Cluster betreiben wollen würdet oder auch einfach so auf dem Server betreiben wollen würdet.

Auf jeden Fall. Also ich würd mit nichts anderem anfangen wollen in Java.

Ich denke auch, dass sich das als Blaupause und Grundlage für, ja als die Fall regelrecht für Java Anwendungsentwicklung nehmen würde, weil die meisten Anforderungen aus Umgebungen kommen, wo man das eben gut umsetzen kann. Ich meine missis in den letzten Jahren nichts untergekommen, wo man jetzt auf einen klassischen ein Maschienen Server oder einen großen Mainframe irgendwas hätte entwickeln müssen, sondern man kommt eben immer eigentlich gerade wenn es Java sein soll in diese Microservices Richtung bzw. kann seine Anwendung zum Lösen eines Problems so Design, dass sie auch sinnvoll so umzusetzen ist.

Und dann ist Spring Boot wirklich ein Top Tool würde ich jetzt sagen. Und das ist doch glaube ich für den Einstieg gut. Also wenn man sagt, man kann bisschen programmieren, man kann objektorientierte programmieren, dann steigt man in Java ein, dann kann man mit Spring Boot auch sehr zufriedenstellend schnell ein Ergebnis erzielen, was wirklich Produktions reif. Innerhalb kurzer Zeit ist das eine tolle Sache.

Da kommt glaube ich dieses Opinio Native was du meintest Magix gut durch es. Es hat halt an vielen Stellen einfach sinnvoller die Falz und außer wenn du weißt, dass das unbedingt anders haben willst, ist halt anders. Aber der Default ist erstmal sinnvoll.

Ja genau. Also diese Opinio native Settings spielen eine Rolle. Deshalb läuft die Anwendung sofort, weil man im Grunde alles hat, was eine Anwendung benötigt. Der Webserver oder der Tomcat in dem Fall ist eingebaut, Matrix sind eingebaut, Health Checks sind eingebaut. Externe Konfiguration, also das Laden von Settings aus Properties. Falls wenn man zum Beispiel einen Dart Mac anbinden möchte und da ein Username Passwort und Connection String hinterlegen muss, ist dabei. Also ja, es funktioniert direkt und man kann dann anpassen, was man braucht.

Ich fand euer Beispiel sehr schön, weil ihr eigentlich ein Micros Service der Daten Transformationen hauptsächlich Macht implementiert habe, dann aber gesehen hat. Oh wir müssen noch irgendwie eine Web Komponente nachrüsten, weil wir statische Dateien aus liefern möchten oder Web Dateien ausliefern möchten. Ist das wirklich für eine Web Oberfläche gedacht gewesen, als wo jemand auf diesen Service springt und im Browser etwas machen kann? Oder war das einfach nur um Dateien auszulagern, die für diese Transformation notwendig sind?

Das war tatsächlich dann eine Oberfläche. Einfach weil sonst der Zustand der App ein bisschen schwierig zu monitoren waren. Brauchten wir da etwas, um den Überblick der dem Garzón in dem Fall zu behalten? Einfach weil ja da mehrere Zehntausend. Datenpunkte migriert werden mussten und das durch verschiedene Snakes durch. Erstmal exportiert werden musste, im neuen System importiert. Nebenbei noch Sachen hochgeladen werden mussten und da den Überblick zu behalten. Damals hat man ja im Frontend für gebastelt. Okay.

Und das Frontend ist nur für euch gewesen. Oder guckt der Kunde das auch an, wenn er diese Software einsetzt?

Das war jetzt in dem Fall für uns mehr als die Person, die dann die eigentliche Migration macht. Was in dem Fall ein Kollege von uns ist. Also nicht ganz für uns selber, aber der Kunde benutzt es in dem Fall nicht.

Er könnte es aber benutzen, wenn er wollte. Wenn die Anwendung in unserem Fall, auf dem wir entwickelt haben und er unser Benchmark Punkt war Björn ist gerade gesagt, ein paar 10 000 Datenpunkte, um die es ging, da war die Laufzeit für den kompletten Migrations Prozess im Bereich von Stunden. Das ist was, was man theoretisch morgens starten. Und wenn man es Büro verlässt, ist die Anwendung fertig betreiben kann.

Nicht nur theoretisch, sondern praktisch, ja sogar richtig.

Das wird sich dann hoffentlich bald zeigen. Aber es gab auch den Use Case. Ein bisschen mehr in der Zukunft, dass wir über mehrere 100 000 Datenpunkte vergleichbare Einzel Größe reden. Und dann würde die Anwendung halt schon deutlich länger laufen und man möchte vielleicht aktives Monitoring davon haben. Und das wäre eben darüber möglich gewesen, dass man dann eben mal reinschaut, wie es gerade der Stand der Dinge.

Und insbesondere hat dieses Webforen dann letztendlich nichts anderes getan, als gewisse Endpunkte unserer App anzusprechen. Und mit diesen Endpunkten hätte man dann auch ein beliebiges anderes Monitoring aufziehen können.

Na okay, ater sind die nachgerüstet von Matrix, die ihr eingebaut hat.

Unter anderem genau Azawad. Einige Standards, Sachen wie ihr Herzschlag und Memory Konsumption. Aber dann halt auch einfach wie viele sind schon prozessiert?

Wie viele sind in den unterschiedlichen Stages der Migration solche Sachen? Den letzten Fallstrick hatte ich noch als beiten Entwickler. Man muss sich an die Annotationen gewöhnen, dass sie einfach was ganz anderes sind als Payton Annotationen. Wenn man damit dem momentanen Modell sich einmal umgedacht hat, dann funktioniert es. Also das ist halt wirklich nur Annotation. Sind also zusätzliche Informationen, die dann irgendwie interpretiert wird, nicht Code, der ausgeführt wird.

Die Annotationen gibt es auch in neueren Pfeifen Versionen, zum Beispiel bei den Data Classes und ich hatte das so verstanden, dass die was ähnliches machen wie auch in der Java Welt oder ich hab sie so benutzt.

Sie sehen ähnlich aus, aber letztendlich sind sie nichts anderes als Haja oder Functions. Also die Funktionen als Argumente nehmen und dir deine modifizierte Funktion zurückgeben. Während Java Annotationen ja eigentlich nur ein Hinweis an ein Paket sind, jetzt irgend eine Magie zu verführen, aber nicht an den Annotation selber gekoppelt ist. Klar, man kann Annotation auch selber schreiben, aber es ist schon so, dass die Annotation so eine Art Auszeichnung sind, um die nachfolgende Funktion oder so eben zu Parameter visieren oder das nachfolgende Objekt genau innehabe.

Das eigentlich paar Interesieren passiert in Java soweit ich es verstanden hab, ja nochmal einfach anders. Also irgendetwas anderes nimmt dir Annotation und macht dann etwas damit Sphären in Python. Es ist die Annotation selber, die etwas macht.

Genau das Spring Framework werte die Annotationen aus und sagt Ach guck mal, hier ist ein Auto Wired, da muss ich ja diese Biene reinstecken, die ich hier initialisiert hab. Also das kann man vielleicht noch sagen, das Spring Framework geht hin, wenn die Anwendung gestartet wird, guckt das alle Bins also also eine Java Klassen hier als Service definiert habt oder als Controller definiert habt, guckt es an, instanziiert diese Klassen und dann erst guckt es in die einzelnen Klassen rein.

Wo steht dein Auto Wired und stöpseln jetzt diese initialisiert Klassen eben zusammen, damit die Anwendung loslaufen kann? Das passiert sozusagen alles im Vorfeld von dem Framework selber. Wenn ihr Fragen habt oder Feedback, sendet uns gerne eine E-Mail an Podcast Skill bei Tee. Wir freuen uns immer über Bewertungen und wenn ihr den Podcast an Freunde und Kollegen weiterempfehlen, die sich für ähnliche Themen interessieren. Wenn ihr aktuell im IT-Bereich auf Jobsuche seid, schaut gerne auf das G.H. Die Slash Job Seite vorbei.

Weitere spannende Technologien Themen findet ihr auch im Skill Bait Blog. Oli Andreas, ich danke euch ganz herzlich, dass ihr heute Abend meine Gäste wart.

Danke Maurice. Es war mir eine Freude. Ich wünsche euch beiden noch einen schönen Abend. Danke dir auch.

Maurice KnoppSkillbyte Podcast #45: Das Spring Boot Framework
Mehr

Skillbyte Podcast #11: TOP IT Trends 2020 – DevOps, Big Data, Developer und Hardware Trends 2020

Willkommen zum Skillbyte-Podcast! Skillbyte ist ihr Partner für digitale Exzellenz.

In diesem Podcast geht es um das Thema: TOP IT Trends 2020 – DevOps, Big Data, Developer und Hardware Trends 2020

// Inhalt //
00:33 -> Große Technologietrends 2020: Cloud, Big Data, 5G, Datenlösungen für den Mittelstand
05:22 -> Trend Security
09:11 -> Trend Cloud Computing
09:45 -> Trend Cloudprovider neben AWS
11:01 -> Trend Blockchain
12:12 -> Trend Blockchain Anwendungsbeispiel hygh
15:14 -> Trend OpenSource Software
15:50 -> Devops Trend: Kubernetes Tools
17:18 -> Devops Trend: Pluggable Container Runtimes neben Docker
18:18 -> Big Data Trend: In-memory Datenverarbeitung für Realtime-Analysen
20:52 -> Big Data Trend: Predictive Analytics / Vorhersagen
21:44 -> Big Data Trend: Data Quality / Datenqualität
23:14 -> Developer Trend: Microservices
23:23 -> Developer Trend: Event Sourcing und Streaming
24:50 -> Developer Trend: Cloud-Setup + GIT + IDEs
25:19 -> Developer Trend: Programmiersprachen des TIOBE Index 2020
31:17 -> Hardware Trend: AMD Threadripper CPUs

Link zum TIOBE Index: https://www.tiobe.com/tiobe-index/

Abonnieren Sie diesen Podcast und besuchen Sie uns auf https://www.skillbyte.de

Feedback und Fragen gerne an podcast@skillbyte.de

Maurice KnoppSkillbyte Podcast #11: TOP IT Trends 2020 – DevOps, Big Data, Developer und Hardware Trends 2020
Mehr

Skillbyte Podcast #2: Devops – Was ist DevOps und das DevOps Mindest?

In diesem Podcast geht es um das Thema: Devops – Was ist DevOps und das DevOps Mindest?

// Inhalt //
01:10 -> Definition: Was ist DevOps und das DevOps Mindest?
06:17 -> Wie kam es zum DevOps Gedanken und was leistet DevOps?
11:11 -> Vorteile von „Infrastruktur als Code“
11:52 -> Vorteile von Continuous Integration und Continuous Delivery
17:50 -> Kubernetes und OpenShift wird mit DevOps in einem Atemzug genannt, was ist das und welche Vorteile haben wir dadurch?
21:03 -> Detailerklärung zu Kubernetes und OpenShift
27:45 -> Anwendungsbeispiel: AWS, Terraform und CoreMedia
34:15 -> Was ist GitOps und DevSecOps?

Abonnieren Sie diesen Podcast und besuchen Sie uns auf https://www.skillbyte.de

Feedback und Fragen gerne an podcast@skillbyte.de

Maurice KnoppSkillbyte Podcast #2: Devops – Was ist DevOps und das DevOps Mindest?
Mehr