summaryrefslogtreecommitdiff
path: root/fml
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-04-24 07:58:43 +0000
committerfukachan <fukachan>2001-04-24 07:58:43 +0000
commitfb222533305d8d49eaebedef69fd309104433a72 (patch)
tree7da4a2547112a60910825f0e0752fd1be54902f6 /fml
parent5d4a577ba7d3a5c283a201546abb103f301a7f89 (diff)
downloadfml8-fb222533305d8d49eaebedef69fd309104433a72.tar.gz
fml8-fb222533305d8d49eaebedef69fd309104433a72.tar.bz2
fml8-fb222533305d8d49eaebedef69fd309104433a72.zip
import refactroing.html
Diffstat (limited to 'fml')
-rw-r--r--fml/doc/ja/tutorial/design.sgml191
1 files changed, 190 insertions, 1 deletions
diff --git a/fml/doc/ja/tutorial/design.sgml b/fml/doc/ja/tutorial/design.sgml
index 3b838cdb..9ad0dd12 100644
--- a/fml/doc/ja/tutorial/design.sgml
+++ b/fml/doc/ja/tutorial/design.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: intro.sgml,v 1.4 2001/04/24 06:51:59 fukachan Exp $
+ $FML: design.sgml,v 1.1 2001/04/24 07:12:29 fukachan Exp $
-->
<chapter id="design">
@@ -196,6 +196,195 @@ fml 5.0 のアルファ版のアルファ版のアルファ版
</sect1>
+<!-- ======================================================== -->
+<sect1>
+
+<title>
+fml リファクトリングのアイデア
+</title>
+
+<table>
+ <title> リファクトリング TODO </title>
+ <tgroup cols=3>
+
+ <thead>
+ <row>
+ <entry> status </entry>
+ <entry> 項目 </entry>
+ <entry> 詳細 </entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry> done. </entry>
+ <entry> ライセンス </entry>
+ <entry> ライセンスを Perl 準拠へ変更する </entry>
+ </row>
+
+ <row>
+ <entry> </entry>
+ <entry> イメージ/モティーフ</entry>
+ <entry>
+ fml4 から fml5 へは、
+ sendmail から postfix への移行のようなイメージで。
+ 最低限の config.ph コンバータは用意する。
+ </entry>
+ </row>
+
+ <row>
+ <entry> done. </entry>
+ <entry>
+ メインプログラムの wrapper (乖離層)。
+ </entry>
+ <entry>
+ バージョン管理やデバッグを簡単にするための乖離層
+ </entry>
+ </row>
+
+ <row>
+ <entry> </entry>
+ <entry> 再利用性(自主開発はできるだけ避ける) </entry>
+ <entry>
+ 可能な限りあらゆる CPAN モジュールなどを使う。
+
+ そして利用する場合には乖離層を設けること。
+ 例えば
+ ”FML::モジュール → 乖離層 → CPAN/モジュール”
+ のように。
+ </entry>
+ </row>
+
+
+ <row>
+ <entry> </entry>
+ <entry>
+ 設定ファイル形式
+ <itemizedlist>
+ <listitem>
+ <para>
+ cf と config.ph を統合化する
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ 配列を表現できる形式
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ メニュープログラムが楽できるフォーマットを
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ 原則として”設定ファイル”という名のものは
+ どれも同じフォーマットとする。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ </entry>
+ </row>
+
+
+ <row>
+ <entry> </entry>
+ <entry> 変数の命名規則
+ <itemizedlist>
+ <listitem>
+ <para>
+ USE_機能
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ 機能_TYPE
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ 機能_ATTRIBUTES
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </entry>
+ <entry>
+ ”USE_ほえ”および”ほえ_TYPE”形式か?
+ また、NOT_USE などは禁止する( default_config に書くこと)。
+
+ attribute にあたるものが
+ 群れになってしまうのはしょうがない。しかし、
+ 配列表現が可能なため、現在の ifdef の群れで表現する
+ ようなことが少なくなるはず。
+ </entry>
+ </row>
+
+
+ <row>
+ <entry> </entry>
+ <entry> 関数名ルールの統一
+
+ main:: スペースに出てくるものは従来通り X11 風準拠に。
+
+ メソッドは他のモジュールにあるようなそれっぽい小文字の名前をつける。
+
+ lisp 的要素を廃止する。
+ </entry>
+
+ <entry>
+ 参考文献 Perl Cookbook として、
+ そこにあるようなシンタックス風を推奨する?
+
+ 例:
+ メソッドなら is_member() で、大域関数なら
+ ”MemberP() -> IsMember()”
+ </entry>
+ </row>
+
+ <row>
+ <entry> 手づかず </entry>
+ <entry> queue manager </entry>
+ <entry>
+ 再送処理のため (e.g. smtpfeed )
+ </entry>
+ </row>
+
+
+ <row>
+ <entry> may be </entry>
+ <entry> tools </entry>
+ <entry>
+ BSD make を使わない。
+
+ C 言語ではないので、autoconf は特には必要ないと思う。
+ しかしながら configure という名前のスクリプトを(フェイクでも)
+ 用意することはよいことかもしれない。
+
+ そのスクリプトは例えば
+ IPv6 ready か否かを決めるために使われるだろう(
+ 現在の実装では使ってはいない、IPv6 は常に挑戦してみる
+ )。
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+</table>
+
+</sect1>
+
+
+
+
+
+
<!-- ======================================================== -->
<sect1>