X Tutup
Skip to content

Latest commit

 

History

History
25 lines (23 loc) · 1.35 KB

File metadata and controls

25 lines (23 loc) · 1.35 KB

Code Design

  • Model is based on Objects and not primitives that allows nullify requests and have null values for data that wasn’t provided by docker daemon.

  • For null safeness findbugs annotations are used.

    • Every method that may return null (and we are unsure in any fields as docker daemon may change something) should be annotated with @CheckForNull return qualifier from javax.annotation package.

    • Methods that can’t return null must be annotated with @Nonnull.

    • The same for Arguments.

    • @Nullable must be used only for changing inherited (other typed) qualifier.

  • Setters in builder style must be prefixed with withXX.

  • All classes should provide toString() equals() and hashCode() defined methods.

  • Javadocs

    • Provide full information on field:

      • For models define API version with @since {@link RemoteApiVersion#VERSION_1_X}.

    • getters/setters should refernce to field @see #$field.

Coding style

  • TBD, some initial styling already enforced with checkstyle. IDEA/checkstyle file analogues will be provided soon.

Testing

  • Unit tests for serder (serialization-deserialization).

  • Integration tests for commands.

  • If model object has builders, then fill it with data and compare by equals() with expected response from docker daemon. If failed, then some fields mappings are wrong.

X Tutup