《面向对象设计实践指南:Ruby语言描述》—第1章 1.5节小结

简介: 如果某个应用程序存活了很长时间(也就是说,如果它成功了),那么它最大的问题将是如何应对变化。通过代码编排有效地应对变化是设计的事情。最常见的设计要素是原则和模式。不幸的是,即使正确地运用了原则,并且也恰当地使用了模式,也无法保证能够很好地创建出易于更改的应用程序。

本节书摘来自异步社区《面向对象设计实践指南:Ruby语言描述》一书中的第1章,第1.5节小结,作者【美】Sandi Metz,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 小结
面向对象设计实践指南:Ruby语言描述

如果某个应用程序存活了很长时间(也就是说,如果它成功了),那么它最大的问题将是如何应对变化。通过代码编排有效地应对变化是设计的事情。最常见的设计要素是原则和模式。不幸的是,即使正确地运用了原则,并且也恰当地使用了模式,也无法保证能够很好地创建出易于更改的应用程序。

OO度量能暴露出应用程序在遵循OO设计原则方面的情况。糟糕的度量值强烈地表明将来可能会遭遇困难;不过,好的度量值也发挥不了太大的作用。一个做法有问题的设计也可能产生出很高的度量值,但更改时所花费的成本仍然可能很高。想要设计投入获得最佳效果,诀窍就是:采用让人易于理解的设计理论,并且恰当地应用这些理论;在正确的时间,以正确的数量应用它们。设计依赖于将理论付诸实践的能力。

理论与实践之间有区别吗?

理论上说,没有区别。如果说理论就是实践,那么你便需要学会OOD的那些规则,坚持不懈地应用它们,并在今后创建出完美的代码。你的工作到这个时候才算完成。

不过,实践是检验真理的唯一标准。实践与理论有所不同,它会弄脏你的双手。是实践在放置砖块、建造桥梁和编写代码。实践处在不断变化、充满疑惑,以及很不确定的现实世界里。它要面临相互矛盾的选择,有时还需要扮成鬼脸,选择更小一点的恶魔。它要不断躲闪,要抢劫Peter以偿还Paul。它要竭尽所能、尽其所有来谋取生活。

理论很有用,也很必要。它是本章的重点,但已足够。接下来将开展实践。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
7月前
|
算法 测试技术 API
如何用Ruby语言提高代码的可读性和可维护性
在软件开发过程中,代码的可读性和可维护性是非常重要的因素。一旦代码变得难以理解和修改,就会导致开发速度变慢、bug增多以及团队合作效率下降。在本篇博客中,我们将探讨一些使用Ruby编程语言的技巧和最佳实践,以提高代码的可读性和可维护性。
45 1
|
7月前
|
XML 前端开发 安全
构建自己的MVC框架(Ruby语言实现)-- 2. 创建ApplicationController
构建自己的MVC框架(Ruby语言实现)-- 2. 创建ApplicationController
|
7月前
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 开篇
构建自己的MVC框架(Ruby语言实现)-- 开篇
|
7月前
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
|
存储 自然语言处理 Go
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础数据类型(data types)EP02
Ruby是强类型动态语言,即Ruby中一旦某一个对象被定义类型,如果不通过强制转换操作,那么它永远就是该数据类型,并且只有在Ruby解释器运行时才会检测对象数据类型,它的一切皆为对象(包括 nil 值对象),可以通过调用内置class属性来获取该对象的具体数据类型。对于 Ruby 而言,所有类型都继承自 Object 类(根类为 BasicObject)。
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础数据类型(data types)EP02
|
Ruby Python
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了。 Ruby是一门在面向对象层面无所不用其极的解释型编程语言。 我们可以把编写Ruby代码看作是一场行为上的艺术,编码就像跳舞一样,Ruby的每一步都很优雅,几乎没有一步是多余的。
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
|
Java 数据挖掘 数据库连接
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
python,Java,C++,C#,Go,Ruby 语言的优势和前景
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
|
算法 Ruby
【Ruby on Rails全栈课程】2.1 ruby语言入门
在第一章中,项目我们已经创建好并且能输出第一个helloworld了,我们先不急着做项目,先了解一下ruby,只是需要看得懂代码。这一章我们简单介绍一些ruby语言的语法
137 0
|
Java 开发工具 C语言
|
Java Ruby JavaScript
为什么说Ruby是纯面向对象的语言
Ruby 是纯面向对象的语言,Ruby 中的一切都是以对象的形式出现。Ruby 中的每个值都是一个对象,即使是最原始的东西:字符串、数字,甚至连 true 和 false 都是对象。
770 0