2016-5-30 代码Review问题总结

原创 2016年05月31日 10:59:50
重要程度划分 S A B C 


1.金钱使用无符号数,导致有可能在减钱的时候而加了钱,无符号没有负数(S)
(虽然AddBindTickets函数传的金币数是int类型,导致DWORD(unsigned int)明哥的原话:我怀疑有没有测试过,刷金币和物品是最严重的错误,可以直接被公司辞退,把一个负数赋值给DWORD类型的变量,数值可能变得好大)WORD明哥的原话:我怀疑有没有测试过,刷金币和物品是最严重的错误,可以直接被公司辞退,把一个负数赋值给DWORD类型的变量,数值可能变得好大)


2.一些函数有已经封装好的可以直接调用。如HFSetHtmlPage (A)
3.NerveHandle本来是经脉的,不是活动,却放在了Huodong文件夹里 (C)
4.客户端能计算的一些函数不要去请求服务器。如服务器的GetStuffAndMoneyCostBindTicketsAndTickets
在不计算金钱返还和和折扣的情况下用客户端的GetAutoBuyCostInfo来代替 (A)


5.读取配置文件时的字符数组,在每次读取数据前都要memset(szBuffer, 0, sizeof(szBuffer)).否则可能保留之前
的数据尤其是之前的数据比当前的数据长的情况下 (S)


6.缩进要对齐 (C)
7.gGlobalClient->getNetConnection() 要先判断NULL,同理gZoneServiceProvider->GetChatServer() 也要判断NULL,
所以最好的办法是只要是指针,全部判断是否为NULL再调用,这样就不用太详细的考虑这个问题。 (B)
8.C++里两者取较大的那一个数可以调用 max 不用使用三元运算符。 (C)
9.客户端请求数据库可以用C++的消息,也可以直接用Lua函数TaskItemClick。更灵活,且便于修改。 (B)
(明哥的原话:应用逻辑代码最好都提取到lua中实现,把底层的存储、高要求的计算和lua中实现不方便的逻辑就可以放C++中实现

10.如果已经判断了长度直接使用强制转换就行了,不用使用缓存对象。而且要先判断.good() 再使用。而不是先使用再判断。 (B)
iBuffer ibuf(pszMsg, nLen);
SMsg msg;
iBuffer >> msg;
if (!iBuffer.good())


11.没有实际操作的不要使用Info_ChatWindow 选项。这个我知道的呀。 (C)
12.DWORD 类型前缀才用dw, int类型要用n。 (A)这个是拷贝没有修改的锅。
13.sprintf_s换成sprintf 使用公司封装的更安全的字符串整合函数。 (C)
14.重要的判断放在前面,不满足就返回了,不要处理了一堆逻辑之后,最后又因为条件不满足而返回。 (B)
15.不是很重要的if条件语句,直接判断 ~= NULL来执行,而不用再 == NULL return了。这个就是个编码风格问题 (C)
16.函数的返回值作为判断条件, 比如 返回-1,就用-1 来判断,而不要用 < 0.来判断。
17.函数返回类型要一致,即使是Lua函数,不可以 有的分支 return true, 0 有的分支 return false, "" (B)


18.复制 不应该全部拷贝过来 应该一行一行的拷贝过来,检查完毕,才可以。 (S)


19.能够提取出来作为变量的,不要反复调用函数获取。 比如客户端的GetHero() (C) 


综上所述:
1.欲速则不达,越想快,如果犯了错误 回头返工 其实反而更慢。
2.Review代码应该一行一行的看仔细了,尤其是在对金币,元宝等进行操作时,更是要想清楚每一步,每个函数传递的参数的实际意义。可以把具体的正负值写在那里。 
3.复制代码可以,可要保证每一行代码都有意义。且没有错误。
4.主要是精神问题,前两周都没休息好,精神太差了,用那么差的精神去写代码怎么可能会不是漏洞百出?所以最最重要的
是好好休息,养好精神和体力,为每一天高校,精准的工作做好准备。


预防数值转换的错误:
1.对一个DWORD类型的变量赋一个负数值时编译器都会报警,所以要看新编译的警告信息里有没有刚才修改的文件。
2.
版权声明:不自见故明;不自是故彰;不自伐故有功;不自矜故长;

11-30 论文总结 无法关闭 GPS的问题 currenlocation相关代码

1.写了 安全登录算法,实现 登录 clientBean 和 LoginSecurity ,serverBean 2.将原来的 CurrentLocation  的方法 分出是 GPS 还是 Ne...
  • ccycyy
  • ccycyy
  • 2011年11月30日 17:51
  • 916

python核心编程学习笔记-2016-07-30-01-习题7-5

习题7-5,登陆系统。 代码: #-*-coding: utf-8-*- # 图形界面等到学完Tkinter之后再完善 import time, msvcrt, sys db = {} user...

良心推荐:总结Android开发中必备的代码Review清单

前言 本文收集了我自己工作以来提交代码前的所有检查点。事实证明,这样能有效提高自己的代码质量和功能的稳定性。所以推荐大家以后每次提交代码前,都可以看下这份Review清单哈。 此外,可能还...

总结 Android 开发中必备的代码 Review 清单

本文转载自http://www.jianshu.com/p/4b65967fe4a0 前言 本文收集了我自己工作以来提交代码前的所有检查点。事实证明,这样能有效提高自己的代码质量和功能的稳...

Oracle的时间总结 -- oracle知识2016/09/30

1. Interval 时间 INTERVAL YEAR TO MONTH数据类型  Oracle语法:  INTERVAL 'integer [- integer]' {YEAR ...

5.Git代码<安装与配置>-2(自我整理) 2016/11/12

Git安装完成后,打开Git Bash。 配置用户信息 第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容...
  • jixi520
  • jixi520
  • 2016年11月12日 11:45
  • 320

harvard business review 2016 May

  • 2016年05月18日 13:58
  • 32.69MB
  • 下载

harvard business review 2016 Jun

  • 2016年05月20日 17:41
  • 20.36MB
  • 下载

代码注释2016-8-5

设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一...

南海石门中学第六届创新班 2015-5-30 课时总结

这次创新班,老师给我们讲了今年考的试题。其中,涉及到了几个重要的思想:并查集和背包问题。 并查集的建立     所谓并查集,以我自己的理解而言,就是合并时有着进一步的速度优势的集合。首先,我们有一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2016-5-30 代码Review问题总结
举报原因:
原因补充:

(最多只允许输入30个字)