2009-02-04 66 views
3

所以我已经成为了一个相当熟练的Rails开发人员,而且我发现我的瓶颈现在是我对更复杂的Ruby构造缺乏理解。我正在尝试构建一些插件,并在那里查看一些复杂的插件,他们的OOP魔术对我来说是希腊语。 (我从未有过多少正规训练OOP所以这就是问题的一部分。)学习更高级的Ruby OOP构造的最好方法是什么?

我想更好地了解:

  • 从一个地方发送方法,另一种(包括延长等)
  • 元编程&覆盖方法(超)
  • 类的继承,模块等

严重红宝石大部头看起来太多了。有没有一种实用的方法来学习这些东西,这将扩大我的权力,而不会让我在语言的内部工作中压倒我?

+0

该主题内在复杂。这不仅仅是OOP,它还涉及动态语言的本质,特别是Ruby非常灵活的元编程模型。如果有的话,这些书低估了复杂性恕我直言 - 我读过他们,我还没有完全得到它! – 2009-02-04 12:47:41

回答

3

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

我不认为有比the official documentation page更好的起始位置。

对不起,如果我让你失望,但没有容易方式来学习所有这些构造。

2

我发现ruby quiz是一个了不起的资源,以提高你的红宝石的知识。您可以购买书籍版本或只使用网站上的条目。不同的问题会使他们使用不同的语言部分。

0

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

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

一旦你知道如何编码,学习一门新语言的基础知识相对要容易,非常有趣,所以你往往会取得进展极快之初

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

1

最好的开始方法是理解阶级hirarchies是如何工作的在内部让你知道什么时候打电话。换句话说,你需要了解元类。

这里有两个资源,帮助我最理解的概念:why´s explenationanother one

,你也可以尝试这些ruby plus截屏。还有很多别的话题,你似乎在

2

要intrested我发现these截屏由戴夫·托马斯是伟大的是,除此之外,它在标题务实的,所以你不能错过:d

+0

是的!我昨天偶然发现了这些,看起来就像我收到的最接近的一样。肯定会经历他们。 他们是否包括像发送方法到其他类/控制器的东西?不确定'元程序'中包含什么。 – 2009-02-11 08:33:04