Open2
理想のリモート開発環境探求

想定
- メインはWebアプリケーション開発
- 具体的にはWebAPIおよびコマンドラインアプリケーションを開発する現場
開発環境の個人的な課題感
開発環境の準備方法を忘れがち
ユースケースシナリオ
- フロントエンドエンジニア、サーバーサイドエンジニアはリモート開発環境で開発する
- 開発者は数クリックの手間でリモート開発環境を用意できる
- リモート開発環境のセットアップ時にソースコードを配置済
- 任意のGitブランチを指定できる
- リモート開発環境のセットアップ時にソースコードを配置済
- 開発者はJetBrains 製のIDEで開発する
- IDEからリモート開発環境に接続し、実行環境・テスト環境として利用する
- 検証用のストレージ(DB, キャッシュ等)を初期設定する
実行環境
- 開発およびデプロイがスムーズに進むならなんでもいい
- コンテナをうまく使いたいがマストではない
- 開発言語やWeb or CLIアプリケーションによっても開発しやすい方法が異なるかもしれない
補足
ソースコード管理
- Gitを使う
- GitHub, GitLab, JetBrains Space などリポジトリサービスは何でもいい
- 開発自体はプルリクエストでの開発を想定
- FYI: コードレビューの仕組みは破綻しているという話題

プロトタイプによる探求
プロフィールサイト開発を通してリモート開発環境を探求する
要求
- 訪問者はユーザー登録すると、ユーザー自身のプロフィールやSNSリンクを載せたプロフィール画面を作成できる
要件
- 訪問者はSNSログインする
- システムはユーザーの初回ログイン時、ログインに使用したSNS上のプロフィールを取得して名前を登録する
- ユーザーは画像をアップロードして、アイコンを設定する (2)
- ユーザーはプロフィール画面から名前とSNSリンクを登録・変更する
- ユーザーはSNSリンクを0〜10個登録する
- ユーザーはログアウトする
※末尾に(2)と記載がある項目は2次リリース時にやるので初期リリースには含めない
仕様
- トップ画面
- ユーザー検索画面 (2)
- プロフィール閲覧画面
- プロフィール変更画面(ログイン必須)
※末尾に(2)と記載がある項目は2次リリース時にやるので初期リリースには含めない
用語
- ユーザー: ログイン済の人
- 訪問者: 未ログインの人
システム構成
- フロントエンド
- SvelteKit
- 備忘録: 使ってみたい理由のみで選択
- SvelteKit
- サーバーサイド
- PHP
- Symfony
- 仕事で使っているという消極的な理由
- Symfony
- PHP
- DB
- SQLite 3
- 備忘録: 使ってみたい理由のみで選択
- SQLite 3
- CDN
- ★TODO
- プロフィールの詳細画面はそのままキャッシュしたいがサービスはあとで検討する
- ★TODO
- 全文検索エンジン (2)
- ★TODO