Mit Biphrost die Brücke schlagen
Bei Biphrost (eigentlich Bifröst) handelt es sich um die konsequente Weiterentwicklung des Algorithmus aus dem letzten Blog-Artikel. Der Name entstammt der nordischen Mythologie und beschreibt die dreistrahlige Regenbogenbrücke zwischen Midgard und Asgard und damit die Verbindung zwischen "Himmelsreich" und "Erdenwelt", übertragen stellt es die Brücke zwischen den Benutzern und der Applikation dar. Biphrost (hier runterladen) konzentriert sich dabei lediglich auf diesen Aspekt und wird keine Features integrieren, die man in größeren Frameworks vermuten würde, z.B. Datenbankabstraktion. Nachfolgend eine kurze Zusammenfassung der Ziele von Bifrost:
- Keine unnötigen Features: Der Entwickler soll selbst entscheiden, was er verwendet und wie er es verwendet. Da man nie jeden Entwickler mit angebotenen Komponenten zufriedenstellen kann, werden stattdessen gar keine (zusätzlichen) Komponenten angeboten.
- Einfache Lösungen bevorzugen:
- Sind leicht verständlich und minimieren somit Misskonzeptionen.
- Reduzieren die Fehleranfälligkeit.
- Sind i.d.R. schneller als komplexe oder komplizierte Lösungen.
- Bieten häufig mehr Möglichkeiten als es den Anschein hat, sofern man es zulässt.
- Erweiterbare Lösungen: Wenn jemand komplexere Probleme lösen will, soll Bifrost einem keine Steine in den Weg legen.
- "So wenig wie möglich, so viel wie nötig."
- Alle Freiheiten dem Entwickler überlassen um ihm die Möglichkeit zu gewähren, selbst kreative Lösungen zu entwickeln, auf die bisher noch niemand gekommen ist.
Trotz oder vor allem aufgrund der Tatsache, dass Bifrost wenig bietet,
lässt sich Bifrost für eine Reihe von interessanten Anwendungsgebieten
einsetzen, denn Bifrost kann für folgende Applikationstypen als
Grundlage dienen:
- Kleine bis mittlere Webapplikationen, was wohl den meisten Webapplikationen auf dem Markt entspricht,
- Große Frameworks, wie z.B. das Zend Framework.
- Eigenständige Applikationen, z.B. Blogging-Software.
Dies ist vor allem der Tatsache geschuldet, dass Bifrost sehr
flexibel und erweiterbar ist, es ist also ein Framework im wörtlichen
Sinne: Ein Gerüst. Die meisten Features gängiger Frameworks lassen sich
ziemlich einfach mit Bifrost nachbilden, wenn man die Zeit investieren
möchte.
Der schlanke Aufbau von Bifrost hingegen führt zu einer sehr schnellen
Abfertigung von Anfragen. In einem einfachen "Hello World"-Beispiel,
das Bifrost bereits enthält, konnte Bifrost 65% so viele Anfragen pro
Sekunde verarbeiten wie eine PHP-Datei, die lediglich "Hello World"
ausgibt. Betrachtet man die reine Zeit, die das PHP-Skript braucht, ist
das "Hello World"-Skript 40x so schnell wie Bifrost. Auch wenn diese
Zahlen nicht wissenschaftlich belegt sind, ist die Tendenz unverkennbar.
Die nächsten Schritte beinhalten exzessives Testen und das Schreiben
automatisierter Tests sowie einige Praxistests. Veröffentlichungen
werden dann im Blog angekündigt.
Vielen Dank gilt KingCrunch für die inspirierenden Diskussionen.