通常每家公司都有自己的C++编码规范,但推荐比较多的多还是Google的编码规范。
最近在dy上偶然看到一段关于C++编码规范的视频,觉得挺有意思,拿出来分享一下.
需求很简单:依次增加打印5行星形符号:
一般来说,刚接触C++的朋友容易选择右边的方式,而熟练掌握C++语法之后会倾向于左边的方式,但工作时间长了会再次选择右边的方式。这是个很有趣的现象,它也代表了不同阶段对代码的不同理解。
第一阶段,对C++不熟悉,怎么简单怎么实现;
第二阶段,对C++比较了解,能够用语法实现相应功能;
第三阶段,体会到工程中代码的可读,可理解的重要性。
事实上,两种写法都OK。看似简单的问题,它实际上反映出软件工程里两个更深层次的问题:团队协作效率和软件需求分析。
团队协作效率
相比第一种方法,第二种方法不仅直观,容易阅读,也不太容易出bug。现在软件项目的代码数量都是重量级的,阅读代码是非常耗时耗力的工作。考虑到开发人员水平,工作效率的差异,团队合作中应尽量降低人为造成的代码阅读困难。对于非核心算法的代码,代码越简单越好。
软件需求分析
需求是:“依次增加打印5行星形符号”
从需求分析角度看,有没有可能要打印10行,100行?需求改动的可能性有多大?打印符号的目的是什么,是为了美观吗?能否有别的打印方式更美观?
如果打印的行数需要改动而且改动较大,那右边的写法就得重写,左边只需改动一个变量。
可以看出需求分析直接决定了功能的实现方法,所以软件工程师特别是架构师一定要对项目需求有非常精准的把握!
最后视频里给出的答案:
联系客服