代码容错性及设计的一些小技巧(持续更新)

do-while的使用

#ifndef _BEGIN_DO_WHILE_
#define _BEGIN_DO_WHILE_  do{
#define _END_DO_WHILE_   }while(false);
#endif

具体代码中的使用
_BEGIN_DO_WHILE_

xxx
if 出错
    break;
xxx

_END_DO_WHILE_

xxx
这样即使程序出错 也可以保证 _END_DO_WHILE_之后的代码得到执行

变量前缀的使用

class Test
{
private:
    string strProductId;
    int iProductNum;
    int iCoinType;
    int iCoinNum;
    int iErrorCode;
    int strBillno;
};

变量前缀用来标识变量类型,可以在后续编码过程中快速识别变量类型,不用再跳转去查看.

转换嵌套设计为线性设计

需求: 记录qq用户 微信用户 游客用户的流水记录 使用reids存储,并提供查询.

我的设计: 使用set结构

keyvalue
qq<账号,<时间戳,flowItem>>
wx<账号,<时间戳,flowItem>>
guest<账号,<时间戳,flowItem>>

师父的设计: 使用sorted set结构

keyscorevalue
qq_账号时间戳flowItem
wx_账号时间戳flowItem
guest_账号时间戳flowItem

namespace以及Google protocol buffer的使用

namespace的使用可以有效的防止命名污染的问题,避免和原有的代码发生冲突.

在具体的项目中,可以使用Google protocol buffer.(或者公司的jce协议)
参考:

该协议最大的特点是兼容性特别强,使得后续的业务拓展非常便利.并且用户只需要定义数据结构即可,代码可以由解析器自动生成.


获取配置的懒惰型原则

  • 能一次初始化的配置,一次初始化完成,不要每次调用反复初始化,浪费资源.
  • 在读取配置类的信息的时候,比如中共享内存中获取相关数据,一次读取的结果可以缓存起来,第二次读取的时候,先从缓存中获取数据,如果缓存中没有数据,则再去共享内存中读取数据,然后继续缓存.

一些代码编写规范

  • 模块中的函数一定要对一些边界条件和参数的合法性进行判断,即使是自己调用自己的函数,这样可以有效降低后人调用该函数出错的概率.
  • 代码中尽量不要出现硬编码,多使用宏和const常量,必要时使用static进行作用域的限制.
  • 养成顺手写注释的习惯,利己利人.
  • 能独立出来的函数或代码模块一定要独立出来,降低代码的耦合性以及降低相同代码出现的可能性.
  • 开发环境能使用公共库尽量使用公共库,相同的头文件保证在整个项目中只有一份,防止多份拷贝造成头文件的不一致性.
  • 监控很重要,可以及时了解服务的状态
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值