タグ付けされた質問 「modules」

1
モジュールとパッケージ
from 'x' import 'y'私がするたびに、どれが「モジュール」とみなされ、どちらが「パッケージ」とみなされ、なぜそれが逆ではないのか疑問に思っていましたか?
140 python  packages  modules 

3
完全にモジュール化されたWebアプリケーションを構築する方法[非公開]
今後数か月で、クライアント用に構築したシステム(v1)を取得し、ゼロから再構築するプロジェクトを開始します。v2の目標は、この特定のクライアントが使用する独自のモジュールセットを持ち、別のクライアントが異なるモジュールセットを完全に使用できるようにモジュール化することです。ここでのコツは、会社Aがそのシステムの動作を変更する一連のチェックアウトおよびユーザーモジュールを持っている可能性があることです。会社Bは、標準のチェックアウト手順に固執するかもしれませんが、製品の閲覧方法をカスタマイズします。 アプリケーションをゼロから構築しCore、すべてのクライアントで共有したい一方で、クライアント専用に変更するものの柔軟性を維持したい場合、アプリケーションアーキテクチャへの良いアプローチは何ですか? CodeIgniterのフックを見たことがありますが、250のフックになる可能性があり、まだ十分な柔軟性がないため、これは良い解決策ではないと思います。他のソリューションは何ですか?理想的には、砂の中に線を引く必要はありません。

6
「ものの塊」ユーティリティプロジェクトを「オプション」の依存関係を持つ個々のコンポーネントに分離する
何年にもわたる社内プロジェクトでC#/。NETを使用してきた数年間で、1つのライブラリが有機的に成長して1つの巨大なものになりました。それは「Util」と呼ばれ、あなたの多くがあなたのキャリアでこれらの獣の1つを見たと確信しています。 このライブラリの多くの部分は非常にスタンドアロンであり、別々のプロジェクトに分割することができます(オープンソースにしたい)。ただし、これらを個別のライブラリとしてリリースする前に解決する必要がある大きな問題が1つあります。基本的に、これらのライブラリ間に「オプションの依存関係」と呼ぶものがたくさんあります。 これをより適切に説明するには、スタンドアロンライブラリになるのに適したモジュールのいくつかを検討してください。CommandLineParserコマンドラインの解析用です。XmlClassifyクラスをXMLにシリアル化するためのものです。PostBuildCheckコンパイルされたアセンブリに対してチェックを実行し、失敗した場合はコンパイルエラーを報告します。ConsoleColoredString色付きの文字列リテラルのライブラリです。Lingoユーザーインターフェイスの翻訳用です。 これらのライブラリはそれぞれ完全にスタンドアロンで使用できますが、一緒に使用する場合は、便利な追加機能が必要です。たとえば、との両方が必要なビルド後のチェック機能CommandLineParserをXmlClassify公開しますPostBuildCheck。同様に、はCommandLineParser、を必要とする色付き文字列リテラルを使用してオプションドキュメントを提供することを許可し、をConsoleColoredString介して翻訳可能なドキュメントをサポートしLingoます。 したがって、重要な違いは、これらがオプション機能であることです。ドキュメントを翻訳したり、ビルド後のチェックを実行したりせずに、プレーンで色付けされていない文字列でコマンドラインパーサーを使用できます。または、ドキュメントを翻訳可能にすることもできますが、それでも色付けされません。または、色付きで翻訳可能です。等。 この「Util」ライブラリに目を通すと、ほとんどすべての潜在的に分離可能なライブラリには、それらを他のライブラリに結び付けるようなオプション機能があります。これらのライブラリを依存関係として実際に必要とする場合、このものはまったく解りません。1つだけを使用する場合は、基本的にすべてのライブラリが必要です。 .NETでこのようなオプションの依存関係を管理する確立されたアプローチはありますか?

1
単一のpythonファイル配布:モジュールまたはパッケージ?
useful_thing単一のファイルに存在する便利なpython関数またはクラス(または何でも)が呼び出されたとします。ソースツリーを整理するには、本質的に2つの方法があります。最初の方法は単一のモジュールを使用します: - setup.py - README.rst - ...etc... - foo.py どこuseful_thingで定義されていますfoo.py。2番目の戦略は、パッケージを作成することです。 - setup.py - README.rst - ...etc... - foo |-module.py |-__init__.py どこuseful_thingで定義されていますmodule.py。パッケージの場合__init__.pyは次のようになります from foo.module import useful_thing 両方の場合でできるようにfrom foo import useful_thing。 質問:どちらの方法が推奨されますか? 編集:ユーザーgnatはこの質問の形式が不十分だと言っているので、公式のpythonパッケージチュートリアルでは、上記のどの方法が推奨されるかについてコメントしていないようです。私は、賛否両論の議論を生成するのではなく、コミュニティが好む方法があるかどうかに興味があるので、私は賛否両論の個人的なリストを明示的に与えていません

