【问题标题】:How to decide the suitable design pattern for an angular Application如何为 Angular 应用程序确定合适的设计模式
【发布时间】:2019-02-16 23:38:29
【问题描述】:

我一直致力于将一个基于 Jquery 的 Web 应用程序转换为基于 Angular 5 的 Web 应用程序(该应用程序是关于电子计费的,其中可以汇总和支付来自多个提供商的账单)。

主要目标是使产品代码库更易于维护。我对角度设计模式不是很擅长,但我知道角度 SPA 的核心概念(通用状态管理、可观察模式、基于组件的架构、服务的使用、模块化结构、角度框架的反应性等),但我想知道是否有是得出最适合此计费应用程序设计模式的任何逻辑路径。

首先想到的逻辑任务是将应用程序分解为模块和组件,然后确定它们之间的父子关系。在这一步之后,我对要得出什么结论感到困惑。

根据关系,是否有可能得出此迁移所需的最接近的模式?

编辑:在网上进行研究时,我发现这篇文章很全面,并为我提供了急需的方向。

https://bulldogjob.com/articles/539-scalable-angular-application-architecture

【问题讨论】:

    标签: angular design-patterns architecture migration


    【解决方案1】:

    设计模式与框架无关。但是对于您的应用程序,我可能会使用服务层模式(在组件之间进行通信)和存储库模式来处理从角度到后端 api 的 crud。然后让你的后端堆栈成为一个与数据库通信的简单 API,我们制作的所有企业风格应用程序中的 80% 都遵循这种模式:

    Angular 组件 => service.ts => 存储库 => .net core api => 数据库

    但模式除外。为工作选择正确的模式。每个用例都会有所不同。我只概述了通常对我的团队有效的方法。

    【讨论】:

    • 如果我理解正确的话,1)我应该制作兄弟组件,它们可以在需要时使用共享服务(Observable)相互通信 2)将通用操作放在 service.ts 中的所有组件 3)使用存储库最终与 REST API 进行通信。但是这个存储库是什么?它和service.ts一样吗?你能详细说明一下这个存储库部分吗?
    • 存储库模式是一种将数据访问隔离在接口抽象之后的设计模式。连接到数据库和操作数据存储对象是通过接口实现提供的方法来执行的。因此,无需调用代码来处理数据库问题,例如连接、命令和读取器Repository pattern explained
    【解决方案2】:

    如果您正在寻找一种构建应用程序的方法,那么查看redux 可能不是一个坏主意。甚至还有几个libraries 用于角度。

    【讨论】:

    • 谢谢建议,redux模式是独占还是可以和其他模式一起使用?我的意思是问,使用 redux 最大的好处是什么?
    • “独家”是什么意思?这是你的代码,你可以用它做任何事情。你可以在一个地方使用 redux 而在另一个地方放弃它。但即使始终严格遵循,您也可以并且应该使用其他模式,但有些模式不再需要。关于最大的好处:它使您能够从应用程序内部的任何地方以结构化的方式访问和持久化数据。此外,其他开发人员在您的项目中开始编码也很棒。
    • 好的,我知道了。我对在角度应用中使用模式有这种错误的看法。排他性是指严格遵循 Redux 模式。
    • 是的,那么我建议您始终遵循 redux 模式,除非您有非常好的理由不这样做。但我没有想到这样的原因......
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    相关资源
    最近更新 更多