1

私は Rusy Sinatra のグッド プラクティスを探していましたが、stackoverflow でこの質問を見つけました。

複数のファイルを介して大規模なプロジェクトに Sinatra を使用する

しかし、ある経路の背後にあるビジネス ロジックが大きい場合はどうすればよいか考えています。それをクラス (ヘルパー/ユーティリティ) でラップし、ルートからデリゲートする方がよいでしょうか? これにより、コントローラーがきれいに保たれ、従うのが簡単になると思います。このようなユーティリティ クラスを配置するのに最適なフォルダは何ですか?

4

1 に答える 1

1

私が働いている場所で使用するパターンは次のとおりです。

Sinatra Web Handler -> 'Processor' クラス (ビジネス ロジックを再利用可能なルートにカプセル化します。ファサードの背後にある場合もあります)。プロセッサは、必要になる可能性のある ORM またはキャッシュ操作を実行し、さらに下流のプロセッサ (または他の内部/外部サービス) に委任するタイミングを認識しています。

これにより、sinatra ルートがアプリケーション ロジックから分離され、これらのプロセッサ クラスをプラグインできるようになります。ユーザーの作成など、1 つのビジネス プロセスに関連するプロセッサ クラスを維持し、必要なときに他のエンドポイントにプラグインできるように記述します。メイン アプリケーションへの HTTP リクエスト ルーターとして Sinatra を実際に使用しています。

それはかなりうまくいくようです。

于 2013-09-16T09:06:06.507 に答える