プログラマーへの道 #97 の補足説明
こんにちは、プログラマーVTuberの衣亥栖ティオです。
今回は以下の動画の補足説明をします。
動画内で実装したソースコードも載せています。
今回の動画で実装したソースコード
今回の実装は以下です。
https://github.com/tio-iis/memo-server/pull/23/files
現時点でのソースコード全体は以下です。
https://github.com/tio-iis/memo-server/tree/982ecbf025274f74bce2aa6c65585d14715224c7
MemoクラスとMemosクラスで持つ情報について
Memoクラスは単体のメモに関する情報や実装を持ちます。 例えばメモのIDだったり、タイトルですね。 メモの各種値に対するバリデーションも持ちます。
一方でMemosクラスはメモの集合体に関する情報や実装を持ちます。 現在はメモの配列、メモのタイトルが重複するかどうかのバリデーション、メモの追加ロジックを持っています。
今はリファクタリング途中なので、イメージできないかもしれないですが、 適切なクラスに適切な実装と値を持たせるようにすると、読みやすくて書きやすい実装を実現することができます。
type=hidden のinputタグが不要になる理由
動画内では以下の実装(type=hiddenのinputタグ)を最終的には削除すると言いました。
https://github.com/tio-iis/memo-server/pull/23/files#diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051R174-R180
これはメモの情報をMemoクラスが持つように変更したので、わざわざHTMLのhiddenで持たせる必要がなくなったからです。 この点もクラスを利用したリファクタリングのメリットですね。