Namazu-devel-ja(旧)


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

Re: libnmz interface (Re: my plan)



knok@xxxxxxxxxxxxx (NOKUBI Takatsugu) wrote:

>>     // インデックスの集合を扱うオブジェクトを生成する
>>     NmzIdxSet *foo = nmz_new_idxset();
>> 
>>     // 設定ファイルを読み込む
>>     nmz_load_rcfile();
>
>  設定ファイルは全てのオブジェクトで共通なのでしょうか。独立していた方
>が嬉しいかも。

うーん、どうなのだろう。現在の namazurc には Index,
Template, Replace, Logging, Lang, Scoring, EmphasisTags といっ
た設定項目がありますが、これらはすべてのオブジェクトで共通で
もいい気がします。

やろうと思えば

    nmz_config  *conf = nmz_new_config("/foo/bar/namazurc");
    nmz_idxset  *idxs = nmz_new_idxset(conf);
    nmz_doclist *docs = nmz_new_doclist(conf);

のようにできます。もう少し考えてみます。

p.s.
Linux Conference 2000 の発表資料を作っている途中、現実逃避と
して CODE COMPLETE <http://www.construx.com/stevemcc/cc.htm> 
の 31章 の要約を作りました。メイル末尾に添付します。興味のあ
る方は読んでください。僕が好きな章です。

-- Satoru Takabayashi



                     CODE COMPLETE に学ぶプログラマの心得
     _________________________________________________________________
   
   [1]CODE COMPLETE by Steve McConnell の 31章 SOFTWARE CREFTSMANSHIP の要
   約です。
   
知性と謙遜

     * 頭のよさはそれほど重要ではない。
     * 優秀なプログラマは自分の頭の小ささに気づいている謙虚な人間である。
     * システムを単純に分解する
     * 復習・点検して人間の間違いを見つける
     * 慣習を身につけて脳の負担を軽くする
       
好奇心

     * 好奇心は大切
     * 充分に好奇心がないと、時代遅れのプログラマになってしまう
     * 開発過程に注意を払おう
     * 経験を積もう (過ちから学ぼう)
     * 問題解決の本を読もう
     * 行動する前に分析して計画を練ろう
     * 成功したプロジェクトから学ぼう
     * マニュアルを読もう
     * 本や雑誌を読もう
       
知性の誠実さ

     * 正直になろう
     * 知ったかぶりはやめよう
     * 過ちをすぐに認めよう
     * コンパイラの警告を読もう
     * 自分のプログラムをよく理解しよう。動くか確認するためにコンパイルす
       るのはやめよう
     * 現実的な状況をレポートしよう
     * 現実的なスケジュールを予測をしよう
       
創造性と規律

     * 標準や慣習に従うことは大切
     * 些末なことに頭を使わないで創造性に集中できる
       
横着

     * 3種類の横着
          + 嫌な仕事は先伸ばししよう (本物の横着)
          + 嫌な仕事はさっさと終わらせて片づけよう (啓発された横着)
          + 同じ嫌な仕事を 2度とやらないですむように、道具を作ろう (長期
            的な横着)
     * 奮闘したり努力するのはたいして役に立たない。最も大切なのは考えるこ
       とだ。
     * 考えている人は忙しく見えない。常に忙しそうに見えるプログラマがいた
       ら、その人間は優秀なプログラマではない。
       
粘り強さ

     * 粘り強さにたいして価値はない
     * 粘り強さは頑固さに繋がる。
     * 間違った方針に固執してしまう (違う方法を考えよ)
     * 何時間もデバッグに集中してしまう (一旦、休んで考えよ)
     * あきらめる時間を決めよう (あと 30分、経っても駄目なら 10分間、違う
       方法を考えてみよう)
       
経験

     * いわゆる経験はそれほど重要ではない
     * ソフトウェアの分野では技術が日進月歩で進化する
     * 古い知識に基づく経験は単なるお荷物になりかねない
     * 大切なのは時代遅れにならないことだ
     * 10年の経験があるのか? それとも 1年の経験を10回繰り返しただけなのか
       ?
     * 学び続ければ経験を積める。そうでなければ何年、経っても進歩はない
       
いかれたプログラミング (Gonzo Programming)

   NOTE: ここは高林が気に入っている部分。全文を引用します。
   
     If you haven't spent at least a month working on the same program
     -- working 16 hours a day, dreaming about it during the remaining 8
     hours of restless sleep, working several nights straight through
     trying to eliminate that "one last bug" from the program -- then
     you haven't really written a complicated computer program. And you
     may not have the sense that there is something exhilarating about
     programming. -- Edward Yourdon
     
   This lusty tribute to programming machismo is pure B.S. and an almost
   certain recipe for failure. Those all-night programming stints make
   you feel like the greatest programmer in the world, but then you have
   to spend several weeks correcting the defects you installed during
   your blaze of glory. By all means, get excited about programming. But
   learn how to handle the firearm before you shoot yourself in the foot.
   
習慣

     * よい習慣は大切である。
     * Bill Gates いわく、優秀になるプログラマは最初の数年で決まる。
     * もっと速くできないか? もっと読みやすくできないか? と常に自分に問い
       かける習慣は早いうちに養われるものだ。
     * 悪い習慣を突然、断ち切るのは難しい。
     * 古い習慣を新しい習慣で置き換えるといい。
     _________________________________________________________________
   

References

   1. http://www.construx.com/stevemcc/cc.htm


# 日本語訳があります。できれば買って読みましょう :-)