Sie suchen einen Softwareentwickler?

Hervorgehoben

Sie suchen einen motivierten und zuverlässigen Softwareentwickler? Dann sind Sie hier richtig!

Ich verfüge über ein umfassendes Fachwissen und langjährige Erfahrung im Bereich der Software Entwicklung (Web, Frontend, Backend, Datenbanken). Ich bin Entwickler aus Leidenschaft. Bei meiner Arbeit lege ich hohe Maßstäbe an, um stets ein bestmögliches Ergebnis zu erzielen. Dabei setze ich konsequent auf Clean Code, Prinzipien des objektorientierten Designs (OOD) und Entwurfsmuster (Design Pattern), um robuste, leicht wartbare und wiederverwendbare Softwarelösungen zu entwickeln. Ich bin hoch motiviert neues zu lernen und bestrebt mich stets weiter zu entwickeln.

Weiterlesen

Das Dependency Inversion Principle

Definition

Das Dependency Inversion Principle (Abhängigkeits-Umkehrungs-Prinzip, DIP) ist eines der SOLID-Prinzipien. Es sagt aus:

  1. “High level modules should not depend upon low level modules. Both should depend upon abstractions.”
  2. “Abstractions should not depend upon details. Details should depend upon abstractions.”
  1. “Höherstufige Module sollten nicht von niedrigstufigen Modulen abhängig sein. Beide sollten von Abstraktionen abhängen.”
  2. “Abstraktionen sollten nicht von Details abhängen. Details sollten von Abstraktionen abhängen.”

Weiterlesen

Das Interface Segregation Principle

Definition

Das Interface Segregation Principle (Schnittstellenaufteilungsprinzip, ISP) ist eines der SOLID-Prinzipien. Es lautet:

“Clients should not be forced to depend upon Interfaces that they do not use.”
“Clients sollten nicht gezwungen werden von Schnittstellen abhängig zu sein, die sie nicht verwenden.”

Klassen mit “überladenen Schnittstellen” sind nicht kohäsiv. Die Schnittstellen solcher Klassen können in Gruppen von Methoden aufgeteilt werden. Das hat den Vorteil, dass ein Client dann nur eine Schnittstelle, mit einer Gruppe von Methoden nutzt, die es auch wirklich braucht.

Weiterlesen

Das Liskov Substitution Principle

Definition

Das Liskov Substitution Principle (Liskovsche Substitutionsprinzip, LSP) ist eines der SOLID-Prinzipien. Es wurde erstmals 1987 von Barbara Liskov auf der Konferenz Data abstraction and hierarchy vorgestellt und wurde 1993 von Barbara Liskov und Jeannette Wing formuliert. “Es besagt, dass ein Programm, das Objekte einer Basisklasse T verwendet, auch mit Objekten der davon abgeleiteten Klasse S korrekt funktionieren muss, ohne dabei das Programm zu verändern.”

Weiterlesen

Das Open-Closed Principle

Definition

Das Open-Closed Principle (Offen-Geschlossen-Prinzip, OCP) ist eines der SOLID-Prinzipien. Es wurde 1988 von Bertrand Meyer beschrieben und es lautet:

“Software Entities (Classes, Modules, Functions, etc.) should be open for extension, but closed for modification.”
“Software Entitäten (Klassen, Module, Funktionen, usw.) sollten offen für Erweiterungen sein, aber geschlossen für Modifikationen.”

Ein intelligenter Entwurf einer Anwendung sollte stets die häufigen Änderungen während der Entwicklung und der Wartungsphase berücksichtigen. Fügt man einer Anwendung neue Funktionalität hinzu, sind Änderungen am Code unumgänglich. Diese Änderungen im existierenden Code sollten jedoch auf das Minimum reduziert werden. Bedenkt man, dass der Code bereits getestet wurde, können Änderungen im geschriebenen Code unerwünschte Nebenwirkungen haben oder zu unbeabsichtigten Fehler führen.

