プログラミング・スタイル ここでは、プログラミング上のいくつかの諸問題についてまとめます。 変数の命名規則(ネーミングコンベンション) 標準パターン (例 log.cf lock.cf) use_変数 = yes/no # ディレクトリなら最後に _dir がつくことが望ましい 変数_dir = 文字列 # ファイルなら最後に _file がつくことが望ましい 変数_file = 文字列 変数_type = 文字列 変数_format = 文字列 変数_format_type = 文字列 変数_limit = 文字列(数字だけど文字列扱い) 変数_upper_limit = 文字列(数字だけど文字列扱い) 変数_lower_limit = 文字列(数字だけど文字列扱い) パターン2 (例 acl.cf ) 変数_restrictions = reject_属性 permit_なんとか 属性 = パターン1 パターン2 … パターン3 (さらにプログラム名がつく場合) プログラム_変数_属性 プログラミング・スタイル (原案のメモ(注: 単なる走り書き)) Perl ではポリモーフィズムと実行時バインディングができることに は重視すること。多重継承などに頭を使うより ポリモーフィズムと実行時バインディングによる コンポーネント指向ぽい方向性を模索する。 Perl 5 のパッケージを使った、オブジェクトぽい書き方は 変数自身が自分のパッケージを知っているので、 単にパッケージ修飾(例: :: )を使わなくてもよいくらいに 思う方がよい。 そのために、 再利用性と抽象度を高くしたインターフェイスは オブジェクトぽい書きかたが良さそう。 perl 5 だと必然的にオブジェクトぽくなってしまうが、 オブジェクト、オブジェクト、オブジェクトし過ぎないように バランス感覚に注意しよう。 他人のモジュールを使う場合はともかく、 自分達で書くモジュールでの ”深い”継承はできるだけ避けたい。 何でも深くすればよいというものではないでしょう。 libexec/ や libkern.pl にある関数は、 main:: に記述される部分は基本的なフローを記述している。 これらは基本的な枠組を示すものであるため、 $CurProc (C でいえば struct *curproc にあたるもの) を受け渡す、構造化プログラミング的な書き方をしている。 しかし、そのひとつ下の層、そしてさらにその下では、 再利用性とポリモーフィズムに傾いた方がよさそうにおもえる。