2 月 18 日(土)
特になし
2 月 19 日(日)
Go 言語で対戦シューティングゲームを作る9
- melody 側もリファクタリングを行った。サービクラスのようなイメージで構造体にハンドリング系のメソッドを生やして、New メソッドで一律ハンドリング系のメソッドを呼び出すようにしてみた。
2 月 20 日(月)
コールグラフという用語を知った
- オブジェクト指向のコードを読んでいて、継承が使われていてメソッドが細かく分割しているとあっちこっちにコードがあってそれを追うのだけでも一苦労。その上慣れないドメインロジックだとさらに厄介。自分の脳内メモリの容量は小さく、メモしながらでないとどういう流れだったかすぐわからなくなる。
- 「自動でメソッド呼び出しの流れを図にできたらな」と思い調べてみるとコールグラフという用語を知った。
- コールグラフのライブラリを調べて「code2flow」というのが良さそう。Python、JavaScript、Ruby、PHP に対応しているようだった。
- 今度触ってみたい。
Go 言語で対戦シューティングゲームを作る10
- 現状実装を進めているサーバー側のリファクタリングはできたので今度はフロント側に取り掛かる。
- フロント側ではサーバー側から受け取ったメッセージを元に apply を使って呼び出すメソッドを動的に切り替えていた。
- 今回 TypeScript を使えるようにしていて apply を使おうとすると型の扱いがうまくいかず詰まっている。
2 月 21 日(火)
薄いコードでも色々苦労した
- 実務で API を実装している。最終的に出来上がったコードは薄いコードだったけど、そこに辿り着くまでに「既存実装のコード理解」「今回実装範囲のデータフロー理解」「既存のコアロジックの理解」「権限が絡むコード理解」と周辺の理解をするのにとても苦労した。苦労した分、次からはもっと速度を上げたい。
che-go の仕込み
- この日は自作 CLI ツールを作ろうと README 駆動で README の仕込みを行った。
2 月 22 日(水)
リリースされていないサービスは世間からすると存在しないも同然
- 最近何気ない会話の中で自分の仕事について話す機会があり、「こういうプロダクトを開発しています」ということを話したが、前も同じような話題のときに同じようなことを答えていたなーと思った。
- つまり、開発は進んでいるが世の中からすればリリースされていないので存在しないも同然だと思った。
- 今までの経験から CI やエラーハンドリングや土台周りの細かい共通化など頑張っているところは多々あるが、まだ利用されていないのでそのコードはお金を生んでいない。
- また、リリースされないと自分の努力も報われないので、自分のコードが報われるように頑張りたいと思った。
che-go 開発1
- Go 言語で自作 CLI ツールを作りたいのとチートシート管理を CLI で便利にしたいといのがあり、チートシート管理ツールの開発を始めた。 - Go 言語で初めての開発ということで右も左もわからないので、ChatGPT 先生を活用したところ痒いところに手が届く感じで想像以上に良かった。
- チートシートは yaml ファイルで管理をするため、yaml ファイルの読み込み・書き込みの部分を実装した。
2 月 23 日(木)
che-go 開発2
- 引き続き ChatGPT 先生と共同で開発を進めている。
- 今日は yaml ファイルに add コマンドでコマンド情報を追加するという実装を行った。
- 入力を受け付ける部分は promptui というライブラリを使っている。add コマンドのテストを書こうと思ったが、promptui の部分のテストの書き方が難しいため、yaml ファイルの書き込み・読み込み部分のテストを書くことにした。
2 月 24 日(金)
che-go 開発3
- チートシートが存在しなければ main 関数で作るようにした。
- remove コマンドを作った。削除するコマンドをどう選択するようにしようかと思ったが、promptui で searcher という引数を受け取り、searcher 内で検索のロジックを書くことができた。また、さらに templates を使うといい感じに CLI の表示も変えることができた。
- edit コマンドも作った。edit は add と同じ感じでできるかと思ったがデフォルト値を表示する部分や編集するコマンドを選択する部分の作り込みが必要だった。長い文章を編集する際に文字を入力するたびに端末の再レンダリングが走るバグを見つけたがこれは promptui で issue で報告されているバグだったのでとりあえずスルーした。
- すごく開発がサクサク進んでいるが殆どのコードは ChatGPT 先生が書いてくれるし、ダミーデータやテストなども用意してくれる。あと細かい部分の調整や繋ぎ込みを人間が行う必要があるという感じで半分以上は ChatGPT 先生のおかげだ。ガッツリ開発で使ってみて正直 AI の進化に驚いている。