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)
行为驱动开发是一种融合了可接受性测试驱动计划、领域驱动设计、及驱动开发的敏捷开发模型。