题
我正与一个集团的其他程序员开放源项目,建立使用C++和夸脱
现在,我们需要一个命名的公约》的部件(和其他变量一般)使用它作为一个标准在我们所有的代码这样,代码变得更好的可读性和我们之间更好的协调程序员。
任何建议?
编辑:我不是在谈论的命名新课程,
而不是我谈论的命名情况的脱件,让我们说我有一个文本编辑用户的名字,我应该称它txtEdtUsrNm?
在这种情况下,我怎么选择衍生?
解决方案
只要你想沿着这些路线,我会开始通过阅读这QtQuarterly的文章,从开始到完成。
这就是说,一件事,我们要做的就是把"使用"的实例,作为第一部分和最后的完整的词类作为最后的一部分。
所以,你的"用户名"QTextEdit是
QTextEdit * userNameEdit = new QTextEdit(this);
如果有的模糊性,例如QListView和QTreeView,挑选最后一个unabiguous部分。
QListView * userListView;
你能弄明白的缩写,你怎么样(例如"Lbl"为QLabel),但一般来说,整个字都有工作和已经容易阅读。
另一方面,我们是不是太严格的关于这一点,这可能是更重要的名称,意图实例变量没有类的名称,因为如果在未来的,你想要改变该类,你能更改名称,在没有良好的重构工具,是一个痛苦。
也许找出总部件使用的大多数,并且挑选一个命名的公约》的最通常的超级课程和让一切走。
例的情况下,遵守《公约》:
- 布=的所有课程,在结束 "布局"和继承QLayout
- 按钮=的所有类结尾的"按键"和继承QAbstractButton
该QAbstractClassName 类是一个好地方去想什么应该在这一名单。
其他提示
由于Qt对第三方开发人员开放,他们提供了几个关于编码风格和API设计原则的文档。
这些文件非常有趣。以下是一些链接:
来自Jasmin Blanchette的这份文件(PDF)值得一读: API Design的小手册
我只会使用Qt使用的相同命名约定。让自己轻松自如。
他们的命名约定类似于java。
全名快速阅读和输入很麻烦,所以我们通常使用缩写:
QLabel * fooLB;
QPushButton * fooPB;
QTextEdit * fooTE;
QSpinBox * fooSB;
(你得到漂移)。是的,有些含糊不清,但它们通常是从上下文中解决的。
准确地说,问题是关于“命名Qt Widgets的实例”,但答案是关于命名保存对小部件实例的引用的变量。
Qt Widgets派生自QObject,它具有带getter objectName()的name属性。如果程序员没有,Qt会给该属性一个值吗?称之为“自动生成”或“默认”值。