This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Hello, I would like to know if modularity is recommended even for small-sized applications. Can I see its benefits even there? I'm afraid to add complexity and don't get so much in return..
Also, does MVC fit anywhere in modularity? Can the model, view and controller be considered as modules? Or should modules be more fine-grained?
I firmly believe modularity is a requirement for large software systems. For small software systems (say > 10k loc), modularity isn't absolutely necessary, at least from a design perspective since smaller systems are inherently easier to understand. Of course, there are other reasons to use modularity, such as deploying different versions of a module alongside each other in the same JVM, hot deployment, or plugin architecture. Even for small systems, modularity can be beneficial. Like all things, modularity is a valuable tool in your arsenal of tools. I tend to shy away from absolutes, because there is always an exception. But I'd have to believe a system must be very small with very simple requirements not to benefit from modularity.