“过早优化”,我们很容易掉进去的陷阱

这段时间一直再读《JAVA编程思想》,确实是一本堪称经典的巨著,撇开其他技术性文章不说,对我感触最深的是附录里的几段话:

Java编程思想 写道
1. 当心因“过早分析而导致无从下手”的情况
。请记住,在你获得所有信息之前,必须让项目持续想钱推进。而且理解未知部分最好也是最快的方式,就是尝试向前推进一步而不是在完全理解之后才开始工作。除非已经找到了解决方案,否则你无法知道如何解决。你在某个类或一组类中造成的错误,并不会上海整个系统的完整性。这是Java内置的防火墙,请让它们工作起来

2. 不要跳入过早优化的陷阱。
过早优化其实并不理智。尤其是在系统构建初期,先别为是否使用本地方法,是否将某个方法声明为final,以及是否调整代码效率等问题而烦恼。你的主要目的应该是先证明设计的正确性。即使在设计本身也有效率需求的情况下,也要遵循“先能运行,再求快速”的准则

3. 当心过早优化。
先能运行,再求快速。只有在你必须(也就是说只有证明某段代码确实存在性能瓶颈)时才这么做。除非你已经使用性能分析工具找到了瓶颈所在,否则你只是在浪费时间。性能调整的隐性成本在于它会令你的代码变得难以阅读和维护。



这是在Java编程思想中挑选摘录的,为什么贴上来呢,因为对我的感触确实很大,因为自己此前一直做了很多小项目都是做到一半甚至是一多半就做不下来了(有团购网,代码生成器等)找不着原因而感到非常郁闷,看了作者的这几段话我才突然领悟到我早就跳进陷阱了,回顾下自己做的项目,发现我都是在开始时就要把全部问题想全了再开始做,结果发现问题越来越多,自己也没开始动手做,想着先把问题解决完了再开关,结果问题是越解决越到,解决中发现新问题,就这样问题数量呈递归上升,原来一个小项目硬是让自己做成了一个不可能完成的任务

其实不光是我这样,所有初做项目的朋友都应该注意,不要想着开始就能把所有项目中的问题全考虑到并项目开工前全部解决,问题越考虑越复杂,比如做一个论坛系统,不考虑别的,先整理思路,把注册 登陆 发帖 回帖基本功能实现了再说,别想着还没做就考虑是不是用ajax判断用户名是否可用,ajax我还不会。赶快去看看教程,页面该怎么怎么美化,再去研究css排版等等乱七八糟的,别急着过早优化,先基本的搞完再说,掉进去只会打乱自己对项目的整体思路。

做项目,首先应该分清主次,这个项目的最终目的是干什么的,哪些是的基本功能,那些是附加功能,分清主体和周边,别想着树还没种下去呢就考虑树叶该怎么生长。

先让飞机分起来再想着让它飞的更高

希望看到本文的朋友能收到点儿东西,咱一个文盲写的不好,自己可以好好琢磨琢磨,究竟我们最主要是干什么的,当心问题递归增长害了自己

猜你喜欢

转载自renyanwei.iteye.com/blog/260919