Aktuelle Codemetriken

Patrizier Sven
Stadwappen Oskarhamn

Ab und zu erhalte ich von interessierten Leuten Emails mit der Frage wie umfangreich eigentlich so ein Spiel sei. Daher gibt es heute mal ein paar Codemetriken zum aktuellen Stand 😉

Das Spiel selber ist in Frontend und Backend aufgeteilt. Das Frontend ist alles, was ihr unter trader.galiator.de seht, das Backend ist nur fĂŒr mich :D. Zum Backend selbst gehört auch der Daemon, welcher fleißig das Spiel am laufen hĂ€lt und alle möglichen Berechnungen und Datenbankupdates macht.

Das Spiel selber ist komplett in PHP geschrieben, setzt auf CakePHP als Framework auf, nutzt als Datenbank MySQL und lĂ€uft auf einem Debian vServer von 1st-rootserver. Die Darstellung fĂŒr den Spieler benötigt keinerlei Plugin, da nur reines HTML sowie Javascript in Form von jQuery zum Einsatz kommt.

Frontend

  • besteht aus 55 Controllern, sowie aus 40 definierten Model Klassen – der Rest wird automatisch an Hand der Datenbankstruktur zur Laufzeit erzeugt
  • die Controller, sowie die Modelle enthalten 10868 Zeilen PHP Code und 4684 Kommentarzeilen bzw. ApiGen Dokumentation
  • fĂŒr die Ausgabe sorgen 203 Views und 333 Grafiken
  • 1100 Zeilen Javascript – neben jQuery – erzeugen die Dynamik im Browser

Backend schlanker

  • alle Ausgaben und Bearbeitungsmöglichkeiten sind per Scaffolding mit 150 Zeilen PHP Code und 4 Views abgedeckt
  • der Daemon besteht aus 5500 Zeilen PHP Code, nutzt 48 Models und wird ausschließlich als Konsolenprogramm gestartet
  • die Hauptroutine des Daemon ist eine Endlosschleife mit sleep(), welche die AusfĂŒhrung der einzelnen Jobs aus der Queue anstĂ¶ĂŸt

Datenbank

  • hat derzeit 85 Tabellen, wobei nur 59 genutzt werden – die restlichen sind schon fĂŒr neue Funktionen und Erweiterungen entworfen worden
  • enthĂ€lt rund 50.000 DatensĂ€tze mit einer GesamtgrĂ¶ĂŸe von 10 MB fĂŒr das Spiel
  • ca. 800.000 DatensĂ€tze fĂŒr statistische Anzeigen der Warenpreise, Berechnung der Bevölkerungsentwicklung und anderen temporĂ€ren Daten

»«

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.