[Seasar-user:16557] Re: 【S2Dao】CheckStyleの適応について

田中 修 [E-MAIL ADDRESS DELETED]
2008年 12月 26日 (金) 12:01:28 JST


せろ様

情報有難うございます。
ご連絡いただいた情報を元に下記の設定に変更してみました。
うまく利用できそうです。
        <module name="LocalFinalVariableName">
            <property name="format" value="^[a-z][a-zA-Z0-9]*(_[A-Z0-9]+)$"/>
        </module>
        <module name="LocalVariableName">
            <property name="format" value="^[a-z][a-zA-Z0-9]*(_[A-Z0-9]+)$"/>
        </module>

ConstantNameのignoreは取りやめても問題なくチェックできました。
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
    <property name="severity" value="warning"/>
    <module name="TreeWalker">
        <property name="tabWidth" value="4"/>
        <module name="ConstantName"/>
        <module name="LocalFinalVariableName">
            <property name="format" value="^[a-z][a-zA-Z0-9]*(_[A-Z0-9]+)$"/>
        </module>
        <module name="LocalVariableName">
            <property name="format" value="^[a-z][a-zA-Z0-9]*(_[A-Z0-9]+)$"/>
        </module>
        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="PackageName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>
        <module name="AvoidStarImport"/>
        <module name="IllegalImport"/>
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>
        <module name="FileLength"/>
        <module name="LineLength"/>
        <module name="MethodLength"/>
        <module name="ParameterNumber">
            <property name="max" value="10"/>
        </module>
        <module name="EmptyForIteratorPad"/>
        <module name="MethodParamPad"/>
        <module name="NoWhitespaceAfter">
            <property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS"/>
        </module>
        <module name="NoWhitespaceBefore"/>
        <module name="OperatorWrap"/>
        <module name="ParenPad"/>
        <module name="TypecastParenPad"/>
        <module name="TabCharacter"/>
        <module name="WhitespaceAfter"/>
        <module name="WhitespaceAround">
            <property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,             BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,             EQUAL,GE,GT,LAND,LCURLY,LE,LITERAL_ASSERT,LITERAL_CATCH,             LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,             LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,             LITERAL_TRY,LITERAL_WHILE,LOR,LT,MINUS,MINUS_ASSIGN,             MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,             RCURLY,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,             STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND,WILDCARD_TYPE"/>
        </module>
        <module name="ModifierOrder"/>
        <module name="RedundantModifier">
            <property name="tokens" value="VARIABLE_DEF,ANNOTATION_FIELD_DEF"/>
        </module>
        <module name="AvoidNestedBlocks"/>
        <module name="EmptyBlock"/>
        <module name="LeftCurly"/>
        <module name="NeedBraces"/>
        <module name="RightCurly"/>
        <module name="AvoidInlineConditionals">
            <property name="severity" value="ignore"/>
        </module>
        <module name="DoubleCheckedLocking"/>
        <module name="EmptyStatement"/>
        <module name="EqualsHashCode"/>
        <module name="HiddenField"/>
        <module name="IllegalInstantiation"/>
        <module name="InnerAssignment"/>
        <module name="MagicNumber">
            <property name="severity" value="ignore"/>
        </module>
        <module name="MissingSwitchDefault"/>
        <module name="RedundantThrows"/>
        <module name="SimplifyBooleanExpression"/>
        <module name="SimplifyBooleanReturn"/>
        <module name="DesignForExtension">
            <property name="severity" value="ignore"/>
        </module>
        <module name="FinalClass"/>
        <module name="HideUtilityClassConstructor"/>
        <module name="InterfaceIsType"/>
        <module name="VisibilityModifier"/>
        <module name="ArrayTypeStyle"/>
        <module name="FinalParameters"/>
        <module name="GenericIllegalRegexp">
            <property name="severity" value="ignore"/>
            <property name="format" value="\s+$"/>
            <property name="message" value="Line has trailing spaces."/>
        </module>
        <module name="TodoComment">
            <property name="severity" value="ignore"/>
        </module>
        <module name="UpperEll"/>
        <module name="JavadocMethod">
            <property name="scope" value="public"/>
        </module>
        <module name="JavadocStyle">
            <property name="scope" value="public"/>
        </module>
        <module name="JavadocType">
            <property name="scope" value="public"/>
        </module>
        <module name="JavadocVariable">
            <property name="scope" value="public"/>
        </module>
    </module>
    <module name="NewlineAtEndOfFile"/>
    <module name="Translation"/>
    <module name="PackageHtml"/>
</module>

有難うございます。
-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]]On Behalf Of Shin Tanimoto
Sent: Friday, December 26, 2008 2:51 AM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16556] Re:【S2Dao】CheckStyleの適応について


せろです。

Checkstyleの内容は公開できないですが、
よくCheckstyleの設定をカスタマイズします。

で、基本的にはSun Checksを自分でカスタマイズして使います。
妥協するというよりも、S2Daoを使う前提なら、
それに合ったコーディング規約にするべきだと思います。

定数アノテーションを使うなら、
定数の命名規則を少し変える、などですね。


Eclipse Checkstyle Pluginを使っているなら、
設定ファイルをLocal Configuration(でしたっけ)にして、
XMLファイルを共有すれば、プロジェクトで共通的に使えるので
プロジェクト内で規約がずれることもないと思います。


それでは。

>みなさまお世話になっております。
>株式会社アマダ ICTシステム部 田中 修です。
>
>みなさまは、JAVAのコーディングチェックに
>CheckStyleは利用されていますでしょうか?
>
>私の方では、ソースの品質評価のツールとして
>CheckStyleを適応できればと検討しております。
>Seasar2とS2Daoを利用したWEBアプリを作成しておりますが
>CheckStyleを適応すると、
>コーディング警告がSunの規定と外れる部分があることが分かっております。
>
>そこで、Seasar2、S2DaoのコーディングチェックをCheckStyleにて行っている人が
>おりましたら構成ファイルの内容を公開していただけないでしょうか?
>どこまでのチェックで妥協するか悩んでおります。
>
>私が作成した内容は
><?xml version="1.0" encoding="UTF-8"?>
><!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" 
>"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
><module name="Checker">
>    <property name="severity" value="warning"/>
>    <module name="TreeWalker">
>        <property name="tabWidth" value="4"/>
>        <module name="ConstantName">
>            <property name="severity" value="ignore"/>
>        </module>
>        <module name="LocalFinalVariableName"/>
>        <module name="LocalVariableName"/>
>        <module name="MemberName"/>
>        <module name="MethodName"/>
>        <module name="PackageName"/>
>        <module name="ParameterName"/>
>        <module name="StaticVariableName"/>
>        <module name="TypeName"/>
>        <module name="AvoidStarImport"/>
>        <module name="IllegalImport"/>
>        <module name="RedundantImport"/>
>        <module name="UnusedImports"/>
>        <module name="FileLength"/>
>        <module name="LineLength"/>
>        <module name="MethodLength"/>
>        <module name="ParameterNumber">
>            <property name="max" value="10"/>
>        </module>
>        <module name="EmptyForIteratorPad"/>
>        <module name="MethodParamPad"/>
>        <module name="NoWhitespaceAfter">
>            <property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,
>UNARY_PLUS"/>
>        </module>
>        <module name="NoWhitespaceBefore"/>
>        <module name="OperatorWrap"/>
>        <module name="ParenPad"/>
>        <module name="TypecastParenPad"/>
>        <module name="TabCharacter"/>
>        <module name="WhitespaceAfter"/>
>        <module name="WhitespaceAround">
>            <property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,
>BOR_ASSIGN,BSR,             BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,  
>           EQUAL,GE,GT,LAND,LCURLY,LE,LITERAL_ASSERT,LITERAL_CATCH,            
> LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,             LITERAL_FOR,LITERAL_IF,
>LITERAL_RETURN,LITERAL_SYNCHRONIZED,             LITERAL_TRY,LITERAL_WHILE,
>LOR,LT,MINUS,MINUS_ASSIGN,             MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,
>PLUS_ASSIGN,QUESTION,             RCURLY,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR, 
>            STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND,WILDCARD_TYPE"/>
>        </module>
>        <module name="ModifierOrder"/>
>        <module name="RedundantModifier">
>            <property name="tokens" value="VARIABLE_DEF,ANNOTATION_FIELD_DEF"
>/>
>        </module>
>        <module name="AvoidNestedBlocks"/>
>        <module name="EmptyBlock"/>
>        <module name="LeftCurly"/>
>        <module name="NeedBraces"/>
>        <module name="RightCurly"/>
>        <module name="AvoidInlineConditionals">
>            <property name="severity" value="ignore"/>
>        </module>
>        <module name="DoubleCheckedLocking"/>
>        <module name="EmptyStatement"/>
>        <module name="EqualsHashCode"/>
>        <module name="HiddenField"/>
>        <module name="IllegalInstantiation"/>
>        <module name="InnerAssignment"/>
>        <module name="MagicNumber">
>            <property name="severity" value="ignore"/>
>        </module>
>        <module name="MissingSwitchDefault"/>
>        <module name="RedundantThrows"/>
>        <module name="SimplifyBooleanExpression"/>
>        <module name="SimplifyBooleanReturn"/>
>        <module name="DesignForExtension">
>            <property name="severity" value="ignore"/>
>        </module>
>        <module name="FinalClass"/>
>        <module name="HideUtilityClassConstructor"/>
>        <module name="InterfaceIsType"/>
>        <module name="VisibilityModifier"/>
>        <module name="ArrayTypeStyle"/>
>        <module name="FinalParameters"/>
>        <module name="GenericIllegalRegexp">
>            <property name="severity" value="ignore"/>
>            <property name="format" value="\s+$"/>
>            <property name="message" value="Line has trailing spaces."/>
>        </module>
>        <module name="TodoComment">
>            <property name="severity" value="ignore"/>
>        </module>
>        <module name="UpperEll"/>
>        <module name="JavadocMethod">
>            <property name="scope" value="public"/>
>        </module>
>        <module name="JavadocStyle">
>            <property name="scope" value="public"/>
>        </module>
>        <module name="JavadocType">
>            <property name="scope" value="public"/>
>        </module>
>        <module name="JavadocVariable">
>            <property name="scope" value="public"/>
>        </module>
>    </module>
>    <module name="NewlineAtEndOfFile"/>
>    <module name="Translation"/>
>    <module name="PackageHtml"/>
></module>
>
>以上ですが、他に有益なチェックや
>Seasar2やS2daoのロジック性質上
>ソースチェックの警告の数が減らせない恐れがあるため
>止めた方が良いチェックがありましたらご教授いただければと思います。
>
>私は、このチェックはしていないという簡単な意見でも良いです。
>
>なお、CheckStyleはMavenレポートやHudsonにて吸い上げ警告情報を公開しております。
>
>みなさんからの情報お待ちしております。
>よろしくお願いいたします。
>_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>株式会社 アマダ
>ICTシステム部
>田中 修
>神奈川県伊勢原市石田200
>TEL: 0463-96-3168(5783)
>E-Mail: [E-MAIL ADDRESS DELETED]
>/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~
>AMADA Co.,Ltd.
>ICT System Division
>Osamu Tanaka
>ADDR: 200, ISHIDA, ISEHARA-CITY, KANAGAWA, JAPAN
>TEL: +81-463-96-3168
>_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user

_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-user


Seasar-user メーリングリストの案内