最近なんとなく思うことをつぶやいてみたくなった、railsの強み・弱み
一応3年くらいはrailsを触ってる身でまだまだペーペーが騒いでいるだけですが
結論これだよね
方々でrails終わってるとか色々言われたりもしますがやっぱりrailsの強みって
「サクッとレールに乗って作れること」
これに尽きるな~と思います。
これは特に新規プロダクトに参画したときにすごく思いましたね。
「この機能が欲しい!」、「あいよ!」ってくらいのノリで作れるのがとてもいい。(抽象的過ぎて伝わりずらいww)
もう少し具体的に言うと
機能実装に至るまでの細かい作業についてはレールが引いてあって、自分たちがしっかりリソースを割いて考えなければならないビジネスロジックについて時間をさけるという点
逆に弱みはプロダクトがでかくなってrailsの思想から離れれば離れるほどいろんなことがしんどくなる
経験的にも古くから機能を積み上げているプロダクトに多いですがどうしてもrailsの思想から離れた機能を作らざる負えなくなってしまってそれが積み重なって負債になっているってケースが結構他のrailsプロダクトにもあるんじゃないですかね?
railsの弱みを強みにするには?
これを実装しながら日々考えることが増えました。
大きくなったサービスを切り出して小さくしていくのが良いのかな~?なんてことをよく思ったりします。
よく言うファットモデルとかをレイヤーを増やして対応する。とか色々やっても限界がありそうだなと感じます。
だったら機能を切り出してマイクロサービスで作っていけるとrails的にはよさそうだなと
どうしてもそれが無理なら少しずつでもrailsから脱却していく方向で考えていく
あとはRubyは動的型付け言語なので機能が複雑になるにつれて各インスタンスを追ってくのがしんどい→気づいたら型が変わってた><なんてことも起こりやすいので
そういった弱みも相まってテストを書くっていう事へ強い思考が強いのかもしれないですよね。
とにかくシンプルなアプリを作るなら今でも強い!でも複雑になればなるほどフレームワーク的にもしんどい面が増えてくる
これに尽きるのかな?
逆にrailsエンジニアの腕の見せ所は複雑になる機能をどうハンドリングしていくかなんだろうな
コメント