Polish Language Game - Ruby DDD demo

11
A DDD app in a Month Plans for a Polish Language Inflection learning game using Realm Ash Moran [email protected]

Transcript of Polish Language Game - Ruby DDD demo

Page 1: Polish Language Game - Ruby DDD demo

A DDD app

in a MonthPlans for a

Polish Language Inflection learning game

using Realm

Ash Moran

[email protected]

Page 2: Polish Language Game - Ruby DDD demo

My Problem

jeść

Ja teraz jem

Ty teraz jesz

My wzoraj (r. ż) #@?!

Page 3: Polish Language Game - Ruby DDD demo

Example tool onlineTells but doesn’t ask :-(

Page 4: Polish Language Game - Ruby DDD demo

Idea

jeść

My wczoraj (r. ż) Idź

My wczoraj (r. ż) jedliśmy❌

Spróbuj jeszcze raz

jedliśmy

Page 5: Polish Language Game - Ruby DDD demo

Idea

jeść

My wczoraj (r. ż) Idź

My wczoraj (r. ż) jadłyśmy✅

jadłyśmy

Następne pytanie…

Page 6: Polish Language Game - Ruby DDD demo

DDD - Events

Session Created (1)

Question Added (1+)

Session Started

Question Proposed (<loop>)

Question Answered Correctly

Question Answered Incorrectly (</loop>)

Session Ended

Page 7: Polish Language Game - Ruby DDD demo

API HTTP Server

Webmachine.rb/Celluloid

Architecture(proposal)

Command API

Query API

Polish

Inflector

Gem

Game HTTP Server

Sinatra

Game

Web

UI

Page 8: Polish Language Game - Ruby DDD demo

API HTTP Server

Webmachine.rb/Celluloid

Architecture(maybe later)

Command API

Query API

Polish

Inflector

Gem

Game HTTP Server

Game

Web UI

Game iOS App

RubyMotion UI

Page 9: Polish Language Game - Ruby DDD demo

Core Bounded Context (your app

subsystem)

How Realm workshttps://github.com/realm-ddd/realm

Command

APIQuery API

Message Bus (commands, events)

event definitions

Generic Subdomain reusable subsystem

(eg identity)

Command

APIQuery API

event definitions

Realm entities

All code inside the Realm gem

Realm protocol

Page 10: Polish Language Game - Ruby DDD demo

Show the GitHub page

Page 11: Polish Language Game - Ruby DDD demo

Goal for Next Month

Sinatra front-end app

Polish Inflector gem – regular forms and most important irregular

verbs

Back-end API server for at least one type of game

Update Realm gem

Documentation / blog post how you could build an app the same way

Presentation to show (how) it works