刚开始学习编程时,老师说:讲方法所需要的东西都以参数的形式传入,那是我们好像还没学OO这个东东,要不就弄成全局变量,我擦,全局变量可牛逼了,刚开始学习的时候我们都在用全局变量,可是后来工作了,经理说不要用全局变量,我当时就有些醉了,突然间觉得就不会写代码了,其实我们可以用对象来解决这个问题,这样我们...
分类:
其他好文 时间:
2014-12-30 16:53:13
阅读次数:
145
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42214393
在前面的三篇文章中介绍了重构入门篇、代码的坏味道(上)、代码的坏味道(下)。本文将正式开启重构之旅。从本文开始在后续的文章中会陆续介绍92种重构手法,每一种重构手法都会对应于一种代码坏味道。在介绍的过程中,每一种重构手法也将对应一篇文章,可能有的重构手法比较简短,但是为了便于整理还是单独将其列为一篇。(PS:不管怎样,我都会坚持把这些...
分类:
其他好文 时间:
2014-12-28 17:00:52
阅读次数:
267
星期六了,适当出去放松了下,回来继续我们重构的话题。今天是坏味道【3】了,很多朋友跟我私信,叫我把坏味道出完,再出手法。其实这是有道理的,很多时候,"发现"远比"怎么做"重要的多。就拿设计模式来讲,GoF里面的设计模式相信有很多人都了解过。具体的设计模式应该怎么实现啊相信有很多人都背的滚瓜烂熟,但....
分类:
其他好文 时间:
2014-11-29 18:52:13
阅读次数:
255
今天,我们不介绍具体的重构手法。我们暂且缓缓,回过头来看看,总结一下,什么样的代码需要重构,什么样的代码有一股”难闻的味道“,以此来提示我们需要重构,来提示我们这段代码其实是有改进的地方的。我也很喜欢文中作者对于代码这种特质采用”坏味道“,很形象也很生动。下面进入正题: 【1】Duplicated....
分类:
其他好文 时间:
2014-11-27 15:49:53
阅读次数:
167
为什么要把0和""定义成一个常量呢?这是没有正确理解到底什么是魔鬼数字和硬编码。使用常量,出于如下几个原因:
1、为了可读性,一个好的名字显然比一串写死的数字更容易理解。
2、避免冗余,让代码更容易修改,实现一处该,处处该的效果。
3、避免程序员手写常量,不小心写错。比如多写了个0或者是少写了个0等。
4、常量必须是被多个地方使用,而且在不同的地方代表相同的含义。
如果定义的常量没有达到这4个要求中的任意一个,那么可以说这个常量的使用是没有意义的,会导致另一中代码坏味道:没有必要的复杂性。...
分类:
编程语言 时间:
2014-08-28 22:45:42
阅读次数:
324
背景 在web应用中,复杂表单这类web应用富交互元素多,业务逻辑复杂,犬牙交错,且需求变化频繁。及容易成为晦涩和幽暗之地,也经常是各种代码坏味道的来源。针对这种典型的复杂应用,本文以淘宝机票订单为例提出一...
分类:
其他好文 时间:
2014-08-26 00:37:05
阅读次数:
415
NEO是开发的网上蜂蜜商城中常常会让几个类有说不清道不明的关系,NEO即使付出再大的代价调试,他也不去拆分明确这些类的关系。系统终于在NEO的巨大付出下上线了。小朱是一个网购达人,她想去买一瓶优质的蜂蜜,浏览了jd和taobao这些网上商城都没有找到自己心仪的,突然在一个不经意的地方发现了NEO的商城链接,小朱进去之后购买了一瓶蜂蜜之后留下了建议,希望网站能做到最新蜂蜜信息能够通过邮箱、手机、微信...
分类:
其他好文 时间:
2014-08-25 11:50:44
阅读次数:
140
为什么我们随意命名变量会是灾难性的决定?
随意命名变量是编写代码的灾难性决定,我这里说的比较严重,但是为了强调编程过程中不要随意命名我们的变量。因为从以下三方面的理由是不允许我们在程序中随意命名变量的。首先在编程过程中,随意命名的变量会导致我们编写代码中弄乱数据传输的关系,因为人们通过混乱的字段会把字段的本意理解错误的,理解错误字段的意思就会把该字段用在本不该她使用的地方。其次,当你费尽...
分类:
其他好文 时间:
2014-08-21 19:28:54
阅读次数:
174
1.为什么会有夸夸奇谈的未来性呢?
当我们谈到这个问题的时候,我们就要反思在需求理解和设计的时候对程序变动性的理解出现了偏差。“哦,我想我们总有一天炫耀做这事儿的”常常是一念之差导致的代码坏味道。总结有以下四点原因是经常导致出现夸夸奇谈未来性的原因。第一、经常在理解需求的时候主观的认为需求变动非常大,那么在设计过程中就会出现过度的设计。第二、追求设计模式的使用,经常对程序的不必要的地方进...
分类:
其他好文 时间:
2014-08-12 13:44:54
阅读次数:
170
场景:
如果业务层的内容被内嵌于界面层中,我们需要帮这分离出来
代码坏味道
MyFrame
/**
*
* @author wumingkun
* @version 1.0.0
* @Description
*/
package com.demo.refactor;
import java.util.Observable;
im...
分类:
其他好文 时间:
2014-08-09 00:14:48
阅读次数:
351