命名規則

モノレポ内のアプリ、ファイル、テーブル、変数、環境変数の命名方法。

30以上のアプリをまたいでもモノレポをナビゲートしやすくするには、一貫した命名が鍵です。ファイル、テーブル、変数を作成するときは以下の規則に従い、迷ったら既存アプリの書き方を参考にしてください。

クイックリファレンス

項目規則
アプリディレクトリkebab-caseapps/checkin-board/
データベーステーブル(アプリ固有)snake_case、アプリ名プレフィックスcheckin_board_checkin
データベーステーブル(共有)セマンティックプレフィックスclass_user, log_activity
コンポーネントファイルPascalCase.tsxUserProfile.tsx
ユーティリティファイルcamelCase.tsformatDate.ts
APIルートフォルダkebab-caseapp/api/user-profile/route.ts
ページルートフォルダkebab-caseapp/user-settings/page.tsx
変数camelCaseuserName, totalCount
関数camelCase(動詞-名詞)getUserData(), calculateTotal()
定数UPPER_SNAKE_CASEMAX_RETRY_ATTEMPTS
React フックuseCamelCaseuseUserData()
CSSクラスkebab-caseuser-card
環境変数UPPER_SNAKE_CASEDATABASE_URL, AUTH_UI_URL
パッケージ名kebab-case"name": "checkin-board"

アプリ

kebab-case(小文字・ハイフン区切り)を使います:

  • checkin-board, breakfast-tracker, meal-planner
  • CheckinBoard, checkin_board, checkinBoard

アプリディレクトリ、package.jsonname、ルートのスクリプト(dev:<app-name>, build:<app-name>, start:<app-name>)はすべて一致させます。

データベーステーブル

アプリ固有のテーブルは、アプリ名をsnake_caseにしたものをプレフィックスとして付けます:

{app_name}_{table_name}

アプリのkebab-case名をsnake_caseに変換します: checkin-boardcheckin_board_*

アプリテーブル例
checkin-boardcheckin_board_checkin
breakfast-trackerbreakfast_tracker_meal
meal-plannermeal_planner_recipe

共有テーブル(複数のアプリで使用)はセマンティックプレフィックスを使います: class_user, log_activity, map_*。スキーマのワークフロー全体はデータベースを参照してください。

環境変数

UPPER_SNAKE_CASEを使います。RailwayにマッピングされるアプリごとのGitHub secretは、アプリ名をsnake_caseにしたプレフィックスを付けます:

  • BREAKFAST_TRACKER_SLACK_WEBHOOK_URL
  • RECRUIT_ASHBY_API_KEY
  • STAFF_MEAL_TRACKER_OPENAI_API_KEY

これにより、30以上のアプリをまたいでもGitHub変数が衝突しません。Railwayへのマッピングについては環境変数を参照してください。

Next.jsのパブリック変数(ブラウザに公開される)はNEXT_PUBLIC_を付けます — NEXT_PUBLIC_API_URL

Claudeに聞く

新しい名前が規則に沿っているか確認
Claudeプロンプト
「Meal Planner」という新しいアプリを作りたいです。モノレポの命名規則に沿って、ディレクトリ名、パッケージ名、テーブルプレフィックス、GitHub secretプレフィックスをどうすべきか教えてください。

クイズ

Quiz

`checkin-board`アプリの`reservations`テーブルの正しい名前はどれですか?