story0002の設計をした
バックログ
サービス開発を始めるので要件定義をしてみた - there_you_moon’s diary
story0002
eat-backが徒歩圏内でランチができる店を知ることができる
AC
- GET /restaurant から 半径800メートル圏内の店を取得できる
- Dockerにより高速な開発環境が実現されている
- CI/CDのデリバリーにより開発フローの秩序が保たれている
WA
条件
取得する店舗の条件は以下とする
- 営業時間内
- 営業終了まで1hの余裕がある
今後の拡張性を考えてバックエンドでは店を絞り込まない
アーキテクチャ
初期導入するアーキテクチャは以下の通り
DDDなどのデザインパターンは基本的に導入せずにRails Wayに乗っていく
SwaggerなどのAPI仕様書はエンドポイントが増えた場合に導入する
- Sorbet
Rubyの型解析ライブラリSorbet事始め - Qiita]
規約
外部と通信する場合は以下のタイミングで通信内容をログを出力する
- リクエストの送信前
- レスポンスの受信後
基本的にコメントは書かない。
しかし、制約などにより冗長な書き方をしなければいけない場合は理由を書く
ユニットテストはインターフェイスに対して、ユースケースを把握するように実装する
API
Places API を使用する
Place Search | Places API | Google Developers
プラットフォーム
Herokuを使用する
- サーバーは以下を用意する
- dev
- stg
ローカル開発環境
Docker化を行う
高速に開発できる Docker + Rails開発環境のテンプレートを作った - Qiita