web-dev-qa-db-ja.com

ライブラリとライブラリを使用するアプリケーションが同時に開発されるプロジェクトをどのように構成しますか?

私は、アプリケーションのためにゼロから開発されるライブラリを多用する新しいアプリケーションを開発することを計画していますが、完成すると他のプログラムで使用できるように一般化しました。

したがって、このライブラリの開発は、アプリケーションの開発によって大きく推進されます。ペアリングされたアプリケーションにとってその機能がどれほど重要であるかに基づいて機能を取得します。それでも、ライブラリをアプリケーションから完全に切り離してほしい。アプリケーションはライブラリを使用しますが、ライブラリはアプリケーションを認識していません。ある時点で、ライブラリを他のアプリケーションで簡単に使用できるようにしたいと思います。

これを構成する方法についてのアドバイスを探しています。特に、ライブラリのコードを配置する必要がある場所(同じ/異なるリポジトリ、それらを分離しておくための何らかのビルドツールなど)。

これは(ビルドツールやその他の言語の違いの結果として)言語に依存する可能性があるため、Pythonを使用することを計画しています。

4
Kat

まず、ライブラリがジェネリックである場合、アプリケーションの影響を受けません。提供するように設計された機能を提供する必要があります。アプリケーションはライブラリに基づいており、その逆ではありません。

同じリポジトリを保持するか別のリポジトリを保持するかは関係ありませんが、別のプロジェクトにする必要があります。

最初に技術設計を行い、必要なすべての機能を定義します。次に、機能をプレゼンテーション層、ビジネス層、データ永続層に分けます。次に、下から実装します(永続層)。

1
Alexus

最初に一般的な言語の中立的なものから始め、次にpython特定のビットについて説明します。

別のライブラリが必要だと確信しているのはなぜですか?さまざまな開発者がコードに取り組んでいるからですか?または、追加のアプリケーションでライブラリを再利用する計画はありますか?または、ライブラリを独自に顧客に配布することもできます。

一般に、ライブラリに独自の独立したライフがある場合は、さまざまなリリースライフサイクルをどのように管理するかを検討する必要があります。ライブラリを個別のリポジトリにすることで、開発者の複雑さが増します。同じ開発タスクの一部として両方のプロジェクトに取り組んでいます。どちらの方法でこれを決定するかは、チームに長期的な影響を及ぼし、チームの作業パターンと開発慣行を最適化する方法に広範囲にわたる結果をもたらします。どちらの方法も、適切に実装されていれば機能し、適切に実装および管理されていないと、どちらもひどく失敗する可能性があります。

Pythonでは、コンポーネントをpythonパッケージとしてリリースすることをお勧めします。同じリポジトリに複数のパッケージを含めることは可能ですが、パッケージごとに異なるリポジトリを強くプッシュすることになるでしょう。複数のpython仮想環境。開発環境では、ソースファイルを使用してパッケージがインストールされ、リリース環境は、パッケージを完成したパッケージとしてインストールすることで作成されます。これらの環境を切り替える考えられるすべての組み合わせを簡単にテストできます。これがPythonの方法です。

1
Michael Shaw

プログラミング言語の問題ではありません。

「これは汎用ライブラリ」を念頭に置いてライブラリを作成すると、成功する可能性があります。しかし、私があなたなら、同じ場所、同じリポジトリで両方の開発を開始します。後でこのライブラリを別のプロジェクトに抽出できます。

0
sq6jnx