2025-10の振り返り
10月の振り返りをしました。
やったこと
- AnnotateRb: 細かな修正
- AnnotateRb: Add opt-in support for automatically annotating routes after migration tasks
- 「ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用」を読んだ
AnnotateRb: 細かな修正
下記のPRを投げました。
- chore: add missing newlines #280
- refactor: use existing database_name method for cache key #282
- chore: remove concurrent-ruby version lock from dummy app #284
- refactor: simplify primary key check logic (no functional changes) #285
どれも内部改善を行ったものです。
少しずつ該当ソフトウェアの理解が深まり、どこで何が行われているのか、大体把握できるようになってきました。
また、コードを探索する中で、消し忘れや、よりシンプルにできそうな箇所を整理・修正しました。
AnnotateRb: Add opt-in support for automatically annotating routes after migration tasks
以下の issue で提案された内容になります。
AnnotateRb では、db:migrate や db:migrate:up、db:migrate:down、db:rollback といった migration タスクの後に、enhance を使ってモデルへの annotation を実行する rake タスクを組み込んでいます。
一方、fork 元の gem である AnnotateModels では、モデルへの annotation に加えて routes ファイルへの annotation も実装されていました。 現状の AnnotateRb では migration タスクにフックしていなかったため、routes への annotation が実行されず見逃してしまう問題がありました。 そこで今回、migration タスク実行後に routes への annotation も行われるよう対応しました。
少し意識した点としては、rake タスクからはあくまで migration 後の annotation を 実行するだけ にしたことです。 以前は rake タスク側で何を実行するか(モデルのみ対象など)を判断していましたが、今回はその制御を Runner に委ねる 形に変更しました。
「ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用」を読んだ
KoR 2025 で紹介されていたので、気になり手に取りました。
これは別でまとめを書こうと思っています。
PHP を理解するのが少し大変でしたが、デザインパターンまで軽く説明されており、イラストも可愛くサクサク読めました。
所感
最近は AnnotateRb の issue や PR の対応を少しずつ行うようにしています。
その中で、実にさまざまな環境で使われていることが分かり、想定外の使われ方やこれまで考慮できていなかった点が顕在化するたびに、その難しさを実感しています。
しかし、こうしてフィードバックが返ってくるということは、それだけ多くの人に使われている証拠でもあり、実感すると同時にわくわくしてきます。
これからも、自分のできる範囲で少しずつお手伝いを続けつつ、その延長で自分の対応範囲も広げていけたらと思っています。