Verifica del progetto - architettura dell'applicazione chat

4

Quindi, per il mio ultimo progetto di hobby, voglio creare una semplice applicazione di chat in cui gli utenti possano semplicemente accedere con un nickname (senza password) e parlare con chiunque sulla rete.

Al di sopra della mia testa, sto pensando a questo progetto in cui un frontend Client acquisisce un oggetto User registrandosi con un nickname.

Un oggetto Message può comportarsi come pacchetti nella rete, con un Postman che consegna un determinato oggetto Message al destinatario previsto.

Quando un utente invia un messaggio, chiama:

    postman.addMessage(message);

e Postman restituisce questo valore alla inTray che si trova in Server .

Il Postman del destinatario trova infine un oggetto Message destinato a loro in outTray e lo recupera per il Client .

Qualche idea sul design? Per quanto ne so, probabilmente fa schifo ma alcune critiche costruttive sono sempre ben accette.

    
posta orion_ix 19.10.2016 - 23:30
fonte

1 risposta

4

Secondo le tue spiegazioni, l'utente interagisce con un postino per inviare e ricevere messaggi, che sono memorizzati su un server.

È un buon inizio. Ma non sono sicuro che il diagramma di classe rifletta pienamente le tue spiegazioni; Solleva anche alcune domande:

  • l'utente verrebbe "composto" da più client ?? Pensavo che l'utente dell'utente si sarebbe registrato ad un cliente. O alla fine che un cliente sarebbe proprietario di diversi utenti.
  • il client dovrebbe rappresentare l'interfaccia utente?
  • il postino sarebbe composto da diversi utenti ?? Intendi dire che un postino serve diversi utenti. E qual è la relazione tra un postino un cliente e un server?
  • sono la matrice / outray sul server organizzato dal postino? per utente? o è globale per tutti gli utenti / postino?
  • sono messaggi archiviati due volte sul server: in outray (send by user) e in intray (adressed to user)?
  • quando il messaggio viene inviato al server, una copia è conservata nel postino? quando un messaggio viene recuperato dal server, viene rimosso lì?
  • la nozione di sessione utente non è rappresentata qui. Cosa succede se un utente si disconnette e accede in seguito? Cosa succederà ai messaggi che ha ricevuto nel frattempo? lo stesso postino servirà sempre lo stesso utente?

Come puoi vedere sopra, sei molto all'inizio del tuo progetto. Senza affrontare tutti questi punti, ti proporrei già un diagramma revisionato:

Alcuni aspetti chiave:

  • Non esiste una relazione permanente tra postino e server: un posman non è correlato strutturalmente a un server. Esiste solo una dipendenza, perché quando a un postino viene detto di connettersi con un server, deve conoscere l'interfaccia del server (ancora da definire)
  • I messaggi possono essere memorizzati in un postino o su un server (vedere i diamanti neri).
  • c'è un link da chiarire tra un utente e un postino (ad esempio l'utente ha un link al postino o il postino ha un elenco di utenti).
  • c'è un link da chiarire tra un utente e un ClientUI. Poiché l'utente sembra essere creato durante la connessione all'interfaccia utente, possiamo immaginare che l'utente sia stato creato dall'interfaccia utente.
  • bisogna chiarire come vengono gestiti i server: ogni client gestisce un server? Viene fornito il server al momento dell'accesso? Il server è gestito in modo indipendente? il server viene cercato tramite un protocollo di rete dal postino quando ne ha bisogno? Hai bisogno di chiarire questo.
risposta data 22.10.2016 - 21:49
fonte

Leggi altre domande sui tag