Keep methods short and give classes a single, clear responsibility.
Keep methods short and give classes a single, clear responsibility. It's not necessary, but TDD can help you acheive this.
1 this was pretty much what I answered, just noticed you beat me to it – kekekela Aug 12 '10 at 20:55.
One file per class. Folders for related classes. Use modules/packages/assemblies/namespaces if your language supports them.In general, keep many levels of abstraction, and try to keep them separate through whatever mechanism you can in your language/ide/platform of choice.
Read Domain Driven Design, which discusses these issues (design, documentation, organization and communication).
I would suggest looking at the principles of Large Scale C++ Software Design by John Lakos (ISBN-13: 978-0201633627) if not the book itself. They are summed up in these lecture notes. Another summary of ideas.
Here's a brief outline of the headings of the principles, which while written about in the C++ context, the geist of which are language agnostic. Internal and External Linkage Components and Dependency Relations Physical erarchy Reducing Link-Time Dependencies: Levelization Reducing Compile-Time Dependencies: Insulation.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.