随笔-60  评论-98  文章-0  trackbacks-0

Designing Qt-Style C++ APIs by Matthias Ettrich 
e文全文地址: http://doc.trolltech.com/qq/qq13-apis.html 
译文:设计Qt风格的C++API  by Googol Lee
本文是读书笔记,原文和译文都比本文精彩,建议选择阅读。

评价一片文章是否烂的标准是:你是否看过之后感觉不痛不痒。
一片烂文章的来由通常有两条,一是文章的烂是客观存在的,另一个就是看文章的人太麻木,以至于针尖戳背亦难觉痛痒。
这篇文章,释开了我心头的数朵疑云,漂浮如下。
1、便利陷阱
原先的困惑:是在默认构造函数或Initialize函数列表中一次性传入所有的对象运行期间的状态信息,还是通过修改器逐一设置?
现在的认识:不要再默认构造函数或者是初始化函数的参数列表中过分罗列参数,应用场景的变化会需要更新参数列表进行配合,既晦涩难懂,又不好扩展。通过Setter来设置这些参数,还可以给运行期间的对象内部信息修改带来便利,很好,很方便。
2、布尔参数陷阱
原先的困惑:原先的接口已经定义好,现在由于一些原因,需要一个bool变量来控制其中一些行为的为与不为,直接加上,很方便。因为同时修改了接口参数列表,心有戚戚焉。这个问题曾经向大田请教过,他惯用的做法是重载接口。
现在的认识:修改接口列表的行为是丑陋的,重载接口暂不讨论。较好的做法是添加一个接口,在接口名上添加功能,胜过添加参数。因为给一个已经存在的函数添加一个布尔参数,常常是错误的。
3、命名的艺术
原先的困惑:曾经把常用单词的缩略形式贴到桌面上,日日诵读,一路写来,效果不佳。因为时常因为记不得缩写的确切形式,而采用全写,精神状态好,记忆清晰的时候,又用了缩写。有些缩写是很不容易用缩写区分的,比如def,即可以解释成default,也可以解释成defination。
现在的认识:除个别没有歧义的缩写之外,其他都不要用,比如dialog->dlg, win->windows。
4、给枚举类型及其值命名
原先的困惑:枚举是一种特殊的数据类型,他到底是多长8、16或者32位,是通过编译器设定的。另外命名也令我头痛,写成BottomRight又觉得不够醒目,如果作为成员函数怎么办呢?eBottomRight吗?
现在的认识:namespace Qt的定义和Qt::Insensitive的引用足够醒目,把”标志“类用-Flag做后缀,达意更确切。
5、指针还是引用?
这是一个从学编程就知道的问题,看了诸多文献,公说公有理,婆说婆有理,谁说谁有理,还是按照原先养成的习惯来吧。

看看手中的模块,我犯的许多毛病都在Qt3中也找到了的,可见这些毛病是人类的通病了,不需过分自责。

做好的API,测试+重构才是王道。

posted on 2008-03-03 07:59 创建更好的解决方案 阅读(1984) 评论(6)  编辑 收藏 引用 所属分类: C++专栏软件设计

评论:
# re: 好文如风,拂去数朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich 2008-03-03 20:04 | 魔域私服
# re: 好文如风,拂去数朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich 2008-03-03 23:25 | 土仔
说到代码风格问题,如果用C++Builder类的IDE,建议用国内自己人编写的一个免费外挂辅助软件CnPack IDE专家包,还是开源的。能自动帮助你缩短Borland类IDE的那些组件的名字,起到规范的作用。  回复  更多评论
  
# re: 好文如风,拂去数朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich 2008-03-04 11:37 | 火夜风舞
此文是你翻译的还是自己的心得啊?虽然对部分有所疑惑,但以后留心,总有好处,感谢分享了  回复  更多评论
  
# re: 好文如风,拂去数朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich 2008-03-05 09:07 | 创建更好的解决方案
@土仔
这位兄台误会了,cnpack的是IDE专家,接口的命名,IDE专家帮不上忙。  回复  更多评论
  
# re: 好文如风,拂去数朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich 2008-03-05 09:08 | 创建更好的解决方案
@火夜风舞
本文是读书笔记,心得,非译文。
多交流,多读书,测试+重构,此为程序员修炼之道,呵呵。  回复  更多评论
  
# re: 好文如风,拂去数朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich 2008-03-05 17:32 | #Ant
不错,确实是篇好文章,解开了我的一些困惑,谢谢分享!  回复  更多评论
  

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