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

封装形式

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

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

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

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

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

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

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

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

封装时机

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

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

复用

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

封装

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,236评论 0 13
  • 我不是专业人士,只是说一些自己的感觉而已,不喜勿喷。 我是唐七公子的忠粉,她的小说我都很喜欢,也喜欢里面一个个鲜活...
    跟我一起走吧阅读 267评论 0 1
  • 最近工作忙,搞得RN学学停停的,今天回来看了下别人开源的应用,看得一脸懵逼的,好吧,还是从最简单的入手。 这里通过...
    YxxxHao阅读 8,901评论 14 51
  • 一个人,有时很忙,很想,把自己拆成好几个人,一边忙这个,一边忙那个,那就好了。 鱼与熊掌,不可兼得,但我就想得到。...
    庄德坤阅读 244评论 0 0