Meine Abschlussarbeit 2020

Abschlussarbeit in Kooperation mit dem Drägerwerk Im Sommer 2020 habe ich meinen Abschluss zum Fachinformatiker Anwendungsentwicklung beendet. Meine Abschlussarbeit wurde mit 100 Punkten bewertet (100 für die Präsentation & 100 für die Dokumentation). Da vielleicht andere Interesse an einem Beispiel Abschlussprojekt haben, möchte ich meins hier veröffentlichen. Einige Rechtschreib/Grammatikfehler habe ich im Nachhinein noch entdeckt, aber ich belasse die Arbeit genau so, wie ich sie damals abgegeben habe. Wir bieten auch Ausbildungen bei Kühne und Nagel an....

März 13, 2022 · 1 Minute · Zadjad Rezai

Projekt 1 - Docker Swarm, Traefik, Nextcloud und einiges mehr

Einführung Diese Webseite zops.top wird momentan über einen kleinen Provider names wint.global in die schöne, weite Welt übertragen. Dazwischen sitzt momentan Cloudflare als nameserver & damit kann ich direkt über dash.cloudflare.com auch auf meine DNS-Einträge zugreifen. So wird der gesamte Traffic durch Cloudflare geleitet (Proxy) und die “echte” IP-Adresse des Servers wird nicht bekannt gegeben. Macht man ein traceroute oder tracert (Windows) auf zops.top erhält man die IP-Adresse eines Cloudflare-Servers....

August 22, 2020 · 18 Minuten · Zadjad Rezai

Docker – Teil 3: Eintauchen in komplexere Bereiche

Wie in Teil-2 versprochen, tauchen wir diesmal etwas tiefer in Docker ein, verbessern und erweitern unsere App. Das Repository basiert jetzt auf verschiedenen Branches, die jeweils mit einem Blogpost zusammen hängen. Aktuell gibt es die Branch step-2, und step-3 welcher mit Teil 2 bzw. Teil 3 der Docker-Serie zusammenhängen. Docker Funktionsweise In Teil-1 bin ich teilweise auf die Ziele von Docker eingegangen, jedoch habe ich außen vor gelassen wie das ganze überhaupt funktioniert....

März 31, 2020 · 7 Minuten · Zadjad Rezai

Docker – Teil 2: Eigene REST API

Um die Simplizität von Docker zu erläutern, möchte ich eine kleine Python-Anwendung erstellen, welche wir über Docker veröffentlichen und nutzen können. Der Code sollte ab Python 3.6 funktionieren und ist auf meinem Github-Repo einsehbar. Für eine Einführung in Flask, schaut euch das offizielle Tutorial an. Im ersten Schritt soll nur eine simple API geschrieben werden, welche beim Aufrufen von /response/<string> den angegeben String als Antwort zurücksenden. Bevor wir beginnen sollten folgende Pakete installiert werden: pytest, flask...

März 25, 2020 · 7 Minuten · Zadjad Rezai

Docker – Teil 1: Eine Einführung.

Foto von Kyohei Ito In diesem ersten Post, möchte ich Docker grob vorstellen und im nächsten Teil eine Beispielanwendung veröffentlichen. Docker ist eine interessante technische Entwicklung, welche uns zeigt, dass wir uns aktuell in jeder Ebene in die selbe Richtung bewegen – immer weiter in die Abstraktion von Komplexität. Bevor ich auf Docker selbst eingehe, möchte ich einige Gedanken zur Grundlegenden Überlegung los werden. Seit Jahren sieht die Bewegung auf dem technischen Markt gleich aus: Abstraktion....

März 25, 2020 · 3 Minuten · Zadjad Rezai

Warum Test-Driven Development

Im Leben kommt man immer irgendwann an einen Punkt an, an dem man sich denkt: Wie kann ich mich verbessern? Unser Leben kann teilweise mit einer Zusammensetzung vieler Microservices verglichen werden, auf die ich voraussichtlich in einem anderen Post eingehen werde. In (sehr) kurz; ein Microservice ist wie der Name schon sagt ein kleiner (Definitionssache) Service, der unabhängig vom Rest funktioniert. Ein kleines Beispiel; ein Baum funktioniert auch, wenn kein Mensch damit interagiert, obwohl wir alle Teil unseres komplexen Ökosystems sind....

Dezember 17, 2019 · 7 Minuten · Zadjad Rezai

Pair Programming als Qualitätssicherungsmaßnahme

Wer so wie die Person auf dem Bild arbeitet, sollte sich diesen Beitrag dringend durchlesen. Pair Programming wird in vielen Ebenen der Enterprise-Software-Entwicklung genutzt, gelebt, geliebt und manchmal auch gehasst. Ein schönes Werkzeuge der agilen Software-Entwicklung bildet das Pair Programming, mit seinem intelligenten Ansatz das „Vier-Augen-Prinzip“ auf eine geistig anstrengende Aufgabe anzuwenden. Meiner Erfahrung nach wird man in traditionellen, deutschen Unternehmen nicht besonders häufig auf Projekte, in denen Pair Programming gelebt wird, treffen....

November 6, 2019 · 5 Minuten · Zadjad Rezai

Der Walrus-Operator (Python 3.8)

Endlich ist er da. Der Walrus-Operator, eingeführt mit PEP 572 — Assignment Expressions. Der Walrus-Operator ist mein persönliches Highlight, da ich ihn immer gebraucht habe – nur vorher wusste ich nicht wie sehr ich ihn gebraucht habe. Er bringt eine riesen Erleichterung, macht unseren Code kompakter, lesbarer und natürlicher schöner (das Auge liest mit) 😬 PEP 572 beschreibt die Syntax des Walrus-Operators meiner Meinung nach perfekt: In most contexts where arbitrary Python expressions can be used, a named expression can appear....

Oktober 29, 2019 · 2 Minuten · Zadjad Rezai

PEP 8 – Design für Vererbung

Das ist die Fortführung des ersten Posts über PEP 8. Diesmal geht es ausschließlich um einen generellen Designvorschlag, um ein gut geschriebenes Programm veröffentlichen zu können. Im Kontext von PEP 8, ist dieser Beitrag unter Design for Inheritance zu finden. Ab jetzt werden die Posts im Allgemeinen kürzer, damit man diese leichter verarbeiten kann. Entscheidet immer, ob die Methoden und Instanzvariablen einer Klasse (zusammenfassend: „Attribute“) öffentlich oder nicht öffentlich sein sollen....

Februar 15, 2019 · 3 Minuten · Zadjad Rezai

PEP 8 – Die Schönheit von Python

Mein erster Blog-Eintrag sollte ein Eintrag sein, den man immer und immer wieder erleben kann – ein Eintrag, der nicht langweilig wird – nun ja langweilig mag er werden, aber er sollte definitiv nicht so leicht zu merken sein, dass man in seiner professionellen Laufbahn nicht noch einmal drauf schauen möchte. Als Python Enthusiast gibt es für mich kein besseres erstes Thema als ein PEP (Python Enhancement Proposal) – zu Deutsch „Vorschlag zur Python-Verbesserung“ – ein Designdokument, das der Python-Community Informationen liefert oder ein neues Feature für Python, seine Prozesse oder Umgebung beschreibt....

Februar 14, 2019 · 23 Minuten · Zadjad Rezai