(かもしれない)
by YoshitsuguFujii
DHH氏は基調講演の冒頭で、かつてのWebアプリケーションは1人のITエンジニアが書いたPHPファイルをサーバに置くだけ、わずか5秒でデプロイできていたのに、2025年現在では50人の開発チームが15分かけてデプロイしていると指摘。
「これは深刻なほど何かが大きく間違っている」(DHH氏)
https://www.publickey1.jp/blog/25/rails_81dbmarkdown.html
非常によくわかる
個人的にもPHPで書かれた1ファイルでBBSを作って一喜一憂していたところからずいぶん遠くに来てしまったものだと思う。
なぜこれほどまでにシステムは複雑化してしまったのだろうか。
そしてDHHがいうように、この複雑さを享受した上で15年以上前のアプリケーションがもたらしていた価値に比べて何が変わったんだろうか。
Ruby on Railsの思想は、「規約」というレールを敷くことで、開発者を迷わせず、本質的な開発に集中させること。 迷わずに本質的な開発できています?
複雑化したシステムにDHHのひとつの解
Hotwire is an alternative approach to building modern web applications without using much JavaScript by sending HTML instead of JSON over the wire.
つまりフロントにJSONではなくてHTMLをネットワーク越しに送る
部署選択によりformのパラメータ全部を使ってリクエスト(Sitimulus使用)
受け取ったパタメータを使ってもう一度formのviewを再生成する。 この時使うviewは初回に表示していたのと同じview。
リクエストパラメータによりグループは選択済みとなり、 ユーザーはグループにより絞り込まれた状態のhtmlが生成される。
サーバーから送られてきたhtmlを使って画面を置換する(Turbo Frame) ユーザーから見るとSPAのような体験となる。
もちろん表現力はSPAの方が高い。しかしそのリッチさはあなたが作ろうとしているシステムに本当に必要なものですか? 色々な複雑さやコストに目をつぶってまで本当に必要なものなのですか?
多種多様な技術やレイヤーを入れたくなるのはエンジニアの性だし、 より難易度の高い仕事に魅力を感じてしまうのは日本人の業だし、 より複雑なシステムを構築して乗りこなしたほうが満足感と仕事の達成感を感じてしまいますよね。
しかし得られるメリットは少ないのに、莫大なコストかけて開発していませんか?
FTPで5秒でデプロイしていた昔の方法から、 1時間かかる現代へと逆行しているとは、何かが深刻に、狂ったように間違っている。 今日では、何かをリリースするだけで、常に全ての要素が相互に依存し、関係者の全員が関与する必要があるように思える 現代のWebアプリケーション構築に必要な可動部品やコンポーネントの数も、完全に爆発的に増えている いったい何のために? 宇宙時代の技術で輝かしいことを成し遂げ、1999年より魔法のように素晴らしいアプリケーションを作っているのか?違う。相変わらずクソみたいな作業だ。 データベースから読み込み、データベースに書き込む。 そして出力形式を整え、HTMLを挿入する。 この複雑さと数多くの可動部品の中で、私たちは物事をより残酷なものにしてしまった。私たちはものをよくしているわけではない。
Rails World 2025 Opening Keynote - David Heinemeier Hansson
Rails 8.1は顧客ごとにDBを分離できるマルチテナント対応に。オフライン対応、Markdownレンダリング搭載など新機能 DHHが語る、Railsの強みとは?Hotwireとの関係に迫る。- Forkwell Hotwire光の道とStimulus 猫でもわかるHotwire入門 Turbo編 Rails World 2025 Opening Keynote - David Heinemeier Hansson