5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

クラス名・変数名に迷ったら書き込むスレ。Part5

1 :デフォルトの名無しさん:05/02/25 20:16:44
クラス名、変数名のつけ方に悩んだら書き込むスレです。

質問する人は、その変数に何を格納するのか(クラスだったらその役割)
プログラミング言語は何なのかを、それぞれ書いて、
いい変数名を思いついた人は、それに答えてあげましょう。

命名規則や設計の善し悪しについて議論するのは基本的に禁止。

>>2 英和・和英・英英など各国語辞書と翻訳サイト。
>>3 専門用語辞書、類義語(シソーラス)辞書、図形・数式・数学用語の英単語。
>>4 関連スレと、いろいろな言語規約。
>>2-10 諸事情によりリンクがずれた場合。

前スレ。
◆ネーミング倶楽部◆
http://pc3.2ch.net/tech/kako/1035/10353/1035362308.html
Part1
http://pc5.2ch.net/tech/kako/1046/10465/1046541730.html
Part2
http://pc5.2ch.net/tech/kako/1058/10582/1058213523.html
Part3
http://pc5.2ch.net/test/read.cgi/tech/1067171530/
Part4(間違って3として進行)
http://pc5.2ch.net/test/read.cgi/tech/1087209526/

2 :デフォルトの名無しさん:05/02/25 20:18:29
英和・和英など各国語辞書と、翻訳サイト。

英和・和英辞典。
http://dictionary.goo.ne.jp/
http://eiwa.excite.co.jp/

英英辞典のリンク集。
外国語広場: 英語: オンラインで使える英英辞典 英和・和英辞典
http://www.gaikoku.info/english/dictionary.htm

英語←→各国語辞典。(英語)
Dictionaries
http://www.freedict.com/

日英・英日、日中・中日翻訳。
http://www.excite.co.jp/world/

3 :デフォルトの名無しさん:05/02/25 20:19:17
専門語、類語辞書。

専門語辞書参照サービス
http://wwwd.nova.co.jp/webdic/webdic.html

シソーラス(類語)検索
http://www.gengokk.co.jp/thesaurus/
Thesaurus - Yahoo! Reference (英語)
http://education.yahoo.com/reference/thesaurus/


図形や数式などの英単語。

すうがく探検隊・数式と図形の英語
http://i.lekton.co.jp/ara/tanken/english/
リスコレ No.24 図形の名前を英語で……
http://homepage1.nifty.com/tadahiko/LISTCOLE/024-FIGURE.HTML

4 :デフォルトの名無しさん:05/02/25 20:20:30
関連スレ。

変数名って、どの位こだわりますか?
http://pc.2ch.net/prog/kako/1038/10383/1038306623.html
ローマ字変数を使う奴は馬鹿
http://pc5.2ch.net/test/read.cgi/prog/1054319927/l50
ゲーム内で使う長い変数を縮めてあげるスレ
http://pc5.2ch.net/test/read.cgi/gamedev/1024902432/l50
★★★コーディングマナー★★★
http://pc5.2ch.net/test/read.cgi/tech/1056508692/l50
ちょっと待て!ハンガリアン
http://pc5.2ch.net/test/read.cgi/tech/1011026963/l50
Cのマナーいろいろ
http://pc5.2ch.net/test/read.cgi/tech/1029584140/l50
Cのマナー
http://pc.2ch.net/test/read.cgi/prog/1030001269/l50
バカなコーディング規約
http://pc.2ch.net/tech/kako/1012/10127/1012715148.html


いろいろな言語規約。

Hungarian Notation(英語)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsgen/html/HungaNotat.asp

Java言語規定。6.8 名前付け規約
http://www.y-adagio.com/public/standards/tr_javalang/6.doc.htm#11186

5 :デフォルトの名無しさん:05/02/25 20:21:23
備考

翻訳に役立つGoogle活用テクニック
http://www.amazon.co.jp/exec/obidos/ASIN/4621072943/

6 :デフォルトの名無しさん:05/02/25 20:23:30
以上。
リンク切れ等あればご容赦頂くとともにご指摘下さい。

7 :デフォルトの名無しさん:05/02/25 20:34:23
Part4じゃないの?

