Siamo sul punto di lanciare v3 del nostro prodotto interno. v2 è stato scritto completamente in AngularJS e V3 sarà lo stesso, ma scritto completamente in Typescript.
Abbiamo alcuni clienti che hanno esigenze molto specifiche per il prodotto e ciascuno ha una propria versione (ospitata sulla nostra piattaforma) e ha una propria implementazione. Ci sono parti comuni condivise che sono le stesse per tutti.
Al momento tutto è in una soluzione (Visual Studio) che preferiamo grazie alla facilità di manutenzione, ma ha creato un gran casino di mix di impostazioni, opzioni specifiche dell'azienda ecc. Ci sono un sacco di istruzioni if-else nei controller, nelle direttive e persino nelle viste (ancora, tutto angularJS) da accompagnare per più aziende.
Ora in V3 stiamo ripensando questa configurazione e vogliamo diventare più flessibili, ogni azienda avrà i suoi controller, direttive e viste, con la possibilità di condividere parti e utilizzare un livello di servizio / dati per gestire attività condivise comuni .
Ora sto pensando come posso renderlo gestibile? Al momento abbiamo 6 clienti, ma ci si aspetta che crescano con 10-15 ogni anno. Temo che finiremo di nuovo con una grande pila di file disseminati nel progetto che rende difficile la manutenzione e il test.
Voglio evitare questo e mantenere il progetto flessibile e gestibile.
Dovrei trovare un modo per dividere ogni azienda in soluzioni separate con i file Javascript / Typescript comuni per l'avvio e il routing delle app in un progetto comune? Forse hai una sola cartella per ogni azienda con controller, direttive e viste personalizzati, ma come si gestirà il routing?
Come ci avviciniamo alla gestione delle app aziendali con più aziende?
PS. La nostra applicazione web è angolare perché quasi tutto è lato client, ha la capacità di funzionare al 100% offline per lunghi periodi di tempo, il back-end non è importante per questo problema.