Kawaii Lab

プログラミングとかサービス開発とか

story0002の設計をした

バックログ

サービス開発を始めるので要件定義をしてみた - there_you_moon’s diary

story0002

eat-backが徒歩圏内でランチができる店を知ることができる

AC

  • GET /restaurant から 半径800メートル圏内の店を取得できる
  • Dockerにより高速な開発環境が実現されている
  • CI/CDのデリバリーにより開発フローの秩序が保たれている

WA

条件

取得する店舗の条件は以下とする

  • 営業時間内
  • 営業終了まで1hの余裕がある

今後の拡張性を考えてバックエンドでは店を絞り込まない

アーキテクチャ

初期導入するアーキテクチャは以下の通り

DDDなどのデザインパターンは基本的に導入せずにRails Wayに乗っていく
SwaggerなどのAPI仕様書はエンドポイントが増えた場合に導入する

規約

外部と通信する場合は以下のタイミングで通信内容をログを出力する

  • リクエストの送信前
  • レスポンスの受信後

基本的にコメントは書かない。
しかし、制約などにより冗長な書き方をしなければいけない場合は理由を書く

ユニットテストインターフェイスに対して、ユースケースを把握するように実装する

API

Places API を使用する
Place Search  |  Places API  |  Google Developers

プラットフォーム

Herokuを使用する

  • サーバーは以下を用意する

ローカル開発環境

Docker化を行う
高速に開発できる Docker + Rails開発環境のテンプレートを作った - Qiita

CI/CD

  • CicleCIを使用する
  • 開発ルール
  • リリースルール
    • ビルド、デプロイを行う
    • デプロイはビルド時のキャッシュを使って行う
    • dev branchにpushでHeoroku devサーバーにリリース
    • master branchにpushでHeoroku stgサーバーにリリース