写设计文档能帮助自己理清设计思路,如果设计到修改原有代码,一定要关注到原有代码的逻辑闭合,否则造成的后果是加功能引入了BUG。作设计的时候要考虑到各种场景和约束。单元测试一定要做到位,程序员自己测试可以做到白盒测试去覆盖每一个分支。程序员有时候偷懒就可能遗留BUG,这个测试人员不一定能发现。避免低级错误,如资源没释放,越界,循环终止条件不正确,分支判断没有覆盖全部场景,空指针等。场景考虑不全,如IP地址通信兼容IPv4和IPv6。