你为什么不敢重构代码?听高手亲授秘笈!

时间:2019-07-11 来源:www.msesporteclube.com

男女操逼视频

你为什么不敢重构代码?听主人亲吻秘密!

任何傻瓜都可以编写计算机可以理解的代码。编写易于人类理解的代码是一个优秀的程序员。

Martin Fowler《重构》

面对运行缓慢的旧系统;前程序员留下了一堆代码块;迷宫超级大功能.你能做什么?有两种选择:容忍或重构。

然而,重构是许多人的痛苦!

主重构代码如下:

8c6a0bb039f34b6db41fd5145b3b6426.gif

你重构代码,但它是这样的:

d72e525c6f834105a00529750597e0f7.gif

除了功能之外,人们抵制重构的原因有很多:

项目如此紧迫,能够上网是好的,怎样才能重构?

涉及的模块太多,太复杂,重构,风险太大!

重构代码并不好,但同事也拒绝了。

互联网行业人员发展如此之快,下个月留下他们的帖子,结构是什么?

.

有数千个原因,而且基础知识仍然不足以满足他们的编程技巧。了解重构的重要性,它被迫放弃外部环境或局势的压力。然而,正如电影《无间道》所说:“摆脱混合,迟早你必须还钱。”现在不提高自己,练习扎实的重建技能,未来,代码的不良品味将受到报复。

关于重构,您如何看待大师?

它恰逢20年的重建,软件开发社区的不朽经典《重构:改善既有代码的设计》进行了重大升级。《重构》本书的作者Martin Fowler(世界领先的软件开发人员,世界领先的技术咨询公司ThoughtWorks首席科学家)在最近对ThoughtWorks的采访中谈到了他对重构的理解和重视与概念相关的各种问题。看看大师如何给你一个技巧。

10928beadb38467f8ba01d30b3a5a6c1.jpeg

触发重构的原因是什么?

Martin:当然有很多原因需要重构代码。首先,当你无法理解代码时,一个明显的标志是你花了很多时间试图弄清楚某些代码的目的或功能。还有另外一种情况,借用Ward Cunningham,我个人喜欢:一旦你脑子里有一个代码功能的某个概念,你就必须把它从大脑“拿走”并把它放回到代码中,以便下一次如果您或其他人再次看到代码,他们实际上可以阅读代码。触发重构的另一个因素是开发人员希望改进代码,但现有代码的体系结构使得改进变得更加困难。在这种情况下,重构提高了改进的速度,降低了难度,并且结构变得简单。改进将完成。或者Kent Beck说,首先要做的是使代码结构易于更改,然后进行简单的改进。对我来说,以下是触发重构的时间:当您发现代码不够清晰且难以理解时;当您对代码功能有所了解时,您希望将它们嵌入到代码中。当您想要改进代码时,更容易重构和添加新功能。

基本上,人们倾向于在不坏的时候不修理东西,更不用说重构了。与“我们还没有到位”这一事实形成鲜明对比的是,您认为如何克服这一障碍?

马丁:我必须承认我不是一个超级有说服力的人。我不会试图说服每个人改进,我只是试着解释如何做事,我希望他们理解并尝试最佳实践。在不修改代码时,肯定需要代码库来确保在修改代码时可以轻松检测到问题。这就是我们非常重视严格测试的原因,因为测试是一种很好的监控机制。项目中还有一些技术经理会向下属解释可以改进代码,但只能通过迭代和扩展来编写有效的代码。但是,有时候开发人员会自给自足。我见过一些团队开发人员,他们说:“哦,我们不应该改变它。”对于主管来说也是如此。主管会非常惊讶地说:“不,我真的想要重构。”这种从属概念通常是完全相反的。需要创建一种企业文化,让每个人都能说:“我们可以回到原点并改进代码。”我们拥有必要的测试安全基础,以便开发人员在发生错误时能够发现错误。

在开发过程中,一方面您需要为软件添加新功能,另一方面您还需要重构以确保软件保持健康,否则您将无法继续在软件中添加新功能。保持两者之间的平衡很重要,这需要开发人员做出良好的判断。像许多事情一样,良好的判断确实是一个关键因素,但不幸的是,没有捷径可以传达判断力。

商务人士通常认为,如果程序没有被破坏而且没有添加新功能,那么改进就不应该浪费时间。你怎么知道重构的意义?

Martin:雇主花钱做技术工作,其中很大一部分是保持代码库健康,以便将来可以继续将新功能添加到代码库中。如果我们不重构,我们严格地忽略了雇主的期望,因为没有重构,功能开发速度会慢一些。从经济角度来看,我们有责任使代码库保持健康状态。重构当然是保持关键代码库健康的重要方法。如果我们无法将代码库保持在健康状态,那么它就等同于我们的客户。老板“偷了”钱。因此,从根本上说,我们有责任进行重构。

在我看来,你绝不应该使用诸如“这是我们的职业责任”,“这是正确的事”或“出于道德原因”这样的词语。我知道很多人喜欢使用这种说法,当你丢失了滥用术语的时候。重构的唯一原因是经济原因。重构的目的是更快地添加更多功能,以便更快地响应所有各方需求的变化,并且经济原因是重构的根本原因。顺便说一下:这也是一种明智的职业态度是正确方法的原因,因为老板花钱要求开发人员使用代码来快速生成函数,我们也应该从这个角度考虑重构问题。严格来说,管理者或公司快速开发或添加功能或保持代码库健康并不重要。他们向开发人员付费开发软件来处理这些问题。

