应用架构设计原则、模式摘录
1.Tier和Leyer的区别:
Tier 指的是系统的物理部署结构
Leyer 指的是系统的逻辑层结构
2.基本设计原则概述
KISS原则 提倡在设计和编码中,尽量保持代码的简约性,避免不必要的复杂
DRY原则 抽取系统中的公共部分,并把它放到一个地方避免重复,既适用于代码也试用于功能和业务逻辑
Tell,Don’t Ask原则 要去对代码进行合理的封装,并把它放到正确的类中,并明确告诉对象我们想要它去执行什么样的操作,而不是首先询问对象的状态
YAGNI原则 设计中只包含所必须的功能,不包含你认为将来可能会用到的功能或特性,防止过度设计
Soc原则 把一个软件功能分离为单独功能点,被分离的每个功能点有唯一的行为和数据,而且每一个功能都能被其他所需要的类单独使用,通过这个原则,我们可以最大限度的实现代码重用、功能模块重用
3.S.O.L.I.D原则
SRP 单一职责原则 就一个类而言,应仅有一个引起它变化的原因。
OCP 开放封闭原则 软件实体(类、模块)应该是可扩展的,但是不可修改。
LSP 里氏替换原则 子类必须能够替换它们的基类型
ISP 接口分离原则 不应该强迫类实现它不需要的方法。如歌一个接口中包含了很多不大而且不相关的方法,那么这个接口就必须要被分组,让后分离出多个接口,让实现接口的类去实现它需要的方法。
DIP 依赖倒置原则 高层的模块不应该依赖于低层的模块,二者应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象,高层模块是指系统不经常发生变化的部分,是一个系统区别于其他系统的标志,包含了系统的策略选择和业务模型。底层模块是指系统中经常发生变化的部分。
4.企业级开发
企业级开发通常是指在开发工程中采用实现企业架构的模式和实践方法。企业级开发会使用很多的方法和方法论来实现系统必须具备的指标:可靠性,灵活性,重用性、可维护性,这些指标也是衡量一个软件系统好坏的指标。所有企业级项目就已上(RFRM)的项目,企业级项目的概念和项目的大小是没有什么关系的。
5.测试驱动开发(TDD)
TDD的目的是通过测试来形成好的设计。进行软件开发的时候,首先通过写不能测试通过的测试代码来确认一下业务逻辑,然后写出真正的业务逻辑代码使测试代码通过,最后重构代码。
6.领域驱动开发(DDD)
领域驱动开发的核心是如何将业务领域的概念映射到软件开发中,DDD通过对现实领域中的概念进行抽象和建模,然后进一步分析业务规则和业务模型之家的关系,从而得到一个更加接近现实领域的所有业务模型,从而开发能够解决领域问题的软件。
7.行为驱动开发(BDD)
行为驱动开发是一种融合了可接受性测试驱动计划、领域驱动设计、及驱动开发的敏捷开发模型。
转载于:https://www.cnblogs.com/heyangyi/p/10249214.html
应用架构设计原则、模式摘录相关推荐
- 详细设计 存储分配_万字长文:云架构设计原则(一)
译者序 AWS用户广泛,产品线复杂,AWS发布的白皮书<Architecting for the Cloud-AWS Best Practices>介绍了常见场景下云架构的最佳实践,不仅对 ...
- 架构师必须知道的架构设计原则
目录 一.前言 二.软件设计原则 GRASP通用职责分配软件模式 1. 信息专家(Information Expert) 2. 创建者(Creator) 3. 低耦合(Low Coupling) 4. ...
- 流行20年的架构设计原则SOLID可能已经不适合微服务了
点击上方"服务端思维",选择"设为星标" 回复"669"获取独家整理的精选资料集 回复"加群"加入全国服务端高端社群「后 ...
- 浅谈系统架构设计-从架构设计原理、架构设计原则、架构设计方法展开
我们工作中一直强调要做架构设计.系分,最近前端同学在追求前端质量提升的时候,也在进行架构设计.前端系分的推广,那到底什么是架构设计和系分?该怎么做架构设计和系分?本文尝试对架构设计进行全面的介绍和分享 ...
- 基于AWS的云架构设计最佳实践——万字长文:云架构设计原则|附PDF下载
译者序 AWS用户广泛,产品线复杂,AWS发布的白皮书<Architecting for the Cloud-AWS Best Practices>介绍了常见场景下云架构的最佳实践,不仅对 ...
- 架构师必须掌握的架构设计原则
如果一个架构或设计原则已经存在 15 年,例如单一职责和依赖倒置原则,我可以预期它还有 15 年甚至更久的生命期.原则是比具体技术更抽象,更接近事物本质,也更经得起时间考验的东西.这些原则沉淀在架构师 ...
- 华为云业务架构设计原则
架构设计原则: 一.云服务高可用 开启ECS三大护盾:云备份CBR,云监控CES,企业主机安全HSS 反亲和性+HA:通过云服务器组配置ECS集群反亲和,并开启ECS自动恢复,即物理机故障自动冷迁出故 ...
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle...
Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq index2 3. ...
- 20个MySQL高性能架构设计原则(收藏版)
墨墨导读:MySQL如何实现高性能?以下内容是结合其他技术同仁的总结和自我实践整理的20个开源数据库设计原则,分享至此,希望对大家有帮助. 开源数据库架构设计原则 01 技术选型 选择成熟的平台和技术 ...
- 5.8架构设计原则案例分析
date comments categories tags permalink title 2020/3/15 true 软件架构 架构 原则 5.8 架构设计原则案例分析 前面介绍了架构设计的三条核 ...
最新文章
- 群同态基本定理证明_近世代数(3)——群的基本性质
- H3C ISIS与BGP 路由配置
- 如何将int类型数据转换成byte数组
- 报名 | 腾讯组织的区块链技术沙龙,本周六在深圳!
- ubuntu共享文件夹或文件等右下角一把锁的标志【终极解除右下角锁的方法】
- PowerDesigner的汉化破解安装到逆向工程(ORACLE)
- MongoDB SpringData去掉自动生成的_class字段
- linux系统引导分区,揭秘Linux(二)——操作系统引导与硬盘分区
- [转载]基于Aaf的数据拆分
- LeetCode 287. 寻找重复数(BitMap)
- linux 空硬盘,linux – dd在整个磁盘上,但不想要空的部分
- LeetCode-336 Palindrome Pairs
- 关于ContentResolver
- 迟滞比较器及施密特触发器详解
- hashmap自定义排序java,如何在Java中对HashMap进行排序
- 几种国内芯片测序格式和 Illumina Omni 位点集格式的对比
- Java第二次作业|实验3 运算符、表达式和语句
- 如何通过重写hashCode()方法将偏向锁性能提高4倍?
- JAVA MemCache 史无前例的详细讲解【转】
- 计算机网络16进制首部检验和,校验和