Команды и соглашения Ruby on Rails — что это такое?

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

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

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

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


person Reily Bourne    schedule 08.03.2012    source источник
comment
соглашение по правилам конфигурации там   -  person apneadiving    schedule 08.03.2012
comment
Язык Ruby тоже может показаться волшебным из-за его гибкости, поэтому магия Ruby-on-Rails в некоторой степени проистекает из магии Ruby. Изучение (на самом деле) ruby ​​поможет вам лучше понять RoR (или другие фреймворки Ruby).   -  person Valentin V    schedule 08.03.2012
comment
См. также этот вопрос в соглашениях Rails   -  person GuruM    schedule 06.04.2014
comment
Многие из магии/конвенций возникают при использовании функций метапрограммирования Ruby, которые могут оказаться полезными в книге Pragmatic Programmers Meta-programming Ruby - Program like the Ruby Pros.   -  person GuruM    schedule 06.04.2014


Ответы (4)


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

«Библией» по разработке ruby ​​on rails является http://pragprog.com/book/rails4/agile-web-development-with-rails

«Библией» для самого языка ruby ​​является книга «кирка», написанная самим автором языка ruby. https://rads.stackoverflow.com/amzn/click/com/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 долларов, в зависимости от специальных предложений) оно того стоит.

person Michael Durrant    schedule 08.03.2012

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

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

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

для тех уроков, которые вам не нужны, фон Ruby

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

person AMIC MING    schedule 08.03.2012
comment
На самом деле это учебник, которому я следовал, но обнаружил, что в нем слишком много волшебства. - person Reily Bourne; 08.03.2012

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

приложение Jose Valim Book Crafting для рельсов также помогает понять многие внутренние аспекты рельсов.

person shingara    schedule 08.03.2012

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

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

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

person Pedro Rolo    schedule 09.03.2012