Kategorien
Buch Empfehlungen

Buch Review: Clean Code von Robert C. Martin

Clean Code: A Handbook of Agile Software Craftsmanship ist ein Buch von Robert C. Martin, auch bekannt als „Uncle Bob“. Das Buch, das ursprünglich 2008 veröffentlicht wurde, ist ein Leitfaden für die agile Softwareentwicklung und richtet sich an Softwareentwickler, die sauberen, lesbaren und wartbaren Code schreiben wollen.

Im Buch werden Konzepte und Best Practices beschrieben, die dazu beitragen, dass Code einfacher zu verstehen und zu pflegen ist. Dazu gehören unter anderem die Verwendung eindeutiger Namen für Variablen und Funktionen, das Vermeiden von redundanter oder wiederholter Code sowie die Aufteilung von Code in kleine, wiederverwendbare Funktionen.

Die folgenden Regeln sind neben vielen anderen enthalten und werden sehr gut erläutert:

  1. Verwende eindeutige und beschreibende Namen für Variablen, Funktionen und Klassen.
  2. Vermeide redundante oder wiederholter Code, indem du ihn in Funktionen oder Methoden auslagern.
  3. Trenne Verantwortlichkeiten und logische Abschnitte deines Codes in verschiedene Klassen oder Module auf.
  4. Verwende Kommentare, um den Zweck und die Absicht deines Codes zu erläutern.
  5. Schreibe Tests für deinen Code, um seine Korrektheit und Zuverlässigkeit zu überprüfen.
  6. Vermeide Überladung von Funktionen und Methoden, um Verwirrung beim Aufruf zu vermeiden.
  7. Verwende Konstanten anstelle von Hardcoded Werten, um Code lesbarer und wartbarer zu machen.
  8. Vermeide „Magische Zahlen“ und „Magische Strings“ in deinem Code und verwende stattdessen Konstanten oder Enumerations.
  9. Vermeide unveränderliche Zustände und globale Variablen, da sie schwer zu testen und zu verstehen sind.
  10. Schreibe sauberen Code, indem du kleine Schritte und regelmäßiges Refactoring nutzt, um ihn lesbar und wartbar zu halten.

Ein wichtiger Aspekt von Clean Code ist die Testbarkeit. Das Buch betont, dass Code nur dann als sauber angesehen werden kann, wenn er leicht testbar ist und durch Tests nachgewiesen werden kann, dass er korrekt funktioniert. Dies hilft nicht nur, Fehler frühzeitig zu entdecken, sondern auch dabei, sicherzustellen, dass Änderungen am Code nicht unbeabsichtigte Auswirkungen haben.

Insgesamt bietet Clean Code eine umfassende Anleitung für die agile Softwareentwicklung und ist ein wertvoller Ratgeber für alle, die sauberen, wartbaren Code schreiben wollen.

Kategorien
Projekte

Webanwendung zur Vermittlung von IT-Kräften

Meine Bachelorarbeit zum Download:

Konzept und Entwicklung einer
Webanwendung zur Vermittlung von IT-Kräften

Daraus ist das Startup nerdle.de geworden, welches nach 2 Jahren aufgrund mangelnder Finanzierung eingestellt werden musste, aber mir sehr viel Spaß gemacht hat.

Download .pdf

Download .doc

Kategorien
Projekte

Behavioral Finance und Moving Averages

Meine Diplomarbeit zum Download

Behavioral Finance und Moving Averages – Anwendbarkeit/Simulation von Aktienmärkten
anhand des 200-Tage-Durchschnitts

Download .pdf

Download .doc

Download Excel Makro

Kategorien
Buch Empfehlungen

Buch Review: Clean Architecture von Robert C. Martin

Der neue Klassiker von Uncle Bob beschäftigt sich mit Software Architektur: Was ist eine gute Softeware Arcjtektur und wozu braucht man Sie überhaupt.

Die wichtigsten Aussagen habe ich zusammengefasst im folgenden:

