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

名前空間は多くのプログラミング言語の言語機能であり、クラス名と変数名をローカルで再利用できます。

4
なぜ多くの名前空間がcomで始まるのか
多くの企業が「逆ドメイン名」の名前空間を使用していることに気づきました。そのプラクティスがどこから始まったのか、なぜ続くのか興味があります。それは単純な練習のために単に継続するのですか、それとも私がここで見逃しているかもしれない顕著なアーキテクチャの概念がありますか? また、のような質問注意:https://stackoverflow.com/questions/189209/do-you-really-use-your-reverse-domain-for-package-naming-in-javaをその答えのようなもの、私の質問はありません100 % (気分が良くなったら、javascriptのネームスペース作業にそれを使用すべきかどうか本当に興味がありますが、その時と理由についてはもっと興味があります。 bene: "window") フォルダーとファイルに拡張するこのプラクティスの例:

6
「関数とデータ間の密結合」が悪いのはなぜですか?
この引用は、「Clojureの喜び」のp。32、しかし誰かが先週の夕食で私に同じことを言って、私はそれを他の場所でも聞いた: [A]オブジェクト指向プログラミングの欠点は、関数とデータの間の密結合です。 アプリケーションで不要な結合が悪い理由を理解しています。また、オブジェクト指向プログラミングであっても、可変状態と継承を避けるべきだと言っています。しかし、なぜクラスに関数を貼り付けるのが本質的に悪いのかはわかりません。 つまり、クラスに関数を追加すると、Gmailでメールにタグを付けたり、ファイルをフォルダーに貼り付けたりするように思えます。それはあなたが再びそれを見つけるのを助ける組織的なテクニックです。いくつかの基準を選択してから、同じようなものをまとめます。OOP以前は、プログラムはファイル内のメソッドのかなり大きな袋でした。つまり、関数をどこかに配置する必要があります。整理してみませんか? これが型に対するベール攻撃である場合、関数への入力および出力の型を制限することは間違っていると言うだけではありませんか?それに同意できるかどうかはわかりませんが、少なくともプロとコンタイプの安全性に関する議論には精通しています。これは、ほとんど別の懸念のように思えます。 確かに、時々それを間違え、機能を間違ったクラスに置きます。しかし、他の間違いと比較すると、これは非常に小さな不便さのようです。 そのため、Clojureには名前空間があります。OOPのクラスに関数を貼り付けることは、Clojureの名前空間に関数を貼り付けることとどのように異なりますか?クラスの関数は、必ずしもそのクラスのメンバーだけで動作するとは限らないことを忘れないでください。java.lang.StringBuilderを見てください。これは、すべての参照型で動作するか、オートボクシングを通じて、すべての型で動作します。 PSこの引用は、私が読んだことのない本を参照しています:Multiparadigm Programming in Leda:Timothy Budd、1995。

5
C ++で名前空間を使用するためのベストプラクティス[非公開]
ボブおじさんのクリーンコードを数か月前に読みましたが、コードの書き方に大きな影響を与えました。彼がすべてのプログラマーが知っておくべきことを繰り返しているように見えたとしても、それらをすべてまとめて実践することで、コードがずっときれいになります。特に、大きな関数を多くの小さな関数に分割し、大きなクラスを多くの小さなクラスに分割して非常に役立つことを発見しました。 さて、質問です。この本の例はすべてJavaですが、私は過去数年間C ++で働いています。Clean Codeのアイデアは、Javaには存在しない名前空間の使用にどのように拡張されますか?(はい、Javaパッケージについては知っていますが、実際には同じではありません。) それぞれが明確に定義された責任を持つ多くの小さなエンティティを作成するというアイデアを名前空間に適用することは理にかなっていますか?関連するクラスの小さなグループは常に名前空間でラップされるべきですか?これは、多くの小さなクラスを持つ複雑さを管理する方法ですか、それとも多くの名前空間を管理するコストは法外なものでしょうか? 編集:私の質問は、このウィキペディアのPackage Principlesに関するエントリで回答されています。
38 design  c++  namespace 

