プログラマーへの道 #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
動画内で一部のバリデーションを削除した理由
動画内では以下のバリデーションを削除しています。
このバリデーションはメモの編集機能でのみ利用するバリデーションです。 メモを編集する際も "既存のメモと同じタイトルを持つことはできない" という仕様は有効ですが、 編集に限っては "編集対象のメモを除いて、既存のメモと同じタイトルを持つことはできない" という仕様になります。 今回の実装はメモを追加する場合の処理になるので、編集時のバリデーションは削除しました。