Hanami 3.0がついに開花!最新アップデートでRubyのWeb開発はどう変わる?
Hanami 3.0: In Full Bloom
Hanami 3.0: In Full Bloom
Ruby界の注目フレームワーク「Hanami」が待望のメジャーバージョン3.0に到達しました!今回のアップデートでは、さらなる生産性の向上と、より洗練されたアーキテクチャが実現されています。Rubyエンジニア待望のこの進化、ぜひチェックしてみてください。
Hanamiってかなりいいよね。本格的に実戦投入する機会はまだないんだけど、前からずっと気になってるんだ。Hanamiが使っている非ORMなROM-rbが、今回の正式な合併をきっかけにもっと活発に開発されるといいな。ROM-rbは最高なツールだけど、数年前にプロダクトを立ち上げた時は荒削りな部分が多くて結局使うのをやめちゃったんだよね。
「Faster by default(デフォルトで高速)」という見出しについて、前後の性能差を比較したベンチマークが見られると嬉しいな。とはいえ、この取り組みは素晴らしいと思う。Hanamiみたいに美しく作り込まれた選択肢があるのは本当にありがたいよ。
RubyエコシステムにおけるRails一強の状態に挑戦する誰かがいるのは嬉しいけど、Hanamiって正直そこまで目新しいものを持ってきてるようには見えないな。今回のリリースで、Railsに何年も前からあるもの以外で何か新しいことってあるの?
長年なんとなくHanamiを追ってはいたけど、実際に使ったこともないし、大規模なコードベースで使われている話も聞いたことがないんだよね。未だにRailsと何がそんなに決定的に違うのかよく分からないんだ。「Hanamiには保守性の高いアプリケーションを構築するための意図的で理にかなったアーキテクチャがある、センスがいい」みたいなコメントをよく見かけるけど、具体的にそれってどういうこと?ドキュメントにはRailsのアンチパターンを避ける方法が書かれてるし、その意見には賛成だけど、他の人がひどいコードを書くからといってRailsで必ずしもひどいコードを書かなきゃいけないわけじゃないし。複数の大手テック企業でRailsのレガシーな部分が置き換えられるのを見てきたけど、その主な原因はフレームワークの問題というより、10年以上何千人もの開発者が関わる中でコードが極端に柔軟になりすぎてしまったことだと思う。Hanamiのアーキテクチャがどうやってそれを防げるのか、いまいちピンとこないんだよね。
何年も前、Hanamiがちょうど人気になり始めた頃にRailsとSQL性能のベンチマークをとったことがあるんだけど、速さが売りの一つだったはずなのにRailsのActiveRecordの方がずっと速くてガッカリしたのを覚えてるよ :-(
リリースおめでとう!ここ数ヶ月、仕事のプロジェクトでRails 8を使ってるけど、Hanamiのエコシステムもすごく面白そう。一つ質問なんだけど、HanamiはInertiaとかSvelteのビューに対応してるかな?最近はERBから移行してて、そのおかげでエコシステムを活用したインタラクティブなコードがすごく書きやすくなったから、そのDX(開発者体験)を捨てたくないんだよね。
一度だけ、かなり大規模なプロダクトのコードベースでHanamiを使ったことがある。定番の「スキル不足」ってツッコミが入るのは百も承知だし、反論する気もないよ。でも、そのアプリは今まで見た中で一番めちゃくちゃで、過剰に設計されたゴミの山だった。少なくともその責任の一部はフレームワークにあるんじゃないかと思わずにはいられない。小さなクラスが爆発的に増えて、実際の挙動がどこにあるのか見えなくなるような設計へと誘導される感じがするんだよね。