sibest19 / BuonApp

Apache License 2.0
0 stars 0 forks source link

Sviluppo del domain model #1

Open LucaBlackDragon opened 8 years ago

LucaBlackDragon commented 8 years ago

Dato per assodato che gestiamo tutta l'applicazione tramite javascript, ricorrendo a FireBase o ad altre soluzioni del genere, occorre decidere come sviluppare il domain model (es. sintassi "classica" per gli oggetti javascript oppure nuova sintassi Javascript2015?) ed eventualmente che tool utilizzare.

Per la realizzazione di un prototipo ho provato Software Ideas Modeler, un software gratuito (per uso non commerciale) che permette di generare il codice per le classi in vari linguaggi (fra cui javascript) a partire dalla realizzazione di diagrammi tipo questo (che rappresenta parte del model che avevo buttato giù giorni fa):

buonappobjects

Probabilmente questo programma è un po' "overkill" per quello che dobbiamo fare, però avere una visualizzazione grafica da cui partire non è male.

LucaBlackDragon commented 7 years ago

Ipotesi di Domain Model

export interface Identifiable {
  id: string;
}

export interface Person extends Identifiable {
  name: string;
  email: string;
}

export interface MenuElement extends Identifiable {
  name: string;
  description?: string;  
}

export interface Ingredient extends MenuElement {
  base: boolean; // fa/non fa parte per default della ricetta
  optional: boolean; // può/non può essere rimosso
}

export interface Recipe extends MenuElement {
  price: number;
  ingredients: Ingredient[];
}

export interface Dish extends MenuElement {
  recipes: Recipe[];
}

export interface Order extends MenuElement {
  dishes: Dish[];
  client: Person;
}