サードパーティのライブラリを使用して、コードの再利用に関するいくつかの考え

それがあるかどうか不要重复造轮子、または站在巨人的肩膀上、ソフトウェア開発者のために、コードの再利用は、最も基本的な原則の一つです。

コードの再利用は、(自分自身を繰り返してはいけない)DIYすることができ、あなたは非常にこれらの多重化を達成するために、他のチームの中に誰か他の人のコード、またはオープンソース・プロジェクト、または他のチーム部品、サービス、または公共のモジュールを使用している可能性がありこれは、プロジェクトの開発時間とコストを削減します。

しかし、正しい姿勢、それを用いた高効率、サードパーティのコードは何ですか?ラインを素早く見つけ、問題を解決することができない、サードパーティのコードに関連した事故のように見えるとき、実際の運用では、いくつかの例は、このようなサードパーティのコードの数により、使用などのサードパーティのコードの使用の制御の損失につながるがあるだろうが、荒廃に落ちました。

この記事では、「クリーンなコード」の章VIII読んでいる边界(Boundaries)いくつかの考え。

この記事のアドレス:https://www.cnblogs.com/xybaby/p/11372846.html

コードを再利用します。この記事では、次の2つのカテゴリに分かれています。

  • 一つは、特にそのようなコードを特徴とオープンソースのライブラリは、同社の他のチームは、多くの場合、一般的な大規模かつ総合的に行う必要があり、サードパーティのライブラリ内の共通コンポーネントを指し、チーム外のコードであり、ユーザーのプロジェクトチームは非常にだけさ彼らのデザインに影響を与えるか、基本的な実装が難しいです。
  • 他のプロジェクト、より便利な協議の変更のためのコアサービスである、独自のパッケージ、上のプロジェクトチームのメンバーのいくつかの共通モジュール、共通のコンポーネントことをチーム内のコードです。

サードパーティのライブラリのコードを再利用する方法

ここでは、多重化、だけでなく、長距離通話サービスのためのコードに限定されるものではありません。一般的には、プロジェクトが研究し、いくつかのオープンソースを選択し、会社内のサービスやクラウドコンピューティングに基づいて、サービスの一部を使用しますが、私はこれは、マルチプレックスと考えられていると思います。

最小化、コードの再利用の集中

コードは、より多くのユーザーを引き付けるために、複数の環境で動作することができるようになりますように、多くの場合、サードパーティのライブラリ機能(サービス)の追求は、普遍的です。そして、ユーザは、多くの場合のみ(推奨されませんと同様に使用)、不要な機能のためのインタフェースの一部の特定のニーズを満たすために必要があるが、それはプロジェクトのための負担であるが、適切にリスクをコントロールしません。

たとえば、Redisのためにだけでなく、インメモリ・データベースの操作を行い、だけでなく、永続;だけでなく、パブ・サブ(と比較的新しいストリーム)をサポートし、シングル展開するだけでなく、センチネルによって、クラスタは高可用性と水平方向のスケーリングを提供するために、両方をサポートしています。しかし、私たちのプロジェクトでは、唯一のメモリキャッシュ、および可用性、スケーラビリティに、あまり需要がありません。

原理的には、サードパーティのライブラリの使用は、直接他の場所で別のライブラリを使用していない、別のファイル(クラスモジュール)にパッケージされ、可能な限りインターフェイス(サービス)を使用します。適合させることにより、唯一の不要な機能(インターフェース)が露出していない、いくつかの機能が含ま必要があります。

これは、メンテナンスが容易、内部の最小限のコードを使用するすべてのサードパーティ製のライブラリに焦点を当てる統一入り口という利点を有します。それは、また、階層的思考、ビジネスコードと、簡単に代替の実装を分離するサードパーティのライブラリです。

学習テスト

独自のビジネスコードを導入するためのオープンソースプロジェクト、科学研究と完全なテストの必要性。リサーチ、を含むがこれらに限定されない:ビジネスニーズとの重複の程度、その上のオープンソースコミュニティ、活動の成熟度。テストは、次のような特徴を含める必要があります

  • 機能テスト
  • パフォーマンステスト
  • ストレステスト
  • 破壊試験

最初の二つは、主に、サードパーティのライブラリ関数かどうか、ビジネスのパフォーマンス要件を決定するだけでなく、正しい使用姿勢を習得するために、最も基本的なテストです。後者の二つは、テストポイントは、多くの場合、個別のサービス展開時のように実行するサードパーティのライブラリです。

テスト目的のために、我々はいくつかのテストコードを持って、参照がunittestの、コードサンプル、チュートリアル、ベンチマークが来る突出してもよいです。しかし、問題は、このようなテストコードが頻繁に投げるために使用されていることである、これはにつながっています

  • 問題が後で発生した場合、我々は、ライブラリ自体、またはジェスチャーの私達の使用を発行するかどうかを判断するために、デバッグを継続する必要があります。
  • ライブラリの新しいバージョンが同じ契約を提供していることを確認する手段がないため、三者のローカルライブラリをアップグレードした後、アプリケーションのアップグレードは、従うことができません。

私はプロジェクトをアップグレードするときに、サードパーティのライブラリに依存してアップグレードし、多くの、多くの人が遭遇すると思います2つ目の質問は、一緒に従うことですか?私が遭遇した2つの極端な戦略の比較は、一つは、常にサードパーティのライブラリの最新の安定バージョンに更新され、他には、アップグレードを自分の特定のバージョンを維持するために、基本的にはありません。

learning test第二の問題を解決することができ:

私たちは、すべてがこれらのテストの機能の使用のためのユニットテストのセットに編成テストする側面の多くは、機能、パフォーマンス、および安定性のための私たちのニーズをされているカバー。サードパーティのライブラリの更新バージョンは、私たちは再びそれを再実行するユニットテストを置くとき、あなたは新しいコードのコードが同じ契約を提供しているか否かを判断することができ、それは比較的安全にアップグレードすることができます。

前のセクション、「サードパーティのコードは、集中使用」で参照することは困難ではないlearning testサードパーティのライブラリの使用を拡張したい場合は基礎を、我々は明らかに、これらのインタフェースがテストされるべきであることを知って、簡単に増やすことができ、対応するテストのメンテナンス。

チーム内のコードを再利用する方法

チームは非常にコードの再利用を奨励している中では、より一般的な方法は、共通のコンポーネントのさまざまなを形成することです。そのため、モジュールBを使用して、プログラマであれば、プログラマは責任をどのように分割するか、その後、公共の問題を提供しますか?

コードはオープンソースである場合は、ユーザーが唯一のせいにできることは間違いないですが、チームでは、ユーザーにのみ帰属していないようです。公共アセンブリのユーザーは、一般的に、完全なテストを使用する必要はありません、と思うだろう「チームです、あなたはプロバイダが高速で使いやすい品質を確保するためにすべきです。」

私は、プロバイダが適切なユニットテストを提供してきましたが、またを通じて、それが直接使用することができる場合は、ユーザーアカウントの主な責任は、ユーザーがテストするためにそれを使用するべきだと思います。そうしないと、あなたは、対応するテストケースを追加する必要が合格していない場合は、プロバイダーの相談を見つけることができます。共通モジュールは、共通のコンポーネントプロバイダ、それ自体はテストせず、追加のワークロードになるための時間を開発するために、ユニットテストの高いカバレッジを提供する義務を負うべきである。第二に、ユーザの公式の保証のコピー、だけでなく、チームでの自分の影響力を強化します。

おすすめ

転載: www.cnblogs.com/xybaby/p/11372846.html