写代码什么是最重要的?
我记得Torvalds说过Linux并不需要天才工程师或者超级工程师来撰写,能做内核maintainer所需要的最重要的品质,是长期认真的维护一个组件,富有责任感,值得信赖,当人们需要他的时候,他就在那儿,无论是修补bug,还是添加feature,或者因为内核的其它组件API进化而跟着修改。
从这个表述可以看出,好代码最重要的品质,是便于长期维护,也许是你自己维护也许是他人维护。它需要代码足够简单明了,没有太多复杂的corner case,没有长途奔袭需要全面了解的设计约定,在一个scope之内可以看到这个scope的所有责任,所有的奇技淫巧、炫技的和精妙绝伦的设计模式,如果它会造成理解上的困难,或者需要长篇文档阐明,或者代码形式不自然不符合大多数程序员的习惯,都应该被摒弃,代之以简洁明了的代码。
是的,好代码并没有多少美感和高超技巧,只有让人震撼的简单。只有做到这一点它才能在相当长的一个时期里让人愿意维护,持续进化,且值得信赖。
我记得Torvalds说过Linux并不需要天才工程师或者超级工程师来撰写,能做内核maintainer所需要的最重要的品质,是长期认真的维护一个组件,富有责任感,值得信赖,当人们需要他的时候,他就在那儿,无论是修补bug,还是添加feature,或者因为内核的其它组件API进化而跟着修改。
从这个表述可以看出,好代码最重要的品质,是便于长期维护,也许是你自己维护也许是他人维护。它需要代码足够简单明了,没有太多复杂的corner case,没有长途奔袭需要全面了解的设计约定,在一个scope之内可以看到这个scope的所有责任,所有的奇技淫巧、炫技的和精妙绝伦的设计模式,如果它会造成理解上的困难,或者需要长篇文档阐明,或者代码形式不自然不符合大多数程序员的习惯,都应该被摒弃,代之以简洁明了的代码。
是的,好代码并没有多少美感和高超技巧,只有让人震撼的简单。只有做到这一点它才能在相当长的一个时期里让人愿意维护,持续进化,且值得信赖。