表紙

Tidy First? は、Kent Beckが書いたソフトウェア設計に関する本です。 訳者あとがきを含めても128ページと薄い本で、各章も短く、読みやすい内容でした。 特定の言語やフレームワークに依存しない内容で、本書で扱われているコードもシンプルな疑似言語1で書かれています。 ですので、少しでもプログラミングを経験したことがある人であれば、読みやすい内容だと思います。

実際に試しにやってみたくなったので、Tidy Firstしてみました。 作ったまま放置していたカスタムGitHub Actionsのlabelling-by-gptに、昨年末に「もう動かない」というIssueが立てられていたので、それを解決するためにやってみました。

実際にやってみた結果が、こちら2Extracts codes about using completion API · satoryu/labeling-by-gpt@21403cf

どうやったか

およそ2年ぶりくらいに見るコードだったので、まったく初めてのコードを見るようなものでした。 動くように直したくても、まずはどこがどのように動いていたものなのかを理解する必要がありました。 そこで、まずはどういったコードだったのかを理解するために、読むことから始めました。 かなり雑に書いたコードだったので、読んでいくうちに「ここはこういう意味なのか」といった理解していくタイミングがありました。 そのタイミングで、コメントを入れたり、説明変数を加えたり、関数を切り出したりしたりしました。

整理していく途中で、たまたま動かない部分のコードを関数proposeLabelsにまとめることができました。 GitHub Actionsから呼び出されることを前提にしていたものを切り離すことができたので、動作確認のコードが書きやすくなりました。 Adds a script to test ai.js · satoryu/labeling-by-gpt@5774004 3

やってみて思ったこと

コードを読みながら、この本の目次をパラパラと見ながら、どの章の整理ができそうかを考えていました。 各章はただ短くわかりやすいというだけでなく、その分だけ使いやすいということもあるように感じました。 ただ、同じことをやろうとしても、おそらく人によって異なるものになると思います。 例えば、ひとかたまりにするにしても、どういったかたまりにするのか、そこにどういう名前をつけるのかは人によって異なると思います。 なので、この本を読書会すると面白そうだと思っています。

  1. 初めて見る疑似言語の書き方だったので、名前はわからなかった。 

  2. コミットはもっと細かくすればわかりやすくなったかもしれない、という反省。 

  3. テストコードを書こうと思ったけれども、APIを再現するのが面倒だったので、実際にAPIを叩くスクリプトを書いた。