-
Notifications
You must be signed in to change notification settings - Fork 55
Architecture
“All modules are equal, but some modules are more equal than others.”
The central architecture of SOCRAT
was conceptualized keeping one thing in mind - scalability.
Nicholas C. Zakas in his popular talk "Scalable JavaScript Application Architecture", laid a foundation for creating scalable and maintainable single-page application architectures. His ideas were further extended by Addy Osmani in his article "Patterns For Large-Scale JavaScript Application Architecture".
Markus Kohlhase implemented scaleApp
, a small framework based on a decoupled, event-driven architecture inspired by Zakas's ideas. Another extensible, widely used framework is AngularJs
, which implements many similar ideas including modularity, messaging services, and easy testability.
SOCRAT
in many core parts is based on these great works and further extends them. The resulting architecture is robust, very flexible, and easily scalable.
SOCRAT
follows maximally decoupled, modular architecture, based on AngularJs
modules, that are implemented via CoffeeScript
classes. AngularJs
's dependency injection is used to manage each module components, while modules themselves try to avoid having other modules as direct dependencies, except for Core modules
. This wiki page explains in detail how to quickly build a custom module.