
重构
文章平均质量分 93
LoveLion
这个作者很懒,什么都没留下…
展开
-
22种代码味道(Martin Fowler与Kent Beck)
Martin Fowler在Refactoring: Improving the Design of Existing Code(中译名:《重构——改善既有代码的设计》)一书中与Kent Beck一起总结了22种代码坏味(Bad Smells in Code),因为Sunny这段时间正在做一些与代码味道识别与自动重构有关的研究工作,对这些内容进行了重新的深入理解与分析。后续将在博客中转载和原创一些原创 2013-07-13 12:29:26 · 16921 阅读 · 5 评论 -
【Eclipse AST】AST的修改
AST的修改主要包括三个方面的内容:修改节点、移动节点和创建节点。本文将通过一个综合实例来说明如何修改AST,并通过修改AST来修改源代码。原创 2014-03-07 20:04:19 · 13966 阅读 · 7 评论 -
【Eclipse AST】AST的创建
对于源代码优化过程而言,借助前文所介绍的AST访问与解析,可以自动查找出哪些地方需要优化,或者说能够发现优化或重构“时机”。接下来要做的就是采取相应的优化措施,在AST中创建节点(包括创建新的AST)或修改原有节点。本文将介绍如何创建一棵AST,以及通过AST来创建Java源代码。原创 2014-03-02 23:28:43 · 16093 阅读 · 4 评论 -
【Eclipse AST】AST与ASTView简介
要想自己设计并实现一个代码自动分析、优化和重构工具,得先理解代码;要想理解代码,得先用一个好的数据结构来存储和表示所读取的代码。基于程序代码本身的层次结构,用树状结构来表示是再好不过的了。抽象语法树(Abstract Syntax Tree, AST)使用树状结构来表示源代码的抽象语法结构,树上的每一个节点都对应源代码中的一种结构,它作为程序代码的一种中间表示形式,在代码分析、代码重构、语言翻译等领域得到广泛的应用。原创 2014-02-06 22:52:31 · 24095 阅读 · 12 评论 -
【Eclipse AST】AST的获取与访问
从本文开始将由浅入深向大家介绍AST的使用。Eclipse中的Eclipse JDT提供了一组访问和操作Java源代码的API,Eclipse AST是其中一个重要组成部分,它提供了AST、ASTParser、ASTNode、ASTVisitor等类,通过这些类可以获取、创建、访问和修改抽象语法树。原创 2014-02-10 23:47:17 · 33136 阅读 · 13 评论 -
六种可定量分析的代码味道
传统的代码味道(Bad Smells in Code)识别主要依赖开发人员的经验,这将导致代码味道识别效率低,且容易漏掉很多代码味道。因此,设计和开发自动化的代码味道识别工具已成为软件工程研究的一个分支。国内外学者已经陆续提出了一些代码味道自动识别方法,其中有一类方法是基于软件度量和统计量的,可以通过定量分析和计算来探测代码中是否存在这些代码味道,而且很多商业和开源的代码分析和优化工具也使用了其中一些方法,例如iPlasma、inFusion、PMD、Checkstyle、JDeodorant等中,本文将介原创 2014-02-06 00:22:23 · 16085 阅读 · 9 评论 -
七款代码味道识别工具【简介】
代码味道识别工具 (Code Smell Detection Tools, CSDT)既可以应用于软件开发阶段,也可以应用于软件维护阶段。目前大部分IDE都集成了自动或者半自动重构工具,但是根据国外研究人员的调查发现,真正在软件开发和维护中使用重构工具的人并不多,其中有一个很重要的原因是不知道何时该重构,也就是说找不准重构时机,因此重构时机的自动识别具有很大的实用价值。很多代码味道本...原创 2014-01-18 23:50:19 · 32791 阅读 · 3 评论 -
【Java重构系列】重构31式之封装集合
2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文章,每天发布一篇,介绍一种重构手段,连续发文31篇,故得名“重构三十一天:你应该掌握的重构手段”。在英文原文中提供了C#版的重构实例,对重构手段的描述较为精简,Sunny将这些实例都改为了Java版本,并结合个人理解对代码实例和重构描述进行了适当的补充和完善。原创 2014-01-10 02:27:18 · 21501 阅读 · 8 评论 -
【Java重构系列】重构31式之搬移方法
毋容置疑,搬移方法(Move Method)应该是最常用的重构手段之一,正因为太常用而且较为简单,以至于很多人并不认为它是一种很有价值的重构,但事实并非如此,在最初的代码诞生之后,有些方法可能会被放在一些不合适的地方,例如,一个方法被其他类使用比在它所在的类中的使用还要频繁或者一个方法本身就不应该放在某个类中时,我们应该考虑将它移到更合适的地方。搬移方法,顾名思义就是将方法搬移至合适的位置,如将方法搬移到更频繁地使用它的类中。原创 2014-01-11 00:41:34 · 21455 阅读 · 10 评论 -
Sunny谈重构
按照软件工程大神Martin Fowler的定义,重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。这是重构的定义,简单来说就是不改变软件的功能,优化软件设计和代码,让软件更易于扩展和维护,当然也包括易于复用。原创 2013-12-31 00:51:29 · 10482 阅读 · 6 评论 -
代码味道及重构手段
Martin Fowler针对22种代码味道,提出了相应的重构手段。原创 2013-08-11 09:29:11 · 7712 阅读 · 7 评论 -
重复代码(克隆代码)的几个概念与类型
本文内容来源于以下两篇参考文献: Chanchal K. Roy, James R. Cordy, Rainer Koschke. Comparison and Evaluation of Code Clone Detection Techniques and Tools: A Qualitative Approach. Science of Computer Programming,翻译 2013-07-14 20:59:45 · 11214 阅读 · 0 评论 -
软件重构过程中的思维转换: 遗留代码如何变废为宝
“我开始收到各式各样的邮件,人们都表示‘天呐!我也是这样!’。”她说,“我开始去传播这条信息,告诉大家重新建构遗留代码这件事其实非常有价值,凭此来吸引合适的人。”编者注:Andrea Goulet是Corgibytes的首席执行官,她的公司专注于处理、改进并精简企业现有的代码库。 Andrea Goulet和她的商业合作伙伴坐在起居室里,随意地聊着她们的战略计划方案。她们一直在试图寻转载 2016-09-15 20:36:02 · 8504 阅读 · 9 评论