这段时间一直再读《JAVA编程思想》,确实是一本堪称经典的巨著,撇开其他技术性文章不说,对我感触最深的是附录里的几段话:
Java编程思想 写道
1.当心因“过早分析而导致无从下手”的情况
。请记住,在你获得所有信息之前,必须让项目持续想钱推进。而且理解未知部分最好也是最快的方式,就是尝试向前推进一步而不是在完全理解之后才开始工作。除非已经找到了解决方案,否则你无法知道如何解决。你在某个类或一组类中造成的错误,并不会上海整个系统的完整性。这是Java内置的防火墙,请让它们工作起来
2.不要跳入过早优化的陷阱。
过早优化其实并不理智。尤其是在系统构建初期,先别为是否使用本地方法,是否将某个方法声明为final,以及是否调整代码效率等问题而烦恼。你的主要目的应该是先证明设计的正确性。即使在设计本身也有效率需求的情况下,也要遵循“先能运行,再求快速”的准则
3.当心过早优化。
先能运行,再求快速。只有在你必须(也就是说只有证明某段代码确实存在性能瓶颈)时才这么做。除非你已经使用性能分析工具找到了瓶颈所在,否则你只是在浪费时间。性能调整的隐性成本在于它会令你的代码变得难以阅读和维护。
这是在Java编程思想中挑选摘录的,为什么贴上来呢,因为对我的感触确实很大,因为自己此前一直做了很多小项目都是做到一半甚至是一多半就做不下来了(有团购网,代码生成器等)找不着原因而感到非常郁闷,看了作者的这几段话我才突然领悟到我早就跳进陷阱了,回顾下自己做的项目,发现我都是在开始时就要把全部问题想全了再开始做,结果发现问题越来越多,自己也没开始动手做,想着先把问题解决完了再开关,结果问题是越解决越到,解决中发现新问题,就这样问题数量呈递归上升,原来一个小项目硬是让自己做成了一个不可能完成的任务
其实不光是我这样,所有初做项目的朋友都应该注意,不要想着开始就能把所有项目中的问题全考虑到并项目开工前全部解决,问题越考虑越复杂,比如做一个论坛系统,不考虑别的,先整理思路,把注册 登陆 发帖 回帖基本功能实现了再说,别想着还没做就考虑是不是用ajax判断用户名是否可用,ajax我还不会。赶快去看看教程,页面该怎么怎么美化,再去研究css排版等等乱七八糟的,别急着过早优化,先基本的搞完再说,掉进去只会打乱自己对项目的整体思路。
做项目,首先应该分清主次,这个项目的最终目的是干什么的,哪些是的基本功能,那些是附加功能,分清主体和周边,别想着树还没种下去呢就考虑树叶该怎么生长。
先让飞机分起来再想着让它飞的更高
希望看到本文的朋友能收到点儿东西,咱一个文盲写的不好,自己可以好好琢磨琢磨,究竟我们最主要是干什么的,当心问题递归增长害了自己
分享到:
相关推荐
DonaldKnuth说“过早优化是万恶之源”(prematureoptimizationistherootofallevil)。这话也许有些夸张,但“过早优化”的危害我觉得不能忽视。 让正确的程序更快比让快速的程序正确要容易太多,太多。所以,缺省...
通过学习和理解WSO算法,我们可以深入到优化问题的解决中,掌握一种强大的工具,用于处理工程设计、数据分析、机器学习模型参数调优等实际问题。同时,熟悉MATLAB编程也是提高科研和工程实践能力的关键。
它在处理离散和连续优化问题时都有很好的适应性,特别适合于复杂的多峰函数优化。 智能优化方法的发展与最优化问题的类型密切相关。最优化问题可以分为两大类:**函数优化问题** 和 **组合优化问题**。函数优化涉及...
标题中的“poa1_poa_POA算法_逐步优化用于水库优化调度_”明确指出了我们要探讨的主题,即POA(Progressive Optimization Algorithm)算法在水库优化调度中的应用。POA算法是一种逐步优化的方法,其核心思想是通过...
智能优化是一种广泛应用于解决复杂问题的计算...学习和掌握这些智能优化算法,能帮助我们更好地解决实际工程和科研中的复杂问题。在使用时,需要结合具体问题的特性,灵活选择和调整算法参数,以达到最佳的优化效果。
鲸鱼优化算法(Whale Optimization ...尽管它在某些方面仍存在改进空间,如收敛速度和局部最优陷阱,但其独特的设计理念和灵活的适应性使其在众多优化算法中脱颖而出,成为研究者和工程师解决实际问题的一个有力工具。
这种算法在解决多模态、非线性以及多峰函数的优化问题上具有很大的潜力,被广泛应用于工程设计、机器学习、数据挖掘等领域。 斑马优化算法的核心思想可以分为以下几个方面: 1. **初始化种群**:算法开始时,随机...
在C++程序设计中,陷阱和误区是程序员经常会遇到的问题,这些可能会导致程序运行错误、效率低下甚至难以调试。本文将深入探讨C++中的常见陷阱,帮助开发者避免这些问题,提高编程质量和效率。 首先,C++的类型转换...
首先,我们需要理解优化算法的基本概念。优化算法是一种寻找最优解的数学方法,目标是使某个函数达到最大值或最小值。在实际应用中,这些函数可能代表成本、收益、性能或其他关键指标。优化算法广泛应用于机器学习、...
野马优化算法是一种在工程优化问题中广泛应用的自然启发式搜索算法,其设计灵感来源于野生马群的社会行为和群体动态。在自然界中,野马以其卓越的运动能力和群体协作策略来寻找食物和避免捕食者,这些特性被巧妙地...
对于多目标优化求解,你提供的文件"多目标优化求解(使用遗传算法)"很可能包含了具体的Python代码示例,可以作为学习和实践的起点。 通过理解多目标优化的理论基础,熟练掌握遗传算法的实施步骤,并结合Python编程...
遗传算法(Genetic Algorithm,简称GA)是一种模拟自然选择和遗传机制的全局优化搜索技术,由John ...通过深入学习和理解这些资料,我们可以更深入地掌握遗传算法的核心原理和应用技巧,从而更好地解决实际的优化问题。
AOA(Adaptive Optimization Algorithm,自适应优化算法)是一种基于生物行为启发的全局优化方法,其设计灵感来源于动物群体在寻找...通过深入理解和熟练运用这些算法,我们可以更有效地解决实际问题,提升优化效率。
在这个项目中,我们将深入探讨如何利用Python语言和遗传算法来实现微电网的优化调度。 首先,我们要理解微电网的基本构成。微电网通常由多种能源系统组成,如太阳能光伏、风能、储能装置(如电池)和传统发电机等。...
软杀伤法是一种处理优化过程中可能出现的局部最优解的方法,它允许结构在优化过程中有一定程度的“弹性”,以避免过早收敛到非全局最优解。在BESO算法中,这种策略有助于寻找更接近全局最优的结构布局。 BESO算法的...
"MySQL性能优化和高可用架构实践" 本书《MySQL性能优化和高可用架构实践》是一本详细介绍MySQL性能优化和高可用架构...例如,如何避免过早优化、如何权衡性能与稳定性等。这些经验教训将帮助读者在实践中少走弯路。
在压缩包文件中,“蜣螂优化算法.pdf”很可能是一篇详细描述该算法原理、实现方法以及应用案例的研究论文,可以帮助读者深入理解算法的细节和应用。而“发行版”可能包含了算法的源代码或者软件包,可供研究者和...
时结果的差别很大,这样就导致了算法优化结果不稳定。 针对粒子群优化算法存在的问题,论文提出了一种新的改进 算法—基于粒子进化的多粒子群优化算法。该算法采用局部版的粒子 群优化方法,从“粒子进化”和“多种...
开普勒优化算法的优点在于其自然界的物理模型为搜索过程提供了良好的指导,能够有效地跳出局部最优,避免陷入局部陷阱。然而,它的缺点是参数设置敏感,如椭圆参数的选择对算法性能有很大影响,需要根据具体问题进行...