-
边界
- 建立边界会减少人的关注范围,减少需要解决的问题范围。人的注意力和思考能力是有限的,缩小问题有利于推动问题解决。
- 好的架构是在任一模块定义清楚需要解决的问题,提供需要解决的问题是什么的定义。
- 架构需要边界。
-
腐烂
- 腐烂是一个直观的概念,它的意思是某个东西不再像它自己。其通常的所指包括:边界不再清晰、内部结构发生形变、内容发生偏移。
-
防腐层
- 目的:是为了在外部变化时,保持防腐边界内代码的不变。变化由防腐层消解。从而避免变化域内外的代码耦合度增高,引发频繁变更导致的边界内代码腐烂。
-
分包
- 分包的原则:是在工程实践中更接近的东西共包的层数更多,而非定义上更接近的东西。
-
项目拆分
- 横向拆分
- 定义:按业务或功能的不同拆分项目,比如用户模块与订单模块拆分开。
- 好处:减少不必要的关注和协同,提高研发效率,利于团队拆分;不同功能的系统隔离;
- 纵向拆分
- 定义:指的是根据某种特定的抽象性质拆分项目,比如读操作和写操作拆分,控制层和业务层拆分。
- 好处:根据项目性质分配资源;根据特性发展代码;资源隔离
- 一般是先横向拆分,再纵向拆分,业务相近的距离更近,这样团队维护成本更低。
- 横向拆分
-
sdk和独立部署
- sdk可以理解为项目下某个包。
- 独立部署需要通过
-
程序设计分层
- 分层的本质是将不同层面的问题使用不同的方式解决
- 业务是变化的,但业务的通用部分及抽象模型是不变的
- 不变的部分的程序实现是重复性工作
- 模型层和通用层是不变层,本质是为了减少重复性工作
- 业务层是变化层,本质是不做限制
-
架构
- 架构是对需要解决的问题是什么的定义,即对问题的描述
- 架构包含着更小的架构,且包含在更大的架构中。
- 如何解决问题,这也是一个问题,所以不属于架构的范畴,而是架构的实现。
- 所以架构设计就是:提出问题、拆分问题、定义解决问题的规范
项目结构总结
于 2024-01-22 11:43:05 首次发布