'. '

Use Modular Architecture

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(Double Injection)
(7 intermediate revisions not shown.)
Line 1: Line 1:
-
'''Done: 74d64dca0394'''
+
== Have You Ever Wondered...? ==
 +
OK, so you want to prevent [[NetBeans Runtime Container#Manifesto|object-oriented spaghetti mess]] by splitting our systems into into independent modular pieces, however I wonder how to glue them together? Are there some good practices for doing so? Yes, there are and the
 +
[[Use Modular Architecture|Chapter 7]] gives some. For example to glue pieces together you need some ''injection'' to configure all individual components to work together. The [[Use Modular Architecture|Chapter 7]] builds the understanding for this by starting with the most straightforward and hand-coded solutions and then enhances them to cover ''injection'' as provided by [[wikipedia::Spring_Framework| Spring Framework]] as well as latest releases of [[wikipedia::JDK|JDK]].
-
The example of the JDK as non-modular may be out of date by the time you go to print! :)
+
=== Manifesto of Modular Programming ===
-
* I am afraid we publish few years sooner
+
Get the feel for necessity of [[module system|modular programming]] by reading through the [[NetBeans Runtime Container#Manifesto|manifesto]] and going through the demo described at [[NetBeans Runtime Container]] page.
-
I'd like some discussion of how you modularize a project that already has a large, non-modular, full-of-spaghetti code base.
+
=== Double [[Injection]] ===
-
I think this would resonate with a lot of programmers.
+
-
* I may blog about it or describe that in wiki, but for the book it would be maybe too detailed. Just remind me.
+
The [[Use Modular Architecture|Chapter 7]] also mentions that it might be beneficial to join the strength of [[Spring]] (or other [[Dependency Injection]] technology) and [[Lookup]]. The time has passed since then, and the bridge between these two is available. See [[LookupAndSpring]] for more details. We even have a more theoretical explanation why [[singleton]]s need not be evil.
-
 
+
-
Also, I'd like you to address non-runtime modularization. That is, just enforcing module dependencies at compile time, in the
+
-
ant script. It's perfectly valid, requires no additional software like OSGI, but has some pitfalls (Class.forName, etc).
+
-
For some organizations that are mistrustful of runtime modularization's performance impact (warranted or not), it's better
+
-
than nothing.
+
-
* I have contributed description of Ant [http://ant.apache.org/manual/CoreTasks/javac.html Javac task parameters], search for '''sourcepath=""'''
+
-
 
+
-
--[[User:RichUnger|RichUnger]] 22:40, 10 April 2008 (UTC)
+
-
 
+
-
 
+
-
# Page 99: "Modular programming is here to make it happen." This implies that modular programming encourages the degradation of the architecture rather than preventing it, so you probably meant "Modular programming is here to help prevent it."
+
-
 
+
-
--[[User:TomWheeler|TomWheeler]] Sat Apr 12 19:13:37 CDT 2008
+

Revision as of 08:47, 8 November 2010

Have You Ever Wondered...?

OK, so you want to prevent object-oriented spaghetti mess by splitting our systems into into independent modular pieces, however I wonder how to glue them together? Are there some good practices for doing so? Yes, there are and the Chapter 7 gives some. For example to glue pieces together you need some injection to configure all individual components to work together. The Chapter 7 builds the understanding for this by starting with the most straightforward and hand-coded solutions and then enhances them to cover injection as provided by Spring Framework as well as latest releases of JDK.

Manifesto of Modular Programming

Get the feel for necessity of modular programming by reading through the manifesto and going through the demo described at NetBeans Runtime Container page.

Double Injection

The Chapter 7 also mentions that it might be beneficial to join the strength of Spring (or other Dependency Injection technology) and Lookup. The time has passed since then, and the bridge between these two is available. See LookupAndSpring for more details. We even have a more theoretical explanation why singletons need not be evil.

Personal tools
buy