🕕

[読書メモ]オブジェクト設計スタイルガイド 5章2節(後半) with TypeScript

2024/02/26に公開

オブジェクト設計スタイルガイドを読みながら、TypeScriptでやるならどうやるかを考えながら書きました。
要約的に読める内容になっていると思うので、サクッと3分ぐらいで読める記事となっています。
https://www.oreilly.co.jp/books/9784814400331/

5.2 例外に関するルール

5.2.2 無効な引数やロジックの例外クラスの命名

Invalid... という名前にするといいよ。

5.2.3 実行時例外クラスの命名

「すみません...でした」の「...」に入る部分をクラスの名前にしよう。

  • CloudNotFindProduct
  • CloudNotStoreFile

5.2.4 失敗の理由を示すために名前付きコンストラクタを使う

// データを受け取る
class CloudNotFindStreetName extends Error {
  static withPostalCode(code: string): CloudNotFindStreetName {
    // ...
  }
}

5.2.5 詳細なメッセージの追加

クライアントがメッセージを設定するのではなく、クラス内で作成しておくと便利。

class CloudNotFindProduct  extends Error {
  constructor(message: string) {
    super(message);
    this.name = "CloudNotFindProduct";
  }

  static withId(id: string): CloudNotFindProduct {
    return new CloudNotFindProduct(`Cloud not find a product with ID ${id}`)
  }
}

// 呼び出し側
CloudNotFindProduct.withId("11");

Discussion