問題タブ [packages]
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.
java - リフレクションを使用して、パッケージ内のすべてのクラスを見つけることができますか?
特定のパッケージ内のすべてのクラスまたはインターフェイスを見つけることは可能ですか? (たとえば をざっと見るとPackage
、いいえのように思えます。)
delphi - Delphi 2009 パッケージの LIB ファイルの出力場所
Delphi 2009 コンポーネント パッケージをビルドするとき、C++ Builder ユーザーが必要とする結果の .hpp および .lib ファイルを格納するディレクトリをどのように指定しますか?
java - Java プロジェクトでパッケージの命名に使用する戦略とその理由は何ですか?
少し前にこれについて考えましたが、最近、私のショップが最初の本物の Java Web アプリを作成したときに再び浮上しました。
はじめに、主なパッケージ命名戦略が 2 つあります。(明確にするために、これは「domain.company.project」の部分全体を指しているわけではありません。その下にあるパッケージの規則について話しているのです。)とにかく、私が目にするパッケージの命名規則は次のとおりです。
機能的: ビジネス ドメインによる識別ではなく、アーキテクチャ上の機能に従ってパッケージに名前を付けます。 これの別の用語は、「レイヤー」による命名かもしれません。つまり、*.ui パッケージと *.domain パッケージと *.orm パッケージがあります。あなたのパッケージは、縦ではなく横にスライスされています。
これは、論理命名よりもはるかに一般的です。実際、これを行うプロジェクトを見たり聞いたりしたことはないと思います。もちろん、これは私を不安にさせます(NP問題の解決策を思いついたと思うようなものです)。一方で、私は部屋の中の象を見逃すだけの人々に反対しているわけではなく、この方法でパッケージの命名を行うことについての実際の議論を聞いたことがありません. 事実上の標準になっているようです。
論理的: ビジネス ドメインの ID に従ってパッケージに名前を付け、機能の垂直方向のスライスに関係するすべてのクラスをそのパッケージに配置します。
前に述べたように、私はこれを見たり聞いたりしたことがありませんが、私には非常に理にかなっています.
私はシステムに水平ではなく垂直にアプローチする傾向があります。データ アクセス レイヤーではなく、注文処理システムを開発したいと考えています。もちろん、そのシステムの開発でデータ アクセス層に触れる可能性は十分にありますが、要は、そのようには考えていないということです。もちろん、これが意味することは、変更命令を受け取ったり、新しい機能を実装したいときに、関連するすべてのクラスを見つけるためにたくさんのパッケージを探し回る必要がないということです。代わりに、私がやっていることは X に関係しているので、X パッケージを調べるだけです。
開発の観点からは、パッケージがアーキテクチャではなくビジネス ドメインを文書化することは大きなメリットだと思います。ドメインは、ほとんどの場合、システムのアーキテクチャが、特にこの時点で、その実装においてほとんど平凡になりつつあるため、理解するのが難しいシステムの一部であるように感じます。このタイプの命名規則を使用してシステムに到達し、パッケージの命名からすぐに、それが注文、顧客、企業、製品などを扱っていることを知ることができるという事実は、非常に便利に思えます。
これにより、Java のアクセス修飾子をより有効に活用できるようです。これにより、システムのレイヤーではなく、サブシステムへのインターフェイスをより明確に定義できます。したがって、透過的に永続化したい注文サブシステムがある場合、理論的には、dao レイヤーで永続化クラスへのパブリック インターフェイスを作成する必要がなく、代わりに dao クラスをそれが扱うクラスだけで。明らかに、この機能を公開したい場合は、そのためのインターフェイスを提供するか、公開することができます。システムの機能の垂直スライスを複数のパッケージに分割することで、これの多くを失っているようです。
私が見ることができる1つの欠点は、レイヤーをリッピングするのが少し難しくなることだと思います. パッケージを削除したり名前を変更したりして、別のテクノロジを使用して新しいパッケージを配置するのではなく、すべてのパッケージのすべてのクラスを変更する必要があります。しかし、これは大したことではないと思います。経験不足によるものかもしれませんが、システム内の垂直機能スライスにアクセスして編集する回数に比べて、テクノロジを交換する回数は見劣りすると想像する必要があります。
それでは、パッケージにどのように名前を付け、その理由は何ですか?という質問が出てくると思います。ここでゴールデン グースか何かに出くわしたとは必ずしも思わないことをご理解ください。私はこれらすべてにかなり慣れていませんが、ほとんどが学術的な経験です。しかし、私は自分の推論の穴を見つけることができないので、先に進むことができるように皆さんができることを願っています.
java - 「.internal」パッケージへのアクセスを制御するためのベスト プラクティス
私は Eclipse プラグインを作成し、いくつかのクラスを API としてエクスポートしますが、他のクラスへのアクセスを制限したいと考えています。
これらのクラスを「.internal」サブパッケージに分割するという Eclipse の一般的な慣行に従っています。
ただし、これらのクラスの多くはエクスポートするクラスで使用する必要があるため、これらのクラスで「パッケージ」またはデフォルト レベルのアクセスを使用することはできません。
API のユーザーがこれらのクラスを独自の目的で使用するのを防止または思いとどまらせるためのベスト プラクティスは何ですか? 自動チェッカーはありますか?
私は、選択の余地がなかったときに、Eclipse の内部クラスのいくつかを使用することに手を出したことを認めます :)
明確化: プラグイン以外のコードにも同様のニーズがあります。
python - 現在のパッケージ内のすべてのモジュールのリストを取得する
私がやりたいことは次のとおりです。tests.ui、tests.text、tests.fileioなどのパッケージに編成されたテストスイートを構築したいです。これらのパッケージの各__
init __
.pyで、そのパッケージ内のすべてのモジュールのすべてのテストの。もちろん、すべてのテストを取得するには unittest.TestLoader を使用できますが、各モジュールを個別に追加する必要があるようです。したがって、test.ui にエディター_
ウィンドウ_
test.py とプレビュー_
ウィンドウ_
test.py があるとすると、__
init __
.py でこれら 2 つのファイルをインポートし、2 つのモジュール オブジェクトのリストを取得する必要があります。アイデアは、テスト スイートに何かを含めることを忘れないように、テスト スイートの作成を自動化したいということです。
これを行う最善の方法は何ですか?簡単にできるように思えますが、何も見つかりません。
私はPython 2.5 btwを使用しています。
perl - Perl パッケージのファイル名を調べるにはどうすればよいですか?
Perl パッケージ名をファイルのフル パスに変換したいと考えています。
これを行うための CPAN モジュールがあることは知っていますか? また見つからないだけ?
c# - vs2005 プロジェクトのパッケージ化
エンド ユーザーに出荷するパッケージを作成する手順は次のとおりです。
- Visual Studio 2005 を使用 プロジェクト (C# で記述されたライブラリ DLL) をデバッグ モードとリリース モードの両方でビルドします。
- doxygen を実行してドキュメントを作成する
- dll ドキュメントといくつかのリリース ノートを配置するフォルダー構造を作成します。
- だまれ
- それを出荷
ディレクトリ ツリー構造は次のようになります。
それを自動化するスクリプトを展開することを考えています。しかしその前に、プロジェクトのライブラリ api タイプ、特に構造、および使用されるツールをパッケージ化する一般的な方法を見つけたいと思います。参考文献と例は高く評価されています
ありがとう
python - __init__.py で定義されたクラスをインポートする方法
私は自分で使用するためにいくつかのモジュールを整理しようとしています。私はこのようなものを持っています:
ではlib/__init__.py
、lib をインポートする場合に使用するいくつかのクラスを定義したいと考えています。しかし、クラスをファイルに分けて__init__.py
.
言うよりも:
私はこのようなものが欲しい:
それは可能ですか、それともクラスを別のファイルに分ける必要がありますか?
編集
別のスクリプトから lib をインポートすると、Helper クラスにアクセスできます。settings.py から Helper クラスにアクセスするにはどうすればよいですか?
ここの例では、パッケージ内参照について説明します。「サブモジュールはしばしば相互に参照する必要がある」と引用します。私の場合、lib.settings.py には Helper が必要であり、lib.foo.someobject には Helper へのアクセスが必要なので、どこで Helper クラスを定義すればよいでしょうか?
delphi - パッケージへのフォームとフレームの追加
IDE 登録コンポーネントのパッケージを開発していますが、そのほとんどはベース TFrame クラスから派生しています。パッケージに含まれている、これらのコンポーネントによって呼び出されるさまざまなカスタム ダイアログ フォームもあります。私は Delphi 2007 で作業しています。
通常は DFM ファイルが関連付けられているフレームおよびフォーム ユニットの場合、その下に DFM ファイル (小さな [+] ツリービュー ノード エキスパンダーからアクセス可能) が常に表示されるとは限らないことに気付きました。たとえば、既存のフォームベースの PAS ファイルを (プロジェクト マネージャーで) BPL プロジェクトを右クリックして追加すると、リストに DFM ファイルが表示されません。
ただし、新規追加し、プロジェクトに新しいフォームまたはフレーム ユニットを作成すると、プロジェクト マネージャーでは典型的なネストされた 2 つのファイル アイテムとして表示されます。また、既存のフォームをプロジェクト グループ内の別のプロジェクトから問題の BPL プロジェクトにドラッグすると、そのようになります。
これは一貫しているように思われ、ユニットがフレームまたはフォームの場合に表示される両方のファイルを好みます。
これは、プロジェクト ファイルに何か問題があることを示していますか? このパッケージに既存のフォーム/フレームを間違って追加していませんか? その場合、既存のフォーム/フレーム ユニットを追加して、両方のファイルが Project Manager のリストに表示されるようにするにはどうすればよいですか?
* アップデート *
以下のアレンの提案から:
{$R *.dfm} ディレクティブをフォームのユニットに追加しようとしましたが、BPL パッケージ/プロジェクトに追加するときに DFM ファイルが強制的に表示されませんでした。{$R *.dfm} をプロジェクト ファイル自体に追加しても (これは意図したことではないと思いますが、試してみようと思いました)、どちらも機能しませんでした。この手法は EXE プロジェクトでのみ機能しますか?
おそらく(おそらく)関連して、そのディレクティブを使用してビルドしようとすると、次のようになります。
[DCC エラー] E2161 警告: リソースが重複しています: タイプ 10 (RCDATA)、ID TTESTTREEVIEW; ファイル E:\Projects\MyApp\Components\TTestTreeViewFrame.dfm リソースが保持されます。ファイル E:\Projects\MyApp\Components\TTestTreeViewFrame.dfm リソースは破棄されました。
同じファイルを「Keping」と「破棄」しますか??
後で: この「重複リソース」の問題は、 これに関連しているようです。確かではありませんが、少なくとも 1 つのインスタンスで両方が同時に発生しました。
java - Java コンソール アプリをパッケージ化する最も簡単な方法
カスタム パッケージ階層に構築された非常に小さなクラス セットがあり、それらを使用する 1 つのコンソール アプリ クラスがあります。JCreator およびコマンド プロンプトからはすべて正常に動作します。
同じパッケージを再利用する 2 つ目のコンソール アプリを作成したいと考えています。
Java初心者として、それを行うための最も迅速で汚い方法は何ですか?
私の主な懸念は、パッケージ ディレクトリを新しいコンソール アプリのディレクトリにコピーしないようにすることでした。
JCreator を使用して、パッケージ ディレクトリをプロジェクトに追加し、コンパイルして実行するのに問題はありませんでした。しかし、コマンド ラインからコンソール アプリを実行しようとすると、パッケージ階層にクラスが見つかりませんでした。
Visual Studio では、参照を追加するだけです...