Wozu benötugt man eine gute Architektur? Es ist einfach ein Programm zu schreiben, das etwas bestimmtes tut, selbst Schulkinder schreiben Programme. Aber schwierig ist es ein Programm zu schreiben, was auch in Zukunft erweiterbar und felxibel ist, ohne große Kosten und Aufwand zu verursachen. Deswegen bracht es von Anfang an gute Architektur.

Die Evolution der Programmiersprachen besteht darin, dem Programmierer weniger Möglichkeiten zu geben, schlechten Code zu schreiben.

Man sollte nicht in die Falle tappen: Wir programmieren schnell das Projekt zu Ende um schnell am Markt zu sein und später räumen wir den Code auf. Das wird nie passieren.

Das User Interface (UI), die Datenbank und die Business Rules sollten unabhängig von einander über Interfaces mit einander verbunden und austauschbar sein (Plugin Architektur). Dies ermöglicht ein

  • unabhängiges Deployment der 3 Komponenten und
  • unabhängige Entwicklung in verschiedenen Teams

Funktionale Programmierung löst das Problem von Deadlocks und Multi-Threading Problematiken, da keine richtigen Variablen vorhanden sind.

Kategorien
PHP PHP 7 Projekte

Zertifizierung zum Zend Certified Engineer erfolgreich bestanden

Am 1. März habe ich die Prüfung erfolgreich abgelegt für die ich die letzten Monate gelernt habe. Wie zu erwarten war, waren die Fragen sehr, sehr kniffelig, aber die Vorbereitung hat sich bezahlt gemacht.

zce-2017-php-80x80

Vorbereitung

Ich kann jedem empfehlen sich vorher merhmals das Buch PHP7 Zend Certification Study Guide durchzulesen:

Außerdem sollte man alle Tests auf der Seite zendexam.com zu 80% erfolgreich beantworten können, dann ist man bereit für die Prüfung.

Anmeldung für die Prüfung

Man kann sich auf der zend.com Seite anmelden für die Prüfung , die man dann in der Nähe in einem Testcenter seiner Wahl absolvieren kann unter strengsten Bedingungen.

Einmal im Jahr gibt es einen Gutschein für die Prüfung auf retailmenot.com, wenn man Glück hat.

Kategorien
Amazon AWS Docker GIT MySQL PHP PHP 7 Projekte Redis Symfony

Projekt: baby-taschenrechner.de

Das gerade fertiggestellt Projekt baby-taschenrechner.de beschäftigt sich mit den Fragestellungen rund um die Entwicklung des eigenen Kindes:

  • Wie groß wird mein Kind werden in x-Jahren
  • Wie schwer wird mein Kind in x-Jahren
  • Ist mein Kind zu schwer/zu dünn
  • Welche Kleidergröße wird es wann tragen?

Die Webseite soll Eltern dabei helfen herauszufinden, wann sie welche Kleidergröße kaufen müssen, um im nahenden Winter/Sommer das passende zu Hause zu haben.

Eltern können so einschätzne, ob das Kind zu dünn oder zu dick ist  für ihr Alter/Größe/Gewicht-Verhältnis.

Für die Realiserung wurden folgende Technologien verwendet:

Symfony 3, Docker, MySQL, PHP, GIT, Google Material Design, Amazon AWS

Kategorien
Diverses PHP

Die REST Webservice Architur – ein Überblick mit PHP

Wenn man heutzutage einen Webservice bauen will, kommt man um REST nicht mehr herum. Als quasi Standard erfüllt es die Bedürfnisse an eine moderne Schnittstelle am besten, im Gegensatz zu den Alternativen aus der grauen Vergangenheit: RPC, DCOM, CORBA, RMI und SOAP.

Was sind die Vorteile von REST?

1. Lose Kopplung

REST Schnittstellen können theoretisch gegeneinander ausgetauscht werden.

2. Interoperabilität

REST über HTTP ist in jeder Umgebung verfügbar und sehr einfach anzusprechen im Gegensatz zu den komplizierteren Ansätzen wie SOAP und CORBA.

