私は自分のJSライブラリを構築しています。
ライブラリは、主にブラウザの違いを解消するために役立つ、小さな独立したモジュールと、少し大きいユーティリティで構成する必要があるという考え方です。
乾いたままでいるのか、ゆるく結合しているのかを判断できないため、何かを成し遂げるのに苦労しています。
例?与えられた:
- テンプレートからdom要素を生成する処理を行う小さなライブラリ
- ダックタイピングの問題を処理するもう1つの問題(is_function、is_array ...)
- そして最後にモーダルボックスを作成します。最後のものが必要です:
- いくつかのタイプチェック
- テンプレートライブラリの1つの関数のみを使用してモーダルを作成します
モーダルボックスライブラリの私のオプション:
- 100%乾燥し、他の2つのライブラリに依存します。ただし、モーダルボックスライブラリのみをダウンロードしたいユーザーの場合は、他の2つで作成する必要があります。
- ユーザーが開始時にオプションのオブジェクトを渡して、必要な機能を指定できるようにします。デフォルトではライブラリの1つになります。これは優れていますが、実際には、90%の場合、同じシグネチャで関数を作成するのは面倒なので、提供されているライブラリを使用することを意味します。さらに、モーダルボックスコードが複雑になります。
- 100%緩く、モーダルボックスライブラリに必要な機能を再現します。よりターゲットを絞っており、エッジケースをチェックする必要がないため、おそらくより効率的です。ただし、バグは2か所で修正する必要があり、ダウンロードサイズが大きくなります。
ですから、私は2つの極端な状況の間で振動する時間を無駄にし、100万回リファクタリングし、決して満足することはありません。
もっと一般的な質問をしようとしていましたが、サイズとパフォーマンスの問題、および広範な使用法のために、それが本当にJSに関係していることに気付きました。
そのような場合に従うべき既知のパターンはありますか?これについて受け入れられている方法は何ですか?どんな考えでも大歓迎です。
[編集:]
これは私の懸念を詳しく説明していると私が見つけた唯一の記事です。記事が言うように、
DRYは重要ですが、[...]低結合度と高凝集度も重要です。[...]すべての[原則]を考慮に入れ、それぞれの状況でそれらの相対的な価値を比較検討する必要があります
私はこの状況でそれらの価値を比較検討することができないと思います。