Skip to content

Reasons Behind The Framework

mr-mig edited this page Dec 13, 2014 · 4 revisions

Why another framework?

Frameworks like backbone, angular, react provide general purpose abstractions and some useful tools.

Sometimes it's hard to find guidelines and conventions for app development.

This framework will provide some opinionated conventions and higher-level fine-grained abstractions.

Main goals

  1. Modular, reusable, replacable, self-contained web components (based on AMD/CommonJS).
  2. Fine-grained abstractions for "visible elements" with strict roles.
    element, composite, screen
  3. Limited number of powerfull dataflow abstractions.
    state, link, channel
  4. Portable and replacable web elements (make 'em once and use in all related projects).
  5. Logical "layered" project structure with easy navigation.
  6. Easier complexity and growth control.
  7. Explicit state and state relations with one-way explicit bindings.
  8. Interoperable with legacy code (can be implemented on top of other frameworks, see yaf-angular for example)

Scope of work

We are aiming to have a specification for structural and behavioural abstractions to build components.

Those abstractions should have these traits:

  1. Amorphous - Independent from language and preprocessors.
  2. Prepared - Be usable without external build tools (grunt/gulp) by default.
  3. Replaceable - Be granular enough to be thrown away easily.
  4. Statically composable - Be usable in templates without much imperative scripting.
  5. Well-Defined - Be relatively simple and easy to reason about.