8 :デフォルトの名無しさん:05/02/26 11:54:06
>>1よめ

9 :デフォルトの名無しさん:05/03/03 08:19:59
ある処理が完了したかどうかをあらわす関数に名前をつけようと思っているのですが、
isCompletedとisCompleteのどっちがいいでしょうかね。
どっちが文法的に合ってますか?

10 :デフォルトの名無しさん:05/03/03 09:38:38
>>1におつかれとささやくクラス名は、何がよろしいでしょうか?

11 :デフォルトの名無しさん:05/03/03 09:45:33
ツリー構造で、親のパラメータを変更するだけのノードのクラス名は、何がよろしいでしょうか?
できれば、英単語一個でおねがいします。



12 :デフォルトの名無しさん:05/03/03 15:56:35
>>9
完了したなら完了形にすればいいだろ

13 :デフォルトの名無しさん:05/03/03 18:09:59
ファイルポインタを2つも3つも宣言する時、
ひとつ目を fp にしてしまうと、次が続きません。かと言って、どういう風にネーミングすべきか
思いつかないです。

14 :デフォルトの名無しさん:05/03/03 18:13:31
何のファイルかが分かるようにしたら

15 :デフォルトの名無しさん:05/03/03 18:15:20
fp1
fp2
fp3

か、

fp_mona
fp_morara
fp_giko
fp_sixi
fp_hiroyuki


16 :デフォルトの名無しさん:05/03/03 18:16:15
>>13
alter
changer


17 :16:05/03/03 18:18:35
×>>13
>>11

18 :デフォルトの名無しさん:05/03/03 18:18:58
f_a_txt
fp_a_txt
fPa_txt

案外見やすいかもしれないですね うーん・・・

19 :デフォルトの名無しさん:05/03/03 22:04:30
fp1, fp2よりは配列を使った方がマシだと思う。

20 :デフォルトの名無しさん:05/03/04 00:50:14
添字が全部定数なら配列にする意味なし

21 :デフォルトの名無しさん:05/03/04 02:59:12
>>9
Owaringでいいだろ

22 :デフォルトの名無しさん:05/03/05 00:02:15
それなわOwarriedの方が

23 :デフォルトの名無しさん:05/03/06 05:15:22
shine

24 :デフォルトの名無しさん:05/03/06 13:23:05
>>23
社員?

25 :デフォルトの名無しさん:05/03/06 14:04:42
>>24
社員って何のことか分からないけど、
「輝け」って言いたいんだよ。…きっと。

26 :デフォルトの名無しさん:05/03/06 17:19:27
C++でmp3などの音楽ファイルを再生する
audioPlayerというクラス(audioPlayer.h)を作ったのですが、
C言語のみをサポートしている環境でも使えるようにとラッパーをかまして
Cからも呼べるようにしました。
そのファイル名が思い浮かばなくて・・。

27 :デフォルトの名無しさん:05/03/06 17:31:56
>>26
C++版をaudioPlayer.hppにしてC版をaudioPlayer.hにすればいいだろう。

28 :デフォルトの名無しさん:05/03/06 17:38:03
ifdefで区切って同一ファイルに突っ込んだら

29 :デフォルトの名無しさん:05/03/06 17:54:13
26です。
27さん、28さんありがとうございます。

残念なのですがコーディングルールで
ヘッダファイルはxxx.h にしないとならないので
ファイル名を変えないといけなくて。。

今のところ、Cからしか使われないので、
そちらをメイン?にして、audioPlayer.h
C++版のヘッダファイル(及びクラス名)は audioPlayerMain.h
としているのですが、へんだなと。。

28さん、なるほどその方法もあるのですね。

30 :デフォルトの名無しさん:05/03/09 19:24:55
言語Java。

XMLで書いた定義からJToolBar/JMenuBar/JPopupMenuを生成する
クラスToolBarBuilder/MenuBarBuilder/PopupMenuBuilderがあります。
これらのスーパークラス名を考えてください。

MenuBuilderは普通にJMenuを作るクラスと誤解してしまうので避けたいです。


31 :デフォルトの名無しさん:05/03/09 20:13:57
自作IDEでも作る気かな?
JConponentMLとかじゃダメ?
データ=JConponentならそれでいい気がする


