X Tutup
Skip to content

Commit ddba77f

Browse files
committed
Document code rules.
1 parent 32c65f0 commit ddba77f

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

docs/devel.adoc

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
### Code Design
2+
* Model is based on Objects and not primitives that allows nullify requests and have null values for data
3+
that wasn't provided by docker daemon.
4+
* For null safeness findbugs annotations are used.
5+
** Every method that may return `null` (and we are unsure in any fields as docker daemon may change something)
6+
should be annotated with `@CheckForNull` return qualifier from `javax.annotation` package.
7+
** Methods that can't return `null` must be annotated with `@Nonnull`.
8+
** The same for Arguments.
9+
** `@Nullable` must be used only for changing inherited (other typed) qualifier.
10+
* Setters in builder style must be prefixed with `withXX`.
11+
* All classes should provide `toString()` `equals()` and `hashCode()` defined methods.
12+
* Javadocs
13+
** Provide full information on field:
14+
*** For models define API version with `@since {@link RemoteApiVersion#VERSION_1_X}`.
15+
** getters/setters should refernce to field `@see #$field`.
16+
17+
### Coding style
18+
* TBD, some initial styling already enforced with checkstyle.
19+
IDEA/checkstyle file analogues will be provided soon.
20+
21+
### Testing
22+
* Unit tests for serder (serialization-deserialization).
23+
* Integration tests for commands.
24+
* If model object has builders, then fill it with data and compare by `equals()` with expected response
25+
from docker daemon. If failed, then some fields mappings are wrong.

0 commit comments

Comments
 (0)
X Tutup