编程的智慧 - 限制

294 阅读2分钟

软件工业,经过几十年的发展,一路走来,践行的最深刻的智慧之一就是限制
限制带来真正的创造,限制带来真正的自由。

一、编程范式:

编程界发展出了三种编程范式:结构化编程,面向对象编程,函数式编程
1) 结构化编程限制了goto的随意跳转,让业务逻辑由顺序,分支,循环三种结构来组织;
2) 面向对象编程限制了函数的随意调用,让数据与函数封装在一起,让函数只能消费对象内的数据;
3) 函数式编程限制了赋值语句,不能随意赋值,大幅减少副作用的产生,让数据在管道中定向流动。

每一次编程范式的产生,都是对编程自由度的一种限制。这种限制带来了清晰的结构,让后才能构造巨型的软件。

二、最佳实践

除了编程范式外,被广泛采用的最佳实践也是采用限制:
1)单一职责:限制模块,类,变量,函数的功能,让其保持单一和纯粹;
2)局部化:缩小变量作用域,尽量使用局部变量;
3)常量化:让变量的值不能改变,限制其改变;
4)private修饰符:Java等语言中,直接提供了访问修饰符,并尽量推荐private,限制可见性。

三、计算机本质

计算机本质是一台二进制机器,处理由0和1组成的序列。我们有十进制,八进制,十六进制,最后计算机偏偏选择了二进制。把进制限制到最小,便于用信号的有无,开关的开闭来表示,这是计算机里利用的最大的限制。

四、做事

我们日常做事的时候,也要利用限制。
我们识别要点,其他让要点统领, 把精力限制在要点上,并坚持这么做。

limit to one, connect to all,
less is more, one is all。