32 :デフォルトの名無しさん:05/03/09 20:37:10
hoge

foo bar

pin pon pan

33 :デフォルトの名無しさん:05/03/09 21:31:56
IDEというよりアプリケーションのフレームワークですね(ありがち)。

あらゆるComponentにそういう定義ファイルを用意する気はないのですが、
ひとまず、ComponentBuilderとしてみます。


34 :デフォルトの名無しさん:05/03/10 21:55:25
英語力に乏しくてすみません。

とある値を記憶し、格納する処理を put と名付けました。
引き出す時、なんて名前付けたらいいのか分かりません。

put の逆の言葉とかあります?



35 :デフォルトの名無しさん:05/03/10 22:18:43
どっかにそれらの対応が載ってるページがあったな・・・
push/popとかcreate/destroyとか。

36 :デフォルトの名無しさん:05/03/10 22:19:34
ぬるぽ/ガッ

37 :デフォルトの名無しさん:05/03/10 22:22:42
get/put
load/store
start/select

38 :デフォルトの名無しさん:05/03/10 22:24:58
>>37
俺の中ではget/setなんだが。

39 :デフォルトの名無しさん:05/03/10 22:26:24
BASICer的にはGET/PUTだべ。

40 :デフォルトの名無しさん:05/03/10 22:26:36
と思ったけどgetchar/putcharとか忘れていた。 ○| ̄|_

41 :デフォルトの名無しさん:05/03/10 23:07:53
put自体使わない。

設定-取得-削除
set-get-remove:単数
add-get-delete:複数

42 :デフォルトの名無しさん:05/03/10 23:09:38
置くでPUTなら取るでTAKEというのはどうか?

43 :デフォルトの名無しさん:05/03/10 23:15:30
removeって取り除くだぞ
なんで単数なんだよ

44 :デフォルトの名無しさん:05/03/10 23:25:11
>>43
コールバック用のオブジェクトを登録する場合なんかに
登録するオブジェクトが一つだけの場合、setで設定し
てremoveで解除。
複数のオブジェクトを登録できる場合は、addで登録し
てdeleteで解除という風に使ってる。

他にお勧めがあればぜひ教えてほしい。

45 :44:05/03/10 23:26:04
ちょっと訂正
×:登録するオブジェクトが
○:登録できるオブジェクトが

46 :デフォルトの名無しさん:05/03/10 23:29:34
設定 set
取得 get
変換して取得 to
後片付け destroy, close

コレクションするなら以下を加える
追加 add
除去 remove
全除去 clear

Javaは統一されてて勉強になるぞ

47 :デフォルトの名無しさん:05/03/10 23:32:37
>>44
単数なら attach/detach とか。

48 :デフォルトの名無しさん:05/03/10 23:33:37
>>46
て事は、「コールバック用のオブジェクトを登録する場合なんかに
登録できるオブジェクトが一つだけの場合」、setで登録してclear
で解除するのが一般的?

49 :デフォルトの名無しさん:05/03/10 23:37:01
>>47
なるほど、文字数的にも合うし、それもいいな。

attachHogeEvent、detachHogeEvent
attachHogeListener、detachHogeListener
attachHogeObserver、detachHogeObserver

うん、違和感はない感じ。

50 :デフォルトの名無しさん:05/03/10 23:38:29
単数なら
setHoge(data), resetHoge()
複数なら
addHoge(obj), setHoge(key, data), clearHoge(), removeHoge(key)

登録というか引っ掛ける・外すという関係なら>>47じゃない?

51 :デフォルトの名無しさん:05/03/10 23:40:55
>>50
引っ掛けるだと hook/unhook じゃない?

52 :デフォルトの名無しさん:05/03/10 23:43:40
hookってプログラム的に聞かないな
switchに対するselectみたいな印象

53 :デフォルトの名無しさん:05/03/10 23:43:41
addとdeleteを対にするのはDelphiな人?
確かDelphiのTStringがadd-deleteだったと思う。
Javaはadd-removeなんだね。

54 :デフォルトの名無しさん:05/03/10 23:49:16
C++だって複数の参照外しはdelete[]だったと思うよ
[]を付けるってことはdeleteそのものは単数だ

