- 推荐序一:架构师真正要学会的事情
- 推荐序二
- 译者序 2.0
- 序
- 关于本书
- Part Ⅰ 什么是软件架构
- 第 1 章 什么是架构
- 第 2 章 架构的种类
- 第 3 章 软件架构是什么
- 第 4 章 敏捷软件架构是什么
- 第 5 章 架构对上设计
- 第 6 章 软件架构重要吗
- 第 7 章 问题
- Part Ⅱ 软件架构的角色
- 第 8 章 软件架构的角色
- 第 9 章 软件架构师应该编码吗
- 第 10 章 软件架构师应该是建造大师
- 第 11 章 从开发者到架构师
- 第 12 章 拓展 T
- 第 13 章 软技能
- 第 14 章 软件架构不是接力运动
- 第 15 章 软件架构要引入控制吗
- 第 16 章 小心鸿沟
- 第 17 章 未来的软件架构师在哪里
- 第 18 章 每个人都是架构师,除非他们有其他身份
- 第 19 章 软件架构咨询师
- 第 20 章 问题
- Part Ⅲ 设计软件
- 第 21 章 架构驱动力
- 第 22 章 质量属性(非功能需求)
- 第 23 章 处理非功能需求
- 第 24 章 约束
- 第 25 章 原则
- 第 26 章 技术不是实现细节
- 第 27 章 更多分层等于更高复杂度
- 第 28 章 协同设计是一把双刃剑
- 第 29 章 软件架构是对话的平台
- 第 30 章 SharePoint 项目也需要软件架构
- 第 31 章 问题
- Part Ⅳ 可视化软件
- 第 32 章 沟通障碍
- 第 33 章 对草图的需要
- 第 34 章 无效的草图
- 第 35 章 C4:语境、容器、组件和类
- 第 36 章 语境图
- 第 37 章 容器图
- 第 38 章 组件图
- 第 39 章 是否包含技术选择
- 第 40 章 你会那样编码吗
- 第 41 章 软件架构和编码
- 第 42 章 你不需要 UML 工具
- 第 43 章 有效的草图
- 第 44 章 C4 的常见问题
- 第 45 章 问题
- Part Ⅴ 为软件生成文档
- 第 46 章 代码不会讲述完整的故事
- 第 47 章 软件文档即指南
- 第 48 章 语境
- 第 49 章 功能性概览
- 第 50 章 质量属性
- 第 51 章 约束
- 第 52 章 原则
- 第 53 章 软件架构
- 第 54 章 外部接口
- 第 55 章 代码
- 第 56 章 数据
- 第 57 章 基础设施架构
- 第 58 章 部署
- 第 59 章 运营和支持
- 第 60 章 决策日志
- 第 61 章 问题
- Part Ⅵ 开发生命周期中的软件架构
- 第 62 章 敏捷和架构的冲突:神话还是现实
- 第 63 章 量化风险
- 第 64 章 风险风暴
- 第 65 章 恰如其分的预先设计
- 第 66 章 初识软件架构
- 第 67 章 问题
- Part Ⅶ 金融风险系统
- 第 68 章 金融风险系统
- Part Ⅷ 附录:技术部落 的软件指南
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第 52 章 原则
原则部分总结那些已经使用(或正在使用)的设计和构建软件的原则。
意图
这个部分的目的就是明确你要遵循的原则,可以是由利益相关者明确提出的要求,或者你们(即软件开发团队)想要采用和遵循的原则。
结构
如果你已经有一套软件开发原则(比如在开发wiki上),那就直接参考。否则,就列出你遵循的原则,为每一条都加上简短的解释或进一步信息的链接。原则的例子包括:
架构分层策略;
视图中没有业务逻辑;
视图中没有数据访问;
接口的使用;
始终使用ORM;
依赖注入;
好莱坞原则(不要给我们打电话,我们会给你打电话);
高内聚,低耦合;
遵循SOLID1(单一职责原则、开闭原则、里氏代换原则、接口隔离原则、依赖倒置原则);
DRY(don't repeat yourself,不要重复自己);
确保所有组件都是无状态的(比如,让伸缩更容易);
选择一个富域模型;
先择一个贫血域模型;
始终选择存储过程;
绝不使用存储过程;
不要重新发明轮子;
错误处理、日志等的通用方法;
购买而非构建;
等等。
1http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
动机
写下原则清单的动机是为了明确它们,这样参与软件开发的每个人都明白它们是什么。为什么?简而言之,原则确保了以相同的方法处理常见问题,有助于向代码库引入一致性。
受众
主要是软件开发团队中的技术人员。
是否必须
是,所有软件指南都应该包含对已经或正在用于开发软件的原则的总结。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论