4
大きなモジュールを分割することによる悪影響はありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私はgithubプロジェクトをブラウズしていて、1万行を超えるこのモジュールを見つけました。 単一のモジュールにそのようなコードを含めることは一般的な習慣ですか? これは複数のモジュールに分割する必要があるように思えます。データベースエンジンごとに1つかもしれません。 開発者は、このような1つの巨大なモジュールを作成すること(「すべてを1か所にまとめる」以外)からどのようなメリットを得ますか?

2
パッケージとモジュールがJava 9で別個の概念である理由
Java 9には、パッケージに加えてモジュールがあります。通常、言語にはどちらか一方があります。そして、ほとんどのプログラマーは 2つの用語を同義語として認識しています。モジュールはパッケージの上に構築され、それらをプリミティブとして扱います。複合パターンは、プリミティブと複合物を均一に処理することを提案します。そうしないと、悪いことが起こります。たとえば、プロジェクトValhallaを見てください。そこでは、プリミティブ(値)および参照型の共通スーパータイプを後付けしようとしています。 モジュールとパッケージは意味的に分離した概念を表していますか?それを意味することの両方を持つことが賢明である任意の言語(関心事の分離)。または、Javaは後方互換性への賛辞として両方を持たなければなりませんか? 既存の概念を補強するのではなく、なぜ新しい概念を導入するのですか? JSR 376:プロジェクトJigsaw内に実装された「Javaプラットフォームモジュールシステム」。 SOTMSによると モジュールは、コードとデータの名前付きの自己記述型コレクションです。そのコードは、Javaクラスとインターフェースなどのタイプを含むパッケージのセットとして編成されています。そのデータには、リソースおよびその他の種類の静的情報が含まれます。 JLSは、パッケージとは何かを定義することを慎重に避けます。ウィキペディアから: Javaパッケージは、JavaクラスをModulaのモジュールに似た名前空間に編成するための手法で、Javaでのモジュール式プログラミングを提供します。 ウィキペディアを引用するのは悪い習慣であることは知っていますが、それは一般的な理解を反映しています。モジュラープログラミングのエントリから: パッケージという用語は、モジュールの代わりに使用されることがあります(Dart、Go、またはJavaなど)。他の実装では、これは明確な概念です。Pythonではパッケージはモジュールのコレクションですが、今後のJava 9では新しいモジュールの概念(強化されたアクセス制御を備えたパッケージのコレクション)の導入が計画されています。

2
Pythonのクラスとモジュール
Pythonにはre、特定のアクションセットを実行する多くのモジュール(など)があります。このモジュールの関数を呼び出して結果を取得することができ、モジュール全体としてその背後にある考えがあります(この場合、正規表現を処理します)。 クラスはほとんど同じことを行うように見えますが、モジュールよりもかなり多くのプロパティを使用するようです。 モジュールとクラスとの違いは何ですか?(私はモジュールをサブクラス化できないことを知っていますが、それはそれですか?)モジュールの代わりにクラスを使用する必要があるのはいつですか?
19 class  modules 

3
実際にソフトウェアエンジニアリングのモジュールとは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 Stephen Schachによると、「古典的およびオブジェクト指向のソフトウェアエンジニアリング」、第6章: モジュールは、プロシージャ、関数、またはメソッドが呼び出される方法で呼び出すことができる単一のコードブロックで構成されます これは非常に曖昧で広いようです。だから誰もそれを明確に説明し、要件をモジュールに分割する方法の実際の例を示すことができますか?ありがとう。
18 software  modules 


2
今日、クライアント側のJavascriptライブラリをモジュール化してパッケージ化する方法は?
私は最新のクライアントサイドJSエコシステムに追いつき、CommonJSとAMD(関連ツール-browserify、requirejs、onejs、jam、その他多数)について調べています。Javascriptライブラリを作成する場合、最も広くアクセスできるようにモジュール化/パッケージ化するにはどうすればよいですか(理想的には、CommonJS、AMD、および特にどちらにも誓わないユーザーが)。 jQueryのような人気のあるライブラリは、それ自体を構築するために旧式のファイル連結を使用しexports、グローバルコンテキストに書き込むべきかグローバルコンテキストに書き込むべきかを動的に検出するようです。私は現在同じことをしていますが、主な欠点は(jQueryとは異なり)いくつかのライブラリに依存している場合、推移的なセットを手動で事前に含めるようにユーザーに要求する必要がないことです。(ただし、現在は2つの依存関係しかありません。)そしてもちろん、グローバルな名前空間の汚染。 それとも、コンテキストごとにライブラリの複数のバージョンを生成するのが最もクリーンですか? パッケージングとパブリッシングについても考えています。いくつかのシステムがありますが、主なものはバウアーであり、フェッチするだけなので対処が簡単です。ただし、コンポーネント(CommonJSが必要)のような他のパッケージシステムもターゲットにすべきかどうか疑問に思っています。 他に知っておくべき関連する側面はありますか?これらすべてについて従うべき良いサンプルプロジェクトはありますか?

