Статьи

Извлечение кода Rails

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

Я часто слышу запросы на плагины, чтобы помочь с многоэтапными формами, и после того, как я только внедрил многоэтапный процесс проверки, я могу сказать вам, что это определенно не прямое извлечение. Достаточно сложно определить валидацию и хранение формы — используете ли вы несколько классов ActiveRecord, один класс ActiveRecord или объекты ActiveForm; храните ли вы их в сеансах, куки или в базе данных; Вы храните сами объекты или только атрибуты? Я думаю, что есть слишком много мнений, которые вы должны были бы учитывать или игнорировать, и в любом случае было бы лучше просто документировать различные подходы, чем библиотеку кода для их инкапсуляции.

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

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