著作一覧 |
よかったよかった。
あまりにも(おれが)くだらないこと書いたんで消されたのかと思った。
ちなみに、テスト+バカでもベスト100に当然のようにランクインしてる。が、この召喚獣って人気あんだな。トレンドが違うと、本当に全然、知らないもんだな。
それなりに書くなぁと思って、最後にまともに書いたCのプログラムを眺める。
8行ほどやっている。
僕がなんとなく自分に課しているコーディング規約は、
・publicな関数は最後
rjb.cの場合だと、Init_rjbcore(rubyのrequireに対するエントリーポイント)と、Java_jp_co_infoseek_hp_arton_rjb_RBridge_call(proxyに対するエントリーポイント)。例外的にsafe_funcallは本来であればJava_jp_co_infoseek_hp_arton_rjb_RBridge_callの中に閉じたい関数なので位置は直前。
・処理の内容とか粒度とかでなんとなく自分が納得するまとめ方をする。(ソースファイルというシャーレの中にそれぞれの菌ごとにコロニーを作らせるというか)
で、たまに2番目の理由から位置関係が入れ替わることがあって、その場合にはプロトタイプ宣言する。
例)register_class
参照しているのは、setup_metadataで、クラスのロード時にいろいろいじくる関数の親分。ソースの2/3あたりの位置。
でも実装しているのは、Rubyとインタラクションする関数群を置いてある場所で、ソースの4/5あたりの位置。
で、位置が逆転しているのでプロトタイプ宣言あり。
ってことは、関数は僕にとって似たような処理で束ねるので、それは呼び出し順序(トップなのかボトムなのか)とは関係しない。束ねた関数群の並び順は、他のモジュール(他の関数)とのインタラクションが無し(先頭)、有り(後ろ)ただし特定関数と密に結合し過ぎているように思えるものは特例措置で結合されている関数の直前、というのが大まかなルールのようだ。
あと、普段はEmacsで^X-2以上に分けてそれぞれのコロニーをバッファに出して同時にいじくるので、そのへんの記述方法が影響してるのかも。で、コンパイルエラーになったらプロトタイプ宣言を入れるので、結果的にstatic関数のプロトタイプ宣言が出てくる。
ジェズイットを見習え |