所以我已经成为一个相当熟练的Rails开发人员,我发现我的瓶颈现在是我对更复杂的Ruby构造缺乏了解。我正在尝试构建一些插件,并在那里看一些复杂的插件,他们的OOP魔法对我来说是希腊语。 (我从来没有进行过多正式的OOP培训,所以这是问题的一部分。)
我想更好地理解:
严肃的红宝石书似乎太多了。是否有一种务实的方式来学习这些能够扩展我的能力而不会让我在语言的内部工作中不知所措的东西?
答案 0 :(得分:4)
你也可以在某些书籍上掠夺,例如,镐: http://whytheluckystiff.net/ruby/pickaxe/
特别关注OOP和元编程部分。
答案 1 :(得分:3)
最好的方法是使用它并通过查看其他人的代码来学习。
我认为没有比the official documentation page更好的起点。
很抱歉,如果我对你感到失望,但没有简单的方式来学习所有这些结构。
答案 2 :(得分:2)
我发现ruby quiz是一个非常好的资源,可以提升你对ruby的了解。您可以购买图书版本或只使用网站上的条目。不同的问题将有助于使用该语言的不同部分。
答案 3 :(得分:2)
我发现Dave Thomas的these截屏视频非常棒,此外,它在标题中也很实用,所以你不能错过:D
答案 4 :(得分:1)
最好的开始方式是了解班级hirarchies如何在内部真正起作用,这样你就知道什么时候可以调用。换句话说,你需要了解元类。
以下是帮助我理解这一概念的两个资源:why´s explenation和another one
您还可以尝试这些ruby plus截屏视频。
中有很多关于您似乎感兴趣的其他主题答案 5 :(得分:1)
这Peepcode plugin patterns pdf实际上回答了我的所有问题;我想要做的就是写一个插件,这正是我需要的信息。
答案 6 :(得分:0)
您还可以尝试学习另一种语言的基础知识(例如Java或C#)。
我认为学习一门新语言可以是一种非常有效和有趣的方法来熟悉解决问题的不同方法(在你的情况下面向对象的编程概念)。
一旦你知道如何编码,学习新语言的基础知识既相对容易又极具娱乐性,所以你倾向于在开始时非常快速地取得进步
当你试图掌握新的概念时,在一个同样新的框架中理解它们可能更容易。通过这种方式,您可以专注于您尝试学习的概念,而不是以您的语言等方式解决此问题的方式......
答案 7 :(得分:0)
Metaprogramming Ruby是元编程的好资源。