`
renyanwei
  • 浏览: 70092 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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

阅读更多

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

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

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

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



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

 

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

 

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

 

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

 

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

 

6
0
分享到:
评论
3 楼 SoftGiant 2008-11-02  
写的真的是实在太好了

原来一个小项目硬是让自己做成了一个不可能完成的任务
2 楼 heji 2008-11-02  
螺旋递增式
1 楼 狂放不羁 2008-11-02  
呵呵,一般还是采用敏捷迭代的开发方式,瀑布式的开发方式对于团队不是很熟悉的项目不适用。

相关推荐

    过早优化代码是万恶之源

    DonaldKnuth说“过早优化是万恶之源”(prematureoptimizationistherootofallevil)。这话也许有些夸张,但“过早优化”的危害我觉得不能忽视。  让正确的程序更快比让快速的程序正确要容易太多,太多。所以,缺省...

    粒子群优化算法的改进与应用

    时结果的差别很大,这样就导致了算法优化结果不稳定。 针对粒子群优化算法存在的问题,论文提出了一种新的改进 算法—基于粒子进化的多粒子群优化算法。该算法采用局部版的粒子 群优化方法,从“粒子进化”和“多种...

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在完成项目后,就可以进行系统测试了,可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、...

    论文研究-面向高维复杂多模态问题的教与学优化求解算法.pdf

    针对教与学优化算法(teaching-learning-based optimization,TLBO)在求解一些高维多模态复杂优化问题时,存在种群容易过早陷入局部搜索,导致丢失全局最优解的问题,提出一种改进的TLBO优化算法(MTLBO)。...

    微粒群优化算法源程序

    这里给出的是微粒群优化算法(pso)源程序c语言版的,对一个具体的函数进行了优化。

    5G NR SA掉线优化指导书docx

    SA掉线优化指导书 目录 1 概述 3 2 掉线率定义 3 2.1 掉线率定义 3 2.2 掉线信令表现 4 2.3 无线链路失败流程(RLF)介绍 6 2.3.1 无线链路失败过程中的常量及定时器 6 2.3.2 连接态下物理层失步/...

    论文研究-基于自适应变异粒子群优化算法的测试数据生成.pdf

    针对粒子群优化算法中群体易出现过早收敛的不足,提出了粒子群优化算法的改进算法AMPSO(adaptive mutation particle swarm optimization)算法并应用于测试数据生成中。引入约简粒子群优化算法,提高算法搜索速度;...

    43.线程间的通信-通知过早.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    论文研究 - 基于改进差分进化算法的Rosenbrock函数优化问题研究

    由于为优化算法提供的信息很少,因此很难找到函数的全局最小值。 根据Rosenbrock函数的特点,专门提出了一种改进的差分进化算法,该算法采用自适应缩放因子F和交叉速率CR并带有消除机制,可以有效避免算法的过早...

    论文研究-人工鱼群与微粒群混合优化算法.pdf

    针对人工鱼群算法局部搜索不精确、微粒群优化算法易发生过早收敛等问题,提出一种新的人工鱼群与微粒群混合优化算法。算法的主要思想是先利用人工鱼群的全局收敛性快速寻找到满意的解域,再利用粒子群算法进行快速的...

    基于新型Memetic算法的多目标优化 (2012年)

    为了更好地解决多目标优化问题,提出一种求解多目标优化问题的新型memetic算法。该算法利用微粒子群算法的全局搜索能力和同步启发式局部搜索相结合进行局部微调;利用基于模糊全局极值的概念处理种群中过早出现收敛...

    论文研究-基于混沌蚁群算法的应急救援车辆调度优化.pdf

    为避免过早陷入局部最优,提出了基于混沌扰动的改进蚁群系统优化算法。该算法可对信息素进行全局更新混沌扰动,有效地提高了算法的适应性、求解效率和求解质量。仿真实验表明该算法是可行的,能较好地满足应急救援...

    论文研究-基于逻辑自映射的变尺度混沌粒子群优化算法.pdf

    该算法在粒子群优化算法每次寻优结束时,采用逻辑自映射函数产生混沌序列,在已搜索到的精英粒子附近尝试搜索更优解并动态收缩搜索范围,在防止算法过早陷入局部最优的同时提高了算法搜索的精度。仿真结果表明,新...

    论文研究-面向离散优化问题的量子协同演化算法.pdf

    针对现有优化算法在求解具有时效要求的离散问题时容易出现过早或难以收敛问题,提出了面向离散优化问题的量子协同演化算法,旨在有限的求解时间内获得精度较高的求解方案。在算法的初始化阶段,通过种群初始化策略...

    论文研究 - 基于混沌序列和动态自适应策略的粒子群优化算法

    通过与非支配排序遗传算法和多目标粒子群优化算法进行比较,对四种经典的多目标优化函数进行了性能测试。 结果证明了该算法的有效性,改善了过早收敛问题,收敛速度更快,具有跳出局部最优的强大能力。

    分阶段进化的粒子群优化算法 (2012年)

    针对标准粒子群优化算法在优化多极值函数时容易陷入局部最优的缺点,分析了其进化原理以及过早收敛的原因,并在此基础上提出了分阶段进化的改进算法,即将进化过程分成多个阶段,不同的进化阶段应用不同的迭代进化...

    论文研究-自适应混沌蚁群算法的粮食应急路径优化研究.pdf

    利用“最大最小蚂蚁系统”进行求解,为避免过早陷入局部最优,提出自适应混沌蚁群优化算法。该算法利用有效解相似度来判断蚁群当前状态,根据情况对信息素进行全局更新和混沌扰动,可以有效地提高最优解的精度。实验...

    论文研究-一种混合的离散细菌菌落优化算法.pdf

    根据现有细菌优化算法,设计一种新的个体编码方式及进化模式,通过设计种群的自适应调整因子增强个体活力,并融合禁忌搜索算法,克服算法易于陷入过早收敛的不足,并与其他算法在Taillard标准调度测试问题集上比较...

Global site tag (gtag.js) - Google Analytics