[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 13:46 / Filesize : 204 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

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

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

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

820 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 21:26:40 ]
変数名以前だと思うね。
なんで「拡大と縮小を分ける」という愚かな発想には誰も文句を言わないのだろう。
逆数の概念なんて小学校四年生の学習内容だろう。

いや、まあクラスのメソッドとしてX倍と1/X倍の両方が欲しい、って話ならわからないでもない。
しかしそれにしても、Xを引数にとって1/X倍するメソッドって使いやすいか?

821 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 22:20:39 ]
>>820
>>818
あと
>>1

822 名前:デフォルトの名無しさん mailto:sage [2005/09/02(金) 20:28:10 ]
ちょっと関係がありそうなので、貼り。

  ITエンジニアにも必要な国語力(1)
  jibun.atmarkit.co.jp/lskill01/rensai/kokugo01/kokugo01.html

823 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 22:05:48 ]
当たり判定 メソッドの名前と 当たり判定をするかどうか の変数名を教えてください。

824 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 22:21:32 ]
AtariHantei/AtariHanteiSiro

HitTest

bHitTest
  or
DoHitTest
  or
SkipHitTest

825 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 22:23:34 ]
IsCollision
IsHit

826 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 22:52:09 ]
ありがとうございます。
当たり判定をするかどうか のほうもおねがいします

827 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 22:56:39 ]
detectCollision

828 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 09:29:29 ]
当たり(衝突)=Collision(名詞)、Collided(形容詞)

isCollided、detectCollisionなどで判定(検出)だろうな。
するか否かのフラグなら
doCollisionCheck(Detection)
とかでどうだ?




829 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 11:28:27 ]
>>826
enableHitTest(bool bEnable)

830 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 12:08:02 ]
>826
hitTestEnabled
hitTestRequired


831 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 14:25:43 ]
>SkipHitTest
「"true"の時は○○"しない"」って挙動は後で絶対混乱するからやめとけ

832 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 21:03:42 ]
>>831
スキップする処理の種類と命名によるでしょ。
bKickAssってフラグがTrueの時に、処理'KickAss'を実行しないような実装は混乱する、
って話なら大いに同意するところですが。

SkipXXという命名はしょっちゅう常用してるが混乱したことは一度もないよ。

833 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 22:32:15 ]
if (!you.skipKissMyAss) {
kissMyAss(you);
}
わかりやすい?


834 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 22:55:37 ]
別にそのままでもわかりにくいことないと思うけど。。

//アセンブラ風
if (you.skipKissMyAss) goto SkipKissMyAss;
  kissMyAss(you);
SkipKissMyAss:

----------

//VB風
if (you.skipKissMyAss == FALSE) {
  kissMyAss(you);
}

----------

//知らん
if (you.skipKissMyAss) {
  //NOP
} else {
  kissMyAss(you);
}

835 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 23:18:23 ]
内部的にはほいほい使っちゃいそうだけど(実際はそうでもないかな・・・)
公開するようなインターフェースには否定的な名前は抵抗あるな。

836 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 04:48:08 ]
>if (you.skipKissMyAss == FALSE) {
>  kissMyAss(you);      ~~~~~~~最悪・notなりFALSEなり
>}                       明示しないとダメとかありえない

>if (you.skipKissMyAss) {
>  //NOP  ←最悪・不必要・意味不明
>} else {
>  kissMyAss(you);
>}

>if (you.skipKissMyAss) goto SkipKissMyAss;
>  kissMyAss(you);
>SkipKissMyAss:
↑これならわからなくもない

837 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 19:14:26 ]
>>836
そんなたかが「俺様の主観」に過ぎないものを傲慢に主張できる神経って俺にはわかんね。

君が否定している、あえて明示的に == FALSEって書く書き方や、
IFによる分岐で片方をあえて//NOPと書いてなにもしない処理を置くって書き方は
それなりにオーソドックスだと思うけど。

838 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 20:11:26 ]
>>837
そんなとっくに廃れた「過去の遺産」に過ぎないものを
未だにオーソドックスだと言える神経って俺にはわかんね。
老害はひっこんでろ。



839 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 20:17:37 ]
宗教勧誘は他のスレでやれカスども

840 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 21:07:18 ]
とりあえず、近い未来の改善を見越してコーディングするのも、技量のひとつといえるんだよな。

//NOP
というのも、そーいうことなら受け入れてしかるべき。ifの条件変更すると、テスト工程増えるしな。

オーソドックスなんて言い方するから駄目なんだヨー。


