Knowledgebase

Working With Java Effectively Print

  • programminglanguages, programming, domain, performance, guide, howto, solution, zillionkinghost
  • 0

Practical use.

WHAT TO USE FOR BUILDS

An established build tool, with dependencies declared and versions pinned.

WHAT TO STRUCTURE WITH

Packages reflecting the domain, not technical layers alone.

WHAT TO PREFER

Composition over inheritance Immutability where practical Interfaces defining contracts

WHY IMMUTABILITY

It removes a class of concurrency bugs entirely.

WHAT TO USE FOR ABSENT VALUES

The optional type, rather than returning nothing.

WHY

It makes absence explicit in the signature.

WHAT TO BE CAREFUL WITH

Checked exceptions, which are frequently caught and ignored Deep inheritance hierarchies Over-engineering with patterns that add no value

WHAT TO USE FOR COLLECTIONS

The standard collections, and the stream facilities for transformation.

WHAT TO TEST WITH

The standard testing framework, with a mocking library where needed.

WHAT TO MEASURE

Memory and garbage collection behaviour, under load.

WHY

Garbage collection pauses are the commonest performance surprise.

WHAT TO CONFIGURE

Heap sizing appropriate to the workload and the machine.


Was this answer helpful?
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot