过早优化:为什么它是“万恶之源”以及如何避免它.docxVIP

过早优化:为什么它是“万恶之源”以及如何避免它.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
过早优化:为什么它是“万恶之源”以及如何避免它 过早的优化涉及尝试改进某些东西-特别是以完善它为目标-当现在这样做还为时过早。例如,软件开发人员可以通过花费大量时间尝试编写一段完美的代码来进行过早的优化,即使不清楚是否真的需要这些代码。 过早优化可能会导致各种问题,例如资源浪费和错误增加,因此了解它很重要。因此,在下面的文章中,您将了解有关此概念的更多信息,并了解如何避免过早优化事物,同时仍然识别适合优化的情况。 人们以多种方式和生活的许多领域进行过早的优化。这方面的例子包括花费大量资源,如时间、精力和金钱,同时尝试: 尽早提高代码库中不重要函数的性能,即使这些函数可能会在以后被丢弃或发生重大更改,无论其初始性能如何。 构建一家初创公司的方式使其能够在获得一个用户之前扩展到数亿用户。 在检查是否有人对其将要销售的产品感兴趣之前,合法成立公司。 在真正开始爱好之前,为爱好选择最好的装备。 请注意,在其中一些情况下,某种优化是否被认为为时过早取决于诸如完成优化的具体原因等因素。例如,如果即将开始爱好的人知道他们可能会根据过去的经验坚持下去,并且拥有最好的装备将对他们产生重大影响(例如,在安全性方面),并且他们有一个值得信赖的专家可以帮助他们选择装备,那么优化可能被认为是合理的,而不是过早。 “过早优化是万恶之源” 过早优化的概念是由计算机科学家Donald Knuth推广的,在软件开发的背景下,他说过早优化是万恶之源。 这句话强调了过早和不必要的优化的问题,例如,当程序员浪费时间担心程序的非关键部分,并做出导致代码维护等问题的更改时。然而,高德纳也承认,识别和实施有价值的优化很重要,但在讨论高德纳关于过早优化的声明时,这个关键事实经常被忽视。 具体来说,高德纳在下面的引文中普及了过早优化的概念和过早优化是万恶之源的格言: “毫无疑问,效率的圣杯会导致滥用。程序员浪费大量时间思考或担心程序非关键部分的速度,而这些效率尝试实际上在考虑调试和维护时会产生强烈的负面影响。我们应该忘记小效率,比如说大约97%的时间:过早的优化是万恶之源。 然而,我们不应该在这关键的3%中放弃我们的机会。一个好的程序员不会被这样的推理所哄骗而沾沾自喜,他会明智地仔细查看关键代码;但只有在识别出该代码之后。 程序质量的另一个重要方面是计算机资源的实际使用效率。我很遗憾地说,现在很多人都在谴责程序效率,告诉我们它很糟糕。其原因是,我们现在正在经历一种反应,当时效率是唯一有信誉的良好标准,而过去的程序员往往过于关注效率,以至于他们产生了不必要的复杂代码;这种不必要的复杂性的结果是,由于调试和维护的困难,净效率下降了。 真正的问题是,程序员花了太多时间在错误的地方和错误的时间担心效率;过早优化是编程中所有邪恶或至少大部分的根源。 优化也可能因为其他原因而出现问题,除了太早之外,包括毫无意义,从某种意义上说它没有帮助,提供低投资回报,从某种意义上说,实施它的成本大于它提供的价值,以及适得其反。 过早优化可能会导致各种问题,包括: 浪费资源,例如,如果您花费时间、精力和金钱做一些完全不必要的事情。 错误增加,例如,如果您根据不充分的信息做出决定。 更糟糕的结果,例如,如果您因为想从早期优化中受益而感到被锁定在次优的行动方案中。 负面情绪,例如,如果您因为所有的努力最终变得无关紧要而感到气馁或沮丧。 人们过早优化的原因有很多,包括: 它让他们专注于相对容易处理的事情。例如,如果有人想开始一个艰难的新爱好,那么他们可能会通过寻找最好的装备来过早地进行优化,因为这比开始爱好本身更容易。 它增加了他们的进步感。例如,如果有人想创业但不知道如何创业,那么花大量时间优化徽标可以让他们觉得自己正在取得进展。 这是他们幻想未来的一种方式。例如,如果有人想开发一个应用程序但不知道如何开发,那么他们可能会通过搜索他们在应用程序准备就绪时能够申请的竞赛来过早地进行优化,因为这会让他们觉得他们的应用程序会成功。 他们未能正确确定优先级。例如,如果开发代码的人没有正确考虑他们工作的机会成本(即他们可以做的其他事情的价值),那么他们可能会尝试不必要地完善代码中不重要的部分。 他们让过去的经验不恰当地支配现在的行为。例如,学生可能习惯于试图在考试中获得满分,因此试图在实习期间创建完美的代码,即使他们这样做的努力适得其反。 它们是由社会考虑驱动的。例如,人们可能会过早地进行优化,因为他们想顺应其他人的行为,因为他们害怕错过一些东西,或者因为他们需要看起来像是在做某件事。 它们是由其他潜在现象驱动的。例如,人们可能会被行动偏见、完美主义、追求无法实现的完美无瑕、拖延、急于早早做事以感到满足、拖延、拖延所驱使过早优化。 这些原因的不同组合可以驱动人们在不同情况下过早优化。其中一些原因可以被认为是有动机的,

您可能关注的文档

文档评论(0)

晶方科技 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档