编码规范 (二)

编码规则规范

0、使用h头树型

      h头文件树型链接,要添加#pargma once  多使用声明把头文件移入CPP中屏蔽接口显露有用的接口即可,h中只能有声名,不能有定义类或实际代码(实际函数或变量实体

class struct的定义可以在内有函数。

     全局变量要 在constant.h中声明,随意#include  在Constant.cpp中定义 全局变量仅在此处有,类库中全无。

    h头文件中只有声明,不存在定义,定义全部放在cpp/c文件中。

1、避免使用“魔数”

      避免:for (int index=0;index<512;++index){ //魔数

      推荐用法:int bufsize=512;

                        for (int index=0;index<bufsize;++index){

    使用宏定义在h头中 该头可以随便include

2、注意比较操作符的使用

      使用了“<”而不是“!=”应该这样改:

  int bufsize=512;

  for (int index=0;index!=bufsize;++index){

3、要善于利用“const”对象

  还是上面的程序代码,其中我们定义了“int bufsize=512”,这就意味着在程序的某个地方都可以修改bufsize的值,这显然不符合我们的初衷。所以这里就有一个比较严重的

       问题:“bufsize”是可以修改的。bufsize可能会被有意或无意地修改。我们当然不希望这种情况发生,所以可以这样改:

  const int bufsize=512;

  for (int index=0;index!=bufsize;++index){

4、尽量避免使用指针和数组

  指针和数组容易产生不可预料的错误,指针用于低级操作,容易产生和繁琐细节相关的错误。而且使用指针的语法规则还比较令人费解。

  数组最大的问题就是不能动态增长,必须要预先设定好数组的才长度。而且数组一经定义,就不允许再添加新元素了,如果需要添加新元素,程序员就要自己管理内存,

       即重新定义一个数组,再把旧数组的元素复制过去,同时还要时刻注意防止数组越界造成的“缓冲区溢出”等问题。

  现在许多有用的程序都可不使用数组或指针实现,现代C++采用Vector取代一般的数组,用迭代器取代指针,虽然指针本质上也是迭代器。看下面的代码:

  string word;

  vector text;

  while (cin>>word){

    text.push_back(word);

  }

       尽量封装入类中使用类。

5、分层开发慎用全局变量和静态变量

      lul 分层 :

                    1、类库层  (不用静态或全局)

                    2、模块框架层 (不用 或禁用全局或静态)

                    3、应用软件层  (只在此处用全局或静态)

6、内存管理

       基本数据类型做为容器,容存数值,容器中又分为两种 一种是 实体类型容器  一种是引用类型,程序各模块之间的关系是调用

或被调用关系。

        lul使用 规则:

       1、传入的参数要等到调用的黑盒模块执行完时才销毁,黑盒模块为一个函数或一个线程。

       2、黑盒模块传出的数据 不销毁,黑盒作为数据源,由调用者销毁。

       3、黑盒模块自管自己使用数据块,传入的不管,传出的只管生产。

 7、lib、dll规范

      lib 中可放全局或静态或函数实体或类定义,都可以,但尽量只放函数或类型定义,lib是加载入exe。

      dll  中可放全局或静态或函数实体或类定义,都可以,但是导出只用函数。lib引入的只是dll中的声明。

8、声明的定义坚守原则

      1、声明一定只在h头中,定义一定在cpp/c中;

      2、局部变量在需时才定义

9、版式风格

      1、打括号风格

           1、1  采用括起 在前句之后,收起的括号单独一行

           1、2  采用 括起 和 收起都占一行


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目 录 1 PHP接口安全 4 1.1 指定公布给外部的资源,客户端只能访问允许访问的资源 4 1.1.1 说明 4 1.1.2 应对 4 1.1.3 举例 4 1.2 定义所有接口的参数,并做严格的检查 5 1.2.1 说明 5 1.2.2 应对 5 1.2.3 举例 5 1.3 不能让客户端看到任何不友好的错误信息 5 1.3.1 说明 5 1.3.2 应对 5 1.3.3 举例 5 、PHP编码安全 6 2.1 POST/GET参数传值/字符串输入/数据入库等严格的危险字符过滤处理 6 2.1.1 说明 6 2.2.2 应对 6 2.2.3 举例 6 2.2 相关PHP的I/O操作,需要注意限制权限,文件名或目录名或内容都要做好过滤处理 8 2.2.1 说明 8 2.2.2 应对 8 2.2.3 举例 8 2.3 敏感信息(如PASSWORD/银行帐号等)不要依赖COOKIE,SESSION,最好读表,并尽量缓存读表数据 8 2.3.1 说明 8 2.3.2 应对 9 2.3.3 举例 9 2.4 注意对网站根目录及下面所有子目录及文件的权限控制与保护,不要让配置文件/系统信息等文件暴露 10 2.4.1 说明 10 2.4.2 应对 10 2.4.3 举例 10 2.5 屏蔽或定制化出错信息 10 2.5.1 说明 10 2.5.2 应对 11 2.5.3 举例 11 2.6 数据库的读取等操作、POST/GET传值需要做频率限制与Token校验 11 2.6.1 说明 11 2.6.2 应对 11 2.6.3 举例 11 2.7 有类似文件下载/或文本流下载等功能的,尽量避免使用URL直接调用目标文件地址的方式 12 2.7.1 说明 12 2.7.2 应对 12 2.7.3 举例 12 2.8 MYSQL 的用户最好分开,不要用ROOT用户来连接MYSQL 13 2.8.1 说明 13 2.8.2 应对 13 2.8.3 举例 13 3 参考内容 13

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此间的年少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值