Best Practices and Theory (JAV3)

Programming, Java, Spring

The audiences are supposed to have at least basic Java knowledge. This part would be useful more for less experienced developers, but it can provide a repetitive synoptic summary for more experienced ones.

Location, current course term

Contact us

Custom Customized Training (date, location, content, duration)

The course:

Hide detail
  • Design and coding guidelines
    1. DRW, DRY, and other principles
    2. A cookbook for writing a method: from the name to the body
    3. Orthogonal methods
    4. Overloading, overriding
    5. Parameter processing, dividing responsibility
    6. Using varargs
    7. Code styles, idioms, patterns
    8. Testing, debugging, optimizing
  • Dealing with exceptions
    1. Exceptions: theory and reality
    2. Common mistakes and abuses of exception handling
    3. Checked vs. unchecked exceptions, design considerations, contracting
    4. Using exceptions, failure atomicity
  • Type theory, contracts
    1. Terminology: abstraction, interface, contract, type, class, instance
    2. Liskov Substitution Principle, derived and related principles, subtyping and subclassing
    3. Consequences for class designing, member visibility
    4. Inheritance: when and why, common mistakes
    5. Inheritance vs. composition, using interfaces
    6. Idioms , techniques, guidelines
  • Creating instances
    1. How an instance can be created
    2. Applicable design patterns and their comparison
    3. Common mistakes, guidelines
  • Helpful tools
    1. Enum: underestimated and misused
    2. Using switch statement
    3. Nested classes
    4. Common methods, classes, and interfaces
    5. News in Java 7 and Java 8: how that helps
  • Mutability concerns
    1. Pitfalls of mutability, advantages of immutability
    2. Making a class immutable, true vs. effective immutability
    3. Getting an instance, applicable design patterns
    4. Disadvantages
Recommended previous course:
Java – Introduction to Programming (JAV1)
Recommended subsequent course:
Java: Concurrent Programming (JAV4)
Schedule:
3 days (9:00 AM - 5:00 PM )
Language: