[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00051] Re: what to do? / directory structure




こんにちは。古川竜雄です。

patch-1.1.1-a003 を作っていたのでリプライ遅れました。m(_"_)m


元木さん> # なんで否定するようなことばかり書いてしまうのだろう > おの
元木さん> れ

ばしばし批判して下さい。意見を戦わせることでいいものができると思ってま
すので。(^^)

はじめの検討を適当にしておくと後でえらい目に会います。私はいっぱいえら
い目に会いました(仕事の話ですけどね)。いったんラインに流れ出すと修正が
大変なんだこれが。


で、本題に移りますが、

元木さん> # トータル的には大賛成なのでご容赦を。

はい、私も元木さんの意見に賛成です。どこに賛成かというと、以下の部分です。

元木さん>  (将来は別として)現状ではソースパッケージとしては以下のよう
元木さん>  な分け方がいいかなと思います。

元木さん>  o [jctk]server, libwnn, 辞書ツール
元木さん>  o 辞書
元木さん>  o Xwnmo
元木さん>  o uum

理由は、たいへんだからというか、これが現状のソースコードでは現実的な解
だと思うからです。でも辞書ツールは確か分離が可能だったと思います。ちょっ
と記憶がおぼろげなのですが。


というわけで、残りの部分に関して私の意見を書きますね。

元木さん>  パッケージとして細分化するのは大賛成なのですが、個人的には
元木さん>  ソースレベルでここまでする必要もないかなと思っています。

元木さん>  この辺の「ユーザが細かく取捨選択できるようにする」ってのは
元木さん>  各ディストリビューションのパッケージシステム(rpm とか deb 
元木さん>  とか ports とか)に任せて、ソース側としてはなるべく個別ビル
元木さん>  ド が容易なように作成しておけばよいのではないかと思います。

実は私はユーザー(ここでは開発には参加せずにコンパイルだけするひとのこ
とを指します)は重視していないのです。何よりも重視するのは「FreeWnn の
開発をしてくれる人」です。この人達のことを大事にしないと FreeWnn の進
化が止まってしまいます。だからこの人達にとって FreeWnn が扱いやすいよ
うにするのが第1番だと考えています。

だから「開発しやすいような配布形態にする」というのが優先です。「コンパ
イルしやすいような配布形態にする」というのは2番目です。

# でも開発するためにはコンパイルしなければならないわけですから両者が背
# 反することはないと思ってますが(^^;


元木さん> # ソースからビルドする時に各ソースパッケージの依存関係を考え
元木さん> # るのがイヤだからですけど ^^;

これは、Linux でいうところのディストリビューションのような形で配布する
のがいいのではないでしょうか? つまり、FreeWnn3.0 は FreeWnn-3.0.tar.gz 
という一つのファイルなんですが、展開すると

    libwnn-3.0.tar.gz
    server-2.96.tar.gz
    dicutils-3.00.tar.gz
        :

になるというような感じですね。いきなり全部展開されてもいいかもしれませ
んが。(これは単なる思いつきですのでなにか穴があるかもしれません)


元木さん> そうすると、同じ役割をするファイルが各アーカイブに分散してし
元木さん> まいませんか?

はい、今のソースコードでそのまま分けるとそうなってしまいます。ですから、
libwnn と server をわける時は何らかの処置が必要になりますね。

これは一般論ですが、「同じ役割をするファイルが各アーカイブに分散してし
まう」という事態が引き起こされるのはライブラリの設計が悪いからです。う
まくライブラリを設計すればそんなことが起こるはずがありません。

# ただ Wnn4.2 の場合、日本語サーバーにパッチを当てるような感じで他の言
# 語の部分ができてますよね。その経緯をみると一概に「設計が悪い」という
# のもナニだなあとは思いますが。

というわけで、libwnn と server がわかれる時はライブラリの再設計が必要
になるとおもいます。

但し、誤解しないでほしいのですが、「libwnn と serverを分ける」ための理
由は「その方が開発がやりやすくなる」でなければなりません。そうでない場
合、例えば「libwnn と server をわけるためにライブラリの再設計を行なう」
なんてのは本末転倒です。


元木さん> 一つのバグを潰すのに 2,3 つの同じ部分を修正するのは結構めん
元木さん> どくさいことになるような気がします。

というわけで、これはやってはいけないことになります。理由はもちろん、
「そうすると開発がやりにくくなるから」です。


元木さん> (たとえば現状の Xsi/Wnn/etc/ 部分, jlib, jutil, jserver か元
木さん> ら参照されてる ;_;)

これは別の理由の気がします。etc の部分は単に libwnn,server, utility で
共通に使われるルーチンで、但し、libwnn には含めたくないようなものが入っ
ているように見えるのです。そんなことは気にせず libwnn に含めてしまって
もいいような気がします。(あくまでも「気がする」だけです。詳しく検討し
てません)

元木さん>  とりあえず libwnn, 辞書ユーティリティ, [jckt]server は一緒
元木さん>  にしておいた方がよいかと。

元木さん>  その中でソースファイルの依存関係を慎重に見極めながら分離で
元木さん>  きるところは分離するのが比較的スムーズに動くのではないかな
元木さん>  と思います。

はい、当面はそうなると思います。

-- 
古川竜雄 (frkwtto@osk3.3web.ne.jp) / FreeWnn Project