2016-05-11 11 views
1

私はcrmプロジェクトを開発するためにodoo9.0を使用しています。 現在、私はすべてのロジックコードをモデルに入れていますが、ビジネスロジックは複雑です。例えば、モデルAでは、モデルB、C、Dからデータを読み込み、結果データをモデルEに書き込む必要があります。私の問題は、モデルAがますます大きくなり、扱いにくくなっていることです。私はモデルを小さな部分に分割したい。 誰かに私に助言を与えることができますか?odooアドオンプロジェクトの構造を最適化する方法は?

答えて

1

非常に一般的な質問です。

基本的にはソフトウェアデザイン原則と デザインパターンです。それは私たちを助ける

(複数回使用)各ロジック/コードのためのメソッドを作成

:ここに私たちのチームで

は、私たちはいつものようにいくつかの基本的なものに従うことをしてみてください可読性モジュール性 を増やすには、それはまた、コード再利用性に助けています

すべての方法を適切なモデルに入れてください。

ではなく、オブジェクトがメソッドで使用される最もconcerting /使用目的であるあるモデルでだけの場所の方法、の、あらゆる場所での方法を広めないでください懸念分離を管理しよう。

では、ソートだけ

は非常に基本的な例を見てみましょうエンジニアリング

可能設計原理とソフトウェアの デザインパターンな限り従います

我々は2つのモデルのコール学生を持っている場合コース。 今私は、モジュールの概念に従った後、私は

  1. get_student_detailsのようないくつかのメソッドを作成しています。
  2. save_student_details
  3. get_course_details
  4. save_course_details

今、明らかに私は学生のモデルでトップ2の方法を配置し、コースのモデルに2を休まます。

また、私はそれはあなたを助けることを願っていOdoo Guideline

に従ってください。

+0

お返事ありがとうございますが、私があなたが言及した原則に従っていると思いますが、モデルAはまだかなり大きいです。モデルAに関連するビューには10以上のボタンがあり、ボタンごとに1つのメソッドが必要なため、モデルAには20以上のメソッドがあり、modelA.pyは大きなファイルになります。モデルA_calcとモデルA_writeを作成するなど、モデルAをモデルAの内側で使うことができます。 –

+0

はい、同じモデルの複数のファイルを作成することができます.model import MainModelクラスModelA(MainModel):#あなたは論理 – prakash

+0

ですが、init.py内に新しいファイルエントリを作成することを忘れないでください – prakash

関連する問題