读书人

从一路C++试题说起编程风格

发布时间: 2013-03-25 15:43:04 作者: rapoo

从一道C++试题说起编程风格

???????

????????? 林锐的《高质量C++/C编程指南》是一本非常不错,非常有阅读价值的书,不管编程知识的传授,还是编程能力的培养,都算得上一本经典的教材。里面附录B更是作为不少公司招人时的笔试题目。笔者仔细看过这些题目,但是在对有些题目的看法,却是和标准答案不一样的,写出来,希望能引发对这些问题的讨论和商榷。

?

题目:


从一路C++试题说起编程风格
?

?

答案


从一路C++试题说起编程风格
?

?

当然,从语言的角度讲,这么说也似乎没有什么不对的,但是对从事商业软件开发十余年的笔者来讲,第一感觉却绝非如此。

?

笔者的拙见:

?

第一种方式程序简介算是一个优点,但是更要紧的是,condition可能是和循环计数器N相关的,可以很简单的思考一种场景:

?

for(int i = 0; i<N;i++)

{

?? if( i %2==0)

?? {

??? //......

?? }else

?? {

????? //.......

?? }

}

?

这种场景下,是否只能使用这种循环方式?使用第二种方式显然是不成的。

?

?????? 所以笔者的看法是,对于一些初学者和开发人员,看待代码的出发点,应该是更加注重代码的业务意义,以我个人的经验来说,代码就是用编程语言这个表达工具,把需要当成一个故事来讲述出来,怎样讲述故事能够让听故事看故事的人更加清晰明白,就怎样讲。

?

???? 并不是说风格、效率这些不重要,而是对开发者(尤其是初学者),传授给他们编程的知识的同时,也需要灌注一些开发的理念给他们,这时,最重要的理念就是代码需要清晰的表述业务,技巧再高,没有清晰的表述出业务来,也算不得高明。

?

??

?

??? 从这个角度来看,什么分层、框架,无非都是想让代码专注业务的一种手段和方式,但是很多开发者,都被这些东西搞晕了,说来也是很可悲的。我很欣赏石一楹的《代码味道》,还很欣赏《重构》,看过之后在实践中,逐渐清晰的领会到,味道也罢,重构也罢,只是工具层面的事情,无论何时,都要把目标紧紧放在心头,就是代码要清晰的描述你所要描述的业务。

?

?? 有了明确的目标,就像目标是渡过一条河,这个时候选择起来就会主动,比如选择渡船,选择桥,甚至选择游泳过去,无论何种方式,能用可接受的代价过去就是胜利。船也罢、桥也罢,只是工具,人使用工具,但是不被工具拘束住。

?

? 我看很多计算机的教材,都是从语言本身,交给学生语言相关的知识,这当然没有错误,但是,如上所述,还是应该增加编程理念方面的知识,教给学生,应该怎样去写代码;什么样的代码是好的,什么样的代码要差一些。要从“是否清晰表述了业务”这个角度来评判代码。

?

??

?

?

?

?

?

?

?

?

?

?

?

?

?

?

1 楼 ksqqxq 2013-03-16 教科书交给了我们怎么使用语言,不会告诉你怎么才能合适准确的使用。这才是一个人能力的体现。 2 楼 windshome 2013-03-18 ksqqxq 写道教科书交给了我们怎么使用语言,不会告诉你怎么才能合适准确的使用。这才是一个人能力的体现。

回复ksqqxq:的确如此,但是这也是一种传统观念,为什么不能在学习过程中,就传递怎样合适的使用语言的知识,培养这个能力呢?我觉得这是一个改进的方向,虽然很不容易。

读书人网 >编程

热点推荐