IPC Tag 2

In der ersten Keynote geht es darum, was denn nun die Cloud wirklich ist. Zu fast jeder proprietären Software im Netz existiert mittlerweile eine offene Alternative, z.b. Diaspora, OpenPhoto, FreedomBox,…

Zend Framework 2:
Endlich keine require_once Aufrufen mehr in den Framework Klassen. Und das  generierbarer Map sieht gut aus und soll bis zu 85% schneller sein. Ausserdem gibt es noch Autoloading per Namespace und Präfix.
Ein Dependency Injection Container ist jetzt auch mit dabei. Sogar als genetischer, konfigurierbare Reflection Ansatz und via Annotations. Bin gespannt wie schnell das ist.
Und endlich ist ein ordentliches Event Management dabei, so wie es aussieht.
Am MVC werden wohl die meisten und einschneidendsten Änderungen vorgenommen. Controller müssen nun ein Interface imementieren und es soll viel einfacher sein Module anzulegen.
Die Migration sieht dank Prototyp auch relativ einfach aus. Und endlich werden die View Variablen als Return Value der Action übergeben.

Hypermedia:
REST ist mittlerweile ein Buzzword wie Cloud. REST bedeutet vorallem, dass es sauber Maschinen lesbar ist und etwas über den Status einer Applikation sagt. Daher sollten Rückgabe sollten Semantik besitzen und z.b Links auf weitere REST-URLs enthalten. Lovefilm besitzt eine solche Schnittstelle.

RESTful:
Auch hier sollte man möglichst semantisch arbeiten. Das fängt bei klaren URLs an. Natürlich ordentliche Http Methoden und Rückgabewerte benutzen. Z. B. Nach dem Anlegen eines Produktes 201 zurück gegeben. Zusätzlich noch den Link auf das neue angelegte Produkt. Nach Möglichkeit sollte auch ein eigener Content Type benutzt werden. Dieser sollte mit application/vnd. anfangen, so beißt er sich mit keinem anderen. Accepted Methods auf get, post, put und delete setzen. Als XML Namespace kann man z. B. Atom benutzen. XML Rückgaben sind einfacher zu erweitern als JSON. Die Version der API sollte nicht in der URL stehen, sondern via Http Header übertragen werden.

Symfony2:
Symfony2 ist eher zu einem Komponenten Framework geworden als Version 1. Der Kernel entspricht der Bootstrap bei Zend Framework. Auch die Routen funktionieren sehr ähnlich.
Importieren von anderen Dateien in Konfigurationsdateien ist sehr elegant gelöst, weg von der Kaskaden. Und gecached als PHP Dateien werden die dann auch. Nice.
Und die Debugger Bar und das dazu gehörige Webinterface sind absolut mega.
Doctrine 2 ist eingebaut.
Neben normalen PHP Views kann man via Bundle eine beliebige Template Engine benutzen. Hier wird twig favorisiert.
Das Konzept im Model die Ausgabe (z. B. wie das als JSON aussehen soll) ist interessant aber gewöhnungsbedürftig.
Validierung am Model via Annotations gefällt aber auch daran muss man sich gewöhnen.

Scalable HighPerformance Architectures:
I/O ist sehr teuer. CPU nicht. Performance Metriken sind Durchsatz, Response Time, Ressource Usage und Verfügbarkeit. Performance = Sinnvolle Ergebnisse in Relation zu den eingesetzten Ressourcen.
Skalierbarkeit darf dabei nicht aus den Augen gelassen werden.
Bottlenecks in Applikationen lassen sich nur schwer voraussagen, meist sogar gar nicht.
Lösungen sind parallele Abarbeitung, Entkopplung, Queues, Asynchronität und Abarbeitung im Voraus.
Caches im Vorfeld berechnen und nur bei der Änderung der Daten neue berechnen.
Seiten die selten benutzt werden, müssen nicht vorberechnet werden und können per Pull generiert werden.
Error Handling bei Asynchronität ist schwierig.
Technologien um das zu erreichen sind die üblichen Verdächtigen: Gearman, APC,…

GD Star Rating
loading...

Kommentar verfassen