---
# System prepended metadata

title: Template Engine (ERB) ベースのRailsアプリのモジュール / モノレポ化

---

# Template Engine (ERB) ベースのRailsアプリのモジュール / モノレポ化

## *背景*

- 取扱うメディアの増加に伴う, View TemplateのCouplingが発生し多くのDevelop / DeploymentのCostが発生している。

## *目標*

- Applicationをモノレポ化し共通のComponentsを抽出させるような形で個々のユニークなアプリから参照させ、couplingを解消させる。


## **共通要素**

- 

## *構想 1*

共通のComponentsをGem化して、各メディアにGemとしてImportして利用するような形で利用する。

```txt
- root
  - commons (gem)
  - media-a
  - media-b
```

### 🟢 利点

- No more coupling

### ❌ 欠点

- ComponentsをGem化するに当たりVersioningをする必要がある。

### 🛠 工数

10 - 14日 (目安)


### 補足

- 特異性のないものをMergeしていく
    - 環境変数でstatic fileの参照等

## *構想 2*

共通部をアプリケーションとして独立させ、各メディアの固有部分をThemeとして開発するようにする.
(Shopify, Wix のようなイメージ)。

```txt
- root
  - core
    - ...
    - ... (Core App)
  - themes
    - media-a ...
    - media-b ...
    - media-c ...
```

イメージ 👇
![image](https://i.gyazo.com/f1702d8284de7a65e61128810eccdbc8.png)

### 🟢 利点

- No more coupling

- 各テーマを個別に開発することができるのでUserのNeedsをDeliveryするのが早い

### ❌ 欠点

- はじめにCoreのApplicationを開発する必要があるので工数がかかる。

### 🛠 工数

15 - 20 日 (目安)

## *構想 3*

### 🟢 利点

### ❌ 欠点
