复用,自动化,预测,想象

封装形式

复用的第一步是封装。
封装的手法有纯函数和类(面向对象)。

纯函数自身不带上下文,它的上下文都是它的参数。
纯函数只是封装了一系列的运算语句。
纯函数即使在不同的运行阶段,相同的输入,得到相同的输出。

所以,纯函数的优势是:
可读性高,不用考虑函数运行的副作用。
可读性高带来可维护性高。

可缓存。
把运行一段时间的纯函数运算结果暂存起来,下次再用。

纯函数通过闭包和柯里化实现上下文数据携带。
纯函数通过组合来产生新的函数。

类实例化后的对象,天生自带上下文数据。

所以,
面向对象和函数式不互斥,不互补。
都是一种封装思维的两种表现形式。

面向对象从结构设计出发,运行过程中不断改变上下文数据。
函数式从运算逻辑出发,运行过程中不断产生新的逻辑组合。

封装时机

封装需要代价。
同个运算逻辑,在不同的上下文环境运行多次。
找出运算逻辑的变量和常量,开始封装。

------20180808更新------

复用

代码运行思路复用
代码片段复用
函数复用
类复用
业务复用

封装

依赖约束来描述逻辑。
通过逻辑的组合,来解决未知问题。
通过逻辑结构的设计,来减少需求变化带来的结构变动。

通常依赖语法约束,在函数层面上进行逻辑封装。
封装的原则是,对内修改封闭,对外新增开放。
现有较好的封装思路是函数式编程思路。

你可能感兴趣的