上大学的时候,C语言实习课考试,答案是很简单的不超过5行的C语言代码。你一定不会相信,那个时候我写了大约30行,并且其中的25行是注释。因为某个时候看了一个文档,说C语言的函数注释必须要有,而且必须要全面。
老师当时表示,不用写这么多,5行就够了。旁边有同学给我帮腔,说这个是规范,当时的我还有点洋洋得意,觉得自己比老师要与时俱进,老师的思路已经过时了。
在之后的工作过程中,接触了其他一些编程思想,比如“代码即注释”,这种思想认为良好的代码本身应该是直观易懂的,无需看注释即可理解,那么注释就是多余的东西。但是大部分商业公司都要求完整的注释,比如微软和谷歌。每个公司的注释要求不一样,有的会按照自动注释软件的要求来,也有的会使用自己的注释格式。
现在回过头来看,其实在那堂C语言实习课上,我只需要提交5行代码就行了,这是出题人希望看到的,也是老师打分的评价标准。最终老师还是给了我一个还不错的分,在此感谢他的宽宏大量^_^
这件事教会我,不要做多余的事。
接触Linux以来,平时使用某些软件,比如nmap或者minicom,也会去阅读它们的源代码,发现它们的Readme文件虽然写得很全,代码里的注释却很少,有可能一个文件下来,代码有一千行,函数一个连一个,注释不超过100行。即使很少,理解代码并没有很大的困难,这来自合理的函数结构、良好的命令习惯和美观的语法格式。
当然,注释怎么写,依然是一件见仁见智的事情。对于团队合作,更多的注释能够降低沟通成本。所以,大家可以商量着来。
今天在《学习Python》里发现了这样一段话,和大家共享:
对于这段话,我的理解是,代码的层次应该是实际需要的那么多层。如果我只需要一个简单的open文件功能,那么就不需要封装一个类,让它包含所有的open功能(打开普通文件、管道、设备文件……)。也许一个包含所有open功能的类是非常强大的,但是我们目前仅仅需要open一个普通文件不是吗?那么open它就好了。
欠包装也会带来一些问题,比如需要大量的难以维护的copy操作、难以使用、操作功能时不够抽象。过度包装带来额外的代码开销、难以理解和操作,以及额外的bug风险。良好的程序设计,既不是欠包装的,也不是过度包装的,而是忠实合理反映实际的物理逻辑的。
与广大代码民工们共勉 ... ) _ ) ...
allen_zhan_752827529 2018-4-13 11:38
归根结底是想讨论编程模式吧? 核心观点似与 "注释"无关.
推荐参考 StackOverflow 的一则讨论:
[Prefer composition over inheritance?](<a target="_blank">https://stackoverflow.com/questions/49002/prefer-composition-over-inheritance)</a>
星海扬帆 2018-4-10 14:40