大型系统重构的基础依旧是本书描述的重构手法,但因其整体的复杂度使得重构变得更加困难。熟练掌握这些重构手法,对于重构大型系统而言,是极为有益的。但是,针对大型系统,尤其是错综复杂的遗留系统的重构,对开发人员的要求更高。此外,它不仅需要关注编码的细节之处,通过精巧的重构逐步呈现编程之美,还需要俯瞰系统的体系架构,为使重构更易进行,完成对层次之间、模块之间的解耦。重构大型系统的终极目的是为了改善系统架构,以便于重用与可扩展,甚至还可能从复杂的系统中重构出一个通用的框架。对于这样的遗留系统,除了需要掌握本书介绍的重构手法外,还需要掌握有效的解依赖技术,具体的做法可以参考Michael C. Feathers的著作WorkingEffectively with Legacy Code【中文版书名为《修改代码的艺术》】。这种宏观层面的重构技术,可以认为是对架构的重构,它的重要性不言而喻,遗憾的是本书并未涉及此内容。大体而言,架构的重构主要涉及架构原则、逻辑与物理分层、设计的一致性、功能划分的合理性、同步与异步处理的选择、消息通信机制、外部接口的定义、集中与分布的选择等诸多涉及甚至影响宏观架构的要素。

本文节选自《重构:改善既有代码的设计(评注版)》一书。

图书详细信息:http://blog.csdn.net/broadview2006/article/details/6601099

重构:改善既有代码的设计 精彩书评一相关推荐

  1. 重构—改善既有代码的设计

    概述 1.1 参考资料 <重构-改善既有代码的设计>读后总结 <重构改善既有代码的设计> 22种代码的坏味道,一句话概括 1.2 何谓重构 首先要说明的是:视上下文不同,重构的 ...

  2. PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性

    思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类 ...

  3. 『重构--改善既有代码的设计』读书笔记----序

    作为C++的程序员,我从大学就开始不间断的看书,看到如今上班,也始终坚持每天多多少少阅读技术文章,书看的很多,但很难有一本书,能让我去反复的翻阅.但唯独『重构--改善既有代码的设计』这本书让我重复看了 ...

  4. PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

    介绍 承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容. 这章主要针对数据的重构. 1.争论的声音--直接访问Field还是通过函数(Accesso ...

  5. 重构 改善既有代码的设计:代码的坏

    以下内容来自<<重构 改善既有代码的设计>> 一.什么是重构 所谓重构(Refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改以改进程序的内部结构 ...

  6. 《重构-改善既有代码的设计》-第1例:租赁影片(2)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 上接  重构-改善既有代码的设计-第1例:租赁影片(1) 2  运用多态取代与价格相关的条件逻辑 2 ...

  7. 《重构-改善既有代码的设计》-第1例:租赁影片(1)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 买了<重构 - 改善既有代码的设计 >一书,一直没有好好看,大致过了下也觉得只是有点点印 ...

  8. 实践提高《重构改善既有代码的设计第2版》PDF中文+PDF英文+对比分析

    重构是编程的基础,是在不改变外部行为的前提下,有条不紊地改善代码.编程爱好者都知道,Martin Fowler 的<重构:改善既有代码的设计>已经成为全球有经验的程序员手中的利器,既可用来 ...

  9. 重构改善既有代码的设计(github源码)

    refactoring improving the design of existing code(重构改善既有代码的设计) https://github.com/CoderDream/refacto ...

  10. 重构:改善既有代码的设计(软件开发的不朽经典)

    重构:改善既有代码的设计(软件开发的不朽经典) 基本信息 作者: (美)Martin Fowler   译者: 熊节[同译者作品] 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978 ...

最新文章

  1. 五分钟没有操作自动退出_这又是什么骚操作??5只蚂蚁战略配售基金拟增设B类份额,自动赎回退出!!...
  2. 一个LabVIEW控件,生成模拟波形效果
  3. UITextField 键盘
  4. 电脑重启bootmgr_电脑系统启动:显示0xc0000428怎么办
  5. 关于myeclipise注册机run.bat运行失败的解决方法
  6. 正态分布初始化 torch.nn.Embedding.weight()与torch.nn.init.normal()的验证对比
  7. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
  8. gcc详解以及静态,动态库的生成 1
  9. 关于简单的factorymode
  10. 干货!图像集分类大杀器--混合黎曼度量学习
  11. 单面打印机=》双面打印
  12. 第一节:(1)逻辑电路工艺节点简述
  13. arduino学习笔记十八--红外遥控检测
  14. windows 10 移动热点无互联网连接
  15. 安卓如何使用layout布局的弹出框AlertDialog
  16. Android项目:手机安全卫士(9)—— 手机号码归属地查询
  17. 桌面虚拟化对服务器的要求,至强7500对于服务器桌面虚拟化的意义
  18. 语音文件转换成文档(基于阿里云服务)
  19. 程序员的注意事项(网上拷贝)
  20. C#统计酷狗播放列表里歌曲播放的总时间

热门文章

  1. 《自控力》-自控力极限
  2. 主席树-----动态开点,不hash
  3. 浅入浅出数据结构(23)——图的概念、存储方式与拓扑排序
  4. C++模板类之pair
  5. Debian Mysql stop 问题
  6. IOCP 下行为投递的关键点
  7. 蓝桥杯 字母组串(递归)
  8. 一道不知道哪里来的容斥题
  9. 剑指offer 树的子结构 python
  10. cve-2017-0199metasploit复现过程