KonomiTV のコンセプトとか設計とかメモ(自分用)

<aside> 🚧 完全に自分用の資料なので、他の人に読ませるための文章には一切なっていない。 あと、記述が大方古くなっていて更新もできておらず、現状ともかなり乖離があるので、「コーディング規約的なもの」以外はあまり参考にしない方が良いと思う。

</aside>

<aside> 🚧 かなり雑多になってしまったので、時間があったら整理して別々の記事に切り分ける予定。

</aside>

メモ書きではなく、もうちょっとちゃんとした要件とか構成とか。

コーディング規約的なもの

開発は VSCode 上で行っているので、以下もそれに準じる。

Git のコミットログ

  1. Add (追加) or Update (更新) or Fix (修正) or Refactor (リファクタリング) or Remove (削除) or Release (リリース時のみ使用):
  2. [Server or Client or Installer] 、ルート直下のファイルの場合は [Readme.md] や [Dockerfile] といった具合
  3. [修正したモジュールやクラスの名前、広範囲に渡る場合はなし]
  4. コミットで何を行ったかを具体的に記入
  5. 必要に応じて、改行してから何を行ったかの詳細を記入

という構成。例として上げると、

Add: [Server][ChannelsRouter] チャンネル情報 API(単一チャンネル)を追加

といった感じになる。 こうすることで、どのコミットでどこに何が行われたのか分かりやすくなる。

この例では ChannelsRouter に新しい API を追加したためこのようにしているが、修正や変更が広範囲に及ぶ場合は書かなくても良い。ただし、1番目と2番目、4番目は必須。

3番目に関してはネストする必要はない。そもそもあまりネストが深くならず、かつモジュールやクラス名だけで識別できるようなディレクトリ設計としているため。 つまり、この例で言うと Add: [Server][routers][ChannelsRouter] とする必要はない。そこまでやるとちょっと長くなったりくどいのもある。

ただし、Client に関しては [TV/Home] [TV/Watch] のように、ページ単位の時のみ、適宜スラッシュでネストを行う。今後 [Video/Home] といったページが出てきた時に分かりやすくなるはず。

3番目の項目は正直私の勘で決めているところがあるので、基準を言語化するのが難しい…