S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

代码的坏味

Posted on 2008-11-15 00:55 S.l.e!ep.¢% 阅读(2348) 评论(3)  编辑 收藏 引用 所属分类: C++
1. AutoLock
    在我的代码中存在着许多
    {
           CAutoLock  lock(&sessionlock);
           // do something
    }

    AutoLock固然方便,但代码中很多这样的括号,让我真的很无语,有空要看下其它人是怎么写的。

2. std::string, CString, char[]
    代码需要在 win, unix 下都可以编译,于是
    windows非MFC人员: "用 char[], 如果用 std::string, 调用API, 要加上 .c_str()"
    windowsMFC人员:   "用CString, std::string 没有 Format, 到处得加上 .c_str(), unicode 用CString 也方便"
    unix人员:         "用 std::string 或 char[]"
    结果, 这三类人写出了同一模块, 写出了三样代码, 唉~~~

Feedback

# re: 代码的坏味  回复  更多评论   

2008-11-15 07:35 by www.helpsoff.com.cn
有很多括号?从博主提供的代码里看到这么一对括号啊,不算什么坏味吧?
第二个问题确实是个问题,整理统一起来也很麻烦啊...

# re: 代码的坏味  回复  更多评论   

2008-11-15 13:23 by 蚂蚁终结者
呵呵,AutoLock这种构造时lock,析构时unlock的方法其实很好么,boost::scoped_lock就是这样的。个人觉得括号其实无所谓,至少这种方法比手动lock,unlock要优雅很多,在异常安全方面也有保证。

# re: 代码的坏味  回复  更多评论   

2008-11-15 19:03 by zwp
第一种本身就是语言机制的灵活运用.
个人认为这样很好。当然如果觉得不妥,可以将其放到一个独立的过程当中去。

第二个问题就要看开发的灵活机动了。
一般来说会为一个软件制作一个基础库,他不必是全面的,或者跨平台的。等到了具体模块的编码时,所见到的只是必须用的那个抽象。对于字符串处理这种完全可以根据自己的需求写一个string类。至于他是用std::sring还是CString来实现,这些并不重要,必要时对其进行扩展就是了。这总好过在后期对所有模块代码的整理和规范。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理