Внедрение Ruby on Rails для улучшения качества продукции? - PullRequest
3 голосов
/ 10 декабря 2010

Мы являемся компанией веб-разработки, использующей php в качестве языка разработки, но мы стараемся улучшить качество нашего кода, сводя к минимуму ошибки.Мы находим, что PHP делает несколько «легким» создание неаккуратного кода, поэтому мы рассматриваем RoR в качестве альтернативы.Помогает ли RoR улучшить качество кода?Мы хотим начать использовать TDD, помогает ли RoR подобрать эту методологию?Таким образом, стоит ли начинать обучение наших разработчиков этой новой технологии или мы должны продолжать разработку на PHP и инвестировать в улучшение их навыков PHP?Мы думаем, что «новый» старт и репутация, которую RoR имеет как приятный язык, могут помочь в этом направлении.

обновление: как предложил @konfoce, возможно, я должен спросить, какой набор функций предлагает RoR, который может сделатьэто лучший выбор, чем фреймворк PHP, поскольку помогает разработчикам создавать качественный код?Я имею в виду синтаксис, интеграцию TDD, помощь в обеспечении DRY и т. Д.

Ответы [ 5 ]

4 голосов
/ 10 декабря 2010

Сравнение Rails с PHP не очень справедливо для PHP. В конце концов, Rails - это платформа, а PHP - это язык.

Если вы сравните PHP с Ruby как с языком, я лично считаю, что Ruby лучше. PHP (для меня) ощущается как нечто, органично выросшее из списка серверных директив. Ruby кажется более сплоченным, и, как говорит его создатель, программист считает, что им понравится.

Точно так же я не могу сравнить Ruby on Rails с другими PHP-фреймворками, потому что я не работал ни с какими (у меня есть опыт работы только с Drupal и Wordpress).

Для меня то, что отличает Ruby on Rails (хотя я слышал, что другие сейчас используют эти идеи), это:

  • Идея "соглашения о конфигурации". На рельсах большинство вещей, которые обычно были бы «на усмотрение программиста», такие как соглашения об именах или куда помещать код инициализации, в значительной степени заложены в камень. Одно это помогает повысить качество кода - разные библиотеки из разных групп по всему миру придерживаются одного и того же соглашения.
  • Идея красоты. Программисты Rails испытывают зуд, если видят метод длиной более 10 строк. Им нравится, когда их программы выглядят как обычный английский. Код, созданный таким образом, является лучшим, который я когда-либо видел. Оно короткое, краткое и полное.
  • Тестовая дисциплина. Серьезно, ребята рельсы принимают тестирование близко к сердцу. Если вы найдете библиотеку или плагин на рельсах, есть вероятность, что он будет сопровождаться встроенными в него тестами. И любой проект среднего размера не примет патч от вас, если он не идет с тестами. Сам Ruby (язык) является языком с specs .
  • Стремление к совершенству. Сообщество рельсов всегда стремится к улучшению. И они не боятся вносить обратно несовместимые изменения, если это делает код лучше (см., Например, радикальное изменение в интерфейсе ActiveRecord с rails 2.x до 3.x).

Вы заметите, что я не очень много говорил о технических особенностях. Это потому, что для меня то, что делает рельсы великолепными, не "технические", а "поведенческие". Выбранный язык или сама платформа являются отражением своего рода мышления. И это мышление, для меня, лучшая особенность рельсов.

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

Получит ли он то же самое от других PHP-фреймворков? Я понятия не имею. Может быть.

Если вы обеспокоены затратами на полное начало с нуля, продолжайте делать то, что вы уже знаете (PHP), чтобы приносить деньги, но начните небольшой проект (возможно внутренний) на Rails. Ваш PHP-код будет постепенно улучшаться.

... пока ваши разработчики не скажут вам, что им надоел PHP и они хотят использовать только Ruby:)

2 голосов
/ 10 декабря 2010

Помогает ли RoR улучшить качество кода?

Не само собой, нет. Качество кода улучшается, когда программисты становятся опытными в языке языка и используют хорошие методы кодирования. Изучение другого языка (или основы), безусловно, может помочь, открывая людям новые способы решения проблем.

Мы хотим начать использовать TDD, делает RoR помочь подобрать эту методологию?

RoR обладает отличными возможностями TDD и BDD. Но то же самое делают и другие рамки.

Итак, стоит ли начинать тренировку? наши разработчики в этой новой технологии или мы должны продолжать разработку в PHP и инвестировать в улучшение своего PHP навыки?

Это не единственный выбор. Я бы сказал, посмотрите, как работает RoR, создайте несколько тестовых приложений и посмотрите, понравится ли это вашей команде. Вам также следует обратить внимание на создание приложений MVC на PHP (например: Kohana ). Вы также можете подумать о других способах расходовать свой бюджет на обучение (например, Javascript), который может окупиться быстрее.

1 голос
/ 10 декабря 2010

Я считаю, что соглашение Ruby on Rails о конфигурации упрощает правильные действия.Но то, что некоторые библиотеки, такие как ActiveRecord, позволяют очень легко делать что-то действительно дорогое без особого смысла.

Я чувствую, что основное различие между ними заключается в том, что Rails более организован по умолчанию, а php - язык не рамки , нет.Что значительно облегчает создание монолитных фрагментов кода, которые раздуваются и раздуваются и никогда не исправляются.Возможно, стоит изучить некоторые из инфраструктур MVC для php, прежде чем переходить на RoR.Двое из тех, с кем я возился, были Symfony и SolarPHP . CakePHP также стремится быть Rails в php, но я сам с ним не работал.

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

0 голосов
/ 22 февраля 2012

enter image description here

Любой хороший программист может сказать вам, что написание кода - это форма искусства, и, как и в большинстве форм искусства, ключ к успеху - это хорошие привычки и много практики.

Блог Ruby Learning недавно опубликовал интересный список способов улучшить качество вашего кода и, что еще важнее, развить привычки, которые приведут к лучшему созданию кода.Советы разработчика Джеймса Шорра варьируются от очевидного, например, при использовании хорошей системы контроля версий, до более тонкого: «осознавать, что только потому, что мы« можем », не означает, что мы« должны »… все возможно, но не все рекомендуется».

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

Дайте себе время подумать и отдохнуть.Бывают дни, когда я просто не могу хорошо писать код;другие дни, когда это просто течет.Это связано с тем, как работает ваш мозг.Вам нужно время от времени спать, менять темп и обстановку.

Уйдите на некоторое время.Легко получить «туннельное зрение» и думать, что вы близки к решению проблемы, и думать, что больше усилий решит ее ... Вы будете удивлены идеями или решениями, которые появятся в вашем уме, когда вы думаете о илиделать другие вещи.

0 голосов
/ 10 декабря 2010

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

http://www.symfony -project.org /

...