介绍
我想说的第一件事是,经过经验的经验,我可以通过清洁的架构理解,以阅读和练习这个问题。
对我来说,林皮亚在正面的建筑是进化的
,因为它不多。
是一个允许我今天在框架X中实现的应用程序,并且能够移动到框架并不必从零重写它。
今天,这似乎是一个乌托邦,因为在开发方面的人们不断轰炸大型弗拉米工人,他们出售我们,以便每次越来越清晰,更丰富多彩,以换取他们的解决方案;现在,它可能正在谈论角度,vue,react,lit,sive,nextjs,...
实际上几乎没有关于心理怪异的讨论
现在,现在很多人都说了应用于正面的六边形体系结构,在我看来,这在其原理上太笑了,最终不会嫁给当前的前线开发。
一个例子,在后端开发中,我发现它提出的控制投资是因为它是能够在单元测试中进行双重测试的唯一方法;但是,前部有些不同,而当前的测试技术(例如开玩笑或Vitor)可以模拟任何依赖性,而无需支付依赖项注入系统的成本。
现在,我并不是说框架很糟糕,而必须使用它们真正为我们的应用提供价值的地方,而不是所有这些,这使我们不可避免地嫁给了该解决方案。
如何在前面获得干净 /进化的架构
答案很简单,我们必须从选择设置应用程序的框架中完全抽象。
为此,我们将在两个大层中构造我们的应用程序:
-
core :可以用JavaScript或Typescript实施,并且必须隔离应用程序的功能部分而不与框架有任何关系,因为很多可以依靠提供特定解决方案的小册子。
-
ui :它将是包含与框架相关的整个部分的层,我们支持自己以呈现应用程序的呈现,这将有助于我们创建总界面和页面的路由器等。
关键是“核心”层已完成
让我们专注于“核心”层
模型:它将包含代表应用程序模型的实体和价值对象,非常重要的是,它不是100%链接到值班的API。
服务:它们将是对应用程序具有横向功能的类,也就是说,它在不同的使用情况下使用或给我们一些功能作为帮助者。
使用:它们将是反映应用程序允许执行功能的类。它们的特征是只有一个称为“ execute()”或“ run()”。
息肉炎:它们将是负责与外部服务器API的联系的类。作为个人建议,这些类别用Axios实施了它们,以便在测试时使用拦截器,并且仅使用Fetch。
blocs :它们是在框架和我们的核心所在的UI层之间粘合的类。他们维护框架独立应用的状态。
在此层中遵循的测试策略师将是统一测试MockeAndo应用程序的不同块,即与服务器的连接部分,即轴的世界。
在社会上证明了其余部分的证明,除非这有助于我们的发展,否则不必对每个元素进行单一测试。
详细说明这是一层可以完全测试和功能,而无需在节省我们的时间内提起浏览器。
也建议
以及“ UI”层中的内容
正如我们在“ UI”层中所说的,我们将拥有与应用程序在所选框架中支持我们的介绍有关的一切。
该层最常见的元素将是:
- 页面:将是与我们应用程序路由器相关的组件。
- Smarts :它们是利用块与核心连接的“智能”组件。
- dumbs :它们是支持“智能”来创建适当宽限界面的组件。
取决于所选框架的刚度,这种元素的结构可能会有很大不同。
对于该层的测试部分,建议是将不可知论技术与柏树一样。
也是如此。结论
以这种方式,该应用程序可以更轻松地进化并在两层具有测试安全网络,以免害怕包括新更改,它们具有可能的性质。
这些想法都不是原始的,它们是我们目前试图在项目中付诸实践的一系列原则和良好实践。
我希望这些短期的想法在以前的编队中传播,例如大学,训练营,专业形成等...poniéndolas在当时这种时尚的框架上的知识上方。
>应用这些实践,我们将意识到,巨型 - 弗拉姆工人对前线有什么贡献,以及它与其所假定的优势相关的效果。
如果您想从头开始进行这些想法,请通过评论实现我。
非常感谢您到达这里:-)