1
モジュラーサービスアプリケーションの設計
本質的に非常にモジュール化された新しいソリューションの設計を検討しており、その設計をサポートする構造を作成して、将来の拡張、懸念の明確な分離、モジュールごとのライセンス付与などを可能にします。 Webで発見されたモジュラーアプリケーションまたは複合アプリケーションはUI中心で、Silverlight、WPFなどに焦点を当てています。私の場合は、さまざまなUIプロジェクトに取り組んでいる他の開発者が使用するWCFサービスアプリケーションを開発しています。 バックグラウンド 私のプロジェクトの目標は、ビジネス/ドメインロジックの一元化されたソースを作成して、現在プロセスやルールなどを複製しているいくつかのビジネスアプリケーションをサポートすることです。また、モジュール性のすべての利点が得られるわけではありませんが、活用できるこれらの部分を活用するフレームワークを確立する機会。 サービスアプリケーションによって公開されるAPIを見て、設計を開始しました。私が検討していたモジュラー回線に沿ってサービスを分離できることは明らかです。たとえば、FinanceService、InventoryService、PersonnelServiceなどのサービスを使用して、サービス操作をグループ化して、APIで高い凝集度を提供し、カップリングを低く抑えて、クライアントがアプリケーションに関連するサービスのみを消費するようにします。 MyApp.Finance、MyApp.Inventory、My.Personnelなど、これらのサービスごとに個別のモジュールを持つことができるのは理にかなっています。横断的関心事と共有タイプは、MyApp共有アセンブリにあります。ここから少し縛られます。 (ああ、アプリケーションの疎結合を維持するためにDependency InjectionにIoCコンテナーを使用することに言及する必要があります。Pandoraのボックスを開きたくないので、どれに言及しません!) MyApp.ServiceHostで、FinanceService.svcなどの各モジュールに対応するサービスホストファイル(.svc)を作成します。サービスホストには、サービスコントラクトを定義するインターフェイスを含む構成ファイルの情報に対応するサービスの名前が必要です。次に、IoC構成を使用して、使用するインターフェイスの具体的な実装をマップします。 1.サービス層はAPIを実装し、モジュールに委任する必要がありますか、またはモジュールは自己完結型である必要があります(サービス実装を含む、そのモジュールに関連するすべてを含むという点で)。 問題にアプローチする1つの方法は、サービスコントラクトの実装を含むMyApp.Services "モジュール"を持つことです。各サービスクラスは、操作のドメインロジックを含む適切なモジュール内の別のクラスに単純に委任します。たとえば、MyApp.ServicesのFinanceService WCFクラスは、Financeモジュールに実装されて操作を実行する別のインターフェイスに委任します。これにより、シンサービスファサードを維持し、実装をサービス実装に「プラグイン」して、たとえばモジュールがWCFを心配する必要がなくなります。 一方で、インターフェイスと実装を備えているという点で、各モジュールが自己完結していることが望ましい場合があります。サービスホストは、モジュールにあるサービスコントラクトインターフェイスを参照し、モジュールからの適切な実装も使用するようにIoCが構成されます。つまり、新しい.svcファイルとIoC構成情報を追加する以外に、サービスレイヤーを変更せずに新しいモジュールを追加できます。 標準のWCFからRESTfulサービスインターフェイスに切り替えるか、RIAサービスなどにアクセスした場合の影響について考えています。各モジュールにサービスコントラクトの実装が含まれている場合、サービステクノロジーまたはアプローチを変更すると、すべてのモジュールに変更を加える必要があります。しかし、ファサードが独自のモジュールである場合、変更するためにその部分を交換するだけです。モジュールは、共有アセンブリで定義されている可能性のある異なるコントラクト(インターフェイス)のセットを実装する必要がありますか? 2.モジュール間でリソースを共有したり、モジュール間で依存関係を処理する最良の方法は何ですか? たとえば、受信操作を考えます。商品を受け取ることは在庫機能であるため、最初は赤面でこれが在庫モジュールに入ることは理にかなっています。ただし、領収書を生成して支払いを承認する必要があるという点で、財務的な側面もあります。 一方では、操作を伝えるために何らかのタイプのドメインイベント/メッセージングを使用することを期待します。Inventoryモジュールは、Financialモジュールによって処理されるGoodsReceivedEventを発生させて、領収書を生成し、支払いプロセスを開始します。ただし、これは、金融モジュールが受け取った在庫品目について知る必要があることを意味します。IDで単純に参照できますが、名前や説明、単価など、領収書の追加情報が必要な場合はどうすればよいですか?各モジュールが、そのモジュールのニーズに合うように設計されたインベントリアイテムの独自のバージョンを持つことは理にかなっていますか?その場合、GoodsReceivedEventを処理するときに、Financialモジュールは在庫アイテムの独自のルックアップを実行する必要があります。 ... さまざまなERPシステムで多くの作業をしており、このタイプのモジュール方式で設計されていることを知っているため、この例を意図的に使用しました-方法がわかりません。また、上記では明示的に言及していませんが、ドメインドリブンデザインの原則に従ってソリューションを設計し、このタイプのモジュール性がその領域にぴったりと収まると考えています。 私の頭をこれに巻き付ける助けは大歓迎です。

