Monday, January 29, 2007

convention

前不久一个同期进来的同事问我:Have you started programming? No.... 实在不好意思,感觉自己这么长时间来在公司就是吃吃喝喝打打球看看电影,真是埋汰了IT民工这个称号。还好现在终于也要开始写程序了。

第一步还是先学习,看coding convention(估计应该翻译成编程规范)。因为历史原因,我们group和公司用的是两种不同的convention,我问了一下前辈,暂时还没有移植的计划,因此我还是先用group独立的这些规范了。不过其实都是同一种语言,因此差异倒不是很大。上周我就把两者都研究了一下,觉得规范这东西不外乎是:其一,be meaningful,比如变量和函数的命名规范,比如注释,因为大多数程序不是一次性使用的而且可能要多人合作,因此要写得有意义让别人看了一目了然;其二,with consistence,一致性,就是整体的风格要一致,这一点如果每个部分都严格按照同一个规范来写,自然整体就会一致了,而且这个还包括排版上的一致,读起来要让人赏心悦目(虽然读程序是我认为最枯燥无聊的事情);其三,using common sense,总有一些例外的情形没有包含在现有的规范里,那么就需要人的主观能动性了,程序是给机器运行的,但也是给人读的,因此需要遵循人的一些common sense。

这几点规范本身其实也都是common sense,我想很多人都明白。但我读过很多人写的东东,不止是程序,还包括一些文档比如resume,有不少是缺乏这些规范的。我想这也许是两个原因,一个是有的人性格上使然,不会习惯于这种机器式的严谨,喜欢天马行空的随意,另一种也许是人的天性使然,大多数人是懒惰的不愿意在这些细节上花费时间而觉得别的事情更重要,觉得结果一样就行了。但其实很多东西如果一开始就养成习惯,那么后来做起来也并不费劲,习惯成自然就好了。其实再天马行空地想,做人也是需要一些类似的convention的,有了规范才会有更大的自由吧。

胡思乱想,九点半了,收工回家。

____________________________________________

Some interviewee might be asked to provide some sample code during/after interview. The purpose of this request is to help the interviewer evaluate your coding habits. You don't need to worry about the convention details of that company. But it's highly recommended that you write your code in a neat, clear, understandable way. Some layout styles can be referred to, e.g., the sample code in c++ tutorial and c++ faq lite. My 2c.

No comments: