代码是写给人看的 Pt.1
之前审阅 PR 的时候,发现很多同事会这么写
export function func1
export function func2
但我希望他们这么写
function func1
function func2
export {
func1,func2
}
他们问我为什么这么写、这样有什么好处,我当时会说这么做代码组织比较好看,具体原因整理如下
-
能够清晰的知道一个文件究竟有哪些函数被导出
-
非常容易在上千行代码的文件中查找、定位某一个函数
-
能够根据导出内容猜测文件有什么用
-
-
若导出函数存在不同版本可以轻松通过简单的排版,理清关系,这在大模块的重构中无往不利
export {
getXXX1,getXXX2
getYYY1,getYYY2
}
但即使这么说了,大家其实还是不太能理解。而我也在思考这其中更深层次的内容是什么
若要明晰道理,我觉得需要从神经科学的角度理解我们如何认知世界
人偏爱抽象胜过具体,痴迷于精炼、简短、复杂的事物
当前我还无法摆出论据,自圆其说,但我觉得事实就是如此
再以 export 为例。一个文件里面存在数十个函数,我们要如何了解这个文件在做什么?
我们可以把文件想象成黑箱,管它里面内容是什么,我只要知道输入(import ) 和输出 (export) ,于是它看起来像这样 import -> 口 -> export。当我们把每个文件都这样想,项目的的拓扑结构就跃然纸上,只用站在项目级别,俯瞰文件关联,梳理脉络、构建知识结构,至于其中琐碎又与我何干。
于是,我们从细节中解脱出来,离自由更进一步。那些构建工具就是这么干的,而工具使用者又能否理解其中奥秘呢。