语义化版本 2.0.0

摘录自:https://semver.org/lang/zh-CN/ 摘要 版本格式:主版本号(MAJOR).次版本号(MINOR).修订号(PATCH),版本号递增规则如下: 给定版本号MAJOR. …

Read more

搬砖方法论:分层策略

前言:当编写系统模块时,都会注意高内聚、低耦合、单一等等原则,虽然这些原则并非强制性,但是它对后续扩展有很好的指导性建议。但这些仅仅是微观上的,在宏观上也是需要类似这种指导性建议。这也是我们需要对架构 …

Read more

搬砖方法论:保持约束的单例

单例作为一种可供全局使用的唯一对象,而被普遍使用。但是能够这么做不代表就应该这么用。 单例在带来便利的同时也应该受到约束,如果一个单例遍布每个模块各处,这本身就是错误的使用方式,其缺点如下: 如果需要 …

Read more

搬砖方法论:New操作的危害

在编码时,只要在需要时进行New操作,不仅可以节省编码的时间,还可以直接获取当前需要的具体依赖项,但是事物总有两面性,在带来便利的同时,频繁的New操作也给维护带来不小的危害。 最主要的危害就是对依赖 …

Read more

搬砖方法论:对象图(Onject Graphs)

定义 在计算机科学,面向对象编程中,是由一群对象彼此相互关联、形成一个关系网络所构成的,这些对象彼此要不是存在着直接关联,要不就是透过一连串间接关联,串联在一起。对象与对象之间所构成的关系图,称之为对 …

Read more

搬砖方法论:接口还是抽象

概念上的区别 抽象是含有,接口是能够。 抽象更多描述的是一个交集、根基的概念,而接口更多表达的是一种功能,一种可随时增删的能力。 接口是首选 语法上接口可以多重继承 使用接口更利于编写 组合优于继承( …

Read more

搬砖方法论:控制反转

我需要一个汉堡 当我们去快餐店向服务员说明一个需要一个汉堡时,服务员会向我们提供一个已经加工完成的汉堡。可能每次提供的汉堡都有稍许不同,例如肉质、温度、面包的厚度、有无圆葱等等,但是他都符合汉堡的基本 …

Read more

副作用

副作用(side effect)是指,访问属性时,除了单纯设置或获取属性,还会造成对象状态的改变。如果存在多个副作用,程序的行为就要依赖于历史;或者说要依赖于求职顺序。如果以不同的顺序设置属性,类型每 …

Read more

搬砖方法论:接口的归属

interface,也就是常说的接口,使用它的地方有两处 接口的调用方(各种Manager) 接口的实现方(实例) 接口的归属应该是属于前者,也就是接口的调用方。 归其原因,要从使用接口的原因说起,使 …

Read more

搬砖方法论:通用语言和领域模型

你在说什么? 创世记第11章1-9句记录了“巴别城”的故事。当时地上的人们都说同一种语言,当人们离开东方之后,他们来到了示拿之地。在那里,人们想方设法烧砖好让他们能够造出一座城和一座高耸入云的塔来传播 …

Read more

搬砖方法论:组合根(Composition Root)

什么是组合根 定义:指的是在应用程序中的单一逻辑区块位置,在这会将各个模块组合起来。 组合根指的不是一个方法、也不是一种类别,而是一种概念。 为什么要有组合根 在没有组合根时,我们对于依赖的“New” …

Read more

变身整洁代码的66条常用规则

主要参考 代码整洁之道(Robert C. Martin力作,韩磊献译) 前言:假设你是位医生,病人请求你再给他做手术前别洗手,因为那会花太多时间,你会照办吗?本该是病人说了算;但医生却绝对应该拒绝遵 …

Read more