7️⃣
[読書メモ]オブジェクト設計スタイルガイド 4章7節 with TypeScript
オブジェクト設計スタイルガイドを読みながら、TypeScriptでやるならどうやるかを考えながら書きました。
要約的に読める内容になっていると思うので、サクッと3分ぐらいで読める記事となっています。
4.7 イミュータブルオブジェクトでは、モディファイアメソッドは宣言的な名前にする
モディファイア:「非破壊の編集ができる機能」のこと
戻り値がvoidではないので、コードをみないとわからない。
tip: 「私は...が欲しいが...となっていてほしい」と考える
Positionの例だと、「私はこの位置が欲しいがn step 左に移動(n step to the left)となっていてほしい」と考える
何をして欲しいかではなく、どうなっていて欲しいかを「宣言」している
技術的な名前ではなく、ドメインに特化した抽象度の高い名前にすると良い。
class Position {
constructor(private x: number, private y: number) {}
private clone() {
return new Position(this.x, this.y)
}
toTheLeft(steps: number) {
let copy = this.clone()
copy.x = copy.x - steps
return copy
}
}
Discussion