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

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

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

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


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

以下が今回実装したソースコードです。

メモの登録は専用のモーダルを用意する

前回のブログでメモを登録するためのモーダルを編集用のモーダルと一緒にするかどうかを説明しました。 最終的にはメモを登録するための専用のモーダルを用意しています。 実際にこの方針で実装してみると、プログラムがとてもシンプルになったと思っています。 同じようなモーダルのHTMLが2つあるので、モーダル部分を修正する場合、2つのHTMLを修正しなければいけませんが、 今の所そういった予定はないので、一旦このまま進めようと思います。

モーダルのHTMLの id である "inputGroup-sizing-default" について

動画中で "inputGroup-sizing-default" という id が編集用のモーダル内のHTMLと登録用のモーダルのHTMLに存在します。

<span class="input-group-text" id="inputGroup-sizing-default">タイトル</span>

id の値は本来HTML上でユニークでなければいけません(重複してはいけません)。 しかし、動画中では重複しても問題ないと判断し、特に修正しませんでした。

以下のように "inputGroup-sizing-default" という id は aria-describedby という属性で指定されています。

<div class="input-group mb-3">
  <span class="input-group-text" id="inputGroup-sizing-default">タイトル</span>
  <input type="text" id="id-add-modal-title" class="form-control" aria-label="Sizing example input"
  aria-describedby="inputGroup-sizing-default">
</div>

aria-describedby の説明は以下です。 値が重複したとしても今回のメモ帳アプリが動かなくなることはないと思い、重複を許容しています。

aria-describedby 属性の使用 - アクセシビリティ | MDN

開発方針について

動画の最後の方でも言及したのですが、 私がアプリケーションを開発するときに "まずは動くものを雑に作って、それが完成したら細かいところを作り込む" という方針を取ります。 動くものを最初に作ることによって、 プログラムの全体像(どこが複雑になりそうか? このまま作り続けて問題ないプログラムになっているか?)を早い段階で確認できたり、 メモ帳アプリ自体の使い勝手も確認することができます。

これはプロダクト開発における "MVP(Minimum Viable Product)" という考えをプログラミングにも応用したものです。

【起業家必見】MVP開発とは何か? – techpartner

プログラムを書く→修正する→書く→修正する→書く→修正する ... というサイクルを早く回すことによって、 プログラムの品質を段階的に向上させていくことができます。 動くものが早くできるので、利用者に使ってもらって、良し悪しを確認してもらうこともできます。