Comparison
- https://stackoverflow.com/questions/1317693/what-is-model-view-presenter
- https://blog.georgovassilis.com/2019/04/14/the-model-view-presenter-controller-pattern/
- https://windsuzu.github.io/learn-android-architecture-pattern/
- https://kknews.cc/zh-tw/code/l3n8z59.html
- https://draveness.me/mvx/
Redux
- https://ngrx.io/guide/data/architecture-overview
- https://itnext.io/ngrx-best-practices-for-enterprise-angular-applications-6f00bcdf36d7
Advantage
- entity module with adapter
- can adopt with DDD
- all component could set to on push
- Redux dev tool can see all value in-store without any console log
- Domain & presenter all in-store?
Resource:
- https://ngrx.io/resources
- How to Start Flying with Angular and NgRx — NgRx inDepth
- https://wesleygrimes.com/angular/2018/05/30/ngrx-best-practices-for-enterprise-angular-applications
Source: https://www.angulararchitects.io/en/konferenzen/ngrx-best-practices/
Ngrx vs Ngxs
https://medium.com/@joshblf/migrating-from-ngrx-to-ngxs-in-angular-6-ddddcdce543e
https://blog.singular.uk/why-i-prefer-ngxs-over-ngrx-df727cd868b5
NGXS: https://www.ngxs.io/concepts/intro
Life cycle
NGXS WebSocket data flow
DDD
- https://medium.com/@jpdeffo/domain-driven-design-ddd-in-microservice-architecture-for-nutshell-19c7c579009a
- https://khalilstemmler.com/articles/software-design-architecture/domain-driven-design-vs-clean-architecture/
- https://vaadin.com/learn/tutorials/ddd/ddd_and_hexagonal
- https://www.baeldung.com/hexagonal-architecture-ddd-spring
- https://ithelp.ithome.com.tw/users/20111997/ironman/2730?page=2
- Aggregate (vs. Presenter Facade)
- Value Object vs. Entity (Is need id for front-end?)
- Use case from domain to application?
- The repository is necessary?
- Application Service (Use Case) vs. Domain (Entity) vs. Domain Service
- 在現代式分層架構中,我們會把 Domain Logic 放在中心 Domain 層,而技術細節放在最外層的 Infrastructure 層,至於將兩者結合的就是中間的 Application Service,負責軟體的 Application Logic。
- Module分法?https://ithelp.ithome.com.tw/articles/10227525
- 交流機制 https://ithelp.ithome.com.tw/articles/10227869
- 若是兩者採 Shared Kernel (共享內核),則共用程式碼。
- 開放 API (RPC、REST、GraphQL…)。
- Message Queue 處理機制