Adopting Herb at GitHub
GitHubでHerbを導入する理由
約50万行のERB、約1万ファイル(平均50行/ファイル) 新UIはReact中心だが、2025年も350ファイル・15,000行以上のERBを追加 2024年比で2倍のファイル数
導入プロセス
最初の目標はnpx @herb-tools/linterのparser-no-errorsルール通過
初回実行時の通過率は75%未満で、2,768ファイルの修正が必要だった
Herbが見つけた既存コードのバグ
要素やERBブロックの閉じタグが入れ替わっているケース 条件付きの開閉タグ
captureブロックを使う形にリファクタリングした
<% if x.y? && x.z? && %>のような構文エラー
Herb自体に見つけたバグ
空白文字の扱いのバグ
コメント付きendで不正なRubyを生成する重大バグ Railsはテンプレートを実行時までコンパイルしない 対策としてherb analyzeにRuby検証を追加 パフォーマンスの問題
Tiny(58B): 7.2倍
Small(250B): 11.2倍
Medium(1KB): 15.0倍
Large(3KB): 13.0倍
本番投入は性能問題の解決待ち
残課題
20年以上の歴史を持つERB、10年近いErubiに依存する未文書化挙動が多数存在 今後の方向性