3.5 Summary
This chapter makes only one point: great software maintains focus on
one task. To focus software, sharpen your ability to collect
requirements and control your customers. If you're
not careful, scope creep can confuse the basic theme of your
software. When you've got a more complex problem,
break each fundamental theme into a layer, or subsystem. In general,
common layers are always evolving for Java technologies. Many of the
accepted practices are sound, but others are suspect. Better layers
share a common purpose and an effective interface.
Once you've designed effectively layered software
and built clean software with a distilled purpose, maintain your
clarity of purpose. To keep software focused on a central theme,
you'll need to frequently refactor to loosen the
coupling around tightly coupled components. Loose coupling is
desirable at a lower level, and you can control it by testing and
refactoring with techniques like interfaces. Also, pay attention to
coupling at a higher level, so that each major subsystem is as
isolated as possible. You'll improve reuse and
isolate one subsystem from changes in others. In the next chapter,
we'll discuss how to take the some extreme steps to
reduce coupling between business domain models and services through
increased transparency.
|