Repository vs Architettura client-server

1

Sono attualmente in un corso universitario che richiede agli studenti di lavorare in gruppo su un progetto semestrale. Nel caso del mio gruppo, siamo stati incaricati di creare un sistema di localizzazione. Ci sono due componenti principali del sistema: il backend (che ospita il datastore, espone gli endpoint, eccetera) e l'app mobile con cui i nostri utenti interagiscono. Gli utenti che hanno abilitato il tracciamento tramite l'app client avranno la loro posizione inviata al server su un intervallo regolare. Ogni utente è anche in grado di visualizzare la posizione degli utenti monitorati vicino alla posizione corrente.

Per me, questo scenario sembra prestarsi all'architettura client-server. Uno dei miei compagni di gruppo, tuttavia, riteneva che "fosse più simile all'architettura in stile repository". Mi sto perdendo qualcosa? Su una nota in qualche modo correlata, l'architettura del repository differisce da quanto discusso in questo video: link ? In caso contrario, il modello di repository e l'architettura client-server non possono esistere in tandem?

Ecco un paio di diapositive del corso, per riferimento:

    
posta kylemart 02.11.2017 - 01:34
fonte

2 risposte

1

In effetti il tuo istinto è corretto. Questi due concetti, repository e client-server, sono due concetti e astrazioni completamente diversi. Sono completamente ortogonali tra loro. Possono esistere entrambi all'interno della stessa applicazione. In effetti un sistema client-server potrebbe anche avere due repository, uno nel client e uno nel server.

Il repository sembra più un modello di progettazione OOP per me ora, e non un'architettura di sistema come client-server.

    
risposta data 02.11.2017 - 04:09
fonte
3

La maggior parte dei sistemi del mondo reale impiega modelli architettonici multipli. Nel tuo caso l'interazione tra il cellulare e il back-end è chiaramente client / server, ma il back-end avrà un archivio dati dietro di esso che si adatta più strettamente al pattern del repository.

Il mio consiglio sarebbe di non rimanere troppo appeso a quale schema stai usando perché potresti finire per forzare tutto in quel modello anche quando non ha senso. Concentrati invece su ciò che è necessario per rendere il sistema efficiente, ecc.

    
risposta data 02.11.2017 - 05:05
fonte

Leggi altre domande sui tag