分享
 
 
 

C++Builder (BCB)编程规范 之 鲨鱼美美版

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

C++Builder (BCB)编程规范 之 鲨鱼美美版

本鲨于2002年出道,直今的2004年,快有两年啦! 时间流逝可真快! 毕业后共打了四份工,全部是做软件书写师。都涉及到数据库的领域!.不过薪金也逐步提高了 从50,130,150,到250英镑。每次进一家公司,不是去做开发而是做维护。所以修改代码,调试程序,找出BUG。简直是莫大的痛苦,尤其是修改那些用管C语言人开发的程序,乃是今生莫大的痛苦呀!就逐步总结了一些可行的经验。

1 单元

每个单元只包含一个类的声明。类中不永许写类的实现,类成员函数不超过20个,需要被外界调用的成员函数放在Public外,其余的全部放在Proteced,明确的不想让继承者修改的话放在Private中。

包含的头文件 也就是#include <VCL.h> 在头文件应该包含该类所需要的类型的。如果cpp也包含了,那么头文件就不要在包含,使用Class vcl; 告诉头文件有些需要的已经在CPP文件中包含啦!另外对不再使用的包含文件要及时的清除出去,否则可能碰到连接出错的问题,bcb的连接提示少的可怜啊!就有苦头吃拉!还有要记得给自己加进的包含写注解啊!!

2 实现文件中

千万不要定义全局变量和全局函数,至于会发什么问题啦,只有碰到了几十万的代码,五六个项目集合,一两百个单元所可能发生的问题。 那该怎么办了? 简单把它归到所在单元的类声明中去。函数的实现代码行不要超过200行 包括之间的空格.因为人的暂时记忆能力不强啊! 为什么文章要分段落啊! 就是人暂存上下文的关联的内存是有限的呀

3 组件的属性设置和数据库的字段表名:

一般下都会在对象检查器中的设置。当调试过不去而你又忘记了设置的属性时的哭相,是多么地可气啊!而且BCB没有组件之间的比较,否则的话可以拖个同样的新组件来比一比到底哪里设置的不同! 所以没有办法只好麻烦些直接在代码中设置吧! 虽然很麻烦 却可以节省比较可观的时间呀! 要不就像 kateboy (老公)由于设置了ADOConnection 的Attrib里中的自动事务处理。每当退出程序时就报错!从早上跑到各大BCB的QQ群中求人帮助,只到最后吃晚饭才惊奇发现了毛病所在! 还有一次不知那各BCB老大自报家丑 说自己吸了5包烟抓改BUG直到凌晨时分,方发现了它,原来是书写错误。

再者就是数据库的表名和字段名。在写数据库中,一般会这样写

ADOQuery->SQL->Text=”Select * From TabName Where Name=’wowo’ and sex=’b’”;

ADOQuery->FieldByName(“Sex”)->AsBoolean=true;

程序中到处都是这样写,数据库中的字段名一当改变。你得到处去修改,当然用BCB的查找功能帮一大忙,可是总有漏网之鱼吧! 而且BCB的语法检查不会到字苻串中,每当运行到该处时,虽然程序很明确的告诉你字段不存在,你也很清楚知道如何去修改。但找到它,再一次运行调试。可这段时间以及这时的心情就没有那么好了!每次放同样的错误,每次浪费同样的时间,虽然说少。可每天就8个小时的工作时间。这样频繁的浪费,心情一次比一次不好了,工作效率就越低,只好晚上加班继续干!若次次因为它要去加班,则那有时间去炮轰美媚啦!更不用说挤出点时间学习啦!身体也每况俞下!

解决办法就是使用个单元名为:DBStruct 。在该单元中用结构体来存放数据库的表名和字段。列如:typedef struct{ stirng Name; string sex;String TabName} MyTab;

MyTab m_dogTab;

ADOQuery->FieldByName(m_dogTab.Sex)->AsBoolean=true;

4 单元之间的引用

可以说单元其实就是类,虽然我们写类的时间较少。但TFORM就是个已经声明好的类,我们就给它添加功能就行了!类之间最好时少耦合,多内聚。最好不要在单元之间使用回调的功能和数据成员。直接使用函数和属性。

5命名

一般下的组件的命名是 Form1 è Frm_Main Edit1è Edt_Name 等 你也可以不缩写!

常用变量命名

全局变量

g_

常量

c_

c++类成员变量

m_

静态变量

s_

Int

_i

Long

_l

Float

_f

Doubl

_d

Strng

_s

Char

_c

Point

_p

Enum

_e

Struct

_t

Array

_a

Word

_w

Bool

_b

Hwnd

_h

其实不很长 无非是全局静态常量整形指针 gcs_ipMyAge; 一般情况下是 g_iMyAge 顶多三个或者是四个罢了!最重要的是能一眼区分出来!

6 注解:

我很反对注解占用一行,尤其是在代码头上,极大的防碍了阅读代码!

// 这是我写的 N年钱

adoquery->sql->text=sName;

为什么不这样了

adoquery->sql->text=sName; // 这是我写的 N年钱

当你看不懂代码时就向右看一看注解,就明白.

7 函数入口要检查参数.

除了入口的,还要对函数可以使用到的变量进行检查!否则的话!嘿嘿就不说啦!

8 后续 等我买了C++编码规范 熟读后 实践后 受到经验教训后 再把它写出来

其实自己也很少遵守纪律的,天天吃苦头。所以就要写出来,每天读一遍。

OK !到此为之 2004-5-28

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有