`
lyskyly
  • 浏览: 2554 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

为匈牙利命名法正名

阅读更多

  这年头还讨论匈牙利命名法这种恶心的东西?心理变态,奥特曼。微软在C#中都建议不要使用这种源自微软的命名法。
  今天看到《more joel on software》,又一次批判了匈牙利命名法。"羞愧"的说我们项目中至今还用的是匈牙利老掉牙的丑陋命名法。
  先说是匈牙利命名法的几个主要问题吧。
  1.不够优雅
  2.对于面向对象的编程来说,应当关心成员是什么对象,而不是去关心它是什么类型。匈牙利命名法会迫使你去更多的关注实现细节,而不是设计抽象。
  3.当一个成员类型改变后,变得难以修改。比如说一个成员叫做m_dwHouseNumber表示一个人的房子数。为当上房奴而奋斗的你发现用4字节来表示个人房产数是件很闹心的事。于是你将它改为m_ucHouseNumber。比房子问题更麻烦的事来了。m_dwHouseNumber分散在多个文件中(MFC这种在面向对象早期建立的框架,随处可见到将成员变量定为public,然后到处使用,破坏封装性这种恶行),你得将所有使用m_dwHouseNumber的地方都改为m_ucHouseNumber。如果不改,会让你的人生变为杯具(亲身经历..)

  然后再为匈牙利命名法辩解一些。说一下它的好话:它最大或者说唯一的好处就是你能一下子看出这个字段占有多少字节。对于多人合作进行网络开发来说,有时候它会是福音。特别是文档的版本的1.5,而代码的版本已经更新到1.6的时候。很多时候代码就是最好的文档。并不是所有环境都有带智能提示功能的编辑器,甚至不支持多文档浏览。在这种环境下看代码是件很痛苦的事情,特别是看别人的代码。如果你在检查网络协议的时候忘了一个字段是几字节,你不得不去打开另外一个文件看看它的定义。对于我们这种只关心封装不关心继承的业务来说,把房子当作一个对象还是当作一个整数并不重要。
   再说一下上面的三个问题。
   问题1:对于追求优雅完美的程序员来说,抛弃匈牙利命名法吧。
   问题2:对于追求执行效率高于应对业务变化的工种来说,2不是太重要。
   问题3: 现在的重构工具都支持rename功能,不必战战兢兢的去使用文本替换功能。

   所以说匈牙利命名法还会长期存在我们项目中。虽然从本质上来说我不太喜欢这种命名法。但我们老大喜欢,而且也没有给我们带来过多的麻烦。

 

分享到:
评论
1 楼 piao_bo_yi 2010-06-29  
怎么都重命名说事...

相关推荐

    为湖畔大学正名,为中国企业家正名-柳传志.JPG

    为湖畔大学正名,为中国企业家正名-柳传志.JPG

    为缓和医疗正名.rar

    【标题】:“为缓和医疗正名” 在医疗领域,"缓和医疗"是一个至关重要的概念,它关注的是对严重疾病或终末期患者的整体关怀,而非仅仅专注于疾病的治疗。这个概念在中国社会中可能尚未得到充分的认识和理解,因此...

    诺心LECAKE蝉联世界金奖,为中国食品正名.pptx

    诺心LECAKE蝉联世界金奖,为中国食品正名.pptx

    如何为酒店服务人员“正名”-.docx

    如何为酒店服务人员“正名”-.docx

    酷我MP3Partner-v1.0.0.6正名.

    《酷我MP3Partner-v1.0.0.6正名》是一款专为音乐爱好者设计的软件,主要用于解决音频文件的命名不规范问题。在音乐收藏中,有时我们下载或导入的MP3或WMV等格式的音乐文件,其文件名可能混乱无序,不包含歌手、歌曲...

    热电联供为热电联供技术正名.pdf

    热电联供技术,又称热电联产(CHP,Combined Heat and Power),是一种高效能源利用方式,通过将发电过程中产生的废热转化为可用的热能,实现电能和热能的同时产出。这种技术通常涉及使用天然气或其他燃料驱动的发电...

    为系统垃圾正名.pdf

    系统垃圾通常被定义为系统不再需要的文件,包括浏览网页留下的缓存、卸载程序后的残留文件和注册表键值等。然而,对于哪些文件真正符合"系统不再需要"的标准,人们的理解各不相同。一些系统优化软件将此范围扩大,...

    为缓和医疗正名.pdf

    【缓和医疗】,又称姑息性医疗,是一种专注于提高患有威胁生命疾病的患者及其家属生活质量的医疗保健方式。它的核心是关注病人的整体福祉,包括身体、心理和精神层面的痛苦管理,而非仅仅针对疾病的治疗。...

    为系统垃圾正名归纳.pdf

    【系统垃圾】这一概念在IT领域常常引起争议。在描述中提到的"系统垃圾",通常指的是操作系统在运行过程中产生的不再被系统直接使用的文件,包括但不限于网页浏览缓存、卸载程序遗留的文件、系统日志、临时文件等。...

    三年级语文下册给星星正名北京PPT学习教案.pptx

    这篇PPT学习教案主要针对小学三年级语文下册的课程,以《给星星正名》为题,引导学生通过诗歌的形式探索宇宙的奥秘,并学习相关的天文知识。在教学过程中,教师将引导学生认识并理解课文中的生字和新词,同时启发...

    浅析《正名》的辞格

    《正名》是荀子的一篇重要论述,其在辞格上的丰富运用使得论述更为生动且具有说服力。本文将详细解析《正名》中所采用的几种主要辞格,包括比喻、对偶、对比、排比、层递和顶真。 首先,比喻是通过寻找事物之间的...

    耗子尾汁 我来为马保国老师正名!.docx

    ————————————————————————————————————————————————————————————————————————————————————————————————————...

    试论孔子的正名知识论.docx

    试论孔子的正名知识论.docx

    为侦查学正名-浅析侦查学学科归属.docx

    考虑到中国当前的法律环境和侦查实践,将侦查学定位为法学的二级学科可能更为适宜,以确保其发展符合法律规范,并充分关注人权保障。 侦查目的的确定也是讨论的关键点。传统的职权主义模式强调找齐犯罪构成要件,而...

    正名分割器选型目录.pdf

    ### 正名分割器选型目录知识点解析 #### 一、分割器基本概念与运动概述 ...以上内容详细阐述了正名分割器的基本原理、分度传动机制、应用场景以及正确的使用和保养方法,为企业在选购和维护分割器时提供了宝贵的参考。

    为“德育”正名——关于“德育”概念规范化的思考.doc

    其次,作者指出,如果将"德育"定义为"思想品德教育",可能会遗漏"政治教育";而如果将其称为"政治思想品德教育",则显得过于繁复。同时,将政治问题和道德问题混为一谈,或者互换其位置,不仅在政策上不可行,在哲学...

    “国际关系理论史”或“思想史”的正名.docx

    本文主要探讨了“国际关系理论史”或“思想史”的正名问题,旨在明确这个学科领域的确切定义和历史定位。作者首先指出,“国际关系”一词的核心在于“国”、“际”和“关系”,其本质是国家间的相互作用。尽管在不同...

    试用手记之为国产FPGA正名(下)

    在国产FPGA的工具中,设计者无法为不同管脚设置独立的约束值,这可能会限制设计的灵活性。 文章还提到了一个具体的错误:“Error:T2000:(ice_run_sta)Run sta failed.”,这表明在时序分析过程中出现了问题,...

    试用手记之为国产FPGA正名(上)

    国产FPGA的崛起将为国产电子行业带来新的机遇和挑战。随着国产FPGA厂商的不断壮大,国产FPGA将逐渐占据FPGA市场的主导地位。国产FPGA的高性价比和高性能将满足国内外客户的需求,推动国产电子行业的发展。 结论 ...

Global site tag (gtag.js) - Google Analytics