Allgemein (69)
Rating: 0 (0)


[b]Dev-Log v5[/b] Es geht tatsächlich weiter :eugly Aktuelle Änderungen: [b]- Datenbank:[/b] Bis jetzt basiert der GC auf einem recht einfachen Datenbankmodell, das sich aufgrund der Entstehung noch an den Fähigkeiten von MySQL 3.* orientiert. Da der v5 den wesentlich mächtigeren Datenbankserver PostgreSQL 8 benutzt, können Techniken wie Views, Materialised Views und Stored Procedures benutzt werden. Dadurch wird das Datenbankmodell an sich komplexer, die Abfrage in den Scripts der Website und des Chatserver aber wesentlich einfacher und besser wartbar. Zudem können Optimierungen an zentraler Stelle durchgeführt werden, ohne einzelne Abfragen in den Scripts anzufassen. [b]- Userdaten:[/b] Eines der Probleme des aktuellen v4.8 ist die Komplexität des Userdaten-Systems. Da an vielen Stellen in der Community detaillierte Userdaten angezeigt werden (Alias + Geschlecht + Adminstatus oder Vereinsmitglied) und das aktuell benutzte MySQL gerade bei der Userdatenbank schon seit längerem an seine Grenzen stösst, wurde ein kompliziertes Cache-System implementiert, das möglichst viele Datenbank-Abfragen sparen soll. Der Performance-Zuwachs durch diese Technik war teils beträchtlich, brachte jedoch immer wieder Probleme bei der Datenintegrität mit sich (z.B. wenn im Chat angezeigt wird, dass ein User ein Profilbild hat, dieses aber gelöscht wurde). Aufgrund der oben beschriebenen Möglichkeiten der neuen Datenbank wurde das Cache-System fast vollständig entfernt und durch stark optimierte Datenbank-Abfragen ersetzt, wodurch das Userdaten-System wesentlich vereinfacht wurde (ca. die Hälfte des betreffenden Codes konnte gespart werden), ohne dass die Performance in Mitleidenschaft gezogen wird. Insbesondere durch die Auslagerung der User-Datenbank auf eine Ramdisk ist sogar noch ein Performance-Zuwachs zu erwarten. [b]- Session:[/b] Das Session-System wurde entschlackt und benutzt jetzt keine transparenten Session-IDs mehr (bekanntes Sicherheitsproblem - never ever post your session id), sondern die mittlerweile für diesen Zwecks üblichen Cookies. Da das "Entwenden" fremder Session-IDs dadurch wesentlich erschwert wird, konnte die Bindung einer Session an eine bestimmte IP-Adresse entfernt werden, wodurch insbesondere in Umgebungen wie Studentenwohnheimen, Ämtern und Firmen verursachte Probleme mit Proxies umgangen werden. [b]- Template / Output:[/b] Das Template-System wurde ebenfalls entschlackt und aufs wesentliche reduziert, dabei aber mit neuen Features ausgestattet. Wie gehabt kann das System mehrere Skins verwalten, jetzt allerdings auch mehrere verschiedene Templates. D.h. ein Modul kann bestimmen, ob seine Aufgabe eine normale HTML-Seite mit Menue, Onlineliste usw. ist, oder aber eine völlig andere, wie z.B. ein XML-File. Dadurch können auf direkten Weg z.B. RSS-Feeds für die Weblogs integriert werden.