1
JavaScriptファイルでmodule.exportsを宣言する場所に関する規則
module.exportsJavascript / Node.jsモジュールファイルを宣言しない場所に慣例はありますか? 次のようにファイルの先頭にある必要があります: module.exports = Foo; function Foo() { this.bar = 'bar'; } Foo.prototype.getBar = function() { return this.bar; } または、ファイルの最後にある必要があります。 function Foo() { this.bar = 'bar'; } Foo.prototype.getBar = function() { return this.bar; } module.exports = Foo; 技術的な違いはありません。最初の例は、宣言の巻き上げにより完全に有効です。 だから、ベストプラクティスはあるのかなと思っていました。

1
組み込みのPythonモジュールを編集できますか?
私は現在Pythonを学習しており、数学ライブラリの使用についての本の途中です。PythonのWebサイトを調べたところ、ライブラリが少々不足していて、さらに便利な関数をいくつか作成していることがわかりました。たとえば、先に進んで、係数を取得して方程式の根を返す関数を作成しました。本質的には二次式関数です。これをpython Mathライブラリに追加できるかどうか疑問に思っています。そうでない場合は、関数を呼び出すだけで作成した他のPythonプログラムでその関数を使用できるように、どのように保存しますか?

3
.NETモジュールがモジュールファイル名を名前空間から分離するのはなぜですか?
Schemeプログラミング言語(R6RS標準)の実装では、次のようにモジュールをインポートできます。 (import (abc def xyz)) システムは、ファイルを検索しようとするあなたのスキームモジュールを維持するいくつかのディレクトリです。モジュールのソースコードであり、必要に応じてオンザフライでコンパイルされます。$DIR/abc/def/xyz.sls$DIRxyz.sls Ruby、Python、およびPerlモジュールシステムは、この点で似ています。 一方、C#はもう少し複雑です。 まず、プロジェクトごとに参照する必要があるdllファイルがあります。それぞれを明示的に参照する必要があります。これは言うよりも複雑で、ディレクトリにdllファイルをドロップし、C#に名前でピックアップさせます。 次に、dllのファイル名と、dllによって提供される名前空間との間に1対1の名前の対応はありません。この柔軟性は高く評価できますが、手に負えなくなる可能性もあります。 これを具体的にするために、私がこれを言うときusing abc.def.xyz;、C#がC#がabc/def/xyz.dll参照することを知っている(プロジェクトごとに構成可能)ディレクトリでファイルを見つけようとするとよいでしょう。 Ruby、Python、Perl、Schemeのモジュール処理方法の方がエレガントだと思います。新興言語はより単純な設計で行く傾向があるようです。 .NET / C#の世界が、このようにして、間接レベルをさらに上げているのはなぜですか?

1
Pythonプログラムをパッケージ化するための良い習慣
私は、個人的なプロジェクトとプロのプロジェクトの両方のコンテキストで、Pythonをしばらく使用しています。 最近私に起こったことの1つは、Pythonプログラムをデプロイするための良い方法を考えたことがないということです。基本的に、それはほとんどがスクリプトの束であるため、私は通常、それらをデプロイしたいマシンにコピーして、出来上がりです! しかし、Pythonプロジェクトをデプロイする方法については、いくつかの良い習慣があるはずだと思います。Pythonの卵について聞いたことがありますが、Pythonの卵が十分に精通していないため、それが適切な選択肢かどうかはわかりません。または、コアモジュールスクリプトを実行するための多数のシェルスクリプトを含む単純な古いtarball? 基本的に、バージョンの追跡が簡単でなく、面倒なので、ファイルをあちこちにコピーするだけでなく、洗練されたエレガントな自己完結型のデプロイメントを実行できるようにしたいと考えています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.