841 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 05:26:12 ]
今回の場合は特に「Skip(何もしない)」条件が成立した場合に
特別な処理をするようなコードだから、変なのに叩かれてるんじゃなかろうか。
とりあえずNOP入れとくって、つまり後で何か特殊な処理が入るかもってことだよね?

842 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 10:51:23 ]
うーん、厳しい意見を言うとすると。

入るかも、じゃなくて確実にロジックが入らないとだめなのよ。

テスト工程は条件式によって実地項目数が増えていくわけだから、
>>837 は、NOPのテスト項目も設計して実施しなくちゃならないわけ。

とりあえず、そんなテストは無駄なわけ。
テスト後、必要になったときにelse文を下に追加した方が楽だしね。

ということなんだが、一般的には、ンな事いうとチームワークに影響が出るのでわざわざ言わない。
テスト行程の時、「NOPの分もやっとけよ」って言うぐらい。
そーすると、次からはそんなコーディングしなくなるね。


843 名前:デフォルトの名無しさん [2005/09/06(火) 20:55:20 ]
StartUPに対する終了時の関数名はどういうものがあるでしょうか。
Finalizeとかは違う気がしますし。

844 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 20:56:43 ]
CleanUp?

845 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 21:05:10 ]
>>843
tearDown とか


846 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 21:29:25 ]
>>843
Terminate
Exit

・・・これってInitializeやInitに対応しそうだな

847 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 21:34:56 ]
before&after

848 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 21:37:39 ]
startupにはshutdownではなかろうか。



849 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 21:38:28 ]
そもそもStartUpが不適切というオチ

850 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 21:47:30 ]
こういうのの対応表みたいなの(文献)ってどこかにまとまってないの?

851 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 21:55:23 ]
一般的な対義語辞書みたいなのはあったような

852 名前:843 mailto:sage [2005/09/06(火) 22:31:17 ]
ありがとうございます。
とりあえずCleanUpかshutdownあたりでいこうかと思います。

853 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 22:37:16 ]
PrepareApplicationExit
OnApplicationTerminated

しかし「終了時の関数名」ってのは漠然としているな。
終了時にやることっていったら資源の解放と設定値の保存ぐらいか。
だったらそういうい命名をした方がいいんじゃないか。


854 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 22:40:53 ]
やることが決まっているんだったら、長ったらしい名前じゃなくて
簡潔で短い名前の方が良い希ガス

855 名前:デフォルトの名無しさん mailto:sage [2005/09/06(火) 22:49:15 ]
initialize ←→ finalize

856 名前:デフォルトの名無しさん mailto:sage [2005/09/08(木) 23:01:25 ]
initの後始末をするのがtiniってのがあったな。

ラクダ本(初版限定?)によると、
caseを閉じるのにesac、ifを閉じるのにfi、のように
ある単語の逆綴りを好むのはALGOL主義者だそうだ。

(elifはfileの逆綴りだからPerlでは使わない、というジョーク)


857 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 15:27:25 ]
名前 なにか たのむ

あるオブジェクトに登録されているデータのIDから
最大の数値を取り出すメソッドの名前

858 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 15:37:43 ]
>>857
ItusoNiadias



859 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 16:18:57 ]
>>857
そもそも意味分からないけど、
メンバ変数に ID を持った型(仮に A とする)があって、
A をリストとして持つあるオブジェクト(仮に O)があって、
O が持ってるリスト中の A のインスタンスの全部の ID を比較して、
最大の ID を求める
ってこと?

GetMax(objectList, compById)

860 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 18:01:58 ]
>>857
tiltowait

861 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 18:07:07 ]
>>857
GetLastID

862 名前:デフォルトの名無しさん mailto:sage [2005/09/14(水) 08:53:37 ]
一日の秒数 24*60*60 秒を示す名前にはなんとつけたらよいでしょうか。
どなたか宜しくお願いします。


863 名前:デフォルトの名無しさん mailto:sage [2005/09/14(水) 09:04:00 ]
SECONDS_PER_DAY

864 名前:862 mailto:sage [2005/09/14(水) 12:23:17 ]
ありがとう御座います。
それでいきます。

865 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 19:59:18 ]
お腹の減り具合を表す変数につける名前を考えてください。


866 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 20:00:16 ]
腹時計

867 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 20:03:00 ]
HaraEmptyGage

868 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 20:07:42 ]
hungry



869 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 21:00:11 ]
名詞のhungerが最適だろう

870 名前:デフォルトの名無しさん [2005/09/15(木) 21:36:46 ]
× Gage
△ Geji, Gezi
○ Guage


