ruby重构有感(二)
在上一节中我们讲述了重构的定义、好处以及重构的时机。细心的读者可能马上就会问道,我们怎么知道那些代码需要重构呢?要想解开这个困惑,请跟这我往下走。
今天与大家分享的是:
代码中的坏味道
说实话要想找出代码中的坏味道的确是一件不太容易的事情,虽然很难,但是《重构ruby版》的作者还是为我们列举了很多的线索。我是在是佩服,如果不是对代码熟悉到一定的程度是很难做到的。
下面就来一一的看看,他都给我们指明了那些方向。
1、重复代码
2、方法过长
3、类太长
4、参数列表太多
5、发散型变化
6、霰弹型修改
7、特性依赖
8、数据泥团
9、基本类型偏执
10、case语句
11、平行继承体系
12、冗赘类
13、纯臆测的泛化
14、临时变量
15、消息链
16、中间人
17、过分亲密
18、异曲同工的类
19、不完善的类库
20、数据类
21、被拒绝的馈赠
22、注释
23、狂热的元编程
24、脱节的API
25、不重复的样本文件
怎么样25个,还真多吧!在感叹作者实力的同时你也应该注意到,我们的代码是多么的容易出现问题啊!我们必须
时刻注意、处处小心,才有可能不误入歧途。
好了今天就到这里吧!从下一次开始我将一次讲述一种问题。
分享到:
相关推荐
本文将深入探讨Ruby中的关键技巧、重构方法以及遵循的代码风格指南。 一、Ruby技巧 1. 块和迭代器:Ruby中的块(blocks)和迭代器(iterators)是其强大之处。使用`each`、`map`等方法可以简洁地遍历集合。例如,`...
src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...
3. **代码的坏味道**:识别和去除代码中的坏味道是重构的重要步骤。例如,过长的函数、过大的类、重复的代码、过长的参数列表、条件语句等都可能是需要重构的信号。 4. **重构技术的分类**:文档可能会介绍多种重构...
4. **高级软件工程**:在学习和实践中,这份“hw-ruby-intro”作业可能涵盖了软件工程的高级主题,如设计模式、重构、测试驱动开发(TDD)、行为驱动开发(BDD)以及代码质量保证。这些技能对于构建复杂、可维护的...
在本文中,我们将深入探讨`mongo-ruby-driver`的关键特性和使用方法,以及如何通过源代码来理解和定制它。 首先,`mongo-ruby-driver`提供了丰富的API,使得Ruby程序员可以方便地执行常见的数据库操作,如插入、...
- **资源**:除了《重构(Ruby版)》这本书外,还可以参考在线文档、博客文章以及社区论坛中的讨论。 #### 九、结论 《重构(Ruby版)》是一本值得所有Ruby开发者阅读的经典书籍。它不仅介绍了重构的基本概念和...
Ruby是一种面向对象的、动态类型的编程语言,由日本开发者松本行弘于1995年设计并开发。Ruby以其简洁、优雅的语法和强大的元编程能力受到许多开发者的喜爱,尤其在Web开发领域,Ruby on Rails框架的出现极大地推动了...
Ruby Reek 是一款强大的静态代码分析工具,专注于检测 Ruby 代码中的“坏味道”或不良编程习惯。这个工具可以帮助开发者提升代码质量,遵循更好的编程实践,从而使得代码更易于理解和维护。Reek 的核心理念是通过...
Ruby-Scientist是一个针对Ruby开发者的库,它的主要目的是帮助开发者在进行关键路径重构时能够更加谨慎和系统化。这个库的设计灵感来源于Facebook的JavaScript库"Scientist",旨在为复杂的代码变动提供一种实验性的...
MongoDB的Ruby驱动程序,即`mongo-ruby-driver`,是连接和操作MongoDB数据库的一个关键组件,专门针对Ruby编程语言设计。这个驱动程序允许Ruby开发者充分利用MongoDB的强大功能,包括文档型数据存储、分布式数据处理...
{ruby base|ruby text} => <ruby>ruby base<rt>ruby text</rt></ruby> 标记基于定义。安装node.js: npm install markdown-it-ruby --save用var md = require ( 'markdown-it' ) ( ) . use ( require ( 'markdown-...
the-ultimate-guide-to-ruby-timeouts, 流行 ruby Gems的超时 ruby-超时的终极指南没有反应的服务可能比向下的服务更差。 如果不正确处理,它可以捆绑整个系统。 所有网络请求超时。 下面是为流行 ruby Gems 添加...
在你提供的压缩包`rdoc-master`中,很可能包含了RDoc的源代码,这可以帮助你深入了解其内部工作原理,或者进行二次开发和定制。通过阅读源代码,你可以学习如何解析Ruby的注释,如何构建文档结构,以及如何生成最终...
Ruby-Squid是一个专门针对Ruby开发者设计的库,它的主要功能是在PDF文件中绘制各种复杂的图表,从而为报告、分析或者其他需要图形展示的场景提供强大的支持。Ruby-Squid库利用了PDF处理的能力,使开发者能够轻松地...
Ruby-Cocaine是一个Ruby库,专门设计用于在Ruby应用程序中执行命令行操作。这个库使得开发者可以更加方便、简洁地处理系统级别的交互,比如运行shell命令或者与外部系统进行通信。Cocaine库的主要目标是简化命令行...
**Ruby-Mail:深入理解Ruby邮件库** Ruby-Mail是一个强大的Ruby库,专为处理电子邮件而设计。这个库使得在Ruby应用程序中创建、解析、发送和接收邮件变得轻而易举。Mail库提供了丰富的功能,包括解析MIME(多用途...
vim-ruby-refactoring, 在vim中,用于 ruby的重构工具 ! 用于Vim的 ruby-重构工具我喜欢 vim 当我开发软件的时候,它是我的选择编辑器。目前( 至少在过去的4年中) 主要使用 ruby 编程语言。在开发过程中,我一直...