Das Offen-Geschlossen-Prinzip sagt aus, man sollte Module so entwerfen, dass sich diese niemals ändern. Wenn sich die Anforderungen ändern, sollte man das Verhalten durch das hinzufügen neuen Codes erweitern, statt den existierenden Code zu ändern, der bereits funktioniert. Der existierenden Code sollte soweit wie möglich unverändert bleiben.

Weiterlesen

Das Single Responsibility Principle

Definition

Das Single Responsibility Principle (Eine-Verantwortlichkeit-Prinzip, SRP) ist eines der SOLID-Prinzipien. Es wurde von Robert C. Martin im gleichnamigen Teilartikel in seiner Publikation Principles of Object Oriented Design eingeführt und es lautet:

“There should never be more than one reason for a class to change.”
“Es sollte nie mehr als einen Grund geben, eine Klasse zu ändern.”

Weiterlesen

Besser Programmieren mit OO-Prinzipien und Entwurfsmustern

I will not write any more bad code

Der Entwicklungsprozess einer Software lässt sich sehr gut mit einem Hausbau vergleichen. In der Anfangsphase sitzt man über den Zeichnungen und Bauplänen, nachdem alle Genehmigungen eingeholt wurden, wird das Haus Stein für Stein hochgezogen und ausgebaut, dann letztendlich kommt es zur Schlüsselübergabe und die neuen Besitzer können einziehen. Doch nach einiger Zeit drückt das Grundwasser hoch, der Keller wird feucht, an den Wänden zeigen sich die ersten Risse. Klare Hinweise dafür, dass die Handwerker nicht mit der nötigen Sorgfalt gearbeitet haben. Auf die Besitzer kommen Ärger und weitere Kosten zu, die sie sich eigentlich gerne erspart hätten.

In der Softwareentwicklung ist es ähnlich. Es passiert nicht selten, dass nach der Fertigstellung, und zuweilen auch während der Entwicklungsphase eines Projektes, Mängel und Probleme sichtbar werden. Der bestehende Code muss vielleicht geändert werden um eine neue Funktionalität zu implementieren und führt u.U. zu un­vor­her­ge­se­hen Fehlern. Die Folge: die Produktions- und/oder Wartungskosten steigen, das Projekt verzögert sich und die Entwickler geraten in Stress. Diese Symptomatik ist wiederkehrend.

Weiterlesen

newsight reloaded

Im Jahr 2005 habe ich die erste Version meines Entwicklerblogs gestartet. Der Name newsight bedeutet ‘Neue Sicht’. ‘Neue Sicht der Dinge’ war damals mein persönliches Motto, und bezog sich auf die Art und Weise wie man richtig programmiert. State of the Art sozusagen. Damit war das Interesse an Clean Code, objektorientierten Design und Entwurfsmustern geboren, bevor ich diese Begriffe überhaupt richtig kannte.

Seit dem habe ich mich enorm weiter entwickelt und viel gelernt. Neue Programmiersprachen, Konzepte und Techniken, Dinge die mir geholfen haben ein besserer Softwareentwickler zu werden. Das wichtigste war jedoch, das Gelernte auch konsequent in die Praxis umzusetzen. Das hat mir bei der täglichen Arbeit viele Vorteile gebracht. Aber die Entwicklung geht weiter, und ich freue mich über jede Gelegenheit neues zu lernen.

Nach dem das Blog länger stillgelegt war, wurde es an der Zeit wieder einen neuen Anfang zu wagen. Wie beim ersten Mal, ist die Motivation immer noch Wissen zu teilen, von anderen zu lernen und sich auszutauschen. Deshalb schien mir der Zeitpunkt zum Anfang des neuen Jahres 2015 passend, fast 10 Jahre nach dem ersten Start, das Blog wieder zu beleben und mit neuem Leben zu füllen.

Also, here we go!