名前空間ってつかってる? – プログラミング – Home

名前空間ってつかってる?
 
通知
すべてクリア

[解決済] 名前空間ってつかってる?


ガチャピン
 ガチャピン
(@ガチャピン)
ゲスト
結合: 22年前
投稿: 16
Topic starter  

STLでおなじみの std を始めとする名前空間の御一行様。
みなさん使ってます?ボクは使ってません。

タイピング量が増える上に可読性が下がるだけで
ちっともおいしくないと思ってるからっす。

たくさんの人から使われるようなプログラム(ライブラリなんか)なら、
名前衝突を避けたり通用範囲にも気を使う必要があると思う。

けど、そうじゃないなら実質的な旨みがない。どころか、
上で言ったような欠点だけが出ちゃいますよね。

この”実質的な利益”ってトコに着目したご意見を
みなさんから聞きたいです。宜しくお願いしまーす。
(少人数開発をしてる人で バリバリ使ってるよ!
実はこんなにいい事あるよ!という意見があると嬉しい)


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

名前の衝突を抑えるのが目的なんだから、
衝突の心配がないなら使う必要ないでしょう。


返信引用
DOSKOI-PANDA
 DOSKOI-PANDA
(@DOSKOI-PANDA)
ゲスト
結合: 22年前
投稿: 55
 

私は namespace を新たに定義する、ということはしたことないですが、
名前空間って、クラス名 {} で囲われた内部や、メソッド名 {} で囲わ
れた範囲も含むんじゃなかったでしたっけ? だから無意識のうちに
みんな使ってるんじゃないでしょうか?
クラス内部でしか通用しない名前の struct や enum はよく定義して
ますし。

namespace を定義するのは、パッケージを意識して作るときだと思い
ます。パッケージとは変更が影響をおよぼさない範囲のだったと思う。
別にライブラリとして提供しなくても、同一プロジェクト内で通信関
係のクラス群と、画面インターフェイスのクラス群とをパッケージ化
して、「このパッケージの内部がいくら変わってもあなたはソース修
正しなくてよいし、再コンパイルの必要もないですよ」という形で提
供し合うということはありそうな話です。


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

使ってます。道具作りのときには。

あと、無名ネームスペースもよく使います。


返信引用
iijima
 iijima
(@iijima)
ゲスト
結合: 22年前
投稿: 44
 

> タイピング量が増える上に可読性が下がるだけで

タイピング量が増えるのは事実。
可読性が下がるというのはどうでしょう。
私は、識別子がどこに属するものかがソースコード上で明示されるので、却って読みや
すくなると感じています。
それに、自分ひとりでプログラムを組んでいるときも、油断しているとすぐに名前が衝
突します(私だけ?)。
ですから、原則として名前空間を使うようにしています。


返信引用
suzuka
 suzuka
(@suzuka)
ゲスト
結合: 23年前
投稿: 46
 

タイピング量が増えるのはインテリセンスを活用してないからだと思います。
少なくとも VS2003 は名前空間でも補完してくれます。

タイピングが長いとか言ってたら、.NET Framework に移行できませんよ~。
(MS はすでに Win32 に見切りを付けてます)

System.Data.SqlClient.SqlConnection myConnection = new
System.Data.SqlClient.SqlConnection();
とか。これは C# ですけど。

それに using namespace もありますしね。

名前空間については わたしも個人的なプログラムでは
ほとんど使ってませんけどね。


返信引用
けんた
 けんた
(@けんた)
ゲスト
結合: 22年前
投稿: 2
 

名前空間って何ですか?
教えてください。


返信引用
waki
 waki
(@waki)
ゲスト
結合: 22年前
投稿: 2
 

検索してくさだい。
それでもわからなかったら、何がどうわからないのかを整理して
新しいスレッドで質問してください。


返信引用
けんた
 けんた
(@けんた)
ゲスト
結合: 22年前
投稿: 2
 

けちんぼ


返信引用
SunPac
 SunPac
(@SunPac)
ゲスト
結合: 22年前
投稿: 105
 

ファイルを分割する場合は無名ネームスペースをよく使いますよ。
同じ名前のグローバル変数とか出てきますし。(気にしなくてよくなる方がメリットか)
まぁ、グローバル領域でstaticつければいいんですけど、これって将来できなくなる
のですよね?(という話を聞いたような・・・)
あと、複数の人でプロジェクトを組む場合、ネームスペースがないと困ります。
結構便利だと思いますよ。
でも#defineもネームスペースで分割できたらよかったかな、と。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

既に書かれていますけれど、関数名の衝突をさせるためによく使用します。
そうする事でそれぞれの関数名や定数名を簡単に出来ます。
これがないと関数名や定数名にいちいちシステムが判別できるプリフィックスを
付けないといけなくなるので逆にタイプ量が増えると思いますけれど。
同一システム内ではusing namespaceを宣言すれば済むので効果的だと思います。

#defineはほとんど使わないのであまり気にならないですね。
ほとんど、constに置き換わってますし。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

がーん、逆だ。

誤)
既に書かれていますけれど、関数名の衝突をさせるためによく使用します。

正)
既に書かれていますけれど、関数名の衝突をさせないためによく使用します。


返信引用
ガチャピン
 ガチャピン
(@ガチャピン)
ゲスト
結合: 22年前
投稿: 16
Topic starter  

みなさん、お返事どうもありがとうございました!

「使わなくてもいいんじゃない?」という意見
も意外にありましたね。

が、今まで接頭語で名前の衝突回避をしてきた為、
試しに使ってみる事にしまーす。


返信引用
ガチャピン
 ガチャピン
(@ガチャピン)
ゲスト
結合: 22年前
投稿: 16
Topic starter  

a


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました