Probabilmente non sei nuovo e ora hai la risposta. I link da @KeesDijk e @Aaron dovrebbero già fornire una risposta esauriente.
Dato che ho anche avuto la stessa domanda prima, questa risposta potrebbe essere utile per coloro che iniziano ad imparare Angularjs.
Should I have one module that contains all of the other objects in my application? This seems the easiest to set up, but this smells of the God Object Anti-Pattern to me.
Hai la risposta da solo. A meno che non sia un'app davvero piccola, avere un singolo modulo di solito non è una buona scelta.
Should I divide modules up by types of objects? i.e. one module for controllers, one for directives, etc.?
Supponiamo che tu abbia 4 moduli per controller / direttive / servizio / filtro ciascuno, una volta che hai più di 30 componenti. Ogni modulo ha 7-8 componenti. Dato che hai un'applicazione più grande, finirai come l'opzione precedente.
Inoltre, se si desidera riutilizzare una funzionalità, come la gestione degli utenti, è necessario avere dipendenza da diversi moduli.
Should I divide them by use? So that all directives, services, and filters that are used for part of the application are together?
Questa è la prassi raccomandata più comune. Un modulo / cartella per una funzionalità. È più facile da riutilizzare, leggere (da altri programmatori) e scalare man mano che l'applicazione cresce.
Anche la riusabilità è migliore, puoi semplicemente avere una dipendenza dal modulo 'utente'.
some other strategy I haven't yet seen / thought of?
In base all'opzione precedente, puoi avere varianti.
- Può essere utile strutturare il modulo in modo annidato per sub-funzionalità. Ad esempio, puoi avere il modulo 'utente' che contiene i moduli 'user-list' e 'user-edit'. (Vedi ad esempio link )
- È possibile separare il modulo comune / condiviso dal resto e prefissarli. Ex. "comune", "utente modello comune", "comune-ui-modale", ecc.