过去的时候,程序编写完成之前会一直在思考如何实现,但完成之后就不怎么看这个程序,也就更不会重复思考这个程序的不完善之处。

  这周略读了构建之法的第一章“软件==程序+软件工程”,在这一章中我找到了一个地方“一个好的软件,即使功能和同类软件区别不大,但却会让人感觉到非常好用。这就是软件的用户体验(User Experience)”。看到这句话我也联想到怎么在软件尽可能相同的情况下有更多吸引客户的地方。用户的体验我认为算是非常重要的的一点了。就拿我最近的一个例子:我之前编了一个四则运算的程序,它能实现随机产生规定数以内的四则运算。我编完之后只让它产生了30以内。但我发现会有一部分情况让程序出现卡顿,之后我对程序进行小优化,比如为了让它的结果在100以内运算加法的时候,第一个数产生在0~100之间,那第二个数就不用再在0~100之间运算,直接在0~(100-a)之间随机就可以了。加减法的优化不明显,但乘除法的优化就明显多了。因为满足乘除法的条件要苛刻一点(还有被除数为质数的情况),具体优化我在另一篇博客随笔里有介绍。后来我又让它产生的运算式个数增加到了1000万条信息,这个优化的作用就明显多了。当然这只是在Eclipse当中运行,没有在jsp页面中运行。

或许这个细节优化没有多大明显的变化,但我认为当我以后的程序行数不断增加,细节优化会变得至关重要。一个运行流畅的程序的优势要比一个运行卡顿测程序多除太多。