Dynamic counter implementation taking ideas from Operate heavily dynamic uis and closed-loop/feedback control systems.
A feedback control system continuouly sends and receives signals from its environment. The system's state is influenced by not only the inputs but also the side-effects generated from its output. For example, when the counter is running, the side-effects are the timer ticks comming from async process. The ticks are directed back to the input port to drive the counter's state.
Other design choices:
- Strict separation of logic and view
- Events/data never leave the control loop until shown on UI
- ReactiveX, in particular rxjs, is used to model the control loop
- Operate heavily dynamic uis
- Feedback control systems
- The book
Constructing the User Interface with Statecharts
by Ian Horrocks
This project was generated with Angular CLI version 8.0.3. It is last tested to run on Node v16.12.0.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.