Skip to content

システム構成

Cateiru edited this page Dec 4, 2023 · 4 revisions

このページでは oreore.me の構成に関して解説していきます。

使用言語

Go と TypeScript を使用しています。

Go のフレームワーク構成

Web framework Echo
ORM SQLBoiler
Logger zap
  • ORM:
  • ログ:

TypeScript のフレームワーク構成

パッケージ管理 pnpm
UI React
React framework Next.js
UI Component Chakra UI
Global State jotai
Type Validate zod

その他の構成

コンテナ Docker
データベース MySQL
マイグレーションツール go-migrate
SQLスキーマ変更管理ツール sqldef

ディレクトリ構造^1

.
├── LICENSE
├── README.md
├── app
├── build
├── components
├── db
├── docker
├── docker-compose.yaml
├── documents
├── go.mod
├── go.sum
├── main.go
├── next-env.d.ts
├── next.config.js
├── package.json
├── pnpm-lock.yaml
├── public
├── scripts
├── src
├── stories
├── templates
├── tsconfig.json
└── utils
  • LISENCE
    • ライセンスファイルです。
  • README.md
    • READMEです。
  • app
    • Next.js の App Router のディレクトリです。
  • build
    • Cloud Build の設定などのビルド時に使うものを入れておくディレクトリです。
  • components
    • Reactのコンポーネント・hooksを置いているディレクトリです。
  • db
    • データベースのDDLやマイグレーションファイル、ローカルでの設定ファイルを置いているディレクトリです。
  • docker
    • Dockerfile などを置いているディレクトリです。
  • docker-compose.yaml
    • docker compose 用の設定ファイルです。include:を使用してdocker/docker-compose.db.yaml, docker/docker-compose.local.yaml を同時に起動します。
  • go.mod
    • Go のモジュール管理用。
  • go.sum
    • Go のモジュール管理用。
  • main.go
    • Go のメインファイル。
  • next-env.d.ts
    • Next.js で使用する型の定義ファイル。
  • package.json
    • Nodeの依存関係定義。
  • pnpm-lock.yaml
    • pnpmのロックファイル
  • public
    • Next.js の静的ファイルを置いておくディレクトリです。
  • scripts
    • 様々なスクリプトを置いておくディレクトリです。
  • src
    • Go のソースディレクトリです。バックエンドの実装はすべてこの中にあります。
  • stories
    • Storybook の定義用ディレクトリです。
  • templates
    • メール文章のテンプレートを置いておくディレクトリです。
  • tsconfig.json
    • tscの設定。
  • utils
    • TypeScript のうち TSX ではないものを置いておくディレクトリです。