免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: JohnBull

关于代码的适度冗余 [复制链接]

论坛徽章:
0
发表于 2010-11-20 15:04 |显示全部楼层
学习了.

论坛徽章:
0
发表于 2010-11-20 22:36 |显示全部楼层
最近有几个帖子在批判“垃圾代码”。
垃圾代码这个概念太模糊,不知所云,我暂且理解为冗余代码。

我的 ...
JohnBull 发表于 2010-11-19 17:24



    观点有新意!

论坛徽章:
0
发表于 2010-11-21 17:04 |显示全部楼层
要求程序员写精确的代码当然是好,但实际上很难操作,

倒不如退而其次,规定一些僵化的规则,宁可代码有点冗余,但只能能减少一些不必要的错误,也是值得的

对于一些高水平的程序员,能够写精确代码,可以不受僵化规则影响,但最怕那些眼高手低的程序员,
虽然大部分打破僵化规则的代码是合理的,但有小部分不合理的,也够喝一壶了。

为了安抚这种类型的程序员的情绪,高水平程序员也牺牲一下,大家都统一使用僵化规则,对整个项目还是有利的。

drangon 发表于 2010-11-20 11:03


我就是这个意思!最怕眼高手低!

论坛徽章:
0
发表于 2010-11-22 08:45 |显示全部楼层
本帖最后由 狗气球 于 2010-11-22 08:46 编辑
我就是这个意思!最怕眼高手低!
JohnBull 发表于 2010-11-21 17:04



    对眼高手低的孩子应该教育,但简单的冗余编程是可能让他们变得眼低手低的。

    一个项目里,有一个大牛并不会使整个项目变好很多,但只要有一个坚持输出的低手,这个项目就一定会变差。

    我身边常见的悲剧就是你不得不和一些勤奋但是不好学的低手配合工作。你连证明他这样做不对都很难。

论坛徽章:
0
发表于 2010-11-22 09:02 |显示全部楼层
我也写防御性代码。我知道防御性代码的用处。
但防御是没有下限的。

把防御当做规则,可能会导致组织里轻视学习和改进。

论坛徽章:
0
发表于 2010-11-22 10:37 |显示全部楼层
我记的我自已写过如下代码:
int func_xxxxx(char *str)
{
     if(!str)
         return 0;
     ................
}

int func_yyyyy()
{
      ...............
      if (str)
             func_xxxxx(str);
      ...............
}

红色部分判断了二次。大家觉的有问题吗?

论坛徽章:
0
发表于 2010-11-22 10:40 |显示全部楼层
冗余是必须的, 冗余最直接的一个好作用是避免大量if/else

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2010-11-22 10:41 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2010-11-22 10:53 |显示全部楼层
回复 29# pmerofc


    嗯。是我很早时遇到过的问题,当时很纠结。

当时写代码,没有什么层次、接口等概念,只是为了完成目标,结果正确。

论坛徽章:
0
发表于 2010-11-22 11:02 |显示全部楼层
回复 27# zhangsuozhu


    那要看你的func_xxxx是怎么设计的了。
    如果你这个函数要开放出来给大家用,并且还是会遭遇异常情况的,那你就判断吧。
    如果开放出来用,但是要求别人自己保证正确性(而且别人真的会自己保证),那你就不判断。

    不过说回来了,你要是自己写自己用,干脆static掉,不让外部调用不就行了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP