Трудно ли понять Rails для разработчика PHP? - PullRequest
9 голосов
/ 12 ноября 2009

Я ничего не знаю о ruby, но много о php.

когда вы кодируете в ror ... вы действительно понимаете, что происходит под поверхностью, если вы новичок? и вы ДОЛЖНЫ это понимать или это достаточно хорошо, чтобы просто знать достаточно, чтобы быстро что-то построить?

Ищу опыт от людей, которые сделали переход.

Ответы [ 13 ]

8 голосов
/ 12 ноября 2009

IMO, перешедший из C # в Ruby on Rails обратно в C #, состоит в том, что вы можете обойтись простыми приложениями, которые полностью соответствуют "мнениям" Rails, не зная, что происходит. Тем не менее, вы столкнетесь с препятствиями в ту минуту, когда вам нужно будет выполнить что-то, что не является тривиальной задачей CRUD, или вам нужно реализовать задачу CRUD иначе, чем обычная визуализация формы, пользователь нажимает сообщение, базовый scaffolded контроллер создания действие способ. Как только вы это сделаете, вам нужно больше узнать о самом Ruby, чтобы точно понять, что делает Rails.

6 голосов
/ 12 ноября 2009

Как и большинство вещей, когда вы полностью понимаете что-то, вы смотрите на маленький шаг и вспоминаете гору, которую видели, когда впервые смотрели на нее. Я бы сказал, что Ruby трудно понять большинству разработчиков по следующим причинам:

  • В Ruby есть несколько очень мощных, но менее распространенных концепций программирования. Таким образом, есть некоторые концептуальные уроки, которые будут иметься.
  • Вдобавок к этому большинство программистов, с которыми я сталкиваюсь, с некоторым опытом в своих руках, уже строят основы и понятия о том, что такое программирование, за исключением того, что эти понятия строятся с использованием конструкций из определенного языка или домена, в котором они работают. .

Лучший совет, который я могу дать, заключается в том, что каждая среда language / framework / dev предоставляет только один способ манипулирования гранями машины / сети. Ошибка в том, чтобы думать, что этот - единственный путь. Если вы подойдете к размышлению Ruby о том, как это относится к PHP, то рассчитываете на борьбу, потому что во многих случаях, прямо под поверхностью, этого не произойдет.

Конкретный пример:

  • Где мой цикл for? иная борьба

однако, если вы спросите

  • Как мне запустить этот кусок кода для каждого элемента этого массива? Вы найдете много замечательных ответов и удивитесь, почему у вас вообще был цикл for. Но помните, что есть даже лучшие способы, чем у Ruby сегодня!

Так что, обладая всей этой мощью в Ruby, а также инфраструктурой rails, вы должны посвятить некоторое время изучению основ. Да, вы можете творить чудеса с такими вещами, как рельсы, с очень ограниченными знаниями. Представьте, что вы можете сделать за пару лет усердного изучения рубина под вашим поясом.

Питер Норвиг написал очень хорошую статью под названием Научитесь программировать за десять лет . Я бы посоветовал взглянуть на это.

5 голосов
/ 12 ноября 2009

Я бы также предложил взять копию Ruby Programming Language . Для меня это php.net из ruby.

4 голосов
/ 12 ноября 2009

Будучи PHP-разработчиком в течение нескольких лет и имея опыт работы с C и C ++, я могу сказать, что изучать Ruby после PHP совсем не сложно (субъективно, но вопрос таков). Ruby, конечно, имеет свои собственные идиомы и «лучшие практики», которые отличаются от PHP, но я думаю, вы найдете Ruby забавным и легким в освоении. Многие «ошибки» в PHP отсутствуют в Ruby, поэтому это немного облегчает изучение языка. Кроме того, если у вас есть какой-либо опыт работы с ООП, вам будет гораздо лучше понимать Ruby.

Как уже отмечали другие, вы можете создавать простые приложения с Ruby on Rails достаточно быстро, но если вам нужно сделать что-то тяжелое, вам придется начать понимать, что лежит в основе и как работает Rails. Это ничем не отличается от PHP и одной из его различных сред, таких как CakePHP или CodeIgniter.

Я также предлагаю проверить книгу Rails для разработчиков PHP , если вы заинтересованы в изучении RoR.

3 голосов
/ 12 ноября 2009

Чтобы ответить на ваш основной вопрос, как и во всем, вы выучите столько, сколько захотите. Нужно ли понимать, что происходит под капотом, нет. Вам нужно знать, как работает ExpressionEngine для создания веб-сайта с его использованием?

Что касается изучения Ruby, то это очень рекомендуется. Что-нибудь кроме обычных веб-сайтов потребует, чтобы вы знали и понимали Ruby и его идиомы.

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

Что касается ресурсов, я бы рекомендовал получить книгу Дэвида Блэка Ruby for Rails: Ruby Techniques для разработчиков Rails . Он предназначен для того, чтобы вы превратились из разработчика Rails в разработчика Ruby.

+ 1 для всех других ресурсов, перечисленных выше.

3 голосов
/ 12 ноября 2009

С вами все будет в порядке, если вы выберете "Agile Web Development с Rails" - http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition

1 голос
/ 12 ноября 2009

О, да, и, как вы конкретно обращаетесь к рельсам, в Rails Guides имеется современный, великолепный набор ресурсов. В дополнение к большому количеству полезных советов во многих ответах здесь.

1 голос
/ 12 ноября 2009

Ruby может быть сложным, писать Ruby с помощью Rails легко! Язык естественный и читает очень приятно. Развертывание Rails-приложений - вот где (IMO) проблема. У вас не возникнет проблем, если вы хорошо знаете PHP, особенно если у вас есть книга типа Rails для разработчиков PHP

1 голос
/ 12 ноября 2009

Получить книгу (+1 к Эрику). Также проверьте http://railscasts.com/

0 голосов
/ 12 ноября 2009

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

Для меня единственное, что действительно открыло мне глаза на Руби, это когда я впервые начал понимать блоки. Все было хорошо с тех пор:).

...