架空伝統ゲーム「机戦」のオンライン対戦プラットフォームである cerke_online の 11 月末アプデから見るコード負債 (part 0)

この記事は筆兵無傾 Advent Calendar 2022 およびボードゲーム・パズルプログラミング Advent Calendar 2022 の 2 日目の記事です。

概要

過去記事にも書いたように、2017年頃から架空世界創作というものを手伝わせていただいています。

hsjoihs.hatenablog.com

 

それの一環として、異世界ファイクレオネで遊ばれている(という設定の)架空伝統ゲーム「机戦」の製作にまつわる諸々を手伝っています。

 

(製造を委託して BOOTH で販売したりもしています。興味がございましたら是非お買い求めを)

yasusho1020.hatenablog.com

 

特に、私はこのゲームのオンライン対戦プラットフォーム「cerke online」を事実上全て一人で実装するという貢献をしています(CI などのデプロイ環境の整備と画像素材の製作以外、フロントエンド・バックエンド・依存ライブラリ含め、机戦に関するコードは全て私が独力で実装している)。

問題

そういう経緯で、一人で突っ走ってきたがゆえに、私の未熟さもあり現状非常に筋の悪い実装となってしまっています。特にフロントエンドにかなり問題があり、今となって考えれば MVC パターンを採用しておけば遥かに見通しの良い実装となったのでしょうが、当時は Elm も React もやったことがなく、生 DOM をひたすらいじる険しいコードが、5000 行以上に渡って立ち並んでいます。

 

メンテしたくないコードというのはどんどん手を出す気が下がり、実際そのせいで 8 ヶ月ほど一切手を触れないでいたがために利用者の要望に応えられてこなかったなどの経緯から、2021年 8 月から「心機一転、月に一回はコードに手を入れて、月末に毎回少なくとも 1 つ機能を足して公開しよう」と決心し、以降(たまにサボってる月もあるけど)基本的に毎月末にアプデを出すようにしています。

jurliyuuri.github.io

 

さて、つい数日前に 11 月が終わり、アドベントカレンダーの季節が始まったということで、私はいま残り 15 分もない中 12/02 分の記事を書いているわけですが、11 月が終わったということは月末アプデをしたということです。

 

今回は、アプデでの変更部分を見ることで、現状の cerke_online のフロントエンドにどのようなコード負債が埋まっているのかを見ていこうと思います。

 

github.com

 

↑ をクリックしていただくと、どのようにコード変更を加えたかが確認できると思います。ということで、そろそろ日付が変わりそうなので、この辺りで part 0 を締め、如何なる困りごとが発生しているのかについては後日の記事で具体的に説明していこうと思います。