- PR -

コーディング規約はどのようなモノをお使いでしょうか?

投稿者投稿内容
にこ坊
会議室デビュー日: 2002/03/15
投稿数: 6
お住まい・勤務地: 岡山県
投稿日時: 2002-03-15 18:04
コーディング規約を作成することになり、情報収集をしているのですが、
皆様はどのような規約をお使いでしょうか?

今まで収集したモノは以下のとおりです。
SUNのHPのCode Conventions for the Java Programming Language
永和システムマネジメントのJavaコーディング標準
Writing Robust Java Code

また、これらも似ているようで少しづつ違うようなので、どう作成するのが良いだろうか?と思案中です。

よろしくお願いいたします。
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2002-03-15 18:22
The Elements of Java Styleという本を愛用しています。
JBuilderのデフォルトのスタイルと似ています。

1~108番までのルールが文庫本サイズの本にまとめられています。
前半はフォーマットや変数の名前の付け方、JavaDocの書き方、後半はプログラミングガイドのような内容まで含まれます。JavaDocの書き方では、サマリディスクリプション(コメントの一行目でサマリで表示される部分)では主語は冗長なので書くな、などかなり具体的で役に立ちます。後半は、いろいろな文献等で語られている有用なガイドをまとめていておもしろいです。例えば103番:

103 Leave optimization for Last.

First Rule of Optimization:
Don't do it.
Second Rule of Optimization (For experts only):
Don't do it yet.
--Michael Jackson,
Michael Jackson Systems Ltd.

インデントの方法やタブの使用の有無はかなり、個人の趣味趣向によってスタイルが全く異なるところです(し、グループでルールを決めるときは感情的な反発が必至なところ)。この本ではインデントは、まず、すでに使っているIDEのスタイルに会わせることという至極もっともなガイドがまずあって、その上で自分で決める場合はスペース2個、ハードタブは禁止というのが推奨されています。例えば、ブロックに関するフォーマットは次のようになります。
コード:

ブロック開始文 {
...
}


例えば、
コード:

public class MyClass {
}

if (i < j) {
}
else {
}

try {
}
catch (Exception e) {
}


この本に出会うまでC言語のK&R風のやりかたが当然と思っていたのでかなり新鮮でした。
でも上の書き方だとルールは一つで例外が無いので覚えやすいし、編集も簡単です。Sunなどのスタイルでは、この場合はこう、あの場合はそう、みたいなところが嫌いです。



[ メッセージ編集済み 編集者: miki 編集日時 2002-03-16 12:18 ]
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2002-03-16 12:24
どなたかIBMのコーディング標準についてご存知ないですか。

雑誌のJavaWorldのスタイルと似ているような気がするのですが、オンラインで探してみても見つかりませんでした。AlphaWorksなどに詳しい方ご存知でしたらお願いします。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-03-16 20:21
http://www.dmz.hitachi-sk.co.jp/Java/Tech/misc/convention.htmlに日立のコードスタイルがあります。

ちょっと細かすぎるのですが、コメント部分のスタイルは参考にしています。
おかゆさん
会議室デビュー日: 2002/03/18
投稿数: 1
投稿日時: 2002-03-18 08:56
わたしも 全く同じ 経緯で コーディング規約作成に
悩んでしまったのですが、開発ツールをいろいろ試しているうちに、
Javaのスタイルチェッカー なるものがあることをしりました。

--jbcheckstyle-- ※JBuilder専用
http://jbcheckstyle.sourceforge.net/jbcheckstyle/screenshot/

これでチェックさせると実に細かい部分まで気にかけてくれるのです。
Sunの Code Conventions にどこまで合致しているかまでは
確かめてないのですが、かなりきちんとチェックしてくれるようです。

さらに、JRefactory というリファクタリングツールについてくる
コード整形ツール pretty printing を組み合わせると、
上記チェッカーの警告をパスするような美しいソースに整頓してくれます。

[JRefactory]
http://jrefactory.sourceforge.net/

あとは Sunの Code Conventions から外れない程度の
命名規約だけ決めてしまえば、自然と 標準的な規約のコーディングが
できてしまうことになります。

…という 解決策でよし、と 当方では したのですが、いかがでしょうか。
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2002-03-18 09:51
jRefactoryはAntからも使えそうです。
http://www.jguru.com/faq/view.jsp?EID=736442
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2002-03-18 12:24
テクマトリックス社のjTestもコーディングルールのチェックを行ってくれます。
この製品の売りは自動単体テストなんですが、静的なソースチェックもできます。
コーディングルールをどうするのか、というのも自分たちで決めることができます。

お試し版で使ってみましたが、なかなか優れものでした。
(うちの会社には予算がなくて、買えなかったけど...)

http://www.techmatrix.co.jp/asq/jtest/
ToGo
常連さん
会議室デビュー日: 2002/03/16
投稿数: 46
投稿日時: 2002-03-19 00:15
コーディング規約(標準)は、次の要素から成立すると考えます。
・命名の仕方
・ドキュメント(コメント)の仕方
・言語仕様の適用についての制約(自由度の制約)
・インデントや括弧の位置といったスタイル
・プログラミングの指針(よいコードを書くノウハウ)

いずれも目的は、第三者にも読みやすく、保守しやすいこと、
よい(品質の高い)コードを書くこと、にあります。
正解は一つとは限らないので、いろいろな規約があるのでしょうね。

僕がプログラミングの指針として参考にしている書籍は以下の2つです。
「Effective Java プログラミング言語ガイド」
Joshua Bloch著、柴田芳樹訳、ピアソン刊
「Essential Java Style - Patterns for Implementation」
Jeff Langr著、Prentice Hall刊

スキルアップ/キャリアアップ(JOB@IT)