2

私の現在のプロジェクトでは、いくつかのことに気づきました。

  1. ビジネス ロジックの最大部分がヘルパーに移動されます。
  2. lib ディレクトリの下のモジュールにすべてのヘルパー ファイルを含め、そのモジュールをアプリケーション コントローラーに含めました。
  3. 多くのメソッドでは、引数が渡されず、代わりにインスタンス変数が使用されました (呼び出し元のメソッドでインスタンス変数を作成し、呼び出されたメソッドでそのインスタンス変数を使用します)。
  4. 各アクションはヘルパー メソッドを呼び出してビジネス ロジックを実行し、そのメソッドは他のヘルパー メソッドを呼び出します。
  5. すべてのメソッドは、public、No protected、private メソッドとして記述されています。
  6. モデルは検証のみに使用されます。

それらのポイントは適切なコーディング規約に従っていますか? そうでない場合は、パフォーマンスを向上させるための最適なコーディング標準を教えていただけますか?

4

2 に答える 2

2

パフォーマンスはあなたの主張とは関係ありません。それらはプロジェクトの編成に関するものです。

ビジネス ロジックの最大部分をヘルパーに移動

これは起こるべきではありません。ビジネス (別名モデル) ロジックをモデル内に移動する必要があります。Rails はそれを強制するものではないので、ロジックの構成を維持するのは開発者次第です。

モデルは検証のみに使用されます

これは、ビジネス (別名モデル) ロジックをモデルの外に置いた結果です。コントローラー/ヘルパーからモデルに移動する必要があります。繰り返しますが、Rails はそれを強制するものではないので、開発者がそれを行う必要があります。

lib ディレクトリの下のモジュールにすべてのヘルパー ファイルを含め、そのモジュールをアプリケーション コントローラーに含めました。

多くのメソッドでは、引数が渡されず、代わりにインスタンス変数が使用されました (呼び出し元のメソッドでインスタンス変数を作成し、呼び出されたメソッドでそのインスタンス変数を使用します)。

各アクションはヘルパー メソッドを呼び出してビジネス ロジックを実行し、そのメソッドは他のヘルパー メソッドを呼び出します。

すべてのメソッドは、public、No protected、private メソッドとして記述されています。

これらの点は、(多かれ少なかれ) Rails Helper の設計に関連していると思います。Rails の欠点の 1 つはヘルパーの設計です。それらは OO パターンに反し、通常はPHPのように、まとまりのない関数の集まりになってしまいます。

このため、デコレータを使用する人もいます。デコレーターは「プレゼンテーション ロジックの OO レイヤーを追加する」( Draperから) ため、ビュー関連のメソッドをより適切に整理できます。

議論を検討したい場合は、次のリンクをお勧めします。

于 2013-10-16T07:59:36.633 に答える