全文検索システムの Namazu の舞台裏
namazu.jpg


May 13, 2000
JUS東海勉強会

野首貴嗣


















(page 1)

結論



そして...

(page 2)

Namazu とは




(page 3)

Namazu の特徴 (1/2)




(page 4)

Namazu の特徴 (2/2)



(page 5)

Namazu の仕組み (1/2)

namazu-system.png

(page 6)

Namazu の仕組み (2/2)




(page 7)

環境・要望



(page 8)

初期の開発体制


初期においては高林氏1人での作業

個人の負荷が増大

(page 9)

現在の開発体制


多人数による開発

多人数での開発を破綻なく行うには...

CVS の活用

(page 10)

CVS とは


Concurrent Version System

<>http://www.loria.fr/~molli/cvs-index.html>

(page 11)

流れの分岐

cvs-apropos.jpg

(page 12)

変更の衝突

cvs-conflict.jpg

(page 13)

簡易なインストール



最近一般的なインストール手順

これらを実現するソフトウェア

(page 14)

autoconf


環境の違いを吸収するためのソフトウェア




(page 15)

automake


autoconf に合わせた Makefile を生成するソフトウェア




(page 16)

国際化


日本語圏だけでなく、世界にも目を向ける


(page 17)

カタログ化


メッセージをプログラムに直接埋め込むと...


そこでカタログ化

(page 18)

GNU gettext


基本的には英語でメッセージを記述



(page 19)

真の国際化


メッセージを翻訳するだけでは国際化とはいえない



(page 20)

再利用


Namazu に付随して開発されたソフトウェア - libkakasi

KAKASI をライブラリ化

ライブラリ化の重要性を認識

(page 21)

Namazu のライブラリ化

もともとは再利用を意図していないコード

拡張につぐ拡張でコードが疲弊している

Perlモジュールの作成

(page 22)

柔軟なフィルタ


様々な形式のファイルに特化した処理ができる

API を共通化し、拡張可能



(page 23)

デバッグ


ライブラリ化作業にともない、メモリリークが問題に

ccmalloc の活用

(page 24)

テスト環境


機能の追加がバグを呼ぶことがある

あらかじめ問題がないことを確認する手段

(page 25)

make check


namazu-${version}/tests/

22種類のチェック

(page 26)

パッケージシステム

Linux のメジャーなパッケージシステムに対応




(page 27)

結論 (再掲)



そして...
(page 28)