3.6 KiB
3.6 KiB
Contributor Covenant Code of Conduct
The following code of conduct is based on full compliance with ASF CODE OF CONDUCT.
Development Concept
- Write codes with heart. Pursue clean, simplified and extremely elegant codes. Agree with concepts in <Refactoring: Improving the Design of Existing Code> and <Clean Code: A Handbook of Agile Software Craftsmanship>.
- Be familiar with codes already had, to keep consistent with the style and use.
- Highly reusable, no duplicated codes or configurations.
- Delete codes out of use in time.
Contributor Covenant Submitting of Conduct
- Make sure all the test cases are passed, Make sure
mvn clean installcan be compiled and tested successfully. - Make sure the test coverage rate is not lower than the dev branch.
- Make sure to check codes with Checkstyle. codes that violate check rules should have special reasons. Find checkstyle template from
sharding-sphere/src/resources/sharding_checks.xml, please use checkstyle8.8to run the rules.
Contributor Covenant Code of Conduct
- Use linux line separators.
- Keep indents (including blank lines) consistent with the previous one.
- Keep one blank line after class definition.
- No meaningless blank lines.
- Use meaningful class, method and variable names, avoid to use abbreviate.
- Return values are named with
result; Variables in the loop structure are named witheach; Replaceeachwithentryin map. - Exceptions when catch are named with
ex; Exceptions when catch but do nothing are named withignored. - Name property files with camel-case and lowercase first letters.
- Have constants on the left and variable on the right in
==andequalsconditional expressions; Have variable on the left and constants on the right ingreater thanandless thanconditional expressions. - Use
LinkedListin priority. UseArrayListfor use index to get element only. - Use capacity based
Collectionsuch asArrayList,HashMapmust indicate initial capacity to avoid recalculate capacity. - Design class as
finalclass expect abstract class for extend. - Make nested loop structures a new method.
- Use guard clauses in priority.
- Minimize the access permission for classes and methods.
- Private method should be just next to the method in which it is used; writing private methods should be in the same as the appearance order of private methods.
- No
nullparameters or return values. - Split codes that need to add notes with it into small methods, which are explained with method names.
- Replace constructors, getters, setter methods and log variable with lombok in priority.
- Use English in all the logs and javadoc.
- Include Javadoc, todo and fixme only in the comments.
- Only
publicclasses and methods need javadoc, other methods, classes and override methods do not need javadoc.
Contributor Covenant Unit Test of Conduct
- Test codes and production codes should follow the same kind of code of conduct.
- Without particular reasons, test cases should be fully covered.
- Environment preparation codes should be separate from test codes.
- Only those that relate to junit
Assert, hamcrestCoreMatchersandMockitocan use static import. - For single parameter asserts,
assertTrue,assertFalse,assertNullandassertNotNullshould be used. - For multiple parameter asserts,
assertThatshould be used. - For accurate asserts, try not to use
not,containsStringto make assertions. - Actual values of test cases should be named
actualXXX, expected valuesexpectedXXX. - Class for test case and
@Testannotation do not need javadoc.