29. Apr. 2025
Tilo Kowalski
67
Als ich mit achtzehn Jahren mein erstes eigenes Framework, ein ORM-System namens Flink, entwickelt habe, hatte ich keine Ahnung, wie sehr mich dieses Projekt prägen würde. Es war kein Uni-Projekt, keine Arbeit aus der Ausbildung oder einem Kurs. Flink entstand aus reiner Neugier und dem Wunsch, etwas Eigenes zu erschaffen. Als bislang autodidaktischer Entwickler hatte ich zuvor vor allem kleinere Nebenprojekte betreut und Flink war mein Versuch, ein komplexeres Problem zu lösen: die Abbildung von Datenbankinhalten auf Objekte – ohne viel Boilerplate-Code oder manuelle Abfragen.
Damals kam mir überhaupt nicht die Idee, dass dieses Problem längst schon gelöst sein könnte. Ich habe nicht einmal danach gegoogelt, ob es bestehende Projekte oder Frameworks gibt, die ORM-Funktionalitäten bereitstellen. Im Gegenteil – von dieser Abkürzung hatte ich noch gar nicht gehört. Im Nachhinein bin ich froh darüber, denn diese Unvoreingenommenheit ermöglichte es mir, das Problem völlig eigenständig zu durchdenken und innovative Ansätze zu finden, die mir mit dem Einfluss bestehender Frameworks vielleicht nie in den Sinn gekommen wären. Womöglich hätte ich meinen Gedanken sogar vollständig verworfen und hätte nie die wertvolle Erfahrung gemacht, mal selbst ein Framework zu entwickeln – mit all den Fehlern und Erfolgen, die dazugehören.
Und tatsächlich: Flink funktionierte. Es war im Einsatz für reale Kundenprojekte und hat mir unglaublich viel über Softwareentwicklung beigebracht. Aber wie bei jeder Lernerfahrung wurde mir irgendwann klar, dass es Zeit war, weiterzuziehen. In diesem Artikel möchte ich teilen, was ich aus der Entwicklung von Flink gelernt habe – und warum ich es irgendwann hinter mir gelassen habe.
Damals fand ich die Vorstellung faszinierend, Datenbanktabellen in PHP direkt durch Klassen und Objekte zu repräsentieren. Ich wollte eine Lösung schaffen, die so einfach wie möglich zu nutzen war: Man definiert eine Klasse, gibt ihr ein paar Attribute, und alles – von Speichern über Abrufen bis hin zu Relationen – funktioniert "wie von Zauberhand". Ich habe viel mit magischen Methoden (__call
, __get
, etc.) experimentiert, um dynamische Abfragen wie User::getByEmail()
oder $user->getPosts()
zu ermöglichen, ohne dass diese Methoden explizit programmiert werden mussten.
Das Ziel war klar: Ein Entwickler sollte möglichst wenig tun müssen, um mit der Datenbank zu arbeiten. Alles andere sollte Flink erledigen.
Flink hatte definitiv seine Stärken:
Es war außerdem ein großartiges Gefühl, zu sehen, wie meine Kundenprojekte auf Basis eines eigenen, wiederverwendbaren Werkzeugs liefen. Zu wissen, dass etwas, das ich selbst geschrieben hatte, tatsächlich produktiv genutzt wurde, war unglaublich motivierend.
Trotz aller Erfolge hatte Flink offensichtliche Schwächen – viele davon wurden mir erst später klar:
__call
und __get
machte den Code schwer wartbar und debugfähig. Dynamische Methoden wie User::findBy*
waren zwar cool, aber die Fehlerbehandlung und das Debugging waren ein Albtraum.Mit der Zeit habe ich die Grenzen von Flink erkannt – und das hat mich dazu gebracht, weiterzuziehen. Ich habe Symfony und das Doctrine ORM kennengelernt und war sofort beeindruckt von der Flexibilität und Professionalität, die diese Tools boten. Dinge, die in Flink mühsam oder unmöglich waren, waren in Doctrine Standard.
Rückblickend war Flink eine unglaubliche Lernmöglichkeit. Es hat mir gezeigt, wie schwer es ist, gute Software zu schreiben, und wie viel Arbeit hinter scheinbar "einfachen" Tools steckt. Es hat mich dazu gebracht, über Wartbarkeit, Performance und Sicherheit nachzudenken – Dinge, die heute in meiner täglichen Arbeit selbstverständlich sind.
Der wichtigste Punkt, den ich aus Flink mitgenommen habe, ist dieser: Mach Fehler, und mach sie früh.
Flink hatte viele Schwächen, aber es war ein Projekt, bei dem ich all diese Schwächen selbst erleben und verstehen musste. Ohne Flink hätte ich nie so viel über Softwareentwicklung gelernt, wie ich es in den Jahren danach getan habe.
Heute arbeite ich im PHP-Umfeld fast ausschließlich mit Doctrine, aber Flink bleibt für mich ein Meilenstein. Es zeigt mir, wie weit ich gekommen bin – und erinnert mich daran, wie wichtig es ist, neugierig zu bleiben und Neues auszuprobieren.
Wenn du in einer ähnlichen Situation wie ich damals bist und nicht sicher bist, ob sich diese eine Projektidee, über die du ständig nachdenkst, wirklich lohnt, dann sage ich: Geh es an! Nicht, weil es das beste Tool wird, sondern weil du unglaublich viel daraus lernen wirst. Und wer weiß, vielleicht ist es der erste Schritt auf deinem Weg zu noch größeren Projekten – so wie es Flink für mich war.
Wir bieten kundenspezifische Software, ergänzt durch Beratungsleistungen und Schulungen. Unsere Expertise vereint jahrzehntelange Erfahrung mit frischen, modernen Technologien, um innovative und zuverlässige Ergebnisse zu liefern.
Kowada UG (haftungsbeschränkt)
Adresse: Kleiner Ring 10, 65550 Limburg
E-Mail: kontakt@kowada.de
Telefon: +49 6431 5687 345
© 2025 Kowada UG (haftungsbeschränkt)