1

フレームワークのような Ruby プロジェクトで、プラグインを gem としてパッケージ化し、プロジェクト内で使用\未使用にする方法はありますか?そのようなプロジェクト アーキテクチャ。

Rails のソースコードは大きすぎて、マップなしではナビゲートできません。

調査ログ: - Rails では、Railities は、プラグイン アーキテクチャがどのように実装されているかを調べるのに適した場所であると想定されています。
- Ruby 1.8 には、mix\unmix 構造を提供する mixology と呼ばれる C 拡張機能がありました。- Ruby 1.9.* では、Rails は alias_method_chain を使用したと考えられています - Ruby 2.0 では、prepend キーワードは、このような問題の解決に役立つはずです (私は推測します!)

4

1 に答える 1

1

私がこれまでに見た中で最も優れたトピックの紹介の 1 つは、Railscast で、Ryan が自分のアプリの一部を gem に抽出したものです。

http://railscasts.com/episodes/301-extracting-a-ruby-gem

一般に、コードを簡単に抽出可能にするために従うべきいくつかのルールがあります。

  • 共通のロジックをモジュールに抽出するか、サービス オブジェクトを分離することをお勧めします
  • SOLIDの原則に従うことで、あなたのユニットは可能な限り無駄がなくなり、孤立した状態になります
  • ALWAYS 名前空間 関心事、サービス オブジェクト、ライブラリなど
  • それらのユニットを完全に分離してテストし、データベースなどの詳細に依存しないでください
  • (物議を醸す) 依存性注入を行います。これをテストするとき、および単にオブジェクト間の API を設計するときに後悔することはありません。
  • コードを Rails コンテキスト外で再利用できるようにする場合は、Rails ヘルパーをできるだけ使用しないでください。

これらの提案があなたをあなた自身のレールに乗せることを願っています:)

于 2013-10-16T19:43:58.757 に答える