查看完整版本: [--
Tianchi共享库设计意见征集
--]
QTCN开发网
->
天池项目
->
Tianchi共享库设计意见征集
[打印本页]
登录
->
注册
->
回复主题
->
发表主题
XChinux
2013-05-07 11:04
Tianchi共享库设计意见征集
Tianchi项目开发中(Tianchi v0.0.1:
http://www.qtcn.org/bbs/read-htm-tid-53763.html
),有一些设计方面的问题,需要征集大家的意见,看看采用何种方式,大家将意见写在回帖中,有足够的征集意见后,我们修改Tianchi库,发布v0.0.2
1. 为防止命名冲突,有下面两种方案, 您觉得哪种形式对于库设计来说比较合适?:
a) 定义Tianchi名字空间,比如::Tianchi::MyClass, 然后typedef ::Tianchi::MyClass TcMyClass,metaObject->className()为 "Tianchi::MyClass"
b) 定义类前缀,比如::TcMyClass,然后namespace Tianchi { typedef ::TcMyClass MyClass; }, metaObject->className()为"TcMyClass"
2. 关于文件大小写,下面两种方案,您觉得哪种设计比较合适:
a) 文件名大小写区分,比如MyClass.h、MyClass.cpp、MyClassPrivate.cpp
b) 文件名大小写不区分,如要间隔,加下划线,比如myclass.h、myclass.cpp、myclass_p.cpp
3. 是否有必要增加不包含.h的头文件,以表明类名、名字空间名等,比如
MyClass
复制代码
#include <tianchi/Gui/MyClass.h> // or myclass.h
TcGui
复制代码
#include <tianchi/Gui/myclass1.h>
#include <tianchi/Gui/myclass2.h>
......
#include <tianchi/Gui/myclassx.h>
4. 采用下面三种方式来使用Tianchi库,您通常采用何种方式?
a)动态库
b)静态库
c)直接使用源码(需要对Tianchi库结构有所了解)
5. 头文件使用方式,有下面几种,您觉得哪几种比较合适?(多选)
a) #include <tianchi/MyClass>
b) #include <tianchi/myclass.h>
c) #include <tianchi/Gui/MyClass>
d) #include <tianchi/Gui/myclass.h>
e) #include <MyClass>
f) #include <myclass.h>
g) #include <tianchi/gui/MyClass>
h) #include <tianchi/gui/myclass.h>
6. 对于Tianchi库中的一些目录,下面几种方案哪种比较合适?(多选)
a) src/gui/myclass.cpp
b) src/Gui/myclass.cpp
c) src/gui/MyClass.cpp
d) src/Gui/MyClass.cpp
e) include/tianchi/Gui/myclass.h
f) include/tianchi/gui/myclass.h
g) include/tianchi/Gui/MyClass.h
h) include/tianchi/gui/MyClass.h
i) include/tianchi/Gui/MyClass
j) include/tianchi/gui/MyClass
XChinux
2013-05-07 11:11
先说说我的意见:
1. a, b均可
2. b
3. 可增加
4. b, a
5. a, c
6. a, i
圣域天子
2013-05-07 11:25
个人意见:
类命名方案:
类名使用类前缀 TcXXXXX
不再需要namespace Tianchi { typedef ::TcMyClass MyClass; }, 的定义,用户需要时可自行定义。
文件命名方案:
建议使用 tianchi目录,文件名不使用前缀(Tc)
倾向于大小写区分
不增加无 .h 的头文件,以免文件太多
一个单独功能建议只有一对文件(.h & .cpp),例如 DataAccess 中的两个类,为一个相互依赖的功能,就放在一对文件中
使用习惯:
当开发小型工具,仅使用到局部功能时,倾向于静态使用方式或直接使用源码
开发大型软件,使用到较多tianchi的功能时,倾向于动态使用方式
渡世白玉
2013-05-07 13:23
第一个:用a吧、、
第二个:还是名字不区分大小写的好,下划线挺好的,区分大小写,好像大部分系统审查不是很严格区分大小写。
第三个:加不加h都一样、、、
第四个:优先动态库把、、源码也附上、、、、静态库让自己开发吧、、、静态库对编译器版本太苛刻、、、而且动态库其他语言也能用、、、、
第五个:e,f,g,h
第六个:a,f
XChinux
2013-05-07 14:45
1. 去掉名字空间Tianchi,增加名字空间Tc,
2. 增加类前缀Tc, 这些类不放在任何名字空间里. 不再在Tc名字空间里定义普通类.
3. 所有的enum,都放在类里,或者Tc名字空间里,依用途而定;
4. 具有全局意义的函数,做成类静态方法,或者放在Tc名字空间里(不加Tc前缀)
5. 文件名和目录名都小写, Private类对应的文件名加_p后缀;不生成没有.h的头文件;公共.h文件放在include/tianchi目录及其子目录下
6. 开发Tianchi库时,所有的头文件都采用#include <tianchi/gui/tcxxxx.h>这样的形式
7. 写一个xxx.pri文件,以自动将include/tianchi及其子目录自动添加到INCLUDEPATH中,这样普通用户直接include(xxxx.pri)即可,在开发时,直接#include <xxxx.h>
stlf
2013-05-10 10:24
1. a) b)都需要, 用宏作为开关确定是否使用名字空间
2. b) 全部小写
3. 必要
4. a), b) 静态库, 动态库各有优势,但要针对各平台需编译,节省开发者时间
5. b), h): b) #include <tianchi/myclass.h>; h) #include <tianchi/gui/myclass.h>
6. a), f): a) src/gui/myclass.cpp; f) include/tianchi/gui/myclass.h
渡世白玉
2013-05-22 15:12
另外提个意见、、、建议源码都保存为utf-8格式、、、
qt-5全线转移到utf-8了,这样的确省了好多问题、、、
XChinux
2013-05-22 21:41
引用第6楼渡世白玉于2013-05-22 15:12发表的 :
另外提个意见、、、建议源码都保存为utf-8格式、、、
qt-5全线转移到utf-8了,这样的确省了好多问题、、、
要兼容msvc 2008、2010、gcc,没办法,只要文件中要用中文(注释)只能用GBK。
查看完整版本: [--
Tianchi共享库设计意见征集
--] [--
top
--]
Powered by
phpwind
v8.7
Code ©2003-2011
phpwind
Gzip disabled