Details
Details
- 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"
注意指针的指向对象的生命周期,栈上对象在离开作用域之后生命周期不做任何保证
不要重复构造已经存在的对象,善于利用emplace_back
剃刀原则,如无必要,不要修改
命名问题,统一一个code style
零时对象的问题
查问题的时候如果一个版本可以,一个版本不可以,注意对比从头到尾的区别,切忌想当然的觉得哪里的问题然后一路看下去
接口要注意扩展性,最好在配置的地方塞结构体,这样至少看起来是没有大变化的,而且最好先约定好,后期不要改了,就改实现的内容
设计模块最好互相之前完全没有耦合,这样UT会很好写
查crash的时候先看信号,然后看堆栈,找到最后一个能和符号化堆起来的堆栈,配合信号确定这里的问题
编译依赖问题,不要随便+头文件
This post is licensed under CC BY 4.0 by the author.