重构思维可以超越代码并将其应用到其他级别吗?

马丁:当然。重构的关键是这样的想法:如何进行最细微的变化,而不是试图做出重大改变并试图弄清楚如何做到这一点。通过重构发生了许多小的变化,然后这些变化被连接起来,这是适用于这种情况的重构思维的核心。我们如何将一个重大变化划分为许多小变化,并在不改变系统整体性能的情况下尽可能多地进行细微变化,然后反复练习并思考如何随着时间的推移而分裂。我的书中的内容是通过重构框架,尝试各种重构技术和做出决策来思考问题的经验。书中有一整套机制允许我有效地重构,但主要是通过练习重构。您尝试了不同的重构技术,然后找出了哪种重构方法可以生成理想的序列。您尝试识别这种重构技术,同样的逻辑适用于更广泛的层次。

大师更重要,马丁的分享更能告诉你,软件大师或高级开发人员如何看待“重构”。那么你如何培养自己重建的技能呢?这个必须向大家推荐《重构(第2版)》这个不朽的经典升级秘诀!

81ab7e393bbc4e0992616d30b61fadc4.jpeg

备受推崇的《重构(第2版)》在第一版的基础上进行了全面修订,反映了编程领域发生的许多变化。第二版中引入的重构列表更具凝聚力,并重写了Java中的代码范例。此外,第二版还增加了与函数式编程相关的重构范例,旨在向读者介绍如何在没有类的环境中进行重构。新版本遵循第一版的结构,反过来解释了重构,重构的原因,如何识别需要通过“不良品味”重构的代码,以及如何在实践中成功地实现任何编程语言的重构。

许多人担心新版本中代码示例的使用已从Java更改为Java。 Martin解释说,重构背后的概念和架构适用于任何编程语言。我选择Java只是因为我认为它是一种广泛使用的语言。无论你使用哪种语言编程,基本机制都完全相同,语言和语言之间存在差异,但我认为语言之间的共性远不止差异。您知道,Java是一种非常严格的面向对象编程语言。第一版中的所有重构都基于面向对象。我想重新打印以表明您可以在任何环境中使用任何(编程)语言进行重构,并按照本书中提到的示例进行操作。这是我计划重新发布这本书的另一个原因。我也转载了这本书。权力的来源。如果这个内容更新到位,我可以说我将不再需要重新阅读这本书20年。

1c5f066bd6e040099842b0e7ebd62d98.jpeg

不良品味,先测试和行为改变行为是重构的基本技能。在《重构(第2版)》中,重构技术的细节被重新抛光,重构过程比第一版更平滑。细细品味重构技术的前后步骤,思考作者如何维护行为。这是一种阅读方法,可以激发读者的推论。例如,在第一个版本中,新版本的参数被添加到原始函数中;该方法的第二个版本是在完成所需的调整后创建一个新的空函数,然后将原始函数作为一个整体替换。毫无疑问,这两个相对比率是一种更可控的新控件,并且在发生错误时具有较小的测试失败范围。

265ec8dac42f41bc8d21849d864d8324.jpeg

比较重构列表的两个版本,您会发现第二版中包含的重构方法在使用上更具凝聚力,操作更连贯,并且更强调重构技术之间的组合。在第一版中,第二版中删除了占据整章的“大型重构”。一些更复杂的重构技术,例如复制“监控数据”,塑造模板功能等,不再包含在第二版中。第二版中的新重构方法是更详细和微观的操作,例如精炼变量,移动语句,拆分循环和拆分变量。这些新策略看似简单,但它们指出了大规模遗留代码中最常见的重构难题,只是为了填写第一版的细节。这一变化反映了Martin Fowler对重构的一贯态度:千里之行正在积累中,并且越是面对复杂多变的外部环境,就越需要做基础工作并采取坚实的步骤。

修炼的秘诀就在这里,最重要的是要开始。重构就像软件开发的大多数工作一样:除此之外别无他法。《重构》这本书肯定会帮助那些重构概念的新手,但它也可以帮助那些理解重构的人分享相关技能。 Martin还提醒读者:请记住,重构的本质是小步骤改进,确保您经常提交。如果出现问题,您只需回滚到之前的提交记录,这将减少重构的压力。重构绝对不会给你带来太糟糕的影响,因为你将无法回滚,这就是版本控制系统的目的。所以,快速重建,操作是关键。

6e81b4edc5e64316bbfd654ba163aaae.jpeg

《重构:改善既有代码的设计(第2版)》

作者:[美]马丁福勒(Martin Fowler)

译者:熊杰林从宇

编辑推荐:

世界软件开发大师Martin Fowler的不朽经典

一般程序员升读编程技能大师

它在世界上畅销,并被翻译成中文,德文,日文,俄文和许多其他语言。

这本经典书籍已于20年后升级,更新内容超过30%,许多项目案例已更新。

这本书是20年后经典《重构》出版物的更新版本。本书清楚地揭示了重构的过程,解释了重构的原则和最佳实践,并指出了何时何地开始挖掘代码以进行改进。书中给出了60多种可能的重构,每种重构都介绍了经过验证的代码转换技术的动机和技巧。本书中介绍的重构指南将帮助开发人员对代码进行小的更改,从而降低开发风险。

观看更多