問題タブ [reusability]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reusability - コード ライブラリをどのように整理していますか?
特に再利用可能なコンポーネントに関して、人々がコード ライブラリをどのように編成しているかに興味があります。以下ではオブジェクト指向の用語で話していますが、他の種類の言語のライブラリをどのように編成しているかにも興味があります。
例えば:
- あなたはすべてのクラス ライブラリ プロジェクトに固執しますか? それとも、すべてを 1 つのプロジェクトにまとめることを好みますか?
- ビルド済みの DLL を再利用しますか、それとも以前のプロジェクトの個々のクラスを現在の作業に含めますか? 個々のクラスの場合、それらをプロジェクト間で共有して、すべてが最新の状態に保たれるようにしますか? それとも分岐を許可しますか?
- 再利用可能な要素の大きさは? 彼らはどのくらい集中していますか?彼らはどのように集中していますか?
- 優先プラクティスを通じて、どのレベルの再利用を達成できますか?
等
編集
ここで特定のガイダンスを求めているわけではありません。人々の考えや実践に興味があるだけです。単一のプロジェクト内ではなく、異なるプロジェクト間でのコードの再利用に特に関心があります。(残念ながら、ここでの「プロジェクト」の使用は誤解を招きます。つまり、Visual Studio の意味でのプロジェクトではなく、顧客のために実施される実際のプロジェクト間での再利用を意味します。)
android - Android:既存のグラフィック要素の使用方法
ネットワーク表示アイコン(3G、WiFi ...)を含むユーザーインターフェイスを作成し、通知バーに表示される既存のグラフィック要素を使用したいと思います。
これらの既存の要素を取得してカスタムレイアウトで使用する方法を知っている人はいますか?
これらのアイコンはすべてImageView要素だと思いますが、findViewById()
メソッドを使用してそれらを取得できるかどうか疑問に思っています。
apache - Curl、Apache、mod_wsgiでの接続の再利用
Apacheの上にmod_wsgiアプリケーションをデプロイしていて、Curlを使用するクライアントプログラムがあります。
ユーザー側のCURLAPIで、接続を再利用しようとしていますが、wiresharkからの接続を見ると、HTTP要求/応答ごとに新しい接続が確立されていることがわかります。
すべてのHTTPリクエストの最後に、HTTPレスポンスヘッダーに「Connection:Close」があります
これはKeep-Aliveと同じですか?接続の再利用を有効にするには、Apache / Mod_wsgi側で何をする必要がありますか?
mysql - Mysql で削除されたレコードの再利用を無効にする
MySql データベースと対話する Web アプリケーションがあります。レコードを削除すると、次に新しいレコードを作成するときにそのスロットが再利用されるようです。各レコードには連続する主キーがあるため、次のレコードには 5 などの新しいキーがありますが、新しいレコードは最後に空になった場所、たとえばレコード番号 2 があった場所に配置されます。新しいレコードをリストの一番下に直接追加する方法はありますか? おそらくMySQL Query Browserでそれを行う方法はありますか?
これは私が説明していることの例です:
レコード #2 がなくなると、次に新しい追加を行うと、レコード #5 が 2 位になります。
新しいレコードをリストの一番下にのみ追加するように (おそらくテーブルの作成時に) MySQL に指示する推奨される方法はありますか? そのため、自動記録再利用を無効にしたいと考えています。
よろしくお願いいたします。
asp.net-mvc - MVCの再利用可能なpropertygrid
私のWebアプリケーションフレームワーク(現在はWebForms)には、従来のpropertygridのように動作するコントロールがあります。オブジェクトID(データベースキー)で初期化され、メタデータを読み取ってオブジェクトのタイプとオブジェクトの属性を判別します。属性、文字列属性をテキストボックスとして、bool属性をチェックボックスとして、列挙型属性をドロップダウンリストとして表示します。ページ送信には、変更された属性値をデータベースに保存するコントロールctrl.SaveData()のメソッドがあります。
WebFormコントロールツリーとイベントモデルは、このアプローチを非常にうまくサポートします。今、私はASP.NETMVCで同様のソリューションを実現できるかどうかを自問しています。主な目的は、それほど面倒なことなくさまざまな状況に適用できる、汎用的で再利用可能なコンポーネントを用意することです。さらに、ソリューションは、単一のページに複数のオブジェクトのコンポーネントの複数のインスタンスを配置するのに十分な柔軟性を備えている必要があります。ここでは、自動生成されたWebFormsHTMLIDも役立ちました。
私はあなたのアイデアにとても興味があります!答えてくれてありがとう!
c# - 多重継承がオプションでない場合にコードを再利用する方法は?
テスト済みの古いクラスのいくつかから、構築中の新しいクラスにいくつかのメソッドを利用したいと思います。残念ながら、C# は多重継承をサポートしていません。これらの古いクラスのコードを再利用するにはどうすればよいですか? メンバーオブジェクトとして作成するだけですか? または他に選択肢はありますか?
vb6 - VB6アプリケーションでクラスを再利用するにはどうすればよいですか?
まず、私はVB6を使用しているので、VB6に適用される手法にあなたの親切な提案を限定してください。
上の図に示すように、相互に関連する一連のコントロールがあります。これには、いくつかのツリービュー、分割バー、リストビュー、サブフォーム(ユーザーコントロール)などが含まれます。
左側のツリービューノードをクリックまたは変更すると、右側のコントロールはそれに応じて表示を変更し、その逆も同様です。
舞台裏のデータはAccessデータベースに保持されています。
このデータ管理と表示のセットは、いくつかの異なるアプリケーションで使用されます。そこで、ロジックを実装し、これらのクラスモジュールをアプリケーションに何度も含めるために、いくつかのクラスを作成しました。
そのため、実際には「コピーアンドペースト」モードでクラスを再利用しています。動作しますが、問題があります。クラスを変更した場合、いくつかのアプリケーションで変更する必要があります。
最近、私はそれらをいわゆるActiveXコンポーネントにすることを考えています。しかし、アーキテクチャ全体を再利用するためにどの種類のActiveXコンポーネントを開発する必要があるのかわかりません。
一言で言えば、単に「コピーアンドペースト」するよりも、どうすればもっと優雅に再利用できるのか知りたいです。以下は、新しい「優雅な再利用」のいくつかのアイデアまたは期待ですが、それらに限定されません。
(1)デザイン時にいくつかのプロパティを設定できるように、プロパティページを持つActiveXコントロールのように見えることを願っています。
(2)アプリケーションが異なれば、右側のサブフォームは異なる情報を表示し、異なるコントロールを持ち、追加のコーディングと設計が必要になる場合があります。
(3)また、さまざまなアプリケーションのツリービューとリストビューの新しい動作をコーディングする必要があるかもしれません。この要件により、フォーム全体のユーザーコントロール全体が適切ではなくなります。MSDNは、「ActiveXコントロールへの参照は、クライアントアプリケーションに返さないでください」と述べているためです。
linux - ソケットとファイル記述子の再利用 (またはその欠如)
以下のサーバーコードでソケットを呼び出した後、「開いているファイルが多すぎます」というエラーが表示されます。このコードは繰り返し呼び出され、server_SD が値 1022 を取得した直後にのみ発生します。そのため、「ulimit -n」で禁止されている 1024 の制限に達していると想定しています。私が理解していないのは、ソケットを閉じていることです。これにより、fd が再利用可能になるはずですが、これは起こっていないようです。
注: Linux を使用していて、クライアントも閉じています。いいえ、私は root ユーザーではないため、制限を移動することはできません。一度に最大 20 個 (またはそれくらい) のソケットを開く必要があります。私のプログラムの存続期間中に、1000000 近くのソケットを開いたり閉じたりすることが予想されます (したがって、非常に強力に再利用する必要があります)。
閉鎖と再利用性を保証する方法を知っている人はいますか?
ありがとう。
architecture - 再利用可能なライブラリをどのように構成しますか?
不必要な肥大化を招くことなく、ビジネスプロジェクト間で簡単に移植できるように、コードをどのように編成しますか?
たとえば(.Netの場合)、次の名前空間があるとします。
- 親名前空間ごとにプロジェクトを作成してから、そのプロジェクトdllを他のプロジェクトで参照しますか?
- 1つの大きなクラスのライブラリを作成し、それを移植しますか(ライブラリの5%しか必要ない場合でも)?
- または、1つのファイルを作成し、必要なコードをそのファイルにコピーしますか。そのファイルを、「プラグアンドプレイ」アーキテクチャを実現するために必要なすべてのプロジェクトに取り込んでいますか?
編集: 私は具体的に.Netの回答を探していませんが、それは私が使用している具体的な例です(抽象的な例ではこの場合の質問を理解するのが難しくなるため)
c# - コード再利用ライブラリを作成および維持するにはどうすればよいですか?
再利用可能なコードのリポジトリをセットアップしようとしています。私は、再利用可能な各コード モジュールに特定の「成熟度」の評価を持たせることを考えていました。評価は、再利用可能なコードが特定の一連の要件内にあるレベルとして定義されます。最高の成熟度レベルは、事前定義された一連の要件全体で最高度の標準になります。
例:
レベル。要件; 説明
レベル 0。コードの使用は合法です。コードは商業産業/複数の契約/その他での使用が合法ですか?
レベル1; 基本コードラインであり、レベル 0 の要件を満たしています。プロトタイプ コード、サードパーティ ツールなど
レベル 2; 関数インターフェイスとコメントがあり、レベル 1 の要件を満たしています。各クラスと関数の十分なドキュメント。コメントから機能を判断できる
レベル 3; コーディング標準に準拠し、レベル 2 の要件を満たしています。定義されたコーディング標準に従い、コード チェック ユーティリティ テスト
レベル 4 に合格。テスト ケースを含み、レベル 3 の要件を満たしています。コードのすべての機能をテストするのに十分なテスト ケースがある
レベル 5; 再利用委員会によって承認され、レベル 4 の要件を満たしています。再利用の専門家や同業者によってレビューされ、すべてのレベルの成熟度を満たしていることが検証されました
この成熟度レベルを階層構造にする必要があるかどうか疑問に思っています。次のレベルに移動するには、前のすべてのレベルの要件を満たす必要があります (上で示したように)。
それとも、次のレベルを満たすための要件のサブセットである必要がありますか?
たとえば、y 個の要件のうち x 個を満たしている場合、次のレベルに進むことができます (要件は上記と同じです)。
レベル 0、6 つの要件のうち 0 つを満たす
レベル 1、6 つの要件のうち 1 つを満たす
…
サブセットアプローチで見られる問題は、一部の要件にはより強い重み付けが必要であり、このアプローチでは考慮されないことです (特定のようなものを取得し始めない限り、b から a と y から x を満たしているなど)。しかし、その後、複雑になり始める可能性があります。
誰かが以前にこれを行ったことがありますか?もしそうなら、どのようにライブラリをセットアップしましたか? 成熟度レベルはまったくありますか、それとも他の構造ですか? 任意の入力をいただければ幸いです。