FlashのActionScriptのdeleteは配列を丸ごと消すけど
実は配列=Arrayオブジェクトだから、暗黙のデストラクトで処理してることが分かる

55 :デフォルトの名無しさん:05/03/10 23:51:46
DelphiのVCLでは、
Addで末尾に追加、
Insertでインデックス指定して挿入、
Deleteはインデックス指定して削除、
Removeは値とかインスタンスを渡して、勝手に探索して削除してくれる。
Clearで全削除。

という感じで統一になってるみたい。

56 :デフォルトの名無しさん:05/03/10 23:53:41
>>52
グローバルフックとかで使ってる。
割り込む感じ?

57 :デフォルトの名無しさん:05/03/10 23:58:05
>>55
そうすると、add-remove、insert-deleteの関係だね。
add-deleteの関係は考え直す事にするorz

58 :デフォルトの名無しさん:05/03/11 00:07:49
FlashのActionScriptだとattachはあるけどdetachはないんだよな
attachしたやつが自分でremoveしなきゃいけない
removeって普通オブジェクトを破棄しちゃ行けないから、何か腑に落ちない

59 :デフォルトの名無しさん:05/03/11 01:02:07
ぢゃばの場合、
Collection風味だとadd/removeだが、
Map風味(キーと値のペア)だと
put/get (JComponent.put/getClientPropertyとかPreferencesとか)だなぁ。


60 :デフォルトの名無しさん:05/03/11 02:59:48
こんなの見つけた。
ttp://homepage1.nifty.com/~takaot/prprpr/varname-append.html

引用するとこんな感じ。
add/remove begin/end create/destroy
insert/delete first/last get/release
put/get up/down lock/unlock
min/max next/previous old/new
open/close show/hide source/destination
source/target start/stop


61 :34:05/03/11 04:36:47
すんません、いきなりあんな時間に「仕事すれ」とか電話かかってきて、
今レス確認しました。

おおいに参考にさせてもらいます。ありがd

62 :デフォルトの名無しさん:05/03/11 08:50:18
>>34
例えば、java.nio.ByteBuffer などのクラスには put と get のメソッドがあります。

63 :デフォルトの名無しさん:05/03/11 10:48:08
#define XXX_TYPE_WITH_FRAMESHIFT_COMPRESSION 0x0123
#define XXX_TYPE_WITH_HUFFMAN_OR_BWT 0x4567
#define XXX_TYPE_WITH_COLOR_DEPTH_OTHER_THAN_8 0x8901

これもっと短くなりませんか?

64 :デフォルトの名無しさん:05/03/11 13:29:57
>>63
それでいいんじゃない。
長くて入力するのが大変という問題は
dabbrev みたいな仕組みのあるエディタを使うべき。

65 :デフォルトの名無しさん:05/03/11 15:30:42
そうだそうだ
メモ帳から卒業しろ

66 :Rubyist!:05/03/11 15:42:17
メモ帳ってのはどこから出てきたのだろう。
阿呆の考えることはよく分からんな。

67 :デフォルトの名無しさん:05/03/11 15:59:20
だからよぉ…叩きたいときはネタ持って来いっつってんだろうが
何度も言わせんなよ無能新参


68 :デフォルトの名無しさん:05/03/11 17:44:36
>>63
コーディングの時は適当に丸めておいて後でリファクタリング。

69 :デフォルトの名無しさん:05/03/11 18:51:22
プッ

70 :デフォルトの名無しさん:05/03/11 18:55:01
>>68
いいこといった。

71 :デフォルトの名無しさん:05/03/11 19:04:33
Javaです。

BufferedReader に似たクラスを作ったのですが、なんと言う名前にしたらいいか…。
あと、文中に出てくるメソッドの名前についても、アドバイス頂きたく。

以下、このクラスの説明。

コンストラクタのパラメータとして、InputStream を取ります。

BufferedReader と同じように、「一行読み込む」というメソッドがあります。
戻り値は String ではなく byte[] です。このメソッドは、BufferedReader と同じように、
ストリームから「CR」か「LF」か「CRLF」のどれかが出てくるを探して、その改行文字
も含んだ byte の配列を一行として返してくれます。(異なる種類の改行文字が混在
しているストリームを、勝手に変換することなく読み取れる。)

