Open2

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

rubellumrubellum

想定

  • メインはWebアプリケーション開発
  • 具体的にはWebAPIおよびコマンドラインアプリケーションを開発する現場

開発環境の個人的な課題感

開発環境の準備方法を忘れがち

ユースケースシナリオ

  • フロントエンドエンジニア、サーバーサイドエンジニアはリモート開発環境で開発する
  • 開発者は数クリックの手間でリモート開発環境を用意できる
    • リモート開発環境のセットアップ時にソースコードを配置済
      • 任意のGitブランチを指定できる
  • 開発者はJetBrains 製のIDEで開発する
    • IDEからリモート開発環境に接続し、実行環境・テスト環境として利用する
    • 検証用のストレージ(DB, キャッシュ等)を初期設定する

実行環境

  • 開発およびデプロイがスムーズに進むならなんでもいい
    • コンテナをうまく使いたいがマストではない
  • 開発言語やWeb or CLIアプリケーションによっても開発しやすい方法が異なるかもしれない

補足

ソースコード管理

  • Gitを使う
  • GitHub, GitLab, JetBrains Space などリポジトリサービスは何でもいい
    • 開発自体はプルリクエストでの開発を想定
    • FYI: コードレビューの仕組みは破綻しているという話題
rubellumrubellum

プロトタイプによる探求

プロフィールサイト開発を通してリモート開発環境を探求する

要求

  • 訪問者はユーザー登録すると、ユーザー自身のプロフィールやSNSリンクを載せたプロフィール画面を作成できる

要件

  • 訪問者はSNSログインする
    • システムはユーザーの初回ログイン時、ログインに使用したSNS上のプロフィールを取得して名前を登録する
    • ユーザーは画像をアップロードして、アイコンを設定する (2)
  • ユーザーはプロフィール画面から名前とSNSリンクを登録・変更する
    • ユーザーはSNSリンクを0〜10個登録する
  • ユーザーはログアウトする

※末尾に(2)と記載がある項目は2次リリース時にやるので初期リリースには含めない

仕様

  • トップ画面
  • ユーザー検索画面 (2)
  • プロフィール閲覧画面
  • プロフィール変更画面(ログイン必須)

※末尾に(2)と記載がある項目は2次リリース時にやるので初期リリースには含めない

用語

  • ユーザー: ログイン済の人
  • 訪問者: 未ログインの人

システム構成

  • フロントエンド
    • SvelteKit
      • 備忘録: 使ってみたい理由のみで選択
  • サーバーサイド
    • PHP
      • Symfony
        • 仕事で使っているという消極的な理由
  • DB
    • SQLite 3
      • 備忘録: 使ってみたい理由のみで選択
  • CDN
    • ★TODO
      • プロフィールの詳細画面はそのままキャッシュしたいがサービスはあとで検討する
  • 全文検索エンジン (2)
    • ★TODO