Учения используются в спорте для освоения конкретных движений. В баскетболе игроки сверлятся на штрафных бросках, трехочковых и дриблинге. В программировании тренировки дают возможность участвовать в преднамеренной практике для развития навыков в определенных языковых функциях, API или идиомах.
Схватки используются в спорте, чтобы имитировать условия и сложность игры, чтобы интегрировать навыки, построенные в учениях и разрабатывать командную работу. Учения дополняют более сложные методы схватки, такие как Ruby Koans, Ruby Quiz или работа над проектом с открытым исходным кодом. Если бы мы использовали японское выражение, тренировки также можно рассматривать как «Кихон», более простой предшественник «Ката». У тренировки не хватает сложности полного проекта. Они могут быть выполнены в одиночку или с друзьями.
Проблемы в Ruby Drills фокусируются на конкретном методе. Ответы обычно состоят из одной строки. Ваша цель состоит в том, чтобы с легкостью и радостью завершить тренировку, не консультируясь с какой -либо внешней документацией. Сначала вы, скорее всего, найдете такую практику не легкой и радостной. Код на. Практикуйте в течение нескольких дней, пока ваши знания об этих методах не станут автоматическими. Это сделает ваше повседневное программирование более приятным, освобождая свой разум, чтобы сосредоточиться на более высоких и более высоких сложностях, чем синтаксис языка.
$ gem install ruby_drills
$ ruby_drills
Тренировки запускаются в командной строке. Вы отвечаете на вопросы в учениях, используя реплику. Эта практика имеет преимущество в подготовке вас к разработке в Reply, полезной методике для выполнения языковых функций или алгоритмов и отличного дополнения к 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 удаленного коллекционера Drill, размещенного тестируемыми умом. Никакая личная информация не включена в эти данные: в настоящее время мы заинтересованы в общих моделях практики и статистике, а не в отдельных профилях пользователей. Данные об активности выглядят как:
{
"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 Drills. Это также может составить основу более персонализированного опыта, позволяя вам пересмотреть ваш прогресс и сравнить ваши практические занятия с другими. Подробнее об этом, когда мы анализируем собранные данные и делимся результатами с сообществом.
В конечном счете, мы хотели бы выяснить, помогает ли тренировка и практика в Ruby и других языках программирования решить более сложные проблемы программирования. В настоящее время у исследователей есть очень мало данных, чтобы помочь ответить на этот вопрос с научной точки зрения. Надеемся, что данные, собранные в Ruby Drills, могут обеспечить часть этой головоломки.
Каждое упражнение состоит из четырех методов:
setup : Инициализировать переменные экземпляра, используемые в тренировке, в том числе @hints , массив подсказок, которые могут направить пользователя к ответу.
show : ставит строку, которая описывает тренировку.
reference : Предоставьте справочное решение в качестве допустимого кода Ruby в форме строки. Это будет оценено, чтобы определить, должен ли вход пользователя быть подтвержден.
valid?(input) : функция проверки, которая возвращает TRUE или FALSE. Используется, чтобы увидеть, соответствует ли вход пользователя, соответствующий эталонному решению, соответствует другим ограничениям.
Легко принять участие, создав новые упражнения. Пожалуйста, проверьте список проблем на 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 и natem.txt для получения дополнительной информации.