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

田中 修 [E-MAIL ADDRESS DELETED]
2008年 12月 25日 (木) 15:08:58 JST


みなさまお世話になっております。
株式会社アマダ 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 メーリングリストの案内