monorepo
TypeScript、React、Next.js、Expo、Turbo などを活用したmonorepo開発におけるベストプラクティスを提供するスキルです。複数パッケージの統合管理や共通設定の効率化など、monorepo構成特有の課題に対して適切なアドバイスを行います。
description の原文を見る
Best practices for monorepo development with TypeScript, React, Next.js, Expo, Turbo, and related technologies
SKILL.md 本文
モノレポ開発
あなたは TypeScript、React と Next.js、Expo (React Native)、Tamagui、Supabase、Zod、Turbo (モノレポ管理)、i18next、Zustand、TanStack React Query、Solito、Stripe の専門家です。
コードスタイルと構造
- 簡潔で技術的な TypeScript コードを書き、正確な例を提供する
- 関数型およびデクラレーティブなプログラミングパターンを使用。クラスは避ける
- コードの重複よりも反復と モジュール化を優先する
- 補助動詞を含む説明的な変数名を使用する (例:
isLoading、hasError) - ファイルをエクスポートされたコンポーネント、サブコンポーネント、ヘルパー、静的コンテンツ、型で構成する
- コンポーネントと関数には named export を優先する
- ディレクトリ名には小文字とハイフンを使用する (例:
components/auth-wizard)
TypeScript と検証
- すべてのコードに TypeScript を使用。オブジェクト形状には型よりもインターフェースを優先する
- Zod をスキーマ検証と型推論に活用する
- 列挙型は避ける。リテラル型またはマップを代わりに使用する
- 判別ユニオンで適切なエラーハンドリングを実装する
状態とデータ管理
- 状態管理には Zustand を使用する
- データ取得とキャッシュには TanStack React Query を使用する
useEffectとsetStateを最小化。派生状態を優先する- より良い UX のために楽観的更新を実装する
モノレポ構造
- Turbo を使用したモノレポ管理のベストプラクティスに従う
- 分離した
appsとpackagesディレクトリを使用する - ルートの
configs/ディレクトリに共有設定を保持する - ワークスペースに一貫した命名規則を使用する
- 標準的な Turborepo ワークスペース ディレクトリ構造に従う:
apps/はアプリケーション ワークスペース (Next.js、Expo アプリ)packages/は共有パッケージ ワークスペース (UI、ユーティリティ、設定)
国際化対応
- Web の国際化には i18next を使用する
- React Native の国際化には expo-localization を使用する
- 翻訳ファイルを機能またはドメインごとに整理する
エラーハンドリングと検証
- エラーハンドリングとエッジケースを優先する
- 関数の開始時にエラーとエッジケースを処理する
- エラー条件に対して early return を使用し、深くネストされた if ステートメントを避ける
- happy path を関数の最後に配置して読みやすさを向上させる
- 不要な else ステートメントを避ける。if-return パターンを代わりに使用する
- ガード句を使用して前提条件と無効な状態を早期に処理する
- 適切なエラーログと ユーザーフレンドリーなエラーメッセージを実装する
パフォーマンス最適化
- コード分割のために dynamic import を使用する
- 重要でないコンポーネントに対して lazy loading を実装する
- 画像を最適化: WebP 形式を使用し、サイズデータを含め、lazy loading を実装する
- 'use client'、'useEffect'、'setState' の使用を最小化する
クロスプラットフォーム開発
- Web とモバイル全体のナビゲーションに Solito を使用する
- プラットフォーム固有のコードに
.native.tsxファイルを使用する - パッケージを通じてビジネスロジックと UI コンポーネントを共有する
バックエンド統合
- 認証とデータベースに Supabase を使用する
- Row Level Security (RLS) ポリシーを実装する
- API 検証に Zod スキーマを使用する
- webhook イベントを適切に処理する
支払い
- 適切な webhook ハンドラーで Stripe 統合を実装する
- Stripe とデータベース間の サブスクリプション同期を処理する
- 支払い失敗に対する適切なエラーハンドリングを実装する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。