fml8 チュートリアル (バージョン 7.99.1-20180910)
Prev | Chapter 30. 原案: fml8 (仮名) のデザインコンセプト | Next

# fml をリファクタリングするアイデア

Table 30-1. リファクタリング TODO

status | 項目 | 詳細
--- | --- | ---
done. | ライセンス | ライセンスを Perl 準拠へ変更する
done. | イメージ/モティーフ | fml4 から fml8 へは、 sendmail から postfix への移行のようなイメージで。 最低限の config.ph コンバータは用意する。
done. | メインプログラムの wrapper (乖離層)。 | バージョン管理やデバッグを簡単にするための乖離層
done. | 再利用性(自主開発はできるだけ避ける) | 可能な限りあらゆる CPAN モジュールなどを使う。 そして利用する場合には乖離層を設けること。 たとえば ”FML::モジュール → 乖離層 → CPAN/モジュール” のように。
done. | 設定ファイルの形式は cf と config.ph を統合化したようなもので、 配列を表現できる形式とする。 メニュープログラムが楽できるフォーマットにしたい。 原則として”設定ファイル”という名のものは どれも同じフォーマットとする。 |
| 変数の命名規則の規格化 | ”USE_ほえ”および”ほえ_TYPE”形式か？ また、NOT_USE などは禁止する( default_config に書くこと)。 attribute にあたるものが 群れになってしまうのはしょうがない。しかし、 配列表現が可能なため、現在の ifdef の群れで表現する ようなことが少なくなるはず。
| 関数名ルールの統一 main:: スペースに出てくるものは従来通り X11 風準拠に。 メソッドは他のモジュールにあるようなそれっぽい小文字の名前をつける。 lisp 的要素を廃止する。 | 参考文献 Perl Cookbook として、 そこにあるようなシンタックス風を推奨する？ 例: メソッドなら is_member() で、大域関数なら ”MemberP() -> IsMember()”
done. (でも lmtp を実装してない;-) | queue manager | 再送処理のため (e.g. smtpfeed )
done. | tools | BSD make を使わない。 C 言語ではないので、autoconf は特には必要ないと思う。 しかしながら configure という名前のスクリプトを（フェイクでも） 用意することはよいことかもしれない。 (と、最初はいっていたけど、結局つかってます:-) そのスクリプトは、たとえば IPv6 ready か否かを決めるために使われるだろう( 現在の実装では使ってはいない、IPv6 は常に挑戦してみる )。

Prev | Home | Next
初期構想（詳細) | Up | アーキテクチャア・イメージ

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.