命令行工具为什么越来越复杂:从Unix哲学到现代工具的五十年博弈

一个数字的启示 打开终端,输入 ls --help,你会看到什么? 在1979年的Unix V7上,ls 只有11个选项。而在今天的Ubuntu系统上,这个数字变成了58。单字母选项涵盖了除 {jvyz} 外的所有小写字母、14个大写字母,外加 @ 和 1。 ...

12 min · 5906 words

代码复用为何总是走向反面:从DRY原则到抽象泄漏的四十年工程困境

2020年初,React核心团队成员Dan Abramov在深夜完成了一次"完美"的重构。他看到同事实现的图形编辑器代码中存在大量重复——每种形状(矩形、椭圆、文本框)的缩放逻辑都包含相似的数学运算。作为一个追求简洁的程序员,他花了几个小时将这些重复代码抽象成一个优雅的组合系统,代码量减少了一半,所有重复都消失了。 ...

10 min · 4637 words