你们在和朋友,同行交流时有没有常常遇到各类 "高大上" 的术语,不少词有没有把各位 “鸟哥” 们搞得一头雾水,如今我就把这些 "牛逼" 的东东都罗列一下,数据库
你们能够一块儿来整理完善(公众号:CodeL留言),方便咱们随时查阅。编程
1、框架,设计模式设计模式
1. MVP(Model-View-Presenter) :从经典的MVC模式演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。做为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通讯是经过Presenter (MVC中的Controller)来进行的,全部的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是经过 Controller。服务器
2. MVVM (Model-View-ViewModel):网络
MVP模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架而且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。 架构
优势: 框架
a. 低耦合。视图(View)能够独立于Model变化和修改,一个ViewModel能够绑定到不一样的"View"上,当View变化的时候Model能够不变,当Model变化的时候View也能够不变。 分布式
b. 可重用性。你能够把一些视图逻辑放在一个ViewModel里面,让不少view重用这段视图逻辑。函数式编程
c. 独立开发。开发人员能够专一于业务逻辑和数据的开发(ViewModel),设计人员能够专一于页面设计,使用Expression Blend能够很容易设计界面并生成xaml代码。函数
d. 可测试。界面素来是比较难于测试的,而如今测试能够针对ViewModel来写。
3. DDD(Domain-Driven Design):领域驱动设计,一套综合软件系统分析和设计的面向对象建模方法。
4. SOA:面向服务体系架构,它能够根据需求经过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,能够直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
5. SAAS(Software-as-a-Service):软件即服务,一种彻底创新,经过Internet提供软件应用的模式,厂商将应用软件统一部署在本身的服务器上,客户能够根据本身实际需求,经过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并经过互联网得到厂商提供的服务。
6. IOC(Inversion of Control):控制反转,一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转通常分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较普遍。能够认为是一种全新的设计模式,可是理论和时间成熟相对较晚,并无包含在GoF中.
2、思想,开发方式
1. OOP(Object Oriented Programming):面向对象编程,是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个可以起到子程序做用的单元或对象组合而成。
特征:封装、继承、多态、抽象。
组件 - 数据和功能一块儿在运行着的计算机程序中造成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。
抽象性 - 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。
封装 - 也叫作信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才能够访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。
多态性 - 组件的引用和类集会涉及到其它许多不一样类型的组件,并且引用组件所产生的结果得依据实际调用的类型。
继承性 - 容许在现存的组件基础上建立子类组件,这统一并加强了多态性和封装性。典型地来讲就是用类来对组件进行分组,并且还能够定义新类为现存的类的扩展,这样就能够将类组织成树形或网状结构,这体现了动做的通用性。
2. COP(ComponentOrientedProgramming):面向组件编程,创建在OOP技术至上的,它是OOP的进一步发展。
COP中几个重要的概念:
服务: 服务(Service)是一组接口,供客户端程序使用。例如,验证和受权服务,任务调度服务。服务是系统中各个部件相互调用的接口;
组件: 组件(Component)实现了一组服务,此外,组件必须符合容器订立的规范,例如,初始化,配置、销毁。
3. AOP(Aspect Oriented Programming):面向切面编程,经过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP能够对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度下降,提升程序的可重用性,同时提升了开发的效率。
4. SOP(Service-Oriented Programming):一种体系结构,目标是在软件代理交互中得到松散耦合。一个服务是一个服务提供者为一个服务消费者得到其想要的最终结果的一个工做单元。服务者与消费者都以软件代理表明他们本身的角色,
5. TDD(Test-Driven Development):测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码以前,先编写单元测试用例代码,测试代码肯定须要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不仅适用于XP(Extreme Programming),一样能够适用于其余开发方法和过程。
优势:在任意一个开发节点均可以拿出一个可使用,含少许bug并具必定功能和可以发布的产品。
缺点:增长代码量。测试代码是系统代码的两倍或更多,可是同时节省了调试程序及挑错时间。
6.PO (Procedure Oriented):是一种以过程为中心的编程思想。
3、数据
1. PO (persistant object): 持久对象,PO就是数据库中的一条记录,能够把一条记录做为一个对象处理,能够方便的转为其它对象。
2. BO(business object):业务对象,把业务逻辑封装为一个对象。这个对象能够包括一个或多个其它的对象。好比一个简历,有教育经历、工做经历、社会关系等等。咱们能够把教育经历对应一个PO,工做经历对应一个PO,社会关系对应一个PO。创建一个对应简历的BO对象处理简历,每一个BO包含这些PO。这样处理业务逻辑时,咱们就能够针对BO去处理。
3. DTO(Data Transfer Object):数据传输对象,是一种设计模式之间传输数据的软件应用系统。数据传输目标每每是数据访问对象从数据库中检索数据。数据传输对象与数据交互对象或数据访问对象之间的差别是一个以不具备任何行为除了存储和检索的数据(访问和存取器)。
4. DAO(data access object): 数据访问对象,一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。
内容不完善,欢迎留言(公众号:CodeL或下方评论)补充,你们一块儿完善。