免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zylthinking
打印 上一主题 下一主题

看到的牛比代码  关闭 [复制链接]

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
31 [报告]
发表于 2008-07-11 14:45 |只看该作者
原帖由 aero 于 2008-7-11 14:42 发表


呵呵,几十万,上百万行的代码,都这个样子,不还是维护过来了?

要站在老板的角度考虑问题。他要的是work,不是好看,用户也看不到,呵呵。只要能work,能满足客户,就是高质量的。


上百万行? 我不要你维护, 你看完一遍就可以了, 你去试吧

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
32 [报告]
发表于 2008-07-11 14:56 |只看该作者
忍着又看了2句,看到了这个:

void bkfile_copyout(
    iofile_t *iofile,
    const char *out_name,
    int in_des,
    const char *in_name,
    struct ar_header *file_hdr,
    int copy_device,
    OFF_T seek
) {
     char buf[8192*5],*buffer;
     int  is_dev = 0;
     int  exec_copy = 0;
     long len;
long pagesize=8192;
long cur_finish = 0;
long finish = 0;
long cur_total = file_hdr->c_filesize;  
long count = 0;
is_dev = AR_ISDEV(file_hdr->c_mode);
exec_copy = AR_ISREG(file_hdr->c_mode) || (copy_device&&is_dev);
if( !exec_copy ){
  cur_finish = 1;  
  return;
}
buffer = buf;

if( pagesize > 8192 ) pagesize = 8192;
pagesize = pagesize;
/* set the buffer address align page(8192) */
buffer = (void *)(((ulong)buffer+pagesize-1)&(~(ulong)(pagesize-1)));
if( seek && lseek(in_des,seek,SEEK_SET)<0 ){
  bklog(LOG_WARNING,errno,"seek(%ld) %s failed, skipping it.",seek,file_hdr->c_name);
  return;
}


while( 1 ){
         if( cur_finish == cur_total  )
          break;

  if( is_dev ){   
   count = cur_finish+pagesize<cur_total ? pagesize : cur_total-cur_finish;
  } else {
   count = cur_finish+pagesize<cur_total ? pagesize : cur_total-cur_finish;
  }
  .........
}

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
33 [报告]
发表于 2008-07-11 15:04 |只看该作者
原帖由 zylthinking 于 2008-7-11 14:41 发表
我领导不至于, 人家写文件系统什么的, 不至于混到写这些东西。 我算是帮某个人说替他写几个模块暂时减轻他的工作, 结果此人将windows代码给我一考, 说以后我负责linux, 你负责windows,  我就这么稀里糊涂的 ...

领导虽然不写代码,
但是烂代码多半和领导有关。
你还别不信。
会写文件系统未必就会做领导。
软件工程和 linux kernel 一样,也是一门很深的学问,也很注重实践。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
34 [报告]
发表于 2008-07-11 15:12 |只看该作者
你说得是严格的软件工程了, in the real world, 没那么理想了, 领导是用来写代码的, 貌似最忙的就是他, 最多会议上提提自己意见, 也是很粗的, 就是分几块, 每一块谁干那种层次的。 至于架构阿, 文档阿, 哈哈, 没见过, 据说都是口头协议。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
35 [报告]
发表于 2008-07-11 15:14 |只看该作者
编码好坏, 尤其是代码本身而不是程序结构, 那就是一个程序员的修养问题了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
36 [报告]
发表于 2008-07-11 15:16 |只看该作者
原帖由 zylthinking 于 2008-7-11 15:12 发表
你说得是严格的软件工程了, in the real world, 没那么理想了, 领导是用来写代码的, 貌似最忙的就是他,最多会议上提提自己意见, 也是很粗的, 就是分几块, 每一块谁干那种层次的。 至于架构阿, 文档阿, 哈哈, 没见过, 据说都是口头协议。

哦,怪不得你们的代码那么烂,果然是领导的问题。
我怎么又猜对了。

论坛徽章:
0
37 [报告]
发表于 2008-07-11 15:16 |只看该作者
原帖由 smalloc 于 2008-7-11 13:43 发表

人不是在每个时候都是清醒的。。。


还有的人就从来没有清醒过~~

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
38 [报告]
发表于 2008-07-11 15:19 |只看该作者
原帖由 flw 于 2008-7-11 15:16 发表

哦,怪不得你们的代码那么烂,果然是领导的问题。
我怎么又猜对了。


你这个领导应该归到我领导的领导上去。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
39 [报告]
发表于 2008-07-11 15:20 |只看该作者
原帖由 zylthinking 于 2008-7-11 14:17 发表


推断合理, 但我保证绝对没有替换过。
再举个例子, 还有这样的代码:

FILE* fp = fopen(...);
if(fp == 0){
    log("error open");
}
fread(..., fp);

你能说他什么好呢


这样的写法很好,当你的程序即使错误也不能停下来的时候,就要忍辱负重的跑下去。

在很多核心设备上,assert都只打信息不停下来。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
40 [报告]
发表于 2008-07-11 15:23 |只看该作者
原帖由 aero 于 2008-7-11 15:20 发表


这样的写法很好,当你的程序即使错误也不能停下来的时候,就要忍辱负重的跑下去。

在很多核心设备上,assert都只打信息不停下来。


哈哈, 如果我记忆没错的话 fread(..., 0) 会导致崩溃的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP