175-350ms) • Steigerung der Wartbarkeit und Erweiterbarkeit • Testbarkeit des Codes sicherstellen • Auftrennung des Codes nach OOP Mustern (SOC, IOC, ...)
PHP Requests (weltweit) werden aus Düsseldorf bedient. • Kein CDN / HTTP Caching für HTML • Pro Suche zwischen 10 und 100 AJAX Requests (Polling, Filtering, etc.) Performance
von Business Code trennen (Physikalisch & Architektur) • trivago's Business Code enthält keine Referenzen auf Symfony APIs • Ausnahme: Symfony APIs mit eigener Impl. (Security, Event Listener, Twig Extensions).
Query eine Class) Entities ("dumme" Klassen mit public Properties) Services (Datenbeschaffung durch Components, Cache Steuerung, Aggregation mehrerer Services) Business Cases (Modellierung der Geschäftslogik durch die Verwendung von Services) Symfony2 Controller In manchen Fällen erw- eist sich ein Business Case als ineffizient
unvollständig, die XSDs sind die bessere Doku. • Konfiguration pro Hostname + config_local für lokale Überlagerung macht Sinn • Versioniertes Cache-Dir (Release ID) um zwei Stände gegen einander zu halten + Rollback wenns brennt
Rendern von HTML für AJAX veringert, durch json_encode ersetzen • Erster Versuch: Universal Classloader ggn XCacheClassloader ersetzen. #fail • Statischer Autoloader (@arneblankerts) #win