System-Architektur

Wir verwenden Java als Programmiersprache. Die kurze Begründung dafür lautet: Java ist seit Jahren für unzählbare "Enterprise-Anwendungen" im Einsatz. Wir sind daher sicher, dass Java auch für unsere Zwecke sinnvoll ist.
Für die Speicherung sämtlicher Daten (z.B. Spiele-Namen und Eigenschaften) benutzen wir Java Persistence API (JPA) zusammen mit Hibernate als Persistenz-Framework. Die Abhängigkeiten der zu verwendeten Java-Bibliotheken werden über Maven realisiert.
Nach einigen Gehversuchen mit Dropwizard haben wie die Entwicklung auf Spring Boot umgestellt. Für den gesamten Entwicklungsprozess möchten wir die Konzepte des Domain Driven Design berücksichtigen. Als Gesamt-Systemarchitektur streben wir etwas wie eine Hexagonale Architektur an.
Den ersten Entwurf unserer Systemarchitektur haben wir mittlerweile wieder verworfen - nach den Erkenntnissen aus dem Buch Implementing Domain Driven Design macht eine "traditionelle" Schichtenarchitektur wenig Sinn für langfristige Wartbarkeit und gut testbaren Programmcode. Sehr hilfreich für diese Erkenntnisse war die Präsentation Agile, Architecture, DDD and CQRS.
Aktuell (November 2016) sammeln wir weitere Informationen über Themen wie CQRS und Event Sourcing.

Mitmachen

Sämtlicher Programmcode (Java, HTML, CSS, ...) wird unter der GNU Affero General Public License (AGPL) lizensiert. Dadurch wird gewährleistet, dass jeder freien Zugriff auf den Code hat und ihn für seine Zwecke nahezu beliebig einsetzen darf. Der Quellcode ist hier bei github zu bekommen.
Unterstütze uns bei der Realisierung der ersten offenen Spiele-Datenbank, wir suchen immer weitere Programmierer!
Zum Einstieg kannst Du in unserem Entwickler-Forum vorbeischauen. Am besten direkt im Forum registrieren und mitreden!