プログラマー VTuber 衣亥栖ティオのちょっとした話

Youtubeに投稿したプログラミング学習動画の補足説明をするためのブログです。

プログラマーへの道 #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で持たせる必要がなくなったからです。 この点もクラスを利用したリファクタリングのメリットですね。