== 编程的5个原则 ==

=== 1.1效应局部化(Local consequences) ===

什么是效应局部化?

这里的“效应”指修改代码所带来的影响,故效应局部化就是将修改后代码控制在一定的范围内,由此诞生了模块化编程,组件化编程。

为什么要效用局部化?

在非效用局部化的代码中修改会带来很多不确性,造成代码的修改后的会影响其他功能(买一送十)。

排查bug可以便于定位问题点。

不需要掌握业务功能也可以修改代码。

修改点可控,对代码的稳定性较好。

怎么效应局部化?

关联性强的需要模块化集中管理,较弱的分开处理。

=== 1.2重复最少化(Minimize repetition) ===

什么是重复最少化?

代码中消除重复代码。函数,公共组件等。

为什么需要重复最少化?

重复的代码不符合效应局部化,增加了修改成本。严重影响开发效率。影响代码稳定性。

怎么实现重复最少化?

分割大的代码块,将大代码块拆分成各个效应局化的小代码块。

=== 1.3逻辑与数据的一体化(Logic and Data together) ===

什么是逻辑与数据一体化?

处理数据的逻辑要放在相近的位置,距离越近代码的质量越高。

为什么需要逻辑与数据一体化?

数据与逻辑是代码中最多的部分,因此把二者放在同一个位置开发者阅读的代码就会减少,从结果来看降低了修改成本。

怎么实现逻辑与数据一体化?

要把逻辑和数据放相近的位置。

在实际开发过程中开始很难知道那些逻辑要和数据放在一起,这时不妨先根据经验放置一下,之后再根据情况调整。

=== 1.4对称原则(Symmetry) ===

什么是对称性?

编程中的对称性是指相同的思路在代码的任何地方都以相同的形式表现出来。

为什么代码对称性?

代码中表现出对称性后,代码的可读性将大幅提高。追求对称性本质上来说数据消除重复代码的准备工作。当代码中存在多个相似部分,如果对其进行对称化处理,相同的思路就会以相同的形式表现出来。

怎么做到代码对称性?

将同类的东西要用相同的形式表现。

如果有【添加】方法,就要有与之相对的【删除】方法。

=== 1.5变动率(Rate of Change) ===

什么是变动率?

变动率体现了修改代码的时间点,变动率相同意味着代码在同一时间点被修改。

为什么需要变动率?

能缩小修改范围。有多个修改理由的代码比较脆弱,因为一个模块中如果修改的代码时间不同步,那么修改带来的影响将会波及无关的部分。

怎么做低变动率?

修改时间相同的元素要放到同一个地方。修改时间不同的元素要放在不同的地方。

单一职责原则

编撰人:yinyanting

快速跳转