重构:改善既有代码的设计 精彩书评一
大型系统重构的基础依旧是本书描述的重构手法,但因其整体的复杂度使得重构变得更加困难。熟练掌握这些重构手法,对于重构大型系统而言,是极为有益的。但是,针对大型系统,尤其是错综复杂的遗留系统的重构,对开发人员的要求更高。此外,它不仅需要关注编码的细节之处,通过精巧的重构逐步呈现编程之美,还需要俯瞰系统的体系架构,为使重构更易进行,完成对层次之间、模块之间的解耦。重构大型系统的终极目的是为了改善系统架构,以便于重用与可扩展,甚至还可能从复杂的系统中重构出一个通用的框架。对于这样的遗留系统,除了需要掌握本书介绍的重构手法外,还需要掌握有效的解依赖技术,具体的做法可以参考Michael C. Feathers的著作WorkingEffectively with Legacy Code【中文版书名为《修改代码的艺术》】。这种宏观层面的重构技术,可以认为是对架构的重构,它的重要性不言而喻,遗憾的是本书并未涉及此内容。大体而言,架构的重构主要涉及架构原则、逻辑与物理分层、设计的一致性、功能划分的合理性、同步与异步处理的选择、消息通信机制、外部接口的定义、集中与分布的选择等诸多涉及甚至影响宏观架构的要素。
本文节选自《重构:改善既有代码的设计(评注版)》一书。
图书详细信息:http://blog.csdn.net/broadview2006/article/details/6601099
重构:改善既有代码的设计 精彩书评一相关推荐
- 重构—改善既有代码的设计
概述 1.1 参考资料 <重构-改善既有代码的设计>读后总结 <重构改善既有代码的设计> 22种代码的坏味道,一句话概括 1.2 何谓重构 首先要说明的是:视上下文不同,重构的 ...
- PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类 ...
- 『重构--改善既有代码的设计』读书笔记----序
作为C++的程序员,我从大学就开始不间断的看书,看到如今上班,也始终坚持每天多多少少阅读技术文章,书看的很多,但很难有一本书,能让我去反复的翻阅.但唯独『重构--改善既有代码的设计』这本书让我重复看了 ...
- PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
介绍 承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容. 这章主要针对数据的重构. 1.争论的声音--直接访问Field还是通过函数(Accesso ...
- 重构 改善既有代码的设计:代码的坏
以下内容来自<<重构 改善既有代码的设计>> 一.什么是重构 所谓重构(Refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改以改进程序的内部结构 ...
- 《重构-改善既有代码的设计》-第1例:租赁影片(2)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 上接 重构-改善既有代码的设计-第1例:租赁影片(1) 2 运用多态取代与价格相关的条件逻辑 2 ...
- 《重构-改善既有代码的设计》-第1例:租赁影片(1)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 买了<重构 - 改善既有代码的设计 >一书,一直没有好好看,大致过了下也觉得只是有点点印 ...
- 实践提高《重构改善既有代码的设计第2版》PDF中文+PDF英文+对比分析
重构是编程的基础,是在不改变外部行为的前提下,有条不紊地改善代码.编程爱好者都知道,Martin Fowler 的<重构:改善既有代码的设计>已经成为全球有经验的程序员手中的利器,既可用来 ...
- 重构改善既有代码的设计(github源码)
refactoring improving the design of existing code(重构改善既有代码的设计) https://github.com/CoderDream/refacto ...
- 重构:改善既有代码的设计(软件开发的不朽经典)
重构:改善既有代码的设计(软件开发的不朽经典) 基本信息 作者: (美)Martin Fowler 译者: 熊节[同译者作品] 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978 ...
最新文章
- 五分钟没有操作自动退出_这又是什么骚操作??5只蚂蚁战略配售基金拟增设B类份额,自动赎回退出!!...
- 一个LabVIEW控件,生成模拟波形效果
- UITextField 键盘
- 电脑重启bootmgr_电脑系统启动:显示0xc0000428怎么办
- 关于myeclipise注册机run.bat运行失败的解决方法
- 正态分布初始化 torch.nn.Embedding.weight()与torch.nn.init.normal()的验证对比
- 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
- gcc详解以及静态,动态库的生成 1
- 关于简单的factorymode
- 干货!图像集分类大杀器--混合黎曼度量学习
- 单面打印机=》双面打印
- 第一节:(1)逻辑电路工艺节点简述
- arduino学习笔记十八--红外遥控检测
- windows 10 移动热点无互联网连接
- 安卓如何使用layout布局的弹出框AlertDialog
- Android项目:手机安全卫士(9)—— 手机号码归属地查询
- 桌面虚拟化对服务器的要求,至强7500对于服务器桌面虚拟化的意义
- 语音文件转换成文档(基于阿里云服务)
- 程序员的注意事项(网上拷贝)
- C#统计酷狗播放列表里歌曲播放的总时间