Команды и соглашения Ruby on Rails - что это такое? - PullRequest
3 голосов
/ 08 марта 2012

Я делаю сайты на PHP и MySQL уже почти десять лет, но я никогда не использовал фреймворк. Это означает, что я вручную все написал и знаю, как код работает и взаимодействует сам с собой.

Желая расширить свой кругозор, я выбрал Ruby on Rails, чтобы изучать другой веб-язык, фреймворк, БД и т. Д. Я следовал учебному пособию по Ruby on Rails, и пока он идет гладко, но что меня беспокоит черный ящик это чувствует. слишком много магии, и вещи случаются только потому, что так и есть. Пример этого «волшебства» включает, если я добавляю в файл маршрутов «ресурсы: пользователи», то внезапно у меня появляются почти бесконечные возможные ссылки, такие как / new / user / 1 / user / 1 / edit и т. Д. Или если я хочу добавить столбец в мою таблицу базы данных Я должен сделать что-то вроде этого в консоли "rails integrate _to_table value: type", а затем я должен "грабли" базы данных.

Я смог сделать материал после урока, но я не понимаю, что я делаю. Я знаю, что часть этого придет через опыт, но я хочу знать, как и почему Rails делает то, что делает.

Какие хорошие ресурсы, онлайн и книги, где я могу узнать, как работает RoR?

Ответы [ 4 ]

5 голосов
/ 08 марта 2012

Да, требуется некоторое время, чтобы понять, в чем заключается вся магия, но, в конце концов, вы доберетесь до нее, если останетесь с ней.

«Библия» для ruby ​​on rails development - http://pragprog.com/book/rails4/agile-web-development-with-rails

«Библия» для самого языка рубина - это книга «кирка», написанная самим автором языка рубин. http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177

Райан Бейтс провел сотни бесплатных сценариев, и он известен благодаря действительно хорошему подходу, эффективно использующему фреймворк. Каждый хороший рубин это высоко. http://railscasts.com/

Многие люди находят курсы "зомби" действительно хорошими. http://railsforzombies.org/

Наконец, я предложу свой собственный сайт закладок с более чем 50 сайтами для рельсов:
http://www.rormd.com/linker/groups/1

и более 20 сайтов для ruby ​​на
http://www.rormd.com/linker/groups/4

Пока вы учитесь, хорошая IDE может помочь много . Я использовал eclipse, затем netbeans, а затем rubyMine (от нашего друга из IntelliJ, известного своим редактором java. rubyMine обладает большинством функций. Это не бесплатно, но по цене (где-то в диапазоне $ 24-75 в зависимости от специальных предложений) это стоит своих денег.

3 голосов
/ 08 марта 2012

Это для новичков, если они хотят изучать ruby ​​на рельсах, даже не знают Ruby.Я могу сказать, попробуйте сначала и перейдите к другим книгам.

Просто нажмите на ссылку ниже и увидите, что для Ruby on Rails 3.0 доступны два учебника и 3.2

Учебники по Ruby on Railsссылка для Rails 3.0 и 3.2

для тех уроков, которые вам не требуются Рубиновые фоны

даже мне нравится Head First Rails , эта книга также хороша для понимания- только рельсы (без TDB), поэтому вы можете установить начальную настройку в среде рельсов, а затем перейти по ссылке выше учебника

2 голосов
/ 08 марта 2012

Вы можете увидеть весь код на Github http://github.com/rails/rails.

Приложение Jose Valim Book Crailing для рельсов также поможет понять много внутреннего в рельсах

1 голос
/ 09 марта 2012

Я бы сказал, что использование терминов «черный ящик» и «магия» довольно неадекватно и, возможно, даже немного устарело.Я полагаю, что разница, которую вы чувствуете, заключается в том, что Ruby - это совсем другой язык, чем PHP, и что в Ruby проще кодировать абстракции и соглашения высокого уровня, чем в PHP.Rails полон этих абстракций и соглашений, и они могут быть довольно запутанными, особенно если у вас нет представления о том, как они внутренне работают.

Может быть, речь идет не о Rails, который вы должны читать.Я бы сказал, что вы должны попытаться понять Ruby.Хорошее понимание его блоков, объектной модели и миксинов обязательно для того, чтобы чувство «черного ящика» исчезло.

Программирование на современном языке программирования не является черной магией. Отладка кода на Фортране путем распечатки кода и использования кристаллов на листах бумаги для поиска ошибок:

...