一次代码优化过程
需要完善:
1. 宏定义修改,比如改成 const int INTERVAL_MS = 1000
2. 区分哪些是struct数据哪些是要进行数据封装隐藏的
3. 邻区索引改成共享指针;注意拷贝构造和拷贝赋值的处理
4. 性能考虑,不必要的劣化
5. 哪些需要用到命名空间
6. 消息处理能否进一步抽象
7. 接口消息检查处理及异常保护
8. 枚举类型定义
9. 初始化列表代替构造函数中的赋值
10. 统计信息及运维时参数统计
11. 如何写注释并形成习惯
后续考虑:
1. 消息通讯中,如何排除int等因机器环境不同而带来的字节不同的影响
2. IP分片处理及优化,测试。对比应用层实现和协议栈实现。
3. UT测试如何设计?
a.内部消息桩以检查内部消息流程是否按照预设进行
b.先设定好测试场景,然后模拟数据
c.该操作流程产生的数据是否符合预期
d.代码变更,UT失败,检查变更影响。UT就是做这个防护的。
e.完成自测验证:
KW检查分析
异常验证:gdb XX core
backtrace:
CXXFLAGS+=-rdynamic
加头文件:backtrace.h
main 头文件#include backtrace.h
开始处加:CatchSigsegv();
4. 平台库文件的头文件学习
https://bitbucket.org/godsme/mockcpp/src mockcpp的代码
5. 统一命名,DDD,在设计阶段对领域对象统一命名
检查及优化:
1. 字节序转换时加保护
#if BIG_ENDIAN
#define BSWAP32(x) __bswap_32 (x)
#define BSWAP16(x) __bswap_16 (x)
#else
#define BSWAP32(x) (x)
#define BSWAP16(x) (x)
#endif
2. mock重载函数的mock
函数前加函数调用形式,如int (*)(float)
https://bitbucket.org/godsme/mockcpp/src/06ad37ddc45cbbc5d5e42db925f72ebf9faaa0d4/tests/ut/TestOverloadMethodMocker.h?at=default&fileviewer=file-view-default