This week's book giveaway is in the General Computing forum.
We're giving away four copies of Emmy in the Key of Code and have Aimee Lucido on-line!
See this thread for details.
Win a copy of Emmy in the Key of Code this week in the General Computing forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Junilu Lacar
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • Devaka Cooray
  • Tim Cooke
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Ron McLeod
  • Carey Brown
Bartenders:
  • Paweł Baczyński
  • Piet Souris
  • Vijitha Kumara

Development-time modularity and how to achieve it

 
Greenhorn
Posts: 4
IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Kirk,
I've noticed that your book also describes the differences between runtime modularity and the development-time modularity. If I've understood well from the table of contents your proposal for runtime modularity is OSGI. Can you describe in a few words what is development-time modularity and how can it be achieved (technology-wise, maven maybe?). Thanks.

P.S.: The book looks really interesting (haven't had that feeling since reading Clean-Code).
 
author
Posts: 41
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I define two facets of modularity - the runtime model and the development model. The runtime model enforces modularity through the use of a modularity framework, like OSGi. The development model can be broken down into two sub-parts - the programming model and the design paradigm. The programming model is the framework API. The design paradigm are the patterns and principles we apply to develop modular software. In the book, I draw an analogy to OO and EJB. OO's runtime model supports dynamic binding, etc. The programming model allows us to inherit classes and implement interfaces. But until we understand the design paradigm, it's still very difficult to design good OO software. Instead, we end up mostly making a mess of things. The same can be said of modularity. Even though you're using a modularity framework, like OSGi, there is no guarantee that you'll get a well-design modular software system. You still have to define modules at the right level of granularity, cohesion, manage dependencies, make modules usable, etc.

The book focuses on the design paradigm. It helps you design modular software and presents 18 patterns that helps you do this. It shows how you can design modular software even if there is no runtime support for modularity. Then, when runtime support for modularity is available, you'll be positioned to take advantage of it. But if you don't have a modular software system, runtime support for modularity isn't going to lend you any benefits.

Visit the book's website at modularity.kirkk.com where you can review all 18 patterns and download an excerpt of the book. There is also a mobile web application available that you can take with you wherever you go.

--kirk
Twitter: @pragkirk
 
Mircea De
Greenhorn
Posts: 4
IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you for your answer Kirk, I think your book would have been very helpful for myself in my previous endeavors.
 
Anything worth doing well is worth doing poorly first. Just look at this tiny ad:
Java file APIs (DOC, XLS, PDF, and many more)
https://products.aspose.com/total/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!