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 visualizzazioneshowdiversa 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, doveInternalsarebbe per La logica dell'azienda eExternalsarebbe per i client. Esempio: avreiInternal::User,External::User,Internal::InvoiceeExternal::Invoicemodelli eCore::Identityper dati utente comuni comeemail(Internal::Userfarebbe riferimentoCore::Identity). Problema: come nominare questi moduli?InternaleExternalnon 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_invoiceecc. ma sembra proprio un caso perfetto per usare i moduli.