Как вы запоминаете / систематизируете информацию Rails для предотвращения повторного изобретения колес? - PullRequest
4 голосов
/ 03 февраля 2009

Мне нравится работать с Rails, но я продолжаю сталкиваться с собственной неэффективностью: я потрачу время на реализацию некоторой "полезной" функции только для того, чтобы впоследствии выяснить, что она уже была в фреймворке, если бы я ее знал!

Особые области переосмысления колеса для меня:

  • помощников и встроенных расширений классов
  • недавно выпущенные функции, которые, возможно, еще не засели в моем мозгу
  • плагинов (таксономия плагинов Rails, если такая вещь имеет смысл, будет благом)
  • параметры миграции
  • менее часто используемые грабли
  • хэш опций почти для всего

Очевидно (?) Мы не можем все время помнить все эти вещи. Существуют «шпаргалки», но если они не обновлены, они потенциально могут усугубить проблему, представившись авторитетными, когда они действительно нацелены на более старые версии.

Что вы делаете, чтобы минимизировать этот акциз? Можно ли что-нибудь сделать?

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

Ответы [ 7 ]

4 голосов
/ 03 февраля 2009

Одна вещь здесь - это знать о существовании конкретной функции (плагина, гема и т. Д.) В первую очередь. Вот почему

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

Это для пассивной части. Теперь для активных:

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

Я не думаю, что "большие видимые графики" могут помочь в долгосрочной перспективе. Я использую шпаргалки только при изучении новых вещей, и это действительно только краткосрочная вещь. Превосходство - это привычка, как сказал Аристотель.

2 голосов
/ 03 февраля 2009

Это проблема не только Rails, но и любой фреймворк. Я знаю, что программисты, которые годами работали с Delphi, все еще шокированы, обнаружив простые стандартные функции, которые они реплицировали.

WRT Rails, Майк Гандерлой недавно написал о выделении текста и закончил с этим мудрым лакомым кусочком:

Стоит окунуться в ActionView :: Helpers время от времени, чтобы увидеть, что скрывают другие функциональные возможности, о которых вы забыли.

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

1 голос
/ 05 февраля 2009

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

1 голос
/ 03 февраля 2009

Я бродю по рельсам в своем RSS-ленте, читая заголовки и достаточно, чтобы понять, о чем эта статья. Это дает мне большой объем знаний, но довольно поверхностный. Тем не менее, это позволяет мне знать, что там. Как вчера, когда я увидел сообщение в блоге о помощнике по светлым моментам (я понятия не имел, что он существует. Теперь я знаю, и если мне это когда-нибудь понадобится, я знаю, чтобы искать его - даже без подробного прочтения сообщения). Я также открываю посты, которые хочу подробно прочитать на другой вкладке на потом (раньше я использовал ReadItLater, но он вышел из-под контроля), и, читая их, я пишу заметки в посте в своем блоге больше для себя, чем для другие - чтобы войти в память и убедиться, что я смогу найти ее позже.

Еще одна вещь, которую я делаю, когда я вхожу на неизведанную или забытую территорию, - я задаю здесь вопрос о передовой практике или конкретных деталях, даже если я думаю, что знаю ответ. Например, я не мог вспомнить названия популярных плагинов для отслеживания истории редактирования записей (acts_as_audited и acts_as_versioned). У меня был ответ через 15 минут.

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

1 голос
/ 03 февраля 2009

Я тоже столкнулся с этой проблемой - и это было намного хуже, когда я впервые начал с RoR. Теперь, спустя более 1,5 лет, я знаю, что доступно довольно хорошо.

По сути, я делаю, если использую части фреймворка, которые я знаю ... ничего страшного. Если мне нужно что-то сделать, мне, скорее всего, придется создавать самому, я сначала Google или поискать в Rails API. В последнее время я также начал поиск в github и на некоторых сайтах плагинов, таких как railslodge.com.

Хотя это не решает проблему полностью, это очень помогло.

0 голосов
/ 11 августа 2009

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

С одной стороны, хороший выбор IDE может сильно помочь. С другой стороны - очень хорошая онлайн (офлайн) граничная документация с возможностью быстрого поиска по ней. В наши дни один из наших русских программистов на Rails сделал одно: http://railsapi.com/. Поиск выполнен в очень стиле MacOS, что делает его очень хорошим выбором для быстрого diggin '.

0 голосов
/ 03 февраля 2009

Сначала я пишу тесты. Тогда код. Иногда фреймворк делает это для меня, и мне не нужно писать код. :)

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

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

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