看到一个代码牛人招徒弟,要求中有一条,能识别代码的美与丑。
CSDN首页上看到介绍Doom3的源代码,其中说到什么是优美的代码,有下面几条,摘录如下。
关于代码,什么才能被称为“好看”——或者说“优美”?在和几个程序员朋友讨论后,我得出了结论:
代码应该局部连贯而且功能单一:一个函数解决一个问题。而且应该很清晰。
局部代码应该能够解释,至少暗示整体的系统设计。
代码应该“自文档”,尽可能地避免注释。因为无论是在读还是写代码时,注释都是一项冗余工作。如果你需要添加注释才能帮别人理解,那么那段代码可能需要重写。
代码能做到无注释胜有注释,是一个一心执着于精品,长期痛苦修炼的过程。
想起金庸在《神雕侠侣》中描写剑魔独孤求败的学剑经历:
“纵横江湖三十余载,杀尽仇寇,败尽英雄,天下更无抗手,无可柰何,惟隐居深谷,以雕为友。呜呼,生平求一败而不可得,诚寂寥难堪也。
凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋。
紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。
重剑无锋,大巧不工。四十岁前恃之横行天下。
四十岁后,不滞于物,草木竹石均可为剑。
自此精修,渐进至无剑胜有剑之境。
剑魔独孤求败既无敌于天下,乃埋剑于斯。呜呼!群雄束手,长剑空利,不亦悲夫!
”
又想起苏东坡论书法的一句诗来,“我书意造本无法,点画信手烦推求”,做人、工作、生活,美的东西道理都是相同的, 大巧不工,书法于是、剑术于是、代码亦应如是。