はじめに
新しいサービスを作成するときに、毎回使いまわしている仕組みをまとめる。
以前記事にした、一からマイクロサービスを作ったときから活用しはじめ、とてつもなく便利だったため、外部から組み込めるフレームワークにして使いまわしている。
特にオススメな状況
- 仕様が明確に定まっておらず、細かな変更が行われそうだ
- ディレクターがSQLなどに詳しくない
- 人に任せられるものは任せたい
仕組みの全体像
Googleスプレッドシートのフォーマットに沿って項目を入力することで、
エンジニア以外の人が必要とする画面や、機能が勝手にできていく仕組み。
この仕組みにより、非エンジニア以外の人ができることが増え、結果自分への質問や依頼が減る。
また、一般的な管理画面もひととおり網羅されるので、サービス特有の機能に手と頭を使えるようになる。
サンプルのスプレッドシート
分かりづらいので、各項目に説明を加えた。
それぞれエンジニア用/ディレクター用/エンドユーザ用と分かれているのが分かってもらえると思う。
ちなみにバリデーションについては、任意で追加できるようになっているが、さしあたり必要な以下の項目のみがデフォルトで記載されている。
- 入力必須項目
- 文字数
- 文字フォーマット(数値のみ, 英数字のみ, 「かな」のみ etc)
サンプルの管理画面
スプレッドシートの情報をもとに、デフォルトでテーブル一覧と説明と実データへのリンクが表示される。ちなみにエンジニア用と記載されているのは、バリデーション設定や型が確認できるようになっている。
実データ画面では、スプレッドシートで記載した検索フォームが用意される。
フロー図
裏側としては、一度EXCELデータとしてダウンロードしたあとに、各ファイルに変換している。
EXCELデータのダウンロード部分と、変換処理部分は独立させている。
なぜEXCELデータにしているかというと、オフラインの状態でも作業ができるようにするためだ。実際、出張中の新幹線内で利用することがあったので、その判断は正しかったと思う。
では、なぜGoogleスプレッドシートにしたかというと、自分がEXCELを立ち上げるのが億劫なのが1つと、社内にEXCELを持っていない人もいるためである。
最後に
この仕組みの導入により、気軽に新しいサービスをちょっと作ってあとは管理者に任せるということができるようになった。またちょっとしたDB構造の変更であれば、ほとんどスプレッドシートの更新だけやっておけば、反映させられるので精神衛生上もいい。
本当であればコードを共有したいのだが、共有するほど構造が綺麗に整理されていないのと、あまり汎用的な作りになっていないので、今後まわりの人に使ってもらう場合があれば綺麗に書き直して共有していきたい。