ColdBox Modules are self-contained subsets of a ColdBox application that can be dropped in to any ColdBox application and become alive as part of the host application. They will bring re-usability and extensibility to any ColdBox application, as now you can break them down further into a collection of modules instead of monolithic approaches. CommandBox will also help you manage, install, track and uninstall modules as part of your development workflow.
This concept of modularization has been around in software design for a long time as it is always essential to partition a system into manageable modules or parts.
"In structured design and data-driven design, a module is a generic term used to describe a named and addressable group of program statements" by Craig Borysowich (Chief Technology Tactician)
The key to the statement is that these modules are named and addressable, which is exactly what ColdBox Modules will offer to your application. So by building an application with a methodology of modules, you will inherently achieve:
- Manageability (i.e., small and simple parts that can be easily understood and worked on)
- Independence (i.e., a module can live on its own if necessary and tested outside of its environments, produces very nice low coupling between core and modules)
- Isolation (i.e., some modules can be completely isolated and decoupled)
- Extensibility (i.e., you can easily extend ANY application by just building on top of the modular architecture)
- Reusability (i.e., modules have independence and can therefore be shared and reused)
- Sanitability (Yes! That's a word) from the root Sanity
ColdBox Modules will change the way you approach application development as you can now have a foundation architecture that can scale easily and provide you enough manageability to reduce maintenance and increase development. Such a design means that development, testing and maintenance becomes easier, faster and with a much lower cost. Welcome to a brave new world!