Post

Details

Details

  1. std::string从const char*转过来的时候,如果存在’\0’,会被截断。good taste的做法是
1
2
3
std::string s1 = "ab\0\0cd";   // s1 contains "ab"
std::string s2{"ab\0\0cd", 6}; // s2 contains "ab\0\0cd"
std::string s3 = "ab\0\0cd"s;  // s3 contains "ab\0\0cd"
  1. 注意指针的指向对象的生命周期,栈上对象在离开作用域之后生命周期不做任何保证

  2. 不要重复构造已经存在的对象,善于利用emplace_back

  3. 剃刀原则,如无必要,不要修改

  4. 命名问题,统一一个code style

  5. 零时对象的问题

  6. 查问题的时候如果一个版本可以,一个版本不可以,注意对比从头到尾的区别,切忌想当然的觉得哪里的问题然后一路看下去

  7. 接口要注意扩展性,最好在配置的地方塞结构体,这样至少看起来是没有大变化的,而且最好先约定好,后期不要改了,就改实现的内容

  8. 设计模块最好互相之前完全没有耦合,这样UT会很好写

  9. 查crash的时候先看信号,然后看堆栈,找到最后一个能和符号化堆起来的堆栈,配合信号确定这里的问题

  10. 编译依赖问题,不要随便+头文件

This post is licensed under CC BY 4.0 by the author.

Trending Tags