Files
nodebestpractices/sections/projectstructre/thincomponents.chinese.md

27 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 用组件来构造你的解决方案
<br/><br/>
### 一段解释
对于中型应用以上来说,按部就班的写在一起真是太糟糕了-当一个有很多依赖的大型的软件会导致我们理解起来非常困难并且导致我们的代码杂乱不堪。甚至像那些能够熟练地驯服野兽的聪明的设计师一样,他们在设计上花费大量的精力用来"模块化"代码每一次改动都需要仔细的评估对于其他依赖对象的影响。构建小型项目的最终方法是将整体的项目分享一个个不与其他组件共享文件的独立组件每个组件由很少的文件组成例如API、服务、数据访问、测试等所以这是比较容易理解的。一些被称为"microservices"的架构,去理解"microservices"不是你必须遵守的规范而是一套原则是非常重要的。你可以将许多原则应用到一个成熟的微服务体系结构中或者只采用少数几个原则。只要你把软件的复杂性保持在低水平两者都是好的。您至少应该做的是在组件之间创建一个基本的边界在项目根中为每个业务组件分配一个文件夹并让它自己做到其他组件只允许通过它的公共接口或API来实现它的功能。这是让你的组件保持简单的基础避免依赖关系在你的应用程序成长后为将来成熟的微服务铺平道路。
<br/><br/>
### 引用博客: "扩展需要整个应用的扩展"
摘自博客 MartinFowler.com
> 单片应用程序可以成功,但是越来越多的人对它们感到失望——特别是当越来越多的应用程序被部署到云上时。变更周期是绑定在一起的——对应用程序的一小部分进行了更改,需要重新构建和部署整个庞然大物。随着时间的推移,保持良好的模块结构通常很难,这使得更改只会影响自己内部的模块变得更加困难。扩展需要扩展整个应用程序,而不是需要更大的资源的部分。
<br/><br/>
### 推荐: 通过自包含的组件来构造解决方案
![alt text](../../assets/images/structurebycomponents.PNG "Structuring solution by components")
<br/><br/>
### 避免: 通过技术角色对文件进行分组
![alt text](../../assets/images/structurebyroles.PNG "Structuring solution by technical roles")