5.4 Summary
In the end, your goal is to establish a good foundation. Since your
application consists of what you start with (your middleware) plus
everything that you add (your code), you've got to
be careful to add only the things that you need, and only pieces that
make your life easier. The Java community is becoming infamous for
choosing bloated, cumbersome foundational technologies like J2EE
(especially EJB) and growing functional standards until
they're so complex that they are near worthless. You
can learn to recognize and avoid these types of frameworks, though.
To make good decisions about your foundations, you need to consider
many factors beyond technical requirements. All organizations have
biases and many adopt standards that shape the solution before you
even write a single line of code. Carefully evaluate your
team's skills. When you're
considering technical requirements, I recommend iterative
development. Separate questions that affect your foundational
technologies into two sets: outer questions, which can be answered
immediately (at least in part), and inner questions, which come up as
you're coding. In each case, communication plays a
key role. In the next chapter, you'll see techniques
that you can use to allow for extension.
|