Commit 9b118bbc43cb169d0038d86dd97387903377e47f
0 parents
add serval specification documents
Showing
3 changed files
with
245 additions
and
0 deletions
specification/dili-codestyle.xml
0 → 100644
1 | +++ a/specification/dili-codestyle.xml | |
1 | +<?xml version="1.0"?> | |
2 | +<!DOCTYPE module PUBLIC | |
3 | + "-//Puppy Crawl//DTD Check Configuration 1.3//EN" | |
4 | + "http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd"> | |
5 | + | |
6 | +<!--地利集团技术研发部内部代码规范--> | |
7 | + | |
8 | +<module name = "Checker"> | |
9 | + <property name="charset" value="UTF-8"/> | |
10 | + | |
11 | + <property name="severity" value="warning"/> | |
12 | + | |
13 | + <property name="fileExtensions" value="java, properties, xml"/> | |
14 | + <!--文件中不允许出现Tab键, 包含Tab的每行都report--> | |
15 | + <module name="FileTabCharacter"> | |
16 | + <property name="eachLine" value="true"/> | |
17 | + </module> | |
18 | + | |
19 | + <module name="TreeWalker"> | |
20 | + <!--JAVA文件名与外层类型(类名)一致--> | |
21 | + <module name="OuterTypeFilename"/> | |
22 | + <!--文件每行长度不超过120个字符, 包名 类型引用 URL除外--> | |
23 | + <module name="LineLength"> | |
24 | + <property name="max" value="130"/> | |
25 | + <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> | |
26 | + </module> | |
27 | + <!--类型引用不允许使用*--> | |
28 | + <module name="AvoidStarImport"/> | |
29 | + <!--类型引用 包名 静态引用不允许换行--> | |
30 | + <module name="NoLineWrap"> | |
31 | + <property name="tokens" value="IMPORT, PACKAGE_DEF, STATIC_IMPORT"/> | |
32 | + </module> | |
33 | + <!--try finally if else switch不允许空代码块, 但连续block除外, 比如: if (condition) {} --> | |
34 | + <module name="EmptyBlock"> | |
35 | + <property name="option" value="TEXT"/> | |
36 | + <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> | |
37 | + </module> | |
38 | + <!--do while if else for语句块必须使用大括号{}, 连续block除外, 比如: if (condition) return false;--> | |
39 | + <module name="NeedBraces"/> | |
40 | + <!--代码块的左大括号在同一行显示--> | |
41 | + <module name="LeftCurly"> | |
42 | + <property name="option" value="eol"/> | |
43 | + </module> | |
44 | + <!--multi-block语句try catch finally if else do的右大括号在同一行显示, } catch (Exception ex) { --> | |
45 | + <module name="RightCurly"> | |
46 | + <property name="id" value="RightCurlySame"/> | |
47 | + <property name="option" value="same"/> | |
48 | + <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_DO"/> | |
49 | + </module> | |
50 | + <!--类定义 方法定义 构造方法和for while static no-static块的右大括号换行显示--> | |
51 | + <module name="RightCurly"> | |
52 | + <property name="id" value="RightCurlyAlone"/> | |
53 | + <property name="option" value="alone"/> | |
54 | + <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT"/> | |
55 | + </module> | |
56 | + <!--token必须使用空格隔开, 同时允许空构造函数 方法 类型定义 空循环体--> | |
57 | + <module name="WhitespaceAround"> | |
58 | + <property name="allowEmptyConstructors" value="true"/> | |
59 | + <property name="allowEmptyMethods" value="true"/> | |
60 | + <property name="allowEmptyTypes" value="true"/> | |
61 | + <property name="allowEmptyLoops" value="true"/> | |
62 | + <message key="ws.notFollowed" | |
63 | + value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> | |
64 | + <message key="ws.notPreceded" | |
65 | + value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> | |
66 | + </module> | |
67 | + <!--每行只允许一个语句块, int i=1; int j=1;将导致检查失败--> | |
68 | + <module name="OneStatementPerLine"/> | |
69 | + <!--不允许多个变量定义在同一行--> | |
70 | + <module name="MultipleVariableDeclarations"/> | |
71 | + <!--数组定义风格必须使用java风格: String[] args, 不允许使用String args[]--> | |
72 | + <module name="ArrayTypeStyle"/> | |
73 | + <!--Switch语句必须包含一个default语句块--> | |
74 | + <module name="MissingSwitchDefault"/> | |
75 | + <!--Long类型常量定义时必须使用L, 而不是l--> | |
76 | + <module name="UpperEll"/> | |
77 | + <!--类定义里面方法和变量等的顺序遵循: public protected private abstract default static final transient volatile synchronized native--> | |
78 | + <module name="ModifierOrder"/> | |
79 | + <!--package语句, 所有import语句 所有成员变量 构造函数定义 方法定义 内部类 static块 non-static块必须使用空行隔开--> | |
80 | + <module name="EmptyLineSeparator"> | |
81 | + <property name="allowNoEmptyLineBetweenFields" value="true"/> | |
82 | + </module> | |
83 | + <!-- | |
84 | + 如果语句过长需要分行时 .号放在下一行 | |
85 | + StringBuilder build = new StringBuilder(); | |
86 | + build.append("a") | |
87 | + .append("b"); | |
88 | + --> | |
89 | + <module name="SeparatorWrap"> | |
90 | + <property name="id" value="SeparatorWrapDot"/> | |
91 | + <property name="tokens" value="DOT"/> | |
92 | + <property name="option" value="nl"/> | |
93 | + </module> | |
94 | + <!-- | |
95 | + 如果语句过长需要分行时 ,号保持在同一行 | |
96 | + foo(i, | |
97 | + s) | |
98 | + --> | |
99 | + <module name="SeparatorWrap"> | |
100 | + <property name="id" value="SeparatorWrapComma"/> | |
101 | + <property name="tokens" value="COMMA"/> | |
102 | + <property name="option" value="EOL"/> | |
103 | + </module> | |
104 | + <!--如果语句过长需要分行时, 可变参数 ... 保持在同一行--> | |
105 | + <module name="SeparatorWrap"> | |
106 | + <property name="id" value="SeparatorWrapEllipsis"/> | |
107 | + <property name="tokens" value="ELLIPSIS"/> | |
108 | + <property name="option" value="EOL"/> | |
109 | + </module> | |
110 | + <!--如果语句过长需要分行时, 数组符号 []保持在同一行--> | |
111 | + <module name="SeparatorWrap"> | |
112 | + <property name="id" value="SeparatorWrapArrayDeclarator"/> | |
113 | + <property name="tokens" value="ARRAY_DECLARATOR"/> | |
114 | + <property name="option" value="EOL"/> | |
115 | + </module> | |
116 | + <!--如果语句过长需要分行时, jdk8 lambda风格的方法引用 ::放在下一行--> | |
117 | + <module name="SeparatorWrap"> | |
118 | + <property name="id" value="SeparatorWrapMethodRef"/> | |
119 | + <property name="tokens" value="METHOD_REF"/> | |
120 | + <property name="option" value="nl"/> | |
121 | + </module> | |
122 | + <!--包名必须符合以下正则表达式--> | |
123 | + <module name="PackageName"> | |
124 | + <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> | |
125 | + <message key="name.invalidPattern" | |
126 | + value="Package name ''{0}'' must match pattern ''{1}''."/> | |
127 | + </module> | |
128 | + <!--类型名必须符合默认正则表达式: 首字母大写--> | |
129 | + <module name="TypeName"> | |
130 | + <message key="name.invalidPattern" | |
131 | + value="Type name ''{0}'' must match pattern ''{1}''."/> | |
132 | + </module> | |
133 | + <!--成员变量名必须符合以下正则表达式: 首字母小写--> | |
134 | + <module name="MemberName"> | |
135 | + <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/> | |
136 | + <message key="name.invalidPattern" | |
137 | + value="Member name ''{0}'' must match pattern ''{1}''."/> | |
138 | + </module> | |
139 | + <!--参数名必须符合以下正则表达式: 首字母小写--> | |
140 | + <module name="ParameterName"> | |
141 | + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> | |
142 | + <message key="name.invalidPattern" | |
143 | + value="Parameter name ''{0}'' must match pattern ''{1}''."/> | |
144 | + </module> | |
145 | + <!--catch语句块中的参数名必须符合以下正则表达式: 首字母小写--> | |
146 | + <module name="CatchParameterName"> | |
147 | + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> | |
148 | + <message key="name.invalidPattern" | |
149 | + value="Catch parameter name ''{0}'' must match pattern ''{1}''."/> | |
150 | + </module> | |
151 | + <!--定义的局部变量名必须符合以下正则表达式: 首字母小写--> | |
152 | + <module name="LocalVariableName"> | |
153 | + <property name="tokens" value="VARIABLE_DEF"/> | |
154 | + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> | |
155 | + <message key="name.invalidPattern" | |
156 | + value="Local variable name ''{0}'' must match pattern ''{1}''."/> | |
157 | + </module> | |
158 | + <!--类名Class xxx必须符合以下正则表达式--> | |
159 | + <module name="ClassTypeParameterName"> | |
160 | + <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> | |
161 | + <message key="name.invalidPattern" | |
162 | + value="Class type name ''{0}'' must match pattern ''{1}''."/> | |
163 | + </module> | |
164 | + <!--方法参数Method xxx必须符合以下正则表达式--> | |
165 | + <module name="MethodTypeParameterName"> | |
166 | + <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> | |
167 | + <message key="name.invalidPattern" | |
168 | + value="Method type name ''{0}'' must match pattern ''{1}''."/> | |
169 | + </module> | |
170 | + <!--接口名interface xxx必须符合以下正则表达式--> | |
171 | + <module name="InterfaceTypeParameterName"> | |
172 | + <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> | |
173 | + <message key="name.invalidPattern" | |
174 | + value="Interface type name ''{0}'' must match pattern ''{1}''."/> | |
175 | + </module> | |
176 | + <!--泛型使用的< >前后空格检查, 不同的泛型使用场景, 检查的空格策略不同--> | |
177 | + <module name="GenericWhitespace"> | |
178 | + <message key="ws.followed" | |
179 | + value="GenericWhitespace ''{0}'' is followed by whitespace."/> | |
180 | + <message key="ws.preceded" | |
181 | + value="GenericWhitespace ''{0}'' is preceded with whitespace."/> | |
182 | + <message key="ws.illegalFollow" | |
183 | + value="GenericWhitespace ''{0}'' should followed by whitespace."/> | |
184 | + <message key="ws.notPreceded" | |
185 | + value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> | |
186 | + </module> | |
187 | + <!--换行时的缩进策略--> | |
188 | + <module name="Indentation"> | |
189 | + <!--普通换行时缩进策略--> | |
190 | + <property name="basicOffset" value="4"/> | |
191 | + <!--大括号被换行时缩进策略--> | |
192 | + <property name="braceAdjustment" value="0"/> | |
193 | + <!--case语句换行时缩进策略--> | |
194 | + <property name="caseIndent" value="4"/> | |
195 | + <!--throws语句缩进策略--> | |
196 | + <property name="throwsIndent" value="4"/> | |
197 | + <!----> | |
198 | + <property name="lineWrappingIndentation" value="4"/> | |
199 | + <!--数组初始化时缩进策略--> | |
200 | + <property name="arrayInitIndent" value="4"/> | |
201 | + </module> | |
202 | + <!--在命名规则中允许allowedAbbreviationLength+1个连续大写字母出现--> | |
203 | + <module name="AbbreviationAsWordInName"> | |
204 | + <property name="ignoreFinal" value="false"/> | |
205 | + <property name="allowedAbbreviationLength" value="1"/> | |
206 | + </module> | |
207 | + <!--方法名相同但参数不同的overload方法放在一起--> | |
208 | + <module name="OverloadMethodsDeclarationOrder"/> | |
209 | + <!--变量定义与使用的距离不能超过默认值3--> | |
210 | + <module name="VariableDeclarationUsageDistance"/> | |
211 | + <!--检查import顺序--> | |
212 | + <module name="CustomImportOrder"> | |
213 | + <property name="sortImportsInGroupAlphabetically" value="true"/> | |
214 | + <property name="separateLineBetweenGroups" value="true"/> | |
215 | + <property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/> | |
216 | + </module> | |
217 | + <!--检查方法格式--> | |
218 | + <module name="MethodParamPad"/> | |
219 | + <!--在某些符号前不能存在空格--> | |
220 | + <module name="NoWhitespaceBefore"> | |
221 | + <property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/> | |
222 | + <property name="allowLineBreaks" value="true"/> | |
223 | + </module> | |
224 | + <!--检查小括号()两边的空格策略--> | |
225 | + <module name="ParenPad"/> | |
226 | + <!--需要换行时, 检查下列运算符必须在下一行--> | |
227 | + <module name="OperatorWrap"> | |
228 | + <property name="option" value="NL"/> | |
229 | + <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/> | |
230 | + </module> | |
231 | + <!--方法名命名规则--> | |
232 | + <module name="MethodName"> | |
233 | + <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/> | |
234 | + <message key="name.invalidPattern" | |
235 | + value="Method name ''{0}'' must match pattern ''{1}''."/> | |
236 | + </module> | |
237 | + <!--异常变量名为expected或有任何注解在里面, 允许空catch块--> | |
238 | + <module name="EmptyCatchBlock"> | |
239 | + <property name="exceptionVariableName" value="expected"/> | |
240 | + </module> | |
241 | + <!--注释的缩进策略, 应与被注释代码缩进策略一样--> | |
242 | + <module name="CommentsIndentation"/> | |
243 | + </module> | |
244 | +</module> | |
0 | 245 | \ No newline at end of file | ... | ... |
specification/代码分支及版本管理规范.docx
0 → 100644
No preview for this file type
specification/地利集团技术研发部开发者手册初稿v1.2.docx
0 → 100644
No preview for this file type