上弦月

代码是写给人看的 Pt.1

之前审阅 PR 的时候,发现很多同事会这么写


export function func1

export function func2

但我希望他们这么写


function func1

function func2

export {

   func1,func2

}

他们问我为什么这么写、这样有什么好处,我当时会说这么做代码组织比较好看,具体原因整理如下

  1. 能够清晰的知道一个文件究竟有哪些函数被导出

    1. 非常容易在上千行代码的文件中查找、定位某一个函数

    2. 能够根据导出内容猜测文件有什么用

  2. 若导出函数存在不同版本可以轻松通过简单的排版,理清关系,这在大模块的重构中无往不利


 export {

    getXXX1,getXXX2

    getYYY1,getYYY2

 }

但即使这么说了,大家其实还是不太能理解。而我也在思考这其中更深层次的内容是什么

若要明晰道理,我觉得需要从神经科学的角度理解我们如何认知世界

人偏爱抽象胜过具体,痴迷于精炼、简短、复杂的事物

当前我还无法摆出论据,自圆其说,但我觉得事实就是如此

再以 export 为例。一个文件里面存在数十个函数,我们要如何了解这个文件在做什么?

我们可以把文件想象成黑箱,管它里面内容是什么,我只要知道输入(import ) 和输出 (export) ,于是它看起来像这样 import -> 口 -> export。当我们把每个文件都这样想,项目的的拓扑结构就跃然纸上,只用站在项目级别,俯瞰文件关联,梳理脉络、构建知识结构,至于其中琐碎又与我何干。

于是,我们从细节中解脱出来,离自由更进一步。那些构建工具就是这么干的,而工具使用者又能否理解其中奥秘呢。

← 返回文章列表