何谓重构
对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提交其可理解性,降低其修改成本。
重构的目的是软件更容易理解和修改;重构不会改变软件可观察的行为。
两顶帽子比喻
添加新功能 不修改既有代码,只管添加新功能,并通过测试重构 不添加功能,只管改进程序结构
为何重构
重构改进软件设计
改进的重要方向就是消除重复代码。...
分类:
其他好文 时间:
2014-06-07 01:59:57
阅读次数:
243
本人在开发过程中遇到android分辨率适配的问题,已经通过学习分析常用的android应用得到的启示,并且重构布局文件。不足之处,希望高手多多批评指正。多谢了!...
分类:
移动开发 时间:
2014-06-07 01:14:45
阅读次数:
221
重构概览
所谓重构(refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。
摘要
如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目录,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。
代码块愈小,代码的功能就愈容易管理,代码的处理和移动也就愈轻松。
Extract Method ...
分类:
其他好文 时间:
2014-06-05 08:02:00
阅读次数:
276
重构机房收费系统,我用EA画完UML图,打算用EA自己生成VB.NET代码,这样会方面些。没想到事情没有我想象的那么简单,可能是第一次尝试的原因,导入代码的过程中问题是一个接着一个。不过还好,虽然沿途困难重重,但是我还是一路披荆斩棘,把代码给调通了,在此小小的总结一下我遇到的问题吧。
一、引用问题
用EA在指定的文件包下生成类后,各层之间再调用的时候出现了这么一...
分类:
其他好文 时间:
2014-06-05 01:49:08
阅读次数:
185
寻找引用点,很多重构都要求你找到对于某个函数、字段或某个类的所有引用点。
使用编译器查找注意的问题
覆写多次的函数、继承
编译器太慢
使用了反射
重构的基本技巧--小步前进、频繁测试
说明
《重构-改善既有代码的设计》Martin Fowler 摘要: 第五章 重构列表...
分类:
其他好文 时间:
2014-06-03 06:32:03
阅读次数:
206
对于模板方法模式的使用,我后悔自己用晚了,因为我们的机房收费收费系统有很多窗体是几乎一样的,如果我们不用模板方法模式,就会大大增加工作量,首先,我们需要重复的创建窗体,其次我们的代码量也会大大增加,就是复制、粘贴代码也是一件让人摒弃的事情,所以推出模板方法模式,用意就在降低代码重复,减少工作量,通过求同存异的思想来实现。下面看一下我在组合查询中用到的模板方法模式:
首先,创建...
分类:
其他好文 时间:
2014-06-03 05:44:34
阅读次数:
250
确保所有测试都完全自动化,让它们检查自己的测试结果。
通常使用Junit测试框架
准备好测试夹具,setUp() 创建 tearDown() 删除
Tip 现在使用注解@Before @After @BeforeClass @AfterClass
频繁地运行测试。每次编译请把测试也考虑进去--每天至少执行每个测试一次。
编写测试代码时,往往一开始让它们失败,为了确保测...
分类:
其他好文 时间:
2014-06-03 04:10:07
阅读次数:
256
在重构机房的时候,有很多地方用到了存储过程,在这里小小的总结一下。
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定的存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程通过将处理数据的程序从客户应用程序移动到服务器,从而可以降低网络流量,并提高性能和数据完整性。
1、创建...
分类:
数据库 时间:
2014-06-02 04:42:42
阅读次数:
297
hadoop yarn的重构,根本的思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。...
分类:
其他好文 时间:
2014-06-02 02:27:16
阅读次数:
332
Extract Method 提炼函数
过长的函数或者一段需要注释才能理解的代码,就将这段代码放进一个独立的函数中。
函数粒度小,复用机会变大,覆写容易。
高层函数如一系列注释
关键看函数名称和函数本体之间的语义距离。
变清晰,做什么来命名
Inline Method 内联函数
有时可内联到一个大函数后,再从中提炼出组织合理的小型函数。
In...
分类:
其他好文 时间:
2014-05-31 21:43:52
阅读次数:
269