这问题问的。
1、本身编程就是一个非常费脑力的活,你想达到一个目的,你用编程一步一步的去实现它,这本身就是一件不容易的事情,在实现这个目标的时候你要考虑很多事情,但是限于脑力的能力,你肯定还会有许多方面没想到,而等到测试的时候或用户使用的时候才会被发现因为当初没想到而存在了Bug;
人脑的脑力是有限的,同时人脑也会犯错的;
2、有的时候是因为懒。你有一个目标,一个令人兴奋的想法,你想尽办法奔向目标,在这个过程中是邻人兴奋的,你达到这个目标后就泄劲儿了,那些细枝末节的东西等着以后再去实现吧;
3、有的时候是迫不得已。这么讲吧,可能数学比较好的同学都有过这么样的经历:有道数学题你怎么想也想不到思路,那你剩下的作业就不做了吗?当然不,先做别的题目吧。在实现某个大的应用时,有些不影响全局的某个小功能一时没有很好的解决思路,可能会先放在那里,或者用一种比较笨的办法去解决它。等到哪天灵机一动就有解决方案了;
4、如果你有过PS照片的经历,第二次、第三次修同一张,你会修的更好。你看着你的代码运行,有一天你又来了灵感,或者你看到了别人的实现方式受到了启发,难免会试着再改写一下。