871 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 21:39:25 ]
「お腹の減り具合」っていうのは値の範囲が曖昧な気がするんだが。
どうしてもそういう指数が欲しいとしても、まず「満腹度」を数値化して
それの補数にするとかいう順番が妥当じゃないだろうか。

で、満腹度
PercentageSatiety

872 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 21:48:13 ]
hungriness


873 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 21:48:16 ]
ゲームの状態を保存しておく変数の名前をお願いします。

タイトル画面→ゲーム中→戦闘中→ゲームオーバー
のように今はどういった状態なのか保存しておくものです

874 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 21:51:28 ]
Scene

875 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 21:58:18 ]
>>874
ありがとうございます
最高です!

876 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 01:01:37 ]
>>870
それ何語だよ

◎ gauge
○ gage(米俗)
× geji, gezi, gauge

877 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 01:30:49 ]
>× gauge
君こそ間違えるな。

878 名前:デフォルトの名無しさん [2005/09/16(金) 20:36:02 ]
上司に対し、逆切れに至るまでの
累積的な感情の度合を表す変数名を
命名してください。



879 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 20:54:30 ]
JosiState

880 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 21:03:56 ]
BuchigireCountdown

881 名前:879 mailto:sage [2005/09/16(金) 21:07:23 ]
すまぬ。切れるのは上司じゃなかったんだなw

882 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 21:45:07 ]
gyakugireGauge

883 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 21:58:02 ]
tolerance
patience
stress
complaint
anger
gekokujoLevel

884 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 22:19:21 ]
enum KANJOU
{
 KANJOU_KOWAI_HITODANA,
 KANJOU_JIBUN_KATTE_DANA,
 KANJOU_A_SEKUHARA_SHITERU,
 KANJOU_ZANGYOUWO_OSHITSUKETE_KAERIYAGATTA,
 KANJOU_OREWA_KIKAIJANAI_NINGENDAKARA_GENKAIGA_ARUNDA,
 KANJOU_OREGA_SHINUKA_YATSUWO_KOROSUKA,
 KANJOU_NOROTTEYARU_NOROTTEYARU_NOROTTEYARU_NOROTTEYARU,
 KANJOU_MAX
};

if (kanjou >= KANJOU_MAX)
{
 ShellExecWithNetwork(ID_JOUSHI, "format c:\n");
}

885 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 22:21:56 ]
gaianGauge

886 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 22:23:11 ]
hate

887 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 11:30:37 ]
すごい忙しい時なのに、良い名前が思いつかず、
そうなるとコーディングも進まず、時間ばかり過ぎていく
ことってない? 名前が決まるとサクサク進むんだけど。

888 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 11:43:05 ]
小説の書き出しの一行が決まるとスラスラ書けるってやつと同じか



889 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 11:53:25 ]
>>887
仕事でそんなことやってるならそりゃ給料泥棒に等しいと思うなw
そういう時は、納得いかなくてもとりあえずの命名をしとけばいいじゃん。
後で好きなようにいくらでも置換できるんだから。

命名にこだわることはよい習慣だとは思うけど、作業効率考えないのはイカンでしょ。

890 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:00:58 ]
うるさい早くクラス名・変数名に迷え

891 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:01:16 ]
>>889
名前が決まる決まらないってのは、集中力の状態が反映されてるんだろうな。

名前が決まるからサクサク進むんじゃなくて、
集中できているから名前もすぐ決まってサクサク進む。

892 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:08:33 ]
"とりあえず"設計無しでプログラムをはじめる>>889がいるスレはここですか?

893 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:29:52 ]
>>892
いや、それは俺のことだ

894 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:31:19 ]
とりあえず、書いてみる。

手に負えなくなり、やむなく、改めて設計

ほとんど全コード書き換え


でも最初の段階がないと、よい設計はできないと思うぜよ。

895 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:34:49 ]
設計と命名は別問題だと思うが。。

ボクちゃんたちは設計段階でクラスのプライベートメンバの名前とか
メソッド内の一時変数の名前まで全部決めるんですか?そりゃ驚いたw

896 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:54:54 ]
命名をとりあえず先送りにする椰子は設計もとりあえず先送りにするだろうというお話

897 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 12:56:47 ]
スレ違い

898 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 13:40:43 ]
>>895
クラス設計時には、少なくとも公開メンバ変数の名前は決めるだろ



899 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 13:44:34 ]
まだ迷わないのか?


900 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 13:57:38 ]
>>898
一人で全部仕上げるような小規模なアプリ(俺たち三流PGの8割はそいういう仕事のはずだw)
なら、そうでもないな。

