读《A Philosophy of Software Design》——(18)
🤔☕️🤔☕️🤔
读《A Philosophy of Software Design》——(18)Code should be Obvious
📖:显而易见的代码,是读代码的人的感受。读码人说不够显而易见,那就不够显而易见。软件要设计得易于读,而非易于写。
🤔:代码得显而易见,何谓显而易见?对于写代码的人,第一遍写下来思路清晰,表达无误,算是显而易见一阶。对于评审代码的人,第一次看到代码,就明白代码的目的,以及完成的程度,算是显而易见二阶。这里我要补充一下,所谓明白代码的目的,是指代码的实现,所谓完成的程度,是指代码的测试。也就是说,对于自己和别人而言,代码显而易见的程度,得靠测试代码来体现。经常提到代码,狭隘指功能代码,我不得不说,这是对代码心智不成熟的体现。只有功能的代码,对于个人其实无所谓,反正好了自己轻松点,差了自己辛苦点。可是只有功能的代码,移交出去后,那可能会把别人给恶心坏,如果自以为是自己代码质量过硬,那更加是自负无敌。至少,我曾经就这样,现在已经改过自新。不给测试代码,都不好意思跟人说我写了代码。
🤔:代码要显而易见,回头去找代码的时序图,如果能找到,那么大概率代码不会难读,如果找不到,也懒得补一张,那么大概率很晦涩。我为啥知道?原因很简单。我之前的代码,就是不画时序图,写完后发现难以补上去,过段时间发现自己读都很饶头。现在代码,无论如何得画出来时序图,不出图写的代码,心里默念是草稿,就是为了把思路理出来,回头一定要补上,然后几乎会重写。
🤔:把自己的代码,拿给初级工程师去评审,期望他能快速读懂,来增加代码的可读性,从而达到显而易见的代码质量。不得不说,这很有挑战。首先,挑战来自勇气,也就是自己写的代码,人家怎么也看不懂,还假装看懂的样子。其次来自耐心,有时候对方真的既不熟悉业务、也不懂这样的写法,得同时讲明白业务和实现。
—— By 术子米德 @2022.04.05
版权声明: 本文为 InfoQ 作者【术子米德】的原创文章。
原文链接:【http://xie.infoq.cn/article/4a84dc24a29c6f3e559fa0dbd】。文章转载请联系作者。
评论