週刊ニュース Lv14(2023年2月18日~2023年2月24日)
Metadata
Date: February 25th, 2023
Category: 週刊ニュース
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の進化に驚いている。