Как повторно использовать приложение рельсы - PullRequest
0 голосов
/ 25 августа 2009

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

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

Один из вариантов - я просто копирую приложение и изменяю его. Но в этом случае мне нужно управлять двумя приложениями по мере их развития.

Другой вариант - сделать приложение универсальным и настраиваемым (хотя база данных будет разделена). В представлениях будет много веток.

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

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

Есть ли у вас опыт такого дела? Если да, можешь поделиться со мной?

Спасибо.

Sam

Ответы [ 5 ]

2 голосов
/ 25 августа 2009

Это может быть немного неортодоксальным, но если вы используете git, вы можете создать две ветви

  1. один для сайта выпускников школ
  2. один для аналогичного сайта

Корневой код останется в основной ветке. Ваш процесс разработки будет тогда:

  • ответвление от мастера
  • вносить изменения
  • вытащить изменения в мастер, когда они удовлетворены
  • перетяните основные изменения в ветки.

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

1 голос
/ 25 августа 2009

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

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

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

Я использую подмодули git и символические ссылки. Существует субмодуль для общего проекта в Rails.root/shared. Затем есть символические ссылки от app/models до shared/app/models и т. Д.

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

2 приложения поделятся:

Модель Помощники Контроллеры

Они не поделятся:

Просмотры

Я еще не уверен в базе данных.

Я могу разделить представления, используя концепцию скина, например:

Приложение / просмотров / app1 /...

приложение / просмотров / app2 /...

Я все еще думаю о базе данных.

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

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

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