© fatmawati achmad zaenuri/Shutterstock.com
PHP Magazin
Quellcodes verändern, ohne die Updatefähigkeit zu verlieren

Infinite Hooks: Anfassen erlaubt!

Da sitzt du nun vor 100 000 Zeilen Quellcode einer Software und darfst nur schauen, aber nichts anfassen. Du weißt, dass deine Änderung beim nächsten Update der Software in drei Wochen wieder weg wäre. Manchmal änderst du den Quellcode trotzdem direkt, weil du es musst, und verlierst damit die Updatefähigkeit der Software - Sicherheitspatches und neue Features vom Anbieter werden nicht mehr oder nur noch selten eingespielt.

Christian K. Fraunholz


Du wirst jetzt vielleicht sagen, dass es inzwischen moderne Software (also die mit einer Million Zeilen Sourcecode) gibt, die man auf verschiedene Arten und an sehr vielen Stellen erweitern kann. Eine direkte Änderung am Code der Software ist nicht mehr notwendig. Richtig, kaum noch. Klassenvererbung, Decorators, Datenfilter, Notifiers, Actions, Events und Hooks – das alles sind feine Sachen, die dabei helfen, deinen eigenen Code von dem des Anbieters getrennt zu halten und deren Nutzen sich schwer absprechen lässt. Aber perfekt ist das noch nicht.

Du benutzt die Software also für einen Kunden, ein Projekt. Deshalb bist du (mit deinen Kollegen) näher dran am Geschehen und weißt besser, was die Software in deinen Händen im Endeffekt tun oder nicht tun soll und wie; besser doch als derjenige oder diejenigen Programmierer, welche(r) sich den Code im core, vendor, src, system oder lib Verzeichnis ausdachte(n). Anpassungen am Core oder an Third Party Libraries für Bugfixes oder Erweiterungen außerhalb der für eigene Plug-ins oder Add-ons vorgesehenen Struktur können gemacht werden, wenn der Commit gespeichert und nach dem Update wieder eingesetzt wird.

Anwendungsbereiche

Mit diesem Konzept lässt sich die Funktionalität einer Software erweitern oder verbessern, wo es vorher nicht möglich war. Und dort, wo es bereits möglich war, kann man es schneller und auf explizitere Weise tun: Es werden nur die Zeilen des Herstellers in die Inkompatibilitätsgefahrenzone bewegt, die unbedingt dort hingehören. Außerdem warnt das System frühzeitig, wenn in einem Update des Herstellers an der gleichen Stelle Anpassungen stattfanden. Ein Umstand, den man sonst nur durch Testen oder schlimmstenfalls der Kunde als Fehler findet. Das trägt zu einer höheren Qualität der Software und einer reibungsloseren Wartung bei.

Die Unantastbaren

Open-Source-Software lässt sich prinzipiell ändern. Problematisch wird es, wenn man die Software auf eine neue Version aktualisieren will. Dann bügelt der Hersteller seine neuen Dateien einfach drüber, was in verschiedenen Fällen unzureichend ist. Open-Source-Software besteht üblicherweise aus

Core-Code des Herstellers,Drittanbietersoftware im Core-Code des Herstellers,Drittanbietersoftware (Plug-ins),eigenem Code (eigene Plug-ins).

Um Funktionen oder Layout zu editieren respektive zu erweitern, werden Änderungen an Dateien, welche nicht zu einem eigenen Plug-in (4.) gehören, nicht durchgeführt oder als Hack bezeichnet, weil diese bei einem Versionsupdate ...

PHP Magazin
Quellcodes verändern, ohne die Updatefähigkeit zu verlieren

Infinite Hooks: Anfassen erlaubt!

Da sitzt du nun vor 100 000 Zeilen Quellcode einer Software und darfst nur schauen, aber nichts anfassen. Du weißt, dass deine Änderung beim nächsten Update der Software in drei Wochen wieder weg wäre. Manchmal änderst du den Quellcode trotzdem direkt, weil du es musst, und verlierst damit die Updatefähigkeit der Software - Sicherheitspatches und neue Features vom Anbieter werden nicht mehr oder nur noch selten eingespielt.

Christian K. Fraunholz


Du wirst jetzt vielleicht sagen, dass es inzwischen moderne Software (also die mit einer Million Zeilen Sourcecode) gibt, die man auf verschiedene Arten und an sehr vielen Stellen erweitern kann. Eine direkte Änderung am Code der Software ist nicht mehr notwendig. Richtig, kaum noch. Klassenvererbung, Decorators, Datenfilter, Notifiers, Actions, Events und Hooks – das alles sind feine Sachen, die dabei helfen, deinen eigenen Code von dem des Anbieters getrennt zu halten und deren Nutzen sich schwer absprechen lässt. Aber perfekt ist das noch nicht.

Du benutzt die Software also für einen Kunden, ein Projekt. Deshalb bist du (mit deinen Kollegen) näher dran am Geschehen und weißt besser, was die Software in deinen Händen im Endeffekt tun oder nicht tun soll und wie; besser doch als derjenige oder diejenigen Programmierer, welche(r) sich den Code im core, vendor, src, system oder lib Verzeichnis ausdachte(n). Anpassungen am Core oder an Third Party Libraries für Bugfixes oder Erweiterungen außerhalb der für eigene Plug-ins oder Add-ons vorgesehenen Struktur können gemacht werden, wenn der Commit gespeichert und nach dem Update wieder eingesetzt wird.

Anwendungsbereiche

Mit diesem Konzept lässt sich die Funktionalität einer Software erweitern oder verbessern, wo es vorher nicht möglich war. Und dort, wo es bereits möglich war, kann man es schneller und auf explizitere Weise tun: Es werden nur die Zeilen des Herstellers in die Inkompatibilitätsgefahrenzone bewegt, die unbedingt dort hingehören. Außerdem warnt das System frühzeitig, wenn in einem Update des Herstellers an der gleichen Stelle Anpassungen stattfanden. Ein Umstand, den man sonst nur durch Testen oder schlimmstenfalls der Kunde als Fehler findet. Das trägt zu einer höheren Qualität der Software und einer reibungsloseren Wartung bei.

Die Unantastbaren

Open-Source-Software lässt sich prinzipiell ändern. Problematisch wird es, wenn man die Software auf eine neue Version aktualisieren will. Dann bügelt der Hersteller seine neuen Dateien einfach drüber, was in verschiedenen Fällen unzureichend ist. Open-Source-Software besteht üblicherweise aus

Core-Code des Herstellers,Drittanbietersoftware im Core-Code des Herstellers,Drittanbietersoftware (Plug-ins),eigenem Code (eigene Plug-ins).

Um Funktionen oder Layout zu editieren respektive zu erweitern, werden Änderungen an Dateien, welche nicht zu einem eigenen Plug-in (4.) gehören, nicht durchgeführt oder als Hack bezeichnet, weil diese bei einem Versionsupdate ...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang