2009-11-02 2 views
2

Я смотрю приложение Rails, которое вот-вот должно будет переименовать некоторые ключевые пользовательские части (например, URL-адреса и другие подобные изменения, такие как переименование «блогов» в «журналы» и и так далее)Как лучше всего справляться с изменениями схемы именования в приложении Rails

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

Каков наилучший способ справиться с такими изменениями?

И где же, как хотелось бы, при использовании методов сглаживания и классных имен или выполнения миграций?

Благодаря

ответ

1

Если приложение является разработкой и еще не вошло в производство, вы можете просто вернуться назад и переименовать миграцию/модели/представления и т. Д. ... и сделать rake db:migrate:reset и сделать с ним. У вас должно быть достаточно тестов, чтобы гарантировать, что переименование ничего не сломало, и если это так, вы должны увеличить охват тестирования в этой области.

В той мере, делать это за приложение, которое в настоящее время в производстве я предлагаю делать это постепенно, так что площадь поверхности для изменения уменьшается:

Меняйте маршруты

Это, вероятно, самое большое изменение. Сначала обновление ваших маршрутов даст вам возможность исправить все ваши взгляды.

Update ваши модели/контроллеры

Вы можете сделать это без изменения базы данных. Вы можете сделать свою модель точкой в ​​новой таблице базы данных, используя set_table_name "OldTable". Это означает, что вы можете сделать любые изменения базы данных вне диапазона выпуска.

Изменения базы данных

Надеется, что вы используете миграции, в этом случае просто сделать таблицу переименование и удаления set_table_name.

0

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

После переименования, я бы загрузить приложение в перевалочной среде с реальными данными для проверки миграции, а затем запустить что-то вроде тарантула (http://github.com/relevance/tarantula) просканировать приложение ищет очевидные сломанные вопросы, которые вы & СВОИХ тесты, возможно, пропустили.