Skip to main content
Glama

Shared Knowledge MCP Server

by j5ik2o
null-handling-01jpcvxfxbfm6z9tc89zm9c37e.md2.86 kB
--- description: null handlingに関するドキュメント ruleId: null-handling-01jpcvxfxbfm6z9tc89zm9c37e tags: ["development"] aliases: ["null-handling", "option-pattern"] globs: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.go", "**/*.rs", "**/*.scala"] --- # NULLハンドリングのルール ## 基本原則 NULL参照によるエラーはバグの主要な原因の1つです。明示的なNULLハンドリングポリシーを導入することで、より安全で予測可能なコードを作成できます。 ## NULL値の代替としてのOption型 値の存在が不確かな場合、NULLの代わりにOption型を使用します。 | 言語 | 推奨型 |。 |------|--------|。 | Java | `vavr`の`Option<T>`型 |。 | Scala | 標準ライブラリの`Option[T]`型 |。 | Rust | 標準ライブラリの`Option<T>`型 |。 | Go | `samber/mo`の`Option[T]`型 |。 | TypeScript | `fp-ts`の`Option<T>`型 |。 ## 2. 主要なユースケース Option型は以下のような場面で特に有用です:。 1. **検索操作の結果**。 - データベースからのレコード検索。 - コレクション内の要素検索。 - キャッシュからの値取得。 1. **オプショナルな値**。 - オプショナルなパラメータ。 - 設定値が未設定の場合。 - 省略可能なフィールド。 1. **計算結果**。 - 条件付きの計算。 - 失敗する可能性のある変換。 ## Option型の基本操作 Option型では一般的に以下の操作が提供されます:。 1. **マッピング** - 値が存在する場合のみ変換を適用。 2. **フィルタリング** - 条件を満たす場合のみ値を保持。 3. **デフォルト値の提供** - 値が存在しない場合に代替値を使用。 4. **副作用の実行** - 値の有無に応じた処理。 ## NULLハンドリングの設計指針 効果的なNULLハンドリングのためのガイドライン:。 1. **明示的な不在を表現**。 - NULLや未定義ではなく、Option型を使用。 - 戻り値の型シグネチャで不在の可能性を明示。 1. **早期検証**。 - メソッドの先頭でNULL値を検証。 - 境界での検証を優先し、内部ではNULL非存在を前提に。 1. **モナディックな操作の活用**。 - 連鎖的な操作にはモナド演算子を使用。 - 条件分岐よりも宣言的な表現を優先。 1. **デフォルト値の適切な使用**。 - ビジネスルールに基づいたデフォルト値の選択。 - デフォルト値が適切でない場合は早期リターン。 NULLハンドリングを適切に行うことで、「NullPointerException」や同様のランタイムエラーを防止し、コードの品質と信頼性を向上させることができます。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/j5ik2o/shared-knowledge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server