У ruby ​​на рельсах программисты рефакторинг? - PullRequest
13 голосов
/ 25 декабря 2010

Я программист на Java, который начал программировать на Ruby on Rails год назад.Мне нравится язык, рельсы и принципы, лежащие в их основе.Но меня беспокоит то, что программисты на Ruby, похоже, не проводят рефакторинг.

Я заметил, что в Ruby / Rails очень много инструментов для рефакторинга.Некоторые IDE, такие как Aptana и RubyMine, по-видимому, предлагают какой-то очень простой рефакторинг, но ничего особенного по сравнению с рефакторингами Eclipse Java.

Тогда есть еще один факт: большинство рейлеров (даже профессионалов) предпочитают легкие редакторы, такие какVIM или TextMate вместо IDE.Что ж, с этими инструментами вы просто получаете нулевой рефакторинг (только регулярное выражение с поиском / заменой).

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

Вы рефакторинг?Если вы делаете, как вы это делаете, с помощью каких инструментов?Если нет, то почему нет?

Ответы [ 4 ]

19 голосов
/ 25 декабря 2010

Определенно, да, существует другая причина несоответствия инструмента


IDE более практично построить для Java

Строгая типизация и задокументированная грамматика Java позволяют создавать инструменты IDE для анализа языка

Утилизация Ruby и грамматика задокументированного источника Yacc затрудняют это.

Для Java больше нужна IDE

Многословие Java делает желаемыми инструменты для написания и переписывания кода.

Чрезвычайно краткая природа Ruby в сочетании с объявлениями, как правило, без типов (конечно, они появляются внутри строки с Type.new), делают такие вещи необязательными.

Объединение двух ...

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

Отказаться от vi (1) для IDE - это то, что я бы предпочел не делать, но я делаю с Java, потому что мне нужна IDE для написания моих реализаций интерфейса и тому подобное, и тот факт, что он анализирует Java, делает его полезным в коде завершение. Так как с Ruby это не может, и в любом случае мне это не нужно, я использую vi (1) и TextMate.

Краткое описание

Поскольку вы не погружены в код, можно выполнить рефакторинг с несколькими разумными правками. Но если говорить о «других разработчиках Ruby», мой вопрос по Ruby таков: почему все (кроме меня, кажется) используют паренсы функций? Потому что в нескольких% случаев они нужны, и поэтому «несогласованность» вызывает беспокойство?

8 голосов
/ 25 декабря 2010

Да.

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

У ВСЕХ программистов rails / ruby ​​... возможно, нет, но если говорить об «вибрации» или «чувстве» в этом сообществе, я бы сказал, что это то, что проповедуется и практикуется настолько, что это происходит чаще, чем не .

Нет необходимости в IDE IMO. VIM, emacs и / или textmate достаточно для Ruby и большинства программистов rails. Я предполагаю, что Java требовала дополнительной компиляции или чего-то еще, что я знаю об этом, поскольку я программировал только на Ruby. Почему все Java-программисты используют IDE (поскольку я обобщаю).

6 голосов
/ 25 декабря 2010

разработчиков RoR делают рефакторинг много.Но самое главное, они делают это, потому что они могут сделать это легко.

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

Редактор полностью независим от кода, поэтому вы можетеиспользуйте блокнот для кодирования (я не фанат командной строки, я предпочитаю немного более «графические» редакторы, такие как Gedit).

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

Проведя много времени как на Java, так и на Ruby (в последнее время с большим отрывом, от Eclipse до / от Textmate), я согласен, что некоторые виды рефакторинга сложнее в Ruby.Это в меньшей степени является следствием более слабых IDE для Ruby, чем факт статической типизации или динамической типизации и сложность написания инструментов рефакторинга для динамического языка.В значительной степени рефакторинг, управляемый вручную или регулярным выражением, проще в Ruby, чем в Java, из-за краткости кода Ruby - его просто меньше - но, тем не менее, такая простая вещь, как переименование метода, не так проста вРубин, как это на Java.Преимущества Ruby по сравнению с Java намного больше (imo) (и вам просто придется использовать Ruby в производстве в течение нескольких месяцев, чтобы получить реальное представление о том, насколько вам это понравится), но один недостаток заключается в том, чтоотсутствие того же надежного рефакторинга, к которому вы привыкли в таких инструментах, как IDEA и Eclipse.

РЕДАКТИРОВАТЬ: И, чтобы быть ясным - я не делаю рефакторинга в Ruby как таковом, как в Java, но, похоже, он мне нужен меньше для Ruby.Но когда я делаю это, я полагаюсь на модульные тесты, а не на компилятор, как в Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...