2019-03-29

Rails技術負債である

Railsを使うと、初速は早くなる。それは間違いないと思う。一方で、RailsはVierwからDBまで密結合したフレームワークなので、「段階的なアップグレード」とかがむずかしい。ヴァージョンをあげるときには一気にエイヤであげる必要が出てきがちであるさらに、プロダクトが巨大になってくると結局様々な工夫を凝らしてViewからDBまでの間を疎結合にしていくことになる。そうなってくると、「これRailsである意味あるんだっけ」となって、段階的なアップグレードのしくさや気をぬくと密結合な設計になるという欠点が目立ってくる。

これは、まさに技術負債のものである。ここでわたしが「技術負債」を「単なる悪いもの」として扱っているわけではないことに注意してほしい。Railsを使うというのは、そういう将来の負債を借り入れて、その借金を使って早くプロダクトを世の中に届けるという判断をしている、ということだ、ということを言っているのであって、「借金してでも早く出したい」という判断合理的で正しい場合ってのは、腐るほどある。

ただ、Railsを選ぶときに、「今俺たちは借金をしているんだ」って思いながら選んでほしい。その感覚がないと、プロダクトが軌道にのったあとも借金を返すためのリソースを捻出しないまま、破綻したコードベースに消耗してプログラマがどんどん逃げて言って最後にはプロダクトが潰れて終わるので。

  • 6 of the top 10 @ycombinator companies (by valuation) were built using Ruby! ttps://twitter.com/mhartl/status/1179561691857616896 Ruby on Railsの事例まとめ(海外有名サイト編) ttps://b.hatena.ne.jp/entry/s/skillhub.jp/blogs/176 ...

  • 初速を犠牲にしてもいいときの代案はなんであるかについても言及してみてほしい

    • そんなもんいくらでもあるだろ。フレームワークを使う必要性すら無い。

  • 最近Laravelで開発してるPHPerだけど、その辺ってDIで疎結合に出来ないのかな? RailsってDIないの?と思ったら、そもそもRubyがインスタンスへの依存性は動的に変更できるらしいじゃん FW...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん