RoRの欠点は何ですか?[閉まっている]


39

私は現在、Web開発のためにどのサーバーサイド言語を学び、使用するかを決定しようとしています.x、y、またはzが良い理由に関する情報を得るのは比較的簡単ですが、それぞれの欠点を把握するのは難しいですそのうちの。

特に、他の特定の言語/フレームワークとは対照的に、Ruby on Railsの学習や使用にどのような欠点があるのか​​興味があります。


5
ASP.NETが大嫌いになりました。それは私の仕事だったので問題でした。
ジェレミー

5
他の人が詳しく説明したい場合に備えて、コメントでこれを言及するだけですが、長所と短所の両方である1つのことは、RoRが時々「魔法的」すぎる可能性があることです。シーン(そして、もしあなたがウェブ開発に慣れていないなら、あなたは当たり前のことをたくさん取るでしょう)。もちろん、これは基本的にすべての高水準言語に当てはまります。また、これらの言語を簡単かつ迅速に使用できるようにするものでもあります。
grautur

1
FWIW RoRを見る場合は、Razorを使用したASP.NET MVC3を必ず見てください。そして、正直に言って、もしあなたが支払いを受けるのが好きなら(確かにそうです)、それが私がASP.NETで開発する理由の40%です。残りの60%は、苦痛のポイントがあったとしても、それがほとんどすべてがNugetで簡単に終了したWebプラットフォーム期間であると感じています。

RoRはCRUDアプリのツールであると考えてください。RoUDは他のことを行うことができますが、より一般的なことは他の言語/フレームワークが混乱することなくより柔軟になります。
アルファ64

回答:


59

経験から言えば、欠点は、Railsフレームワークに頼りすぎていることです。これは、Railsの「スイートスポット」に完全に該当する、シンプルでグリーンフィールドのCRUDアプリのみを作成する場合に、すばらしい素晴らしいことです。生産性が急上昇します。ただし、そのスイートスポット以外で何かをしなければならない瞬間に、既存のデータベースとやり取りし、JSONまたはXML APIが定義されていない別のアプリケーションと対話し、複雑なワークフローを実装すると、Railsが敵になります。それRailsでこれらのことを行うことは可能ですが、それは「穀物に反する」ので、コミュニティは通常、「それをしないでください、Railsではありません方法」-基本的にRailsフレームワークをハックする必要があるため、生産性が低下するか、コードが非常に乱雑になります。

また、暗黙のマイナス面もあります。他のすべてはくて気味悪いように見えます。Railsの甘くて甘いネクターを味わったら(ここで少し伝道してください...)他のすべては意志です。RailsからPHP、ASP.NET WebForms、またはJavaに戻ることは、緑豊かな庭で戯れた後、爪のベッドの上を歩くようなものです。他の言語/フレームワークを同じ観点から見ることはできませんが、まだ感謝しているかもしれませんが、Railsの愛情のこもった抱擁をひそかに望みます。


11
他のすべてのフレームワークのように聞こえます-箱から出して何かを必要とする瞬間、それは苦労になります。
ネマンジャトリフノヴィッチ

12
はい。しかし、Railsではフレームワーク全体が「箱から出してすぐに」何かを必要とする理由を持たないという考えに基づいて構築されているため、少し悪いことがわかりました。これをPHPのZend、ASP.NET MVC、またはPythonのDjangoと比較すると、Railsよりもはるかに柔軟でありながら、フレームワークの利点を提供します。ただし、これは実際にはRailsに対する非難ではありません。
ウェインモリナ

3
しかし、幸運なことに、RoRだけがRubyベースのWebフレームワークではありません。私自身は、生のSQL体験のためにSinatra + Datamapper + Haml / SassまたはSinatra + Sequel + Sequel + Haml / Sassを好みます... RoRは、Java-oder .NETベースのソリューションに比べて優れています。しかし、他のRubyベースのWebフレームワークと比較すると、それは重いモンスターです。
フィリップ

4
WayneがRoRを愛しているか嫌いかを判断するのに苦労しています。この愛と憎しみの関係は、ほとんどのRoR開発者に共通ですか?
フィル

2
@Phil A列の少し、B列の少し。RoRが大好きです。あまり多くを知りませんが。それは本当に素晴らしいので、私はそれを学ぼうとしています。しかし一方で、私はそれを「現実の世界」アプリで使用しており、フォームごとに1〜2モデルの単一データベースと通信するCRUDアプリのボックスの外に出なければならなかったときに、そしてそれはそれでした。
ウェインモリナ

30

最初のサーバー側言語については、RoRにいくつかの問題があると感じています。

  1. あなたは言語を学んでいるだけでなく、フレームワークを学んでいます。レールに飛び込む前に、普通の古いルビーをいじるのに時間をかけることは間違いありません。

  2. それはフレームワークであり、その点で「意見のある」ものであるため、フレームワークで行われていることの非常に限られた範囲しか与えられないと感じています。

全体的なRuby on Railsは、ボールを転がすための良い出発点になる可能性がありますが、単一のフレームワークに依存しすぎて見逃す可能性のあるWeb開発について学ぶべきことがたくさんあります。


15

私はRoRを何度も学ぼうとしましたが、私の最大の問題は常にパッケージとドキュメントを正しく動作させることです。ドキュメントの問題は、常に古い(または非常に基本的な)ように見えることです。私はサイトから基本を手に入れましたが、それを超えてすべてがとても時代遅れに見えました(私が買って戻ってきた本でさえ)。欠点になる可能性のある別のことは、Ben Coeが述べているように、一部のライブラリが持つ依存関係と、それらが他のライブラリと競合する可能性があることです。


後で考えて、コメントにする代わりに、答えを編集するだけです。RoRはRubyを台無しにする可能性があります。試したとき、「Rubyはバカだった」と思うようになりました。それから数ヶ月後、私はRubyを試してみることにし、言語を愛することに決めました。それが言語を嫌うようになったフレームワークでした。私はあまり手を出していないが、私がしたとき、私は本当にシナトラを楽しんだ。ほとんどの人がシナトラからRoRから抜け出すことができたと思う。


+1同じ経験をしました。Ruby on Railsを学習しようとしましたが、を実行するだけでエラーが発生しましたrake db:migrate。一方、シナトラははるかにシンプルでわかりやすいことがわかりました。とにかく、私は自分のやり方で物事を設定することを好み、Railsアプリの基本構造は私にはあまりにも複雑に思えました。
Zhehao真央

@Zhehao Mao-私がこの経験をしているのは私だけではないことを嬉しく思います。ただし、DHHとまったく同じ方法で考える限り、複雑なことではないと思います。異なる種類の思考プロセスがある場合、RoRは後部の痛みになる可能性があります。
ジェッティ

複雑なことではないでしょう。私の問題は、Railsアプリを作成しようとするたびに、ドキュメントに記載されているとおりに機能するものは何もなかったことだと思います。
Zhehao真央

私もその事実のために信じられないほど複雑だと感じました。それも私がgaveめた理由です。RADであるためには、動作する必要があります。RoRを起動して実行する際に発生したすべての問題のために、C ++でCRUDアプリをRoRよりも速く作成できたと正直に思います(少し誇張ですが、それでも...)
Jetti

皆さんが適切なドキュメントを読んでいたのか、なぜあなたが助けを求めなかったのかは
わかり

12

これが最初のサーバーサイド言語である場合、それは他の言語と同様に優れています。行うべきことは、1つに焦点を合わせ、それをマスターしたと感じた後、他の人を探索し、あなた自身の結論を導き出します。

私は日常的にRoRとASP.NETを使用していますが、奇妙なことに、ASP.NETの世界を好みますが、それは言語やアーキテクチャそのものよりも個人的な哲学に関係しています。(私は少しコントロールマニアで、個人的に強く型付けされた言語に引き寄せられています)。

とにかく、試してみてください。RoRは作業に最適な環境ですが、Railsに飛び込む前に、Rubyを言語として使いこなしてください。* nixボックスを管理する必要が生じた場合、RubyはWeb以外にもかなりクールなスクリプト言語であり、時間を節約できます。


4
コントロールフリークの場合は+1。私にもその連勝があります。強い型だけでなく、-慣習が私のために仮定するのではなく、実際には設定(冗長性にもかかわらず)のような方法で。
ボビーテーブル

同上、@ Bobby Tables!
マーロン

6

Railsを最近(趣味として-商用グレードの開発に使用したことはありません)学び、すでにJEEとASP.NETで働いていた誰かとして、Wayne Mの答えは非常に真実でした。

とにかく、これには微妙な側面がありますが、まだ誰も言及していませんが、Railsに少し悩みました- 構成よりも慣習に強く依存しています

基本的に、新しいコードベースで「ファイルを検索する」主導のオリエンテーションに慣れている場合、CoCはRailsを拾おうとするとあなたを困らせる可能性があります。Railsの方法で正確に行われる単純なCRUDグリーンフィールドには適していますが(Wayne Mが言うように)、よりユニークで複雑なものには、ファイルに詰め込み、配管がどのように接続されているかを確認します。

私が思うに、この問題はおそらくRailsでより多くの経験を積んでしまえばそれほど悪くはないでしょう。非常に冗長な構成フローに慣れているoldskool Java / .NET Web開発から来た人にとっては問題であることは間違いなくわかります。


1
最初は少し気になりましたが、それ以降は気になりませんでした。データベース移行を記述して新しい列を作成し、個別のマッピング手順なしでビジネスロジックを新しいデータに添付できることは素晴らしいことでした。
ケビンクライン

@kevincline RoRでどのように達成しますか?Javaおよび.NETの世界でAOPを使用して実行できます。
粉砕

@crush:ビジネスロジックが使用するデータベース内のすべての列に対して、マップされたクラスのプロパティを明示的に作成およびマップする必要があるため、Javaおよび.NETでは苦痛です。列を追加すると、複数のクラスが変更されます。RoRは、慣例により、これらすべてを実行時に行います。データベーススキーマを変更してから、ビジネスロジックとプレゼンテーション層を変更して、新しい列を使用するだけです。
ケビンクライン

5

私にとって、最初のX(あなたの場合、Xはサーバー側のWeb言語/フレームワークです)を学ぶ最大の問題は、他の問題を見つけたらすぐに、すぐにXの適用を開始したいということです最良の選択肢ではないかもしれません。私はこれで良くなりましたが、それでもまだ強い傾向です。

まずはRuby on Railsが適しています。優れたコミュニティ、豊富なドキュメント、優れたチュートリアルがあります。しかし、特により多くのWeb開発を開始する場合は、代替案を念頭に置いてください。RoRは、一部の問題では過剰であり、他の問題では不十分なソリューションであり、別のセットでは最適な選択肢です。長所、短所、およびツールの使用方法を理解してください。


4

私のアドバイスは、あなたが完了したいプロジェクトの明確な画像を持ち、それからそれを構築しようとすることです。問題が発生すると、最終的にすべての適切なツールを取得します。このアプローチは、簡潔な問題に基づいて意思決定を行うため、優れています。

もう1つやることは、本を買うことです。インターネットのチュートリアルは、私の経験ではそれをカットしません。また、注意散漫のために多くのスペースを空けています。あなたが本を持っているとき、出版社はそれが悪いレビューを受けるとお金を失うので、それが価値を提供することを確認しなければなりません。少しのお金を使うと、多くの時間を節約できます。


しかし、railscasts.comを忘れないでください。彼はあなたに約10分でトピック/概念の概要を伝える素晴らしい仕事をします。Sunspotを機能させるために週末をかけて過ごした後、ファセット検索を実装する方法について10分間のRailscastを見て、1時間以内に稼働させました。月額9ドルの価値があります。
カイルカールソン

1

私は、Ruby-on-Railsの庭を散歩することについて詩的にワックスをかける人を正直に理解できません。経験豊富なASP.NET-MVC、Java、PHP、Python開発者としてやって来て、これまでで最も恐ろしい時間の浪費者であることがわかりました!オンラインgoogle-answersの90%が間違っているか不完全です。どうして?毎年それは大きく変わっていますか?それとも、コードを実際に機能させることを誰も気にしないということですか?単純なことをするのに膨大な時間がかかりました。たとえば、C#/ ASP.NET-MVCを使用するよりもはるかに多くのことができます。私のオリジナルの技術を習得するのに、それほど長い時間はかかりませんでした。確かに、RORは簡潔です。それがあなたにとって重要な場合。しかし、タスクを達成するコードを作成する方法がめったに明確ではないことがわかりました。個人的には、間違いなく機能するコードを書くために20秒間キーボードを入力したいです。簡潔なRubyコードを2秒間入力するのではなく、あなたはそれに従うことができますが、実際に動作させる方法を探して一晩中起きない限り機能しません。それは恐ろしく、悪臭を放つドードーの山です。どうして?(無料のように)オープンソースのコードは、それを高品質のツールにするインセンティブを生み出しませんか?修正やモジュールを送り込むスクリプトキディが多すぎて、そこに悪いドキュメントがありますか?知りません。しかし、その最初のRuby-Railsプロジェクトからようやく脱出できたとき、その混乱に二度と足を踏み入れることはないと誓いました!質の高いツールにするためのインセンティブはありませんか?修正やモジュールを送り込むスクリプトキディが多すぎて、そこに悪いドキュメントがありますか?知りません。しかし、その最初のRuby-Railsプロジェクトからようやく脱出できたとき、その混乱に二度と足を踏み入れることはないと誓いました!質の高いツールにするためのインセンティブはありませんか?修正やモジュールを送り込むスクリプトキディが多すぎて、そこに悪いドキュメントがありますか?知りません。しかし、その最初のRuby-Railsプロジェクトからようやく脱出できたとき、その混乱に二度と足を踏み入れることはないと誓いました!


この投稿は読みにくい(テキストの壁)。ですが、あなたは気編集をより良い形にそれをINGの?
ブヨ

この答えは陽気です。Railsは間違いなく、客観的には時間の節約になります。それに対するあなたのudgeみは純粋にあなたがそれに慣れており、最初の数週間以内にすべてがクリックすることを期待しているからです。データベースの移行だけでも、Railsに切り替える価値があります。
sergserg 14


0

RoRに関する上記の回答のいくつかに同意します。過去2年間RoRを使用してアプリケーションを開発してきました。シンプルなアプリケーションでは非常に優れており、CRUD(作成、読み取り、更新、削除)操作は非常にうまく機能します。シンプルなアプリケーションの開発には恩恵がありますが、その限界でもあります。多くの宝石にはさまざまな利点と使いやすさがありますが、基本的にはそうです。箱から出して行くと、アプリケーションがすべてねじれます。

RoRを使用してアプリケーションで作業している大規模なチームの場合、作業の委任を逃すのは困難です。


時折驚いたことの1つは、RoRから独立しているように見える多くの宝石が、スタンドアロンではなくRoRでのみ使用されるようになったことです。これがなぜなのかとても興味があります。PS:私はRubyプログラマーではないので、間違った印象を抱いたかもしれません。しかし、私はこれに数回つまずきました。残念ながら、現時点では例がありません
Htbaa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.