Encoding を使った変換は一切しません。
(だから「Reader」って名前は使わないほうがいいような気はする。)

72 :デフォルトの名無しさん:05/03/11 19:08:07
そのクラスはInputStreamとして扱えるの?
(=Decolatorパターンを崩さない)

それによって名前も変わりそうな気がする。


73 :デフォルトの名無しさん:05/03/11 19:18:11
>>72

今のところは InputStream として扱える実装ではないですが、
たしかにそうしておくべきですね。

今のところ extends 節は無いし(=extends java.lang.Object )
extends InputStream することも簡単そうなので、既にこのクラスが
InputStream の一種であるという前提で考えていただけたらありがたいです。


74 :デフォルトの名無しさん:05/03/11 23:28:00
LineSplitter
LineOrientedInputStream
LineBreakAwareInputStream

長いかなぁ。


75 :デフォルトの名無しさん:05/03/12 02:50:29
デリミタに改行以外を指定できるようにすればすっきりする希ガス

76 :デフォルトの名無しさん:05/03/13 14:36:50
LinewiseInputStream

-wise って、「〜に関して」「〜の方向で」みたいな、
なんかOrientedと同じような雰囲気だから・・・どぉ?

77 :デフォルトの名無しさん:05/03/14 01:26:00
>>74
>>75
>>76
たくさん候補を頂きましてありがとうござます。

>>75 さんの案のような一般化はすごく興味がありますが、「私がやりたかったこと」
のレベルを遥かに超えてしまいますので >>76 さんの案、LinewiseInputStream に決めました。

>>74 さんの案の中では、LineOriented が気に入りました。
「LineSplitter」は、個人的には、ストリームを全部読んで、行の配列を返してくれそうな感じがした。

あと、>>73 で私、InputStream の下位クラスにするべきであると書きましたが、
厳密には、FilterInputStream の直接的下位クラスにするべき事を発見。
BufferedInputStream もそうなってるし。

ということで、こうなりました。
InputStream <--- FilterInputStream <--- LinewiseInputStream

ありがとうーみんな。

78 :デフォルトの名無しさん:05/03/18 02:45:24
特定のファイルをXML・HTML変換するために、
パラメータファイルを生成メソッドがあります。

// XML変換用メソッド
createParameterFileOfXML()

// HTML変換用メソッド
createParameterFileOfHTML()

上記のように命名しましたが、
長すぎてやる気がなくなります。
しっくりくる命名をお願いいたします。

ただし、設計が悪いとか、createParamFileOfXML()などのように、
単純に略しただけの命名はご勘弁下さい。

79 :デフォルトの名無しさん:05/03/18 04:10:55
{ save, make, generate, create, output, write } +
{ paramaters, settings, configuration, paramaterFile, arguments } +
{ for, of, as } +
{ XML, HTML }

saveParamatersForXML とか

つーか後でリファクタリングってのはどうなの?

80 :デフォルトの名無しさん:05/03/18 04:35:22
>>78
戻り値はStringとかStream?
makeConfigOf(ConfigType.XML)
makeConfigOfXML
makeProfileOf(ProfileType.XML)
makeProfileOfXML

XMLだけ出力してXSLT使えば迷わんのにね。

81 :78:05/03/18 09:15:34
>>79 >>80
レスthx。

戻り値はvoid、もしくはbooleanです。
説明不足で申し訳ないのですが、
XML・HTMLを生成するのではなく、
XML・HTMLを作るためのプログラムへの引数パラメータファイルを生成します。
感覚的にはjava.io.File#createNewFile()に近いような気がします。

82 :デフォルトの名無しさん:05/03/18 15:18:39
兄貴たちに質問、C言語です。

キュー(先入れ先出し)を操作する関数について、
QueueIn
QueueOut
の2つを、動詞もしくは動詞から始まる名前にしたいと思います。

いくつかの資料を見たのですが、見事に QueueIn / Out ばかり… orz
直訳すれば、Do〜なんですが何となくカッコ悪い気もします。
push/popはスタック操作っぽいですし。

データ自体はアドレス渡しでやり取りし、
関数の返り値はエラーチェック用を想定しています。


83 :デフォルトの名無しさん:05/03/18 15:29:31
キューもpush/popっていうだろ

