软件工程哲学中最重要的一课

  1. **编程语言 Clojure 的作者 Rich Hickey:**Simple Made Easy

来源:视频与摘要 | 演讲全文 | 观后感

simple easy
词源:Simplex,单折、这一股 词源:临近(Adjacent / Lying near)
反义词:Complex (复杂),词源 Complex,编织在一起 反义词:Hard (困难)
定义:没有交织(Interleaving)。它只有一个角色,完成一个任务,关注一个概念。 定义:物理上的临近:触手可及。认知上的临近:熟悉(Familiar)。
客观的、原语、原子化的,组合是定义简单的关键。 相对的,简单的方法是完成某件事最快的方法。
Complex Simple
状态 (State):极其复杂的,它把“值”和“时间”纠缠在一起。 值 Values(不可变数据)是简单的。
Object 纠缠了状态、标识和值 Data(Map, List, Set)是透明且通用的。
方法纠缠了函数逻辑与状态。 函数
继承将类型耦合在一起,是典型的编织。 组合/多态 (Polymorphism à la carte)
与其发明复杂的语法,不如直接用数据结构来表达逻辑。 数据 (Data)

这里说说复杂。

image.png

Rich 复活了一个古词:**Complect,**意思是把东西编织、纠缠在一起。

模块化不等于简单:你把代码分成了很多模块,但如果它们之间逻辑紧密纠缠,那依然是一团乱麻。