設計っていっても必要なクラスを洗い出せば必要十分だし。
もちろん、どういう機能や意味づけをもったパブリックメンバが必要かは考えるが、
具体的なメソッドやプロパティの名前はクラスのコード書きながら考えれば十分(というより、
その方が全然効率的。どうせちょくちょく変更することになるんだから。
よほどの天才でなければ、最初から全部を見通すなんて無理だわな。)

扱う対象が抽象的であればあるほど、クラス名ですら最初っから適切な命名は
できないことの方がむしろ多い。(もちろんよほど言葉のセンスがある奴なら別だろうけどね。)

そういう時はとりあえず適当に命名しておいて、最終的な名前は
コード書きながら合間に考える。
こんなん当たり前のことじゃん。

901 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 14:20:17 ]
>>900

>なら、そうでもないな
と条件を限定しておきながら

>こんなん当たり前のことじゃん。
と一般論で締めくくるw

902 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 15:58:33 ]
ヒント: 俺たち三流PGの8割はそいういう仕事のはずだw

903 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 16:04:20 ]
>>902
ああ、俺も感じた

904 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:48:01 ]
30秒以内に名前が決まらないのは設計ミス。

905 名前:デフォルトの名無しさん [2005/09/19(月) 01:25:45 ]
ボキャブラリの無い俺は年中設計ミス

906 名前: ◆SaiTAMaVxg mailto:sage [2005/09/19(月) 02:39:50 ]
public
 int urawa;
 int omiya;
protected
 int yono;

907 名前: ◆SaiTAMaVxg mailto:sage [2005/09/19(月) 02:40:47 ]
誤爆しました

908 名前:デフォルトの名無しさん mailto:sage [2005/09/19(月) 15:44:55 ]
ダジャレで変数名をつけてる頭が禿げ上がったオイラは、部下の女の子にかわいいと言われる始末。



909 名前:デフォルトの名無しさん mailto:sage [2005/09/19(月) 16:14:26 ]
ご自慢ディスカ

910 名前:デフォルトの名無しさん mailto:sage [2005/09/19(月) 16:15:09 ]
ハゲは所詮恋愛対象外

911 名前:デフォルトの名無しさん [2005/09/22(木) 00:43:02 ]
PHPでカウンターを作成中に変数の名前で迷っています。
$hoge, $hage, $hige に格納する文字列から、名前を考えてください。

・詳細
変数に格納する文字列
$hoge = [ page | global ] // page:カウンターを設置したページ名(英数字と記号)
$hage = [ visit | pageview ]
$hige = [ total | today | yesterday ]

↓の様に連想配列の添え字として利用する予定
$counters[$hoge][$hage][$hige]; // 例 : FrontPage -> visit -> today = 10 (hit)

以上です、よろしくお願いします。

912 名前:デフォルトの名無しさん mailto:sage [2005/09/22(木) 02:24:03 ]
RSSリーダーを作っています。

RSSの情報を格納するクラスを作ったのですが、
RSSの更新確認(更新されていた場合はそのまま取得してクラスが持つ情報を変更する)を
させるメソッドの名前でいまいちしっくりくる名前が浮かびません。

よろしくお願いします。

913 名前:デフォルトの名無しさん mailto:sage [2005/09/22(木) 04:35:00 ]
>>912
結果的にクラスが持つ情報を最新のものにするのだから、
updateで良いんじゃない?

914 名前:デフォルトの名無しさん mailto:sage [2005/09/22(木) 08:42:02 ]
>>911
名前, タイプ, 期間で、name, type, duration とかかね。

915 名前:デフォルトの名無しさん mailto:sage [2005/09/22(木) 13:03:04 ]
>>914
ありがとうございます。

916 名前:デフォルトの名無しさん mailto:sage [2005/09/22(木) 14:16:56 ]
>>912
更新されていた内容と格納している情報を同期させるということで、
Sync(hronize)とか。

917 名前:デフォルトの名無しさん mailto:sage [2005/09/23(金) 05:58:01 ]
2Dシューティングに登場するキャラクタの座標が入っている構造体の名前お願いします。
クラスの名前がCharaでそれに持たせます。

918 名前:デフォルトの名無しさん mailto:sage [2005/09/23(金) 08:57:26 ]
座標の構造体ぐらいライブラリなり何なりで用意されてるでしょ普通。
そんなんレベルでゲームなんて作れるのかな本当に。



919 名前:デフォルトの名無しさん mailto:sage [2005/09/23(金) 10:05:26 ]
>>917
Point

920 名前:デフォルトの名無しさん mailto:sage [2005/09/23(金) 10:13:30 ]
>>917
theHyou






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<204KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef