1

私は Rails でプログラミングを始めて約 7 か月になります。主にデータベースを管理するためのアプリで、クリーンアップ、更新、削除、孤立したエントリの検索などを行います。

PHP で記述されたデスクトップ プログラムと通信する API があります。今では、すべてを Ruby に移行したいと考えています。この API は非常に高速である必要があり、ビューや HTML ページは一切ありません。JSON 経由でのみアプリと通信し、アプリが表示して操作するデータを送受信します。

基本的な質問は、Sinatra と Padrino (ActiveRecord を使用) を学習して API を構築するか、Rails で構築するかということです。

Rails を使用すると、すべてのテーブルが同じ (データベースは同じ) であるため、所有している多くのコードを保持したり、既存のコードを使用したりでき、API 用のメソッドをさらに記述することができます。

これには 2 つの欠点があります。

  1. これは、API ビットとすべてのメンテナンス ビットがあるため、コードの管理と読み取りが難しくなることを意味します。
  2. これは、同じ Ruby アプリが 2 つの作業を行っていることを意味するため、API は別の別の Ruby アプリで実行されている場合ほど高速ではありません。
  3. すでに Rails アプリは速度的には優れていませんが、これは Rails 自体よりもホスティング ソリューションに関係していると思われます。

Sinatra と Padrino を学ぶのは手間がかかるかもしれませんが、よりクリーンなコードになり、API 用に別の Ruby アプリを作成し、メンテナンス用に別の Ruby アプリを作成することで、見た目が良くなります。

しかし、Sinatra と Padrino については何も知りません。フットプリントと速度は本当にRails より優れているのでしょうか?

これについては、Rails と Sinatra の両方を Padrino で実際に使用したことがある方からのご意見をお待ちしております。

乾杯。

4

2 に答える 2

4

Sinatra と Padrino は、Railsより自動的に高速になるわけではありません。それらは Rails よりもわずかに小さいです (そして、開発者に、より小さく、より焦点を絞ったツールキットを提供します)。アプリケーションの速度は、主にコード (およびアルゴリズム) に依存します。多くの場合、エレガンス、メンテナンス性、およびその他の側面についても同じことが当てはまります。

Rails で動作する保守可能な優れたコードが既にある場合は、おそらくそれを改善する必要があります。優れたホスティング/キャッシング ソリューションで高速化し、リファクタリングによってエレガントで保守しやすい状態に保ちます。

今日では、Rails と Sinatra の両方が、RESTful Web サービスの開発、およびより一般的には UI のない API の開発に対して非常に優れたサポートを提供しています。Rails はサイズが大きく、使いこなすのに時間がかかりますが、幸いなことに、仕事を成し遂げるために、この巨大なものすべてを研究して使用する必要はありません。Rails で実行されるアプリケーションは、REST リクエストを処理するために実際に使用される Rails サブセットが Sinatra フレームワーク全体と同じくらい小さくてエレガントであるため、Sinatra で実行されるアプリケーションと同じくらい高速でエレガントです。したがって、アプリケーションの速度は主にコードとホスティング/キャッシュの選択に依存します。

一方で、いずれにせよ、シナトラとパドリーノを学ぶべきです。これらのフレームワークは、私が今まで見た中で最もエレガントで魅力的なソフトウェアの 2 つです。彼らは絶対に注目に値します。通常、Sinatra を単独で使用するだけでは、UI のない RESTful API よりも複雑なものには十分ではないことに注意してください。ほとんどの場合、実際の本格的な Web アプリケーションには Padrino が必要です。

于 2012-10-02T07:29:27.430 に答える
0

既存のRailsアプリを既にお持ちの場合は、それをrails-apiに移植する方が簡単な場合があります。基本的にはRailsだけですが、UIの作成に使用されるすべてのコンポーネントが削除されています。

個人的には使っていませんが、数ヶ月前にプロジェクトで評価していました。

于 2012-10-10T17:06:56.740 に答える