学习更高级的Ruby面向对象编程构造的最佳方法是什么?

3

我已经成为了一个相当熟练的Rails开发者,但是我发现我的瓶颈现在是我对更复杂的Ruby结构缺乏理解。我正在尝试构建一些插件,并查看一些复杂的插件,它们的面向对象编程技巧对我来说就像希腊语一样难懂。(我从未接受过太多正式的面向对象编程培训,这是问题的一部分。)

我想更好地理解:

  • 从一个地方发送方法到另一个地方(包括,扩展等...)
  • 元编程和覆盖方法(super)
  • 类继承,模块等

严肃的Ruby文献似乎太多了。有没有实用的方法来学习这些东西,可以在不深入了解语言内部工作的情况下扩展我的能力?


这个主题本质上是复杂的。它不仅仅涉及面向对象编程,还涉及动态语言的特性以及Ruby特别灵活的元编程模型。如果说有什么问题的话,在我看来,这些书籍低估了其复杂性。我已经读过它们,但我仍然无法完全理解! - Mike Woodhouse
7个回答

4

最好的方法是使用它,并通过查看他人的代码来学习。

我认为没有比官方文档页面更好的开始方式了。

如果让你失望了,那我很抱歉,但学习所有这些结构并没有简单的方法。


4

2

我发现Ruby Quiz是一个非常好的资源,可以帮助您提高对Ruby的了解。您可以购买书籍版本或仅使用网站上的条目。不同的问题将需要使用语言的不同部分。


2
我发现Dave Thomas的这些视频教程非常适合学习Ruby对象模型和元编程,而且标题中还有“实用主义”,所以你不会错过它。

这里是链接。


是的!我昨天偶然发现了它们,看起来是最接近我所需内容的。一定会仔细学习。它们是否涵盖像将方法发送到其他类/控制器之类的内容?不确定“元编程”包括什么。 - zambezi
我不明白你所说的“将方法发送到其他类/控制器”的意思,但如果你是指如何使用extend和include,那么答案是肯定的。 - krusty.ar

2

这个Peepcode插件模式pdf实际上回答了我所有的问题;我想做的是编写一个插件,所以这正是我需要的信息。


1

开始编程的最佳方式是了解类层次结构在内部如何工作,以便知道调用什么。换句话说,您需要了解元类。

以下是两个资源,它们对我理解这个概念帮助最大:why's explenationanother one

您还可以尝试这些ruby plus 屏幕录像。有很多关于您似乎感兴趣的其他主题的内容。


0

你也可以尝试学习另一种语言的基础知识(例如Java或C#)。

我认为学习一门新语言是熟悉不同解决问题方法(在你的情况下,面向对象编程概念)的一种非常有效和有趣的方式。

一旦你学会了如何编写代码,学习一门新语言的基础知识就变得相对容易且极具娱乐性,因此你通常会在开始时取得极快的进步。

当你试图理解对你来说是新的概念时,可能更容易在一个也是新的框架中理解它们。这样你就可以专注于你试图学习的概念,而不是关注你的语言以不同的方式解决这个问题等等……


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接