20201210代码规范宣讲

结合自己在项目中的体会和问题展现,发现代码CodeReview的作用非常大,代码规范宣讲,深刻理解,灵活运用在实际的项目中尤为重要;

仔细想想为什么呢,为什么呢?

1.小白程序员,思维简单,往往照猫画虎,基础功底浅薄,没有这方面的意识;

2.中高级,得过且过,没有以高标准,严要求左右自己;

3.名副其实的高级,这些人写出的代码像诗一样,可读性高(思维缜密[就是你想到了别人想到了,你没有想到的别人也想到了],逻辑清晰),可扩展性强,复用性强,可维护性强,就是作为一个新人能很快的融入;

以上仅仅代表个人观点;

===============================================================================================================================================================

这里记录下,自己在项目中的几个问题点吧:

1.qt如果没有用到qt的信号和槽,就尽量不要继承QObject,这块我记得面试也会问类中为什么加:Q_OBJECT,加它的左右是什么,为了减少代码的开销;

2.避免重复定义,这块定义个,那块定义个,一个没必要,一个增加冗余代码;

3.代码风格要移植,这个项目是多个人参与的,起码效果看起来像一个人写的(虽然每个人有自己的编码风格),就是我之前写的,被大家认可的好才叫好,自己认为的好,那不叫好,这里不说特立独行;最低要求一个人写的起码风格一致;

4.编码中打开与关闭申请与释放是成对出现的,就像你人的钱不还一个道理;

5.废弃接口删除;

6.可以用quit,就不要用exit(0x0000);

7.不能硬编码,魔鬼数字,魔鬼数字一个别人看不懂,这是给别人添麻烦,另一个难于扩展;

8.if else if 没有else,选择语句,一定有异常场景的处理机制,哪怕只是简单的打句log;

9.为了程序的健壮性,指针初始化为空,使用时判断,由于内存异常操作导致程序crash的例子,我想每个人都见过吧;

10.考虑场景一定要全面(这与一个人的逻辑思维能力有关,做事的缜密细致有关,只能说做个细致的人,在编程这条路上,经常粗心大意,麻痹大意肯定能会出事的);

11.单一原则,这个设计模式中的,自己学习消化吧;

12.在外部尽量不要操作成员变量(面向对象编程的思想没有深刻理解吧);

13.Lambda表达式,短小一次性使用(10行内的代码);

14.函数不能超过50行,或者一屏可以看完,这样可读性好,单元测试也好高,如果一团乱麻,一个函数中柔和了好多业务功能,那白盒测试也很难开展,长痛不如短痛;

15.for循环, auto等用新规范(c++11),而不是c98,你想新规范一定是做了优化提升,简洁度高的;

16.一个接口很多地方在调用,可以考虑封装类;

17.参数很用const & 尽量用const &避免拷贝,消耗内存;

18.见名知意,eg:m_status 鬼知道这是什么的状态;

19.单次定时器用:singleShot,要不它发明出来干嘛呢,看么?

20.一两行代码,或者没有功能的就不要封成函数,封装函数起码得有功能;

21.类不能太长,太长要拆分,体积越大,耦合度越高,出错概率越大;

22.冗余代码就不要出现了;

23.头文件声明要和文件名称一致,避免借刀杀人,借尸还魂;

24.关联信息可以放到结构体中;

25.memcpy qt中尽量不要使用,因为它需要指定缓存区大小(对于一次性读取的),搞不好会导致程序crash,还是尽量使用Qt标准的数据类型;

26.变量命名小驼峰,nPerson 这种就不要出现了;

27.QString, QStringList 这些标准数据类型有的属性,你就没必要自己再去实现了;

eg: 将QStringList里面的元素组织成string, QStringList的john就很有效果么;

28.强枚举(enum class)

29.能用switch case的尽量使用这个就没必要多个if else了;

30.qt的事件处理,最后需要处理标准事件,这个前面分享过文章;

31.出错后或者不希望指定的场景可以提前return,因为如果继续执行可能导致进程crash,程序退出;

32.c++11 的结构化绑定;

=======================================================================================================

无规矩不成方圆,奋斗中的人,没事多给自己敲敲警钟;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值