训练用于运动来掌握特定的运动。在篮球比赛中,球员罚球,三分球和运球。在编程中,演习提供了一种有意练习的方法,以发展特定语言功能,API或习语的技能。
在体育中使用混战来模仿游戏的条件和复杂性,以整合演习中内置的技能并开发团队合作。练习补充了更复杂的混战实践,例如Ruby Koans,Ruby Quiz或在开源项目中工作。如果我们使用日本表达式,则钻头也可以被认为是“ Kihon”,这是“ Kata”的简单先驱。练习缺乏完整项目的复杂性。它们可以独自或与朋友一起表演。
红宝石钻头的挑战集中在特定方法上。答案通常由单行组成。您的目标是在不咨询任何外部文档的情况下轻松和喜悦地完成演习。起初,您很可能会发现这种做法既不容易也不快乐。代码打开。练习几天,直到您对这些方法的了解变得自动。这样做将使您的日常编程与语言的语法相比,通过释放您的思想专注于更高级别,更高价值的复杂性,使您的日常编程更加愉快。
$ gem install ruby_drills
$ ruby_drills
训练在命令行中运行。您可以在练习中回答问题。这种做法的好处是为您准备在REPL上开发,这是一种有用的技术,用于尝试语言功能或算法,并为TDD提供了很好的补充。
首先从菜单中选择可用的钻头。阵列和弦钻当前的内容最多,因此从其中之一开始!
Enumerable#zip方法的练习会话可能包括以下内容:
We have two arrays:
a: [4, 5, 6]
b: [7, 8, 9]
Use a method from the Enumerable mixin that will take one element from
a new array and merge the corresponding elements from a and b to yield
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]:
>> c = [1,2,3]
=> [1, 2, 3]
not yet...
>> c.zip(a, b)
=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
!!! WIN !!!
How does your answer compare to the reference solution?
[1,2,3].zip(@a, @b)
Press any key to continue:
关于红宝石钻的问题?关于如何练习的想法?前往Google组。
当您与Ruby Drills互动时,您的答案将保存在经过测试的思维托管的远程钻钻API中。此数据中没有任何个人身份信息:目前,我们对整体实践模式和统计信息感兴趣,而不是个人用户配置文件。活动数据看起来像:
{
"timestamp" : "May 5, 2013 12:03:51 AM CST",
"result" : "pass",
"input" : "@numbers.partition{|x | x.even? }",
"sessionId" : "2217-47e8-b80a-68b81c980c32",
"drill" : "PartitionDrill",
"type" : "attempt",
"reference" : "@numbers.partition {|x| x.even? }"
}
我们对以下问题感兴趣:
这些数据将有助于我们发展红宝石演习的体验。这也可能构成更个性化的经历的基础,使您可以查看进度并将您的练习课程与他人进行比较。当我们分析收集的数据并与社区分享结果时,有关此问题的更多信息。
最终,我们想找出Ruby和其他编程语言中的演习和练习是否有助于我们解决更复杂的编程挑战。目前,研究人员几乎没有可用的数据来科学地回答这个问题。希望在红宝石钻中收集的数据可以提供此难题的一部分。
每个练习都由四种方法组成:
setup :钻机中使用的实例变量,包括@hints ,这是一系列提示,可以引导用户朝着答案。
show :放置一个描述钻头的字符串。
reference :以字符串形式提供参考解决方案作为有效的Ruby代码。将评估这一点,以确定是否应验证用户的输入。
valid?(input) :返回真或错误的验证函数。用于查看与参考解决方案匹配的用户输入是否符合其他约束。
创建新的演习很容易参与。请检查Github上的问题列表以找到要做的事情。
如果您是Github的新手:
git checkout -b my-new-feature )git commit -am 'Add some feature' )git push origin my-new-feature )感谢贡献者和这些杰出的人使红宝石演习成为可能:
Ruby Drills已获得Apache许可证的许可,版本2.0。有关更多信息,请参见封闭的许可证。txt和Note.txt。