84 :デフォルトの名無しさん:05/03/18 15:36:38
enqueue/dequeue かな

85 :デフォルトの名無しさん:05/03/18 16:09:51
Perl だと、

  unshift → ARRAY → pop
  shift ← ARRAY ← push

です。

  @arr = ("abc", "def", "ghi");
  print shift @arr;

ってやると、abc が表示される。

ご参考まで。

86 :デフォルトの名無しさん:05/03/18 16:14:38
>>84
それだ!

87 :デフォルトの名無しさん:05/03/18 16:54:36
Obaqueue/Ojirou

88 :デフォルトの名無しさん:05/03/18 18:29:07
>>87
それだ!

89 :デフォルトの名無しさん:05/03/18 23:06:55
>>81
createの戻り値は基本的にクラスや構造体参照などの、メモリ上の実体を返すものだよ。

> プログラムへの引数パラメータファイルを生成します。
コマンドラインパラメータ?
makeOrder(Of)XML order from 注文書
makeIndent(Of)XML indent 注文書(英)


90 :デフォルトの名無しさん:05/03/19 12:31:47
>>87
オブジェクトの消滅はDorompaだな?

91 :デフォルトの名無しさん:05/03/19 12:37:39
>>89
やりたいことは、

c:\>foo.exe file.prm
      ~~~~~~~~
上記の、file.prmというファイルを生成することです。
やはりインスタンスなど返さない場合は、createではなくmakeを使うべきなのでしょうか。
説明が不十分ですいません。

92 :デフォルトの名無しさん:05/03/20 13:50:53
客がそうしろって言ってるんじゃない。
お前の好みで選べ。

93 :デフォルトの名無しさん:05/03/20 16:22:15
>>91
file.prmの仕様がよくわからない
XMLやHTMLに変換するための元データは一緒に渡さないの?
file.prmの中に一緒にデータが混ざってるならそれこそ設計が・・ってなる

元データ+スタイル書式で整形するなら
makeStyleOfXMLとか、makeProfileOfXMLとかさ

94 :デフォルトの名無しさん:2005/03/21(月) 09:35:02
何ていうか、ある仕事頼まれたんだけど、
char a = 'b';
char b = 'c';
char c = 'a';
みたいなプログラムソースになってて発狂しそうだったから、
char a = 'a';
char b = 'b';
char c = 'c';
になるように頑張って直してたら、
おまえ何でそんな 「 ど う で も い い こ と 」 に労力かけるんだ?
そんなことしてたら時間ばっかりかかって儲からないだろ。利益を追求しる!
なんて上司に言われちゃって、プログラマの端くれとして抵抗した方がいいのか
素直に従った方が良いのか迷ってます。


95 :デフォルトの名無しさん:2005/03/21(月) 09:38:54
>>94
char_a char_b char_bとかのがよくなくない?
保守考えろやカスって言っとけ

96 :デフォルトの名無しさん:2005/03/21(月) 10:25:21
リファクタリングってやつですな。

97 :デフォルトの名無しさん:2005/03/21(月) 18:10:36
>>94
つまり時間掛けて直してる所に文句いってんじゃないの?
頑張って直すって、数分で終わる作業だろうに。
きっとさぼってると認識したんだよ。

98 :94:2005/03/21(月) 20:43:39
>>97
いえ、あそこに挙げたのはあくまで例でして、
実際はもっとひどい状況なんでつ。 つ'д`)


99 :デフォルトの名無しさん:2005/03/21(月) 21:38:07
>>98
まぁでも、納期が近いならそんなことをするよりは
先に必要な部分を優先させるべきだわな
リファクタリングはまた別の機会にでも。。

100 :デフォルトの名無しさん:2005/03/21(月) 21:45:31
char a = 'b';
char b = 'c';
char c = 'a';

char a = 'a';
char b = 'b';
char c = 'c';
に変更することは「リファクタリング」とは呼ばない気がするのは私だけ?
(あきらかに挙動変わるんじゃない?)

101 :デフォルトの名無しさん:2005/03/21(月) 21:47:13
a,b,cの使われ方込みできっちりリネームしてればリファクタリング。
単にa,b,cの中身を変更しただけならリファクタリングじゃない。
つうかスレ違い。

26 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)