精英盒子 -> 零毫秒 -> 源代码的几个槽点 [打印本页]

幻の上帝 2011-12-30 15:37

源代码的几个槽点

这里不提设计上的,只是编码/语用上的显著问题:
命名空间污染:公共头文件里敢用using namespace……
类型失当:该用bool的地方用int……童鞋难道你还打算源代码回去用纯C重写?
冗余:
    if(n==1)
        return 1;
    else
        return 0;
这个要出现在谭X的书里倒好理解……实际代码中这种不必要的罗嗦只会让维护成本增加。
接口缺失:#define DELETE(p) {if(p)delete (p);(p)=0;};——数组类型的肿么办?
缺乏实现技巧:仍然是#define DELETE(p) {if(p)delete (p);(p)=0;};,后面分号干什么吃的?既然都敢用宏代替代码段了,do...while(0)没听说过?
……如果有其它的等有空看完代码再补……
在线用户:共2人在线,2位会员(0位隐身)
幻の上帝    幻の上帝



whtsky 2011-12-30 19:54
其实写这个主要是为了练手,没必要斤斤计较…

jybox 2011-12-30 20:02
最后那个在线人数问题请找phpwind反应,我们用的是最新版本

话说到目前为止,确实没用到过数组...
if(n==1)
        return 1;
    else
        return 0;
这个是因为要强调1,因为这里的1是数字的意思,而不是“真”的意思

命名空间污染,感觉这个不算太严重似的........

jybox 2011-12-30 20:33
jybox:最后那个在线人数问题请找phpwind反应,我们用的是最新版本
话说到目前为止,确实没用到过数组...
if(n==1)
        return 1;
....... (2011-12-30 20:02) 

那个命名空间是有关常量定义的
直接using应该没啥问题
因为考虑到以后可能多个版本协议并存,所以用命名空间,并始终引用最新版本的那个

幻の上帝 2011-12-30 20:55
jybox:最后那个在线人数问题请找phpwind反应,我们用的是最新版本
话说到目前为止,确实没用到过数组...
if(n==1)
        return 1;
....... (2011-12-30 20:02) 

n==1的1表示版本号这个容易理解。
但返回呢?
代码里写的可是:
//验证是否兼容该协议版本
inline int checkVer(int n)
……
直接这样
inline bool checkVer(int n)
{
  return n == 1;
}
不是更清楚简单么。

幻の上帝 2011-12-30 20:58
jybox:那个命名空间是有关常量定义的
直接using应该没啥问题
因为考虑到以后可能多个版本协议并存,所以用命名空间,并始终引用最新版本的那个 (2011-12-30 20:33) 

这样倒是可以。但清楚起见请加入注释避免误用,而且最好不要在全局命名空间里直接using。

jybox 2011-12-30 21:01
幻の上帝:n==1的1表示版本号这个容易理解。
但返回呢?
代码里写的可是:
//验证是否兼容该协议版本
....... (2011-12-30 20:55) 

改bool然后return ture?

幻の上帝 2011-12-30 21:05
whtsky:其实写这个主要是为了练手,没必要斤斤计较… (2011-12-30 19:54) 

珍惜每一个可以不写dirty code的机会吧……
其实这样比较节约时间。

幻の上帝 2011-12-30 21:05
jybox:改bool然后return ture? (2011-12-30 21:01) 

你该不会是看成return n = 1;了吧?

whtsky 2011-12-30 21:12
第7楼幻の上帝于2011-12-30 21:05发表的 回 whtsky 的帖子 的帖子
whtsky:其实写这个主要是为了练手,没必要斤斤计较… (2011-12-30 19:54) [url=http://j ..
我一向坚持kiss..

幻の上帝 2011-12-31 09:13
whtsky:我一向坚持kiss.. (2011-12-30 21:12) 

我吐槽的就是不够KISS。

whtsky 2011-12-31 12:34
第10楼幻の上帝于2011-12-31 09:13发表的 回 whtsky 的帖子 的帖子
whtsky:我一向坚持kiss.. (2011-12-30 21:12) [url=http://jybox.net/bbs/job.php?action=topost&tid ..
零毫秒主体不是我写的,关于我的代码风格参考我git上其他项目

jybox 2011-12-31 14:07

littlepig 2012-01-01 02:21
tdb吐槽界面,现在幻の上帝吐槽代码……jy你完了……

jybox 2012-01-01 15:32
littlepig:tdb吐槽界面,现在幻の上帝吐槽代码……jy你完了…… (2012-01-01 02:21) 

有人吐槽,才说明他有存在的价值

outman 2012-01-03 10:54
玩语言游戏没意思

内容来自[手机版]

abreto 2012-01-03 14:06
大家都喜欢对看不惯的吐槽..




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.051760 second(s),query:5 Gzip enabled