4
ライブラリのC#名前空間とクラスの命名規則
C#でさまざまな小さなユーティリティ関数を使用してライブラリを構築し、名前空間とクラスの命名規則を決定しようとしています。私の現在の組織は次のようなものです。 Company Company.TextUtils public class TextUtils {...} Company.MathsUtils public class MathsUtils {...} public class ArbitraryPrecisionNumber {...} public class MathsNotation {...} Company.SIUnits public enum SISuffixes {...} public class SIUnits {...} これは名前空間とクラスを整理するのに良い方法ですか、それとももっと良い方法がありますか?特に、名前空間とクラス名(Company.TextUtils名前空間とTextUtilsクラスなど)に同じ名前を付けることは単なる重複であり、スキームがより良い可能性を示唆しています。
26 c#  naming  namespace 

4
XML名前空間にURIが必要なのはなぜですか?
XML名前空間にURIが必要な理由を理解しようとしていますが、その目的がわかりません。誰かが私を少し明るくして、具体的な例でその使用を示すことができますか? 編集: わかりましたので、たとえば:w3schoolsからこれを持っています <root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="http://www.w3schools.com/furniture"> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root> それで、何をhttp://www.w3schools.com/furniture保持する必要がありますか?
23 xml  namespace 

5
静的クラスを名前空間として使用する
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 名前空間として静的クラスを使用している他の開発者を見てきました public static class CategoryA { public class Item1 { public void DoSomething() { } } public class Item2 { public void DoSomething() { } } } public static class CategoryB { public class Item3 { public void DoSomething() { } } public …

1
名前空間の長所と短所対PHPのinclude / require?
最近、PHPで名前空間を使用し始めました。初めて見たとき、その構文は見苦しく、決して使用しないと思いました。ただし、include / requireステートメントを再度記述する必要がないように、オートローダー(spl_autoload_register)を作成しました。 名前空間が好きですが、include / requireステートメントよりも客観的な利点がありますか、それとも同じ目標を達成するためのまったく同じ方法ですか?
20 php  namespace 

4
次のことに対して、 `util`よりも意味的に適切なパッケージ名は?
以下のようstrawmanはパッケージを検討しjava.util、ほとんどの場合、自分のクラスのためのより多くの意味的に正しいパッケージ名を思い付くことが怠惰や平凡だったそれらを置く人よりも一般的な他でシェアは何もないことをする様々なクラスのゴミ捨て場です。 ほんの一例として、そのクラスUUIDの意味的に正しいパッケージ名だったクラスを取り上げますか? 私は自分のUUIDクラスをより軽量にするために実装しています。me.myproject.util.UUIDパッケージ名に使用したくありません。 私は考えましたme.myproject.rfc4122.UUIDが、それはの使用の意味を意味しませんUUID。 私も考慮しましたme.myproject.uuid.UUIDが、トートロジーは好きではありません。同じ名前のモジュールにクラスを置くのはPythonでは一般的なアプローチですがpackages、Java modulesではPythonと意味的に同等ではありません。 またme.myproject.UUID、名前空間のその部分を関連しないもので汚染したくないので、それを検討しましたが、拒否しました。これにより、問題が1つ上のレベルに移動します。 私も考えましたme.myproject.lib.UUIDが、これはセマンティックな意味を持たず.util、問題の名前を変更するだけです。 semantics:意味に関係する言語学と論理の分岐。

4
C ++で「using」を使用するか、それを避けますか?
ADLによるわずかに異なるセマンティクスの割引、一般的な使用方法using、およびその理由 状況に依存しますか(たとえば、#includedになるヘッダーとそうでないソースファイル)。 また、私は好むべきです::std::かstd::? 名前空間レベルusing namespace: using namespace std; pair<string::const_iterator, string::const_iterator> f(const string &s) { return make_pair(s.begin(), s.end()); } 完全に明示的であること: std::pair<std::string::const_iterator, std::string::const_iterator> f(const std::string &s) { return std::make_pair(s.begin(), s.end()); } 名前空間レベルのusing宣言: using std::pair; using std::string; pair<string::const_iterator, string::const_iterator> f(const string &s) { return make_pair(s.begin(), s.end()); } 関数ローカルusing宣言: std::pair<std::string::const_iterator, std::string::const_iterator> f(const std::string &s) …
17 c++  namespace 

1
iOS / OSXオープンソースプロジェクトの命名規則
常にではありませんが、ほとんどの場合、作成者の姓と名の頭文字で始まる名前のiOSまたはMac OS Xオープンソースプロジェクトがあります。プロジェクトがNick Leblancによって作成される場合、プロジェクトはとして読み取られNLMyProjectます。 例: Rune MadsenによるRMSwipeTableViewCell、 Ezequiel BecerraによるEBCardCollectionViewLayout、 SDiPhoneVersionセバスチャンDobrincuすることにより、 Leo NatanによるLNNotificationsUI。 それはどこから来たのですか?ある人が最初にこのように書いて、それから他のみんながそれに続きましたか? Appleガイドラインでさえ、それについて何も見つけることができませんでした。そのイディオムはどこにでも書かれていますか?

2
構造体にtypedefを使用する理由
C(ANSI、C99など)では、構造体は独自の名前空間に存在します。リンクリストの構造体は、次のようになります。 struct my_buffer_type { struct my_buffer_type * next; struct my_buffer_type * prev; void * data; }; しかし、ほとんどのCプログラマーが次のような構造体を自動的にtypdefすることは非常に自然に思えます typedef struct tag_buffer_type { struct tag_buffer_type * next; struct tag_buffer_type * prev; void * data; } my_buffer_type; そして、通常の型のように構造体を参照しget_next_element(my_buffer_type * ptr)ます。 今、私の質問は次のとおりです。これには特定の理由がありますか? ウィキペディアによると、http://en.wikipedia.org/wiki/Typedef#Usage_concerns 一部の人々は、typedefの広範な使用に反対しています。ほとんどの引数は、typedefが変数の実際のデータ型を単純に隠すという考えに基づいています。たとえば、LinuxカーネルハッカーでありドキュメンタリーであるGreg Kroah-Hartmanは、関数プロトタイプ宣言以外の目的での使用を推奨していません。彼は、この慣行はコードを不必要に難読化するだけでなく、プログラマーが単純に大きなタイプの構造であると誤って誤用する可能性もあると主張します。[4] typedefを使用すると、コードの保守が簡単になると主張する人もいます。K&Rは、typedefを使用する2つの理由があると述べています。まず、プログラムの移植性を高める手段を提供します。プログラムのソースファイル全体に現れるすべてのタイプを変更する代わりに、変更する必要があるtypedefステートメントは1つだけです。第二に、typedefは複雑な宣言を理解しやすくします。 場合によってはstructtypedefされた構造体を使用しない別の名前空間を使用することで十分なメリットがないのか、他にもCプログラミング文化がいくつかあるので(Windows CプログラミングにはLinux Cプログラミングとは異なる伝統があります)私が知らない伝統。 それから私は歴史的な考察に興味があります(前任者、Cの最初のバージョン)。

1
PHP名前空間の評価
私は、オープンソースPHPプロジェクトのプレリリース段階にいます。これは、他の開発者が自分のプロジェクトで使用することを望んでいます。このプロジェクトは現在、名前空間をサポートしていません。名前空間を使用するべきか、Dir_Subdir_ClassのPEAR命名規則を使用するべきかを評価しようとしています。正直に言うと、簡単な選択ではありません。 名前空間に対するいくつかの考慮事項: 私のプロジェクトが、他の同様のプロジェクトよりもシンプルなAPIを提供することにより、差別化を図っている方法の1つ。名前空間は新しく、PEAR命名規則よりも複雑であるため、コードベースに名前空間を導入すると、プロジェクトの使用が簡単ではなくなります。それらを実装することで、使いやすさの点で差別化を失います。 名前空間にはいくつかの利点がありますが、PEAR命名規則を使用する最新のPHP製品で解決する必要のある問題は解決しないようです。プロジェクトの使用中に名前の競合が存在しない場合は、最小限にする必要があります。 この記事では、名前空間の実装が恒星以下であるため、名前空間の採用を一時停止しました。 また、どこにも行かないかもしれない時流に飛び乗ることをためらっています。名前空間はPHPの新機能であるため、標準になるとはまだ確信していません。 互換性。これまでに記述されたほとんどすべてのPHPコードは、新しい機能であるため名前空間を使用しません。他のライブラリは、変換なしでは互換性がありません。 名前空間を使用するためのいくつかのポイント: 知覚。名前空間が標準になり、ベストプラクティスになると、私のプロジェクトはすぐに専門家ではなく、時代遅れのものと見なされるようになります。 コンペ。競合するPHPプロジェクトの中には、最新バージョンで名前空間を使用し始めているものもありますが、多くはまだ飛躍を遂げていません。これを行うと、私のプロジェクトに他のプロジェクトの足がかりを与えることができます。 プロジェクトを公開する前ではなく、公開する前に切り替えを行うと、しばらくの間2つのバージョンをサポートする必要があるため、将来の作業は容易になります。 ベストプラクティスをサポートしたいので、名前空間がPHPのベストプラクティスになった場合、プロジェクトはそれらを使用する必要があります。 私が言えることから、あなたはどちらかの方法を選ばなければなりません。両方を行うことはできません。検討していない点はありますか?PHPのプロフェッショナルな標準になるネームスペースに向かってまたは反対することを示す客観的な兆候はありますか(フレームワークはありません)。すぐに決定する必要があるので、あなたが喜んで共有してくれるであろう洞察やリソースに感謝します。
11 php  namespace 

1
C ++の静的グローバルと匿名名前空間
後者を導入するときに、C ++が静的グローバル(内部リンケージ)と名前のない名前空間のシンボル(外部リンケージですが、外部から参照する方法がない)を区別したのはなぜですか? これらの理由のいずれかがまだ有効ですか、それとも新しい理由がありますか? それらがまだ異なる場所が残っていますか?しかし、匿名グローバル(または名前空間スコープ)ユニオンはである必要staticがあるという任意のルール、およびそれらは何ですか? ボーナスポイントに関して、それらが異なる理由が残っていない場合、それらを同等にするリクエストはありますか? C ++が名前空間(C ++ 98)、特に名前のない名前空間を導入したとき、静的グローバルは陳腐化し、熱意の中で新しいものよりも劣っていたが、C ++ 11で元に戻された: staticキーワードの廃止…もういや? C ++ 11より前は、内部リンケージのあるシンボルをテンプレート引数として使用できませんでした。C++ 03が外部リンケージを持つためにテンプレートパラメーターを必要とするのはなぜですか。

4
名前空間のクラス数-コードのにおい?
複数の実行可能ファイルで使用されるC#ライブラリがあります。ライブラリには名前空間がいくつかありますが、名前空間の1つにかなりの数のクラスが含まれていることに気づきました。分類のため、そして無意識のうちに、名前空間のより深い階層を持つことは「きれい」に見えるため、単一の名前空間にあまり多くのクラスを含めることを常に避けてきました。 私の質問は、名前空間に多くのクラスがある場合、クラスが互いに関連している場合でも、他の誰かがそれを「コードのにおい」と見なしますか?サブカテゴリー化を可能にするクラスでニュアンスを見つけるために多くの努力をしますか?
11 c#  count  namespace 

2
既存のコードを壊すことなく、PHPネームスペースをライブラリに部分的に追加するにはどうすればよいですか?
私の会社では、PHP 5.3が名前空間を追加するずっと前から、モジュラーPHPフレームワークを何年にもわたって作成してきました。最近、ライブラリの新しいコードで名前空間の使用を開始することを決定し、最終的に古いコードの名前空間を作成する予定です。ただし、v5.3より前のコードベースに名前空間を追加するのが良い考えではないかどうかを判断するために考えているいくつかの問題があります。 クラスに名前空間を\付けるだけでなく、グローバル名前空間をインポート(使用)して、すべてのグローバルクラスにプレフィックスが必要ないようにすることはできますか? ライブラリ内の既存のクラスに名前空間を付ける場合、フレームワークのアップグレードと同時にすべての既存のプロジェクトが壊れないようにするにはどうすればよいですか?たとえば、できるクラスの名前は、ライブラリーの変化ThemeEngineする\module\theme\ThemeEngineが、既存のウェブサイトを呼び出すThemeEngineことなく、任意のコード変更?もしそうなら、そのコードはどのように見えるでしょうか?
10 php  namespace 

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