3. Performance und Skalierbarkeit

Durch die Zustandslosigkeit können viele Anfragen aus dem Cache beantwortet werden und aufeinander folgende Anfragen müssen nicht von demselben System beantwortet werden (Skalierbarkeit)

Grundprinzipien von REST

Kategorien
Amazon AWS Elasticsearch PHP Projekte XT-Commerce

Projekt: Elasticsearch für XT-Commerce Shop Suche

Das letzte Projekt war sehr spannend, es handelte sich um eine Erweiterung des PHP Shop-Systems namens XT-Commerce bzw. des Derivats SEO-Commerce um eine Suche aktuellem Standards für Zeedee Berlin.

Elasticsearch wurde auf einer eigene Amatzon MWS EC2 Instanz gehostet mit 1GB Ram und 1 CPU (sehr kostengünstig).

Die folgende Funktionalität kann ganz einfach wieder deaktiviert werden an zentraler Stelle, wenn es Probleme mit Elasticsearch gibt und die alte MySQL Suche tritt wieder in Kraft.

1. Autocomplete / Suggest Funktion beim Befüllen der Suche

Beim Eintippen des Suchwortes werden schon Vorschläge gegeben im Millisekundenbereich. Dadurch kann der Kunde viel Zeit sparen und bei der Rechtschreibung wird auch geholfen. suggest_zeedee

Kategorien
Hardware

Raspberry Pi SD card holder broken – 10 seconds fast repair

 

IMG_5496
The problem: the sd card holder stopped working

When your Raspberry Pi 2 is does not hold the integrated sd-card anymore, than your one of many people who face the same problem.

I have found an easy way to repair the sd card holder without fire and iron and explosions:

You can use an elastci strap and you will only loose 2 of your 4 USB-slots with this method.

 

A small and strong elastic strap can hold the sd cartd in the sd card slot and fixes the problem easily and smooth.

IMG_5497
an elstic strap helps to hold the sd card in the slot

 

The Result

Your Raspberry Pi works again without any problems.

IMG_5495
you will loose 2 usb slots but 2 other ones are waiting for you

IMG_5494
works like a charme

Alternative repair

If you want to repair your sd-card slot like a pro, you should watch this youtube video:

Last alternative

Buy a new Raspberry 3 model:

Kategorien
Amazon MWS PHP PHP 7 Projekte Symfony

Amazon automatische Preisanpassung Tool

Für einen Kunden habe ich gerade ein Tool entwickelt, mit dem man die Preise der eigenen Waren bei Amazon automatisch anpassen kann.Dabei werden die Angote der Konkurrenz analysiert nach Zustand der Ware und nach Seller Seriösität und dadurch ein fairer Preis bestimmt für die Ware. Es werden alle Daten, die über die API verfügbar sind für die Preisbestimmung mit herangezogen, wie z.B. Seller Feedback (Bewertungen des Händlers), ob Amazon selber verschickt, Versanddauer und vieles mehr.

Das Tool vergleicht optional die Preise zwischen den verschiedenen Amazon Plattformen in Europa (DE, UK, IT, ES, FR) aber auch Plattformen außerhalb Europas, wie Japan oder Amerika und händelt die unterschiedlichen Währungen.

Das Ergebnis kann direkt zu Amazon mittels der API geschickt werden und die Preise werden sofort geupdatet.

Amazon Preisanpassung
Screenshot Preisanpassungs Tool

 

Die Anwendung ist in PHP mit Symfony 3 geschrieben und hat ein Frontend mit Twitter Bootstrap 3 und eine MySQL Datenbank. Außerdem gibt es eine Vagrant Umgebung für die Entwicklung mit PHP7.1 und nginx. Ausgeführt werden kann das ganze mit einer einfachen Xampp Umgebung oder Vagrant Virtual Box beim Kunden lokal auf einem PC.

Falls sie auch Interesse an einem solchen Tool haben, könnne sie gern Kontakt aufnehmen.