Skip to content

Commit afe9d80

Browse files
committed
add modularity image and beginning of the modularity section
1 parent a46f25c commit afe9d80

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

README.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1334,7 +1334,31 @@ Many of my styles have been from the many pair programming sessions [Ward Bell](
13341334
**[Back to top](#table-of-contents)**
13351335
13361336
## Modularity
1337-
TODO
1337+
1338+
- **Many Small, Self Contained Modules**: Create small modules that enapsulate one responsibility.
1339+
1340+
*Why?*: Modular applications make it easy to plug and go as they allow the development teams to build vertical slices of the applications and roll out incrementally. This means we can plug in new features as we develop them.
1341+
1342+
- **Create an App Module**: Create a application root module whose role is pull together all of the modules and features of your application. Name this for your application.
1343+
1344+
*Why?*: AngularJS encourages modularity and separation patterns. Creating an application root module whose role is to tie your other modules together provides a very straightforward way to add or remove modules from your application.
1345+
1346+
- **Keep the App Module Thin**: Only put logic for pulling together the app in the application module. Leave features in their own modules.
1347+
1348+
*Why?*: Adding additional roles to the application root to get remote data, display views, or other logic not related to pulling the app together muddies the app module and make both sets of features harder to reuse or turn off.
1349+
1350+
- **Feature Areas are Modules**: Create modules that represent feature areas, such as layout, resuable and shared services, dashboards, and app specific features (e.g. customers, admin, sales).
1351+
1352+
*Why?*: Self contained modules can be added to the application will little no no friction.
1353+
1354+
*Why?*: Sprints or iterations can focus on feature areas and turn them on at the end of the sprint or iteration.
1355+
1356+
*Why?*: Separating feature areas into modules makes it easier to test the modules in isolation and reuse code.
1357+
1358+
- **Reusable Blocks are Modules**: Create modules that represent reusable application blocks for common services such as exception handling, logging, diagnostics, security, and local data stashing.
1359+
1360+
*Why?*: These types of features are needed in many applications, so by keeping them separated in their own modules they can be application generic and be reused across applications.
1361+
13381362
13391363
**[Back to top](#table-of-contents)**
13401364

0 commit comments

Comments
 (0)