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

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

プログラマーへの道 #96 の補足説明

こんにちは、プログラマーVTuberの衣亥栖ティオです。
今回は以下の動画の補足説明をします。 動画内で実装したソースコードも載せています。


今回の動画で実装したソースコード

今回の実装は以下です。
https://github.com/tio-iis/memo-server/pull/22/files

現時点でのソースコード全体は以下です。
https://github.com/tio-iis/memo-server/tree/fdfdbce46663f4f18499f69fbfcb3cf236589fb1

クラスでメモの情報を管理するメリット

今までの実装ではHTMLの要素にセットした値を操作することで、メモの登録や編集の操作を実現していました。 今回のリファクタリングではクラスを導入し、MemoクラスとMemosクラスでメモの情報を管理しています。 これによってHTMLの要素を扱わなくて済むようになります。 以下はHTMLの要素を操作せずに、Memosクラスが持つ値を利用する形に修正した差分です。 ロジックがとてもスッキリしましたね。

https://github.com/tio-iis/memo-server/pull/22/files

動画内で一部のバリデーションを削除した理由

動画内では以下のバリデーションを削除しています。

https://github.com/tio-iis/memo-server/pull/22/files#diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051L160-L162

このバリデーションはメモの編集機能でのみ利用するバリデーションです。 メモを編集する際も "既存のメモと同じタイトルを持つことはできない" という仕様は有効ですが、 編集に限っては "編集対象のメモを除いて、既存のメモと同じタイトルを持つことはできない" という仕様になります。 今回の実装はメモを追加する場合の処理になるので、編集時のバリデーションは削除しました。