高校网站建设需求分析报告购物网站模板 php
web/
2025/10/2 18:19:32/
文章来源:
高校网站建设需求分析报告,购物网站模板 php,wordpress物体替换纹理,wordpress 仪表盘命名重构#xff1a;改善既有代码的设计#xff08;评注版#xff09; 评注者序评注者序近十年来#xff0c;若要讨论如何改进代码的质量#xff0c;很难绕过Martin Fowler的这本经典著作。这本书已经影响了几代程序员#xff0c;或许会持续不断地影响未来的一批程序员。遗憾… 重构改善既有代码的设计评注版 评注者序 评注者序 近十年来若要讨论如何改进代码的质量很难绕过Martin Fowler的这本经典著作。这本书已经影响了几代程序员或许会持续不断地影响未来的一批程序员。遗憾的是在现实中我们仍然看到了重构的步履维艰。一方面是因为程序员的重构技巧还有待磨砺另一方面则是因为项目的压力使得我们往往将重构视为鸡肋。 重构是可有可无的吗Practices of an Agile Developer的作者Andy Hunt认为“要投入时间和精力保持代码的整洁、敞亮。在项目中代码应该是亮堂的不应该有黑暗死角。”相信维护过遗留代码的程序员在面对纠缠不清、复杂混乱的代码时对于此言必有“心有戚戚焉”之感。重构是清理代码垃圾的有效手段它有助于营造明晰的程序结构、一致的代码风格、有效的职责重用能够恰如其分地在简单与复杂之间寻觅到代码之美合理地权衡代码质量与开发效率从而提升至优雅编码的境界。 如何呈现重构之美关键在于发现丑陋而不堪忍受。对丑的憎恶实则是一种强悍的驱动力它会驱使你运用重构直到重构变成如呼吸一般自然而不可缺失。重构无须专门的阶段随时随地皆可进行。经常的重构可以保证代码常拭常新如利刃一般锋利。那种为了单一地追求开发速度而置代码质量于不顾的做法实则是杀鸡取卵可以预期的结果就是系统的“破窗户”逐渐蔓延最后落得不可收拾的下场。重构并非不可执行关键还在于我们对于重构的态度和运用重构的习惯。必须在思想上认同重构的重要性然后在技巧上不断提升重构技能并辅以对重构工具的使用就能最大程度地放大重构在软件开发中积极的一面。 若要提升重构技能阅读本书就是必须没有例外。那么对于这样的经典之作而言还有点评的必要吗是否我们在做着画蛇添足的蠢事Martin Fowler已经做得足够好任何点评都是一种饶舌不尽然身为点评者的我如果仅满足于在本书的边边角角上不痛不痒地发表不承担责任的语气词那么对于这种点评不要也罢。我在着手本书的点评工作时对自己的定位是我不是点评者我是创作者。在点评本书的过程中我是以创作自己著作的态度来完成的。 本书的大多数点评内容并非片言只语很多内容都是自己重构心得以及重构技巧的运用。我阅读参考了大量的书籍例如《程序员修炼之道》、《重构与模式》、《领域驱动设计》、《反模式》、《软件架构的艺术》、《修改代码的艺术》、《代码整洁之道》等十余部相关书籍。毕竟站在软件世界的角度来看Martin Fowler写作本书的时代已经相当“古老”了。在这之后产生了许多精彩的设计技巧、重构理念与方法。譬如在与重构相关的内容中本书未曾论述的就包括架构重构、界面重构、数据库重构、重构模式等内容。在点评过程中我希望能以开放的方式描述自己阅读本书的感受讲述自己重构的体验并在能力范围之内给出自己的一些意见与看法。 我作为一名程序员看到了太多漠视或者无视垃圾代码的同行们这其中也包括曾经的我。但当我深陷遗留代码的痛苦时对于这样的现状就变得痛心疾首了。近年来软件业界对于软件工艺以及敏捷方法的推行在一定程度上改善了人们的看法但在实际推行中依旧困难重重。最大的起因就在于我们将程序员定位为“代码工人”认为编码工作是低端程序员的责任。我们妄图创造如机械制造行业一般的“软件工厂”却忽略了软件编程实则还有艺术的一面。我始终认为代码仍然是架构的一部分代码质量决定了架构质量而重构则是延缓系统衰老的生命源泉。正所谓“千里之行始于足下”就让重构之行始于本书吧。 序 “重构”这个概念来自Smalltalk圈子没多久就进入了其他语言阵营之中。由于重构是框架开发中不可缺少的一部分所以当框架开发人员讨论自己的工作时这个术语就诞生了。当他们精练自己的类继承体系时当他们叫喊自己可以拿掉多少多少行代码时重构的概念慢慢浮出水面。框架设计者知道这东西不可能一开始就完全正确它将随着设计者的经验成长而进化他们也知道代码被阅读和被修改的次数远远多于它被编写的次数。保持代码易读、易修改的关键就是重构——对框架而言如此对一般软件也如此。 好极了还有什么问题吗问题很显然重构具有风险。它必须修改运作中的程序这可能引入一些不易察觉的错误。如果重构方式不恰当可能毁掉你数天甚至数星期的成果。如果重构时不做好准备不遵守规则风险就更大。你挖掘自己的代码很快发现了一些值得修改的地方于是你挖得更深。挖得越深找到的重构机会就越多于是你的修改也越多……最后你给自己挖了个大坑却爬不出去了。为了避免自掘坟墓重构必须系统化进行。我在《设计模式》书中和另外三位作者曾经提过设计模式为重构提供了目标。然而“确定目标”只是问题的一部分而已改造程序以达到目标是另一个难题。 Martin Fowler和本书另几位作者清楚揭示了重构过程他们为面向对象软件开发所做的贡献难以衡量。本书解释了重构的原理和最佳实践并指出何时何地你应该开始挖掘你的代码以求改善。本书的核心是一系列完整的重构方法其中每一项都介绍一种经过实践检验的代码变换手法的动机和技术。某些项目如Extract Method和Move Field看起来可能很浅显但不要掉以轻心因为理解这类技术正是有条不紊地进行重构的关键。本书所提的这些重构手法将帮助你一次一小步地修改你的代码这就减少了过程中的风险。很快你就会把这些重构手法和其名称加入自己的开发词典中并且朗朗上口。 我第一次体验有讲究的、一次一小步的重构是某次与Kent Beck在30 000英尺高空的飞行旅途中结对编程。我们运用本书收录的重构手法保证每次只走一步。最后我对这种实践方式的效果感到十分惊讶。我不但对最后结果更有信心而且开发压力也小了很多。所以我极力推荐你试试这些重构手法你和你的程序都将因此更美好。 Erich Gamma 《设计模式》第一作者Eclipse平台主架构师 熊节 译 转载于:https://blog.51cto.com/bvbroadview/620653
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85751.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!