It is a tool to structure a project as a set of small orthogonal mixins glued together with supercalls, chaining, and advices leading to reducing the overall codebase, and clear path to refactor the resulting project.
- Works in node.js and browsers (both AMD, and globals).
- Fully compatible with strict mode.
- Small codebase.
- Easy to learn, easy to use.
- Intentionally small set of orthogonal features.
- Extensively tested.
- Uses continuous integration running >150 automated tests.
- Liberally licensed.
- Legally clean code.
- Developed in the open.
- All contributions are covered by CLA.
- Targets OOP with mixins technology.
- Full support for AOP (before, around, after returning, and
after throwing advices).
- AOP can be applied at “class” level (statically) or at object level (dynamically).
- Dynamic advices can be unadvised at any time.
- Comes with a mini library of useful generic building blocks.
Stress on debuggability
The package was written with debuggability of your code in mind. It comes with a special debug module that verifies created objects, explains mistakes, and helps to keep track of AOP advices.
dcl uses direct static calls to super methods, you don’t need
to step over unnecessary stubs. In places where stubs are unavoidable
(chains or advices) they are small, and intuitive.