Abstract :
One of the best ways to keep future bugs out is to maintain a proper "separation of concerns", that is, design the code so that classes and modules have clear, well-defined, and isolated responsibilities and well-understood semantics. The fundamental goal is to write shy code - code that doesn\´t reveal too much of itself to anyone else and doesn\´t talk to others any more than is necessary. Shy code keeps to itself, not like that gossipy neighbor who\´s involved in everyone else\´s comings and goings. Shy code would never show its "privates" to "friends," as some more promiscuous C++ code might. The authors examine some ways to help us create shy code. Although we are primarily looking at object-oriented examples, the same principles apply to procedural code as well.