Lavoro su un'applicazione di ruby-on-rails per un'azienda (The Company) che fornisce servizi a un'altra società. Attualmente ci sono due tipi di utenti: i dipendenti della Società e gli utenti delle aziende clienti. Esistono anche altri esempi di risorse simili che si comportano in modo diverso per utenti interni e utenti esterni (client).
Esempi:
- ci sono fatture per i dipendenti della Società e per i clienti - ognuno ha una logica leggermente diversa
- la stessa risorsa (ad esempio
Order
) dovrebbe avere una visualizzazioneshow
diversa per tipi di utente diversi
Qual è il modo migliore per dividere tutto bene? Ho trovato le seguenti idee:
-
metti tutto in uno dei moduli:
Core
,External
,Internal
, doveInternal
sarebbe per La logica dell'azienda eExternal
sarebbe per i client. Esempio: avreiInternal::User
,External::User
,Internal::Invoice
eExternal::Invoice
modelli eCore::Identity
per dati utente comuni comeemail
(Internal::User
farebbe riferimentoCore::Identity
). Problema: come nominare questi moduli?Internal
eExternal
non mi sembrano buone. Sta usando Il vero nome dell'azienda è buono per un nome di modulo? Non sono convinto. Mi lascia ancora il problema di nominare il moduloExternal
. -
Utilizzando prefissi, ad es. avere modelli
internal_user
,external_user
,internal_invoice
,external_invoice
ecc. ma sembra proprio un caso perfetto per usare i moduli.