02 2024 档案
摘要:对于熟悉JavaScript 语言的前端程序员来说,原型模式是一种比较常用的开发模式,即使JavaScript 引入了类的概念,但它也知识基于原型语法糖而已。 不过如果你使用的是java C ++ 你就很少使用原型模式。 原型模式的原理和应用: 如果对象的创建成本比较大,而同一个类的不同对象之间差别
阅读全文
摘要:我在实际的使用中,老是感觉 构建者模式代码是由点重复的,即使使用@Builer 注解,有的时候,心里老师感觉到别扭,那到底什么时候应该使用构建者模式?实际上如果我们不关系代码是否有短暂的无效状态,也不太在意对象是否可变的。 我们可以直接用set ()方法,给对象设置。还有一个好处链式调用 无效状态:
阅读全文
摘要:一般情况下,工厂模式分为三种更加细分的类型: 简单工厂、工厂方法和抽象工厂。不过在GoF<设计模式> 中,他将简单工厂看作时工厂方法模式的一种特列,所以工厂模式分成了工厂方法和抽象工厂。实际上前边一种分类方法更加常用,所以今天我们沿用第一种分类方法。 在这三种细分的工程模式中,简单工厂和工厂方法比较
阅读全文
摘要:为什么要用单例 单例模式理解起来非常容易 一个类只允许创建一个对象(或者实例),那这个类就是一个单例,这种设计模式叫做单例设计模式。简称单例模式 1. 解决线程安全问题 2. 表示全局唯一 比如配置信息类,自系统中,我们只有一个配置文件,当这个配置文件加载到内存之后,以对象的形式存在,理所应当只用一
阅读全文
摘要:函数出错应该返回什么 关于函数出错返回类型,我们总结了4种情况,他们分别时错误吗,NULL 值,空对象,异常对象。 1. 返回错误码 2. 返回NULL 在多数的编程语言种,我们用NULL 来标识不存在这种语义,不过网上很多人不建议函数返回NULL 值,这是一种不好的设计思路, 如果某个函数可能返回
阅读全文
摘要:ID 生成器的需求背景介绍 ID 中文翻译为标识Identifier ,这个概念在生活,工作中随处可见,比如身份证、商业条形码、二维码、车牌号、驾照号。聚焦到软件开发中,ID 常用来标识一些业务信息的唯一标识,比如订单的单号或者数据库中的唯一主键,比如地址中ID 字段(实际上时没有业务含义的,对用户
阅读全文
摘要:命名 大到项目名,模块名,包名,对外暴露的接口,笑道类名,函数名,变量名,参数名。只要做开发,我们就逃不过起名字这一关,命名的好坏,对于代码的可读性来说非常中国要。 甚至起到决定性的作用。除此之外,命名能力也体现了一个程序员的而基本的素养。这也是我们把命名放到第一位的原因。 取一个合适的名字是一个非
阅读全文
摘要:1. 全局变量 2. 未决行为 3. 静态变量 4. 高度耦合 5. 违反依赖注入 6. 深层的继承 上边的案例,写测试用例都是非常难写的,他们违反了设计原则,从侧面说明类的设计不合理。
阅读全文
摘要:定义 重构 不改变外界行为的可见行为。 我们可以把重构理解为在保持功能不变的前提下,利用设计思想,设计原则,模式,编程规范等理论来优化代码,修改设计上的不足,提高代码的质量。 为什么要重构代码 重构是时刻保证代码质量的一个极其有限的手段,不至于让代码坏到无可救药的地步。项目在演进,代码在不停的堆砌。
阅读全文
摘要:对于一个工程师来说,如果要追求长远的发展,你就不能一直只把自己放在执行者的角色中,不能只把一个代码的实现者。 你还要有独立负责一个系统的能力,能端到端开发一个完整的系统。这其中包括: 前期的需求分析,中器的代码的设计和实现。后期的系统的上线维护等。 前面我们还提到过,大部分工程师都是做业务开发的。
阅读全文
摘要:定义 高内聚低耦合是一个非常重要的设计思想,能够很好的提高代码的可读性和可维护性,缩小功能改动导致导致代码改动范围,实际上,在前面的章节中,我们已经多次提到了这个设计思想。很多设计原则都是以代码的高内聚低耦合为目的的,比如单一原则,基于接口而非编程实现 实际上,高内部松耦合,是一个比较通用的设计思路
阅读全文
摘要:KISS 定义 kiss 原则的英文描述又几个版本,计较下边的这几个 keep it simple and stupid. keep it short and simple keep it simple and straightforward 不过仔细看你会发现,他们表达的意思其实差不多,尽量保持简
阅读全文
摘要:控制反转IOC 看下边的代码 public class UserServiceTest { public static boolean doTest() { // ... } public static void main(String[] args) {// 这部分逻辑可以放到框架中 if (do
阅读全文
摘要:定义 “Clients should not be forced to depend upon interfaces that they do not use” 个人认为接口隔离原则,和单一原则有点像。 一个接口实现一个功能。 不过,你应该已经发现,接口隔离原则跟单一职责原则有点类似,不过稍微还是有
阅读全文
摘要:定义 If S is a subtype of T, then objects of type T may be replaced with objects of type S, without breaking the program。 Functions that use pointers of
阅读全文
摘要:这条原则,难以理解,那是因为,”怎么样的带啊吗改动才被定义为扩展“,怎么样的代码才被定义为”修改“,怎么样才算妈祖开闭原则? 修改代码就一定意味着违背开闭原则吗? 等等这些问题都比较难以理解。 这条原则最有用,那是因为,扩展性是代码质量的重要的衡量标准之一。在23 中经典的设计模式中给,大部分设计模
阅读全文
摘要:定义 一个类或者模块只复杂完成一个职责。也就是说,不要设计大而全的类,要设计力度小,功能单一的类。一个类包含两个以上和业务不相干的功能,应该将他拆分多个功能更加单一,粒度更加细化的类。 比如一个类力既含有订单的一些操作,又包含用户的一些操作,而订单和用户是两个独立的业务领域模型,我们将两个不相干的功
阅读全文
摘要:什么才算是面向对象编程语言 面向对象是支持类对性得语法机制,并有现成得语法机制,能方便得实现面向对象得封装,继承多态,抽象。 一般来讲,面型对象编程,是通过面向对像得编程语言来进行得,但是不用面型对象编程语言,我们照样可以进行面向对象编程,反过来讲,即使我们使用面向像得语言写出来得代码也不一定是面向
阅读全文
摘要:主流的编程范式,和编程风格有三种,分别是面向过程,面向对象,函数式编程。面向对象这种风格又是其中最主流的。现在比较流行的编程语言大部分都是面向对象的编程语言。大部分项目也都是基于面向对象风格开发的 面型对象的特性: 继承,封装,多态,抽象。是很多设计原则和设计模式的基础。 所以在专栏开始的时候我们会
阅读全文
摘要:1. 可维护性 对于项目来说,维护代码的耗时,远远大于大于代码的编码。代码维护性非常关键 主观评价标准: bug 容易修复,添加功能比较简单。 2.可读性 代码的可读性,关乎代码的可维护性。 代码是否符合代码的命名规范。 命名是否规范,注释是否全面,函数是否长短合适,模块划分是否清晰,是否符合高内聚
阅读全文
摘要:第一章: 什么是中间件 1、前言 在互联网应用开发初期,所有用于支撑系统建设的,框架结构、基础工具、业务逻辑、功能服务包括页面展示,都是在一个系统中开发完成的,最终只是把系统和数据库部署到同一台服务器上。 但是随着互联网应用的发展,业务体量逐渐增大,那么庙的胸痛搭建就很难支撑现有的业务体量。因此开始
阅读全文