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

[freewnn:00317] Coding Style (Re: jutil)



古川竜雄です。

小野さんの話というのは結局「コーディングスタイルをどうするか?」ってこ
とになると思います。

コーディングスタイルというのは、複数の人がコードをいじる時に必要な取り
決めで、

    - TAB を使う/使わない
    - インデントは 8文字/4 文字/2文字
    - if 文の '{' は改行する/しない

というような見ためのものから、

    - 外部変数は、先頭を大文字にする
    - 定数は全部大文字にする
    - 長い変数名/関数名は longLongFunction とする/long_long_function とする

というような命名規則のものとか、他にも、プロトタイプ宣言とか、ちょっと
今は思いつきませんけど、いろいろあります。

結局、こういうことを決めないと、他人のソースコードを読むときの効率が違
うってことなんでしょうね。GNU にもコーディング基準がありますし、Linux 
のカーネルにもあります。(Linux ではGNU にもコーディング基準を燃やせと
書いてあるらしい…)

というわけで、


        FreeWnn のコーディングスタイルを決めようではないか!!


という方向で話を持っていきたいのですけど、いかがでしょうか?

実は、私がパッチのとりまとめを行なう関係で、インデントの話の時とか、ど
うしようか考えたことがあったのですが、「インデントを何文字にするか」な
んてのは完全に個人の趣味の世界ですので「統一した見解ができるわけがない
し、第一そんなことを苦労して決めても意味ないんじゃないか?」と思ったの
で提案を止めたのです。

でも、現状はソースによってスタイルが違います。これがすごく私には気にな
るのです。やっぱソースコードのスタイルは統一されているべきなのではない
か? と思い始めました。それがたとえ自分の好みのスタイルではないにしても。

そして、小野さんのメールで気がついたのですが、indent コマンドを使えば
いいんですよね。つまり、もし、FreeWnn が自分の好みじゃないスタイルになっ
ていたとして、それが、その人には許せなかったとしても、indent コマンド
で自分の好きなスタイルに変換してソースを読めばいいわけです。

となると、統一した見解が出せるかもしれない(もめないかもしれない)と思い
始めました。ということで、できそうなものからでいいので、ちょっとづつ決
めていこうと思うのですが、いかがでしょ?


基本ルール

    1. コーディングスタイルが決まってないものに関しては自分の好きなよ
       うにして良い

    2. コーディングスタイルが決まったものは、正式リリース時に強制的に
       そのスタイルに整形される。この作業はメンテナーが行なう。

    3. パッチを提出する時は、コーディングスタイルを気にしなくて良い。
       自分の好きなスタイルで書いて構わない。但し、メンテナーがコーディ
       ングスタイルにしたがって整形を行なうことがある。

というのでじょじょにはじめていきませんか。


というわけで、

小野さん> prototype 宣言は Ansi C のを使えるようにしようよという話があっ
小野さん> たと思います。以前出ていた話では、
小野さん>  * FreeBSD の source にあるように __P macro を使う。
小野さん>  * ansi2knr
小野さん> というのがあったと思うのですが、どちらを取ればよいのでしょう?

現時点ではどっちでもいいと思います。


小野さん> あんまり、関係ないのですが、現在はマニュアルが Xsi/Wnn/man 
小野さん> 以下にありますが、それはそっちにまとめた方がメンテナンスはし
小野さん> やすいでしょうか?それとも、Xsi/Wnn/jtuil/dtoa.1 と source と
小野さん> 同じ場所にあった方がよいでしょうか。
小野さん> % どちらの方式も世の中にあるようなのですが。

どっちでも現時点では OK です。ただ、私としては、ひとつのものがいろんな
ところに散らばっていると読む方が大変なので、同じ場所にあるのが好きです。
んで、make install であるべき場所にコピーされる… というやりかたですね。


小野さん> 以前、片山さんが [freewnn:00088] で、インデンテーションも直
小野さん> しましょうとおっしゃっていますが、どのようにすれば良いのでしょ
小野さん> うか。
小野さん>  * indent を通す
小野さん>  * emacs の c-mode なり、 c++-mode なりの設定を決めて配布
小野さん> とか、基準だけでなく方法も教えて頂けると楽でよいのですが…

これは、まずスタイルを決めてからということでどうでしょうか? この、テン
プレートを決めて配布というのはいいですね。こうすると、コーディングスタ
ンダードを読まなくても自動的にそのスタイルになるので便利かも。


小野さん> FreeWnn-1.1.1-a14 で、-Wall をつけて make すると、例えば私が
小野さん> 例に出したdtoa.c だと、
    (略)
小野さん> とかいわれます。他でもいろいろ。

これ、すごく問題です。1.1.1 を出して落ち着いてから大改造をしようという
ような話がでていました。


というわけで、小野さんへの答としては、そういう細かいところは気にせず、
どんどん自分のやりたいことをやってください、パッチ待ってます。というと
ころでしょうか。

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