在程序开发中,调试的时间总是大于编码的时间,更多时候,我们程序员不是在写功能,而是在调试。
作为程序员,不知道喜欢按自己的想法优化代码算不算职业病。
但是不管怎么说,每一次更改代码都需要进行必要的检查,而不能过程中不做任何检查,总想把所有的东西做完了再去检查。
如果不及时做检查,后果就是,因为走得太远而难以纠正,甚至付出巨大的时间成本。
一个不经意的小检查,可能再后来带来若明奇妙的问题,头发掉光了也不容易找到问题所在。
例如,
public List<PopupwindowModel> getSelectDataList() {
List<PopupwindowModel> selectList = new ArrayList<>();
for (int i = 0; i < getDataList().size(); i++) {
PopupwindowModel vm = getDataList().get(i);
if (vm.getId() != -1 && vm.isSelect()) {
selectList.add(vm);
}
}
return selectList;
}
我想把上面函数中的getDataList()更改为list变量,但是当时没有好好检查,等到后来出了问题,排查了几遍后发现是getDataList()的问题。
在第一遍修改时,仅仅更改了条件中的i < getDataList().size(),然后匆匆往后面走。
public List<PopupwindowModel> getSelectDataList() {
List<PopupwindowModel> selectList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
PopupwindowModel vm = getDataList().get(i);
if (vm.getId() != -1 && vm.isSelect()) {
selectList.add(vm);
}
}
return selectList;
}
结果出问题,回头查询半天,原来下一句getDataList().get(i)也需要改。
public List<PopupwindowModel> getSelectDataList1() {
List<PopupwindowModel> selectList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
PopupwindowModel vm = list.get(i);
if (vm.getId() != -1 && vm.isSelect()) {
selectList.add(vm);
}
}
return selectList;
}
自己以前吃过这样的亏,因为自己不清楚全局进度,心里没底也着急,总想快速走完整个流程,结果只要一个小步骤不够严谨细致,就会导致后来使用很多时间排查。
注重全局进度没错,但是质量也很重要,自己是否能够顶住压力,每一步,每一个小东西都要多检查一下,避免后面出现质量失控。
做不了就是做不了,时间不够就是不够,承认自己也就这么大能力也不算什么。
关于: