实际上,真正优雅可读的代码,是几乎不需要注释的。如果你发现需要写很多注释,那么你的代码肯定是含混晦涩,逻辑不清晰的。其实,程序语言相比自然语言,是更加强大而严谨的,它其实具有自然语言最主要的元素:主语,谓语,宾语,名词,动词,如果,那么,否则,是,不是,…… 所以如果你充分利用了程序语言的表达能力,你完全可以用程序本身来表达它到底在干什么,而不需要自然语言的辅助。
很奇怪,Java似乎是主流面向对象语言中唯一一个完全以名词为中心的语言。 在Python或者Ruby中,你不会找到AbstractProxyMediator,NotificationStrategyFactory或者其他类似的东西。 为什么在Java中它们满地都是? 我敢打赌这是原因出在了动词的身上。 Python,Ruby,JavaScript,Perl当然,还有所有的函数式编程语言允许你声明并传递函数而不用用类包装它。