编写更好的代码除了保证逻辑正确外应该从两个方面考虑,首先便于定位错误,其次在逻辑正确上考虑扩展与可预见的改动。
1、慎用复制粘贴。
2、对与程序外部的数据交换需要作记录,以便于确认错误。这样记录出来的数据同时可以作为程序的输入回放,来方便快速的定位和重现问题。
3、多下断言,对于非法参数与程序跑到不可预期的地方应该马上终止程序,这样便于定位错误。发生错误后,重新修正后再让程序继续跑。
4、给将来的改动留有余地。将来的改动可能是可以预期的,也可能不可意料的。所以应该遵循一个原则,让函数内部代码尽可能的紧凑。例如。
if (rx) {
// do something not relative to rx;
call_func(rx);
}
|
就不如
if (rx) {
// do something no relative to rx;
}
if (rx)
call_func(rx);
|
更显得紧凑。
特别是将来 do something no relative to rx 变成 do something relative to rx, 导致rx改变时,那么将使得不引入潜在问题(当然了要看新的逻辑)。
5、接口应该针对提供者来设计,而不是调用者。假如你纠结于到底这个接口应该从哪个模块的角度来考虑,那么可以肯定你需要使用桥接模式。
阅读(674) | 评论(0) | 转发(0) |