webrain
v1.4.6-a
Published
NodeJS cross-platform and cross-browser business logic framework - Brain of your web applications.
Downloads
29
Readme
Description
Status: (95% completed), documenting and split to separate modules
This is the first and open-source framework for internal application logic. It is a new architecture that will allow you to implement application logic in a brain-like structure and solve many architectural problems and development difficulties.
NodeJS cross-platform and cross-browser business logic framework - Brain of your web applications.
The main idea:
90% of the logic of almost any application can be represented as a single tree-like dynamic object containing a tree of dependent calculable properties. This object can be serialized, updated to a new version, merged with other versions. Almost all logic is contained in the calculable properties of this object. Each calculable property is an independent module. That is, despite the fact that the application logic is in one object, it is divided into many very small, independent modules. These modules are connected to the tree-like object like as microcircuits to the motherboard, and are interconnected by other mini-objects - connectors. You can draw a parallel with brain neurons, where each calculable property can be represented as a neuron that takes data from its dependencies (dendrites) and gives the result as a one value (axon). (The value can be anything, including lists, complex objects, etc.)
Each calculable property does its best to minimize the number of calculations, caches values, uses deferred and async calculations, time throttling, etc.
Dependency binding is extremely accurate, flexible, and well optimized. With the only restriction that the binding is possible only down of the object tree, otherwise modularity would be violated. But this limitation can be easily circumvented by adding a link to the parent object in child elements.
Such an architecture has already been successfully tested by me on a real C# WPF project and is now redesigned using my experience and more powerful JavaScript and TypeScript features.