New York Design Patterns February 07, 2007 06:30 over 5 years ago
A few years ago when I worked in a small company called Javahouse I decided for my self that I have to know more about design patterns. I wanted to connect to the best people in the community. I wanted to get on top of the entire design pattern stories in J2EE context and learn – really learn, all about the pros and cons in patterns.
I felt that all developers had there own private opinion on what and how design pattern was working. And the biggest pain was to select the designs to use in an application and at the same time been able to explain why. Not everybody knows about pattern model language.
This drew me to all the way to New York City in fall 2002 to a curse which ware held by Owen Taylor. He is a cool java dude and has a great personality and he is the TOP dog in patterns. Also he was, and still is, a super Java performances specialist and now working for gigaspaces.com. At that time he was working for from theserverside.com and he was driving the best sessions in the world when is comes to design patterns.
So, what is a design pattern?
- A design pattern is a general repeatable solution to a commonly-occurring problem.
- Design patterns can speed up the development process.
- Reusing design patterns helps to prevent subtle issues that can cause major problems.
- A design pattern isn’t a finished design that can be transformed directly into code.
- Patterns allow developers to communicate using well-known, well understood names for software interactions.
Some of the keywords, or goals to your application requirements clud be fx.
* Decoupled interfaces * Reduce server round trips * Error handling, learning desirabilities * Interfaces between other software system * Performance (between other systems) * Maintenance * Quality and reliability
It is funny! At that time I was learning all about design patterns and how to use them in real lift scenarios and Owen was good as hell to get the essential stuff out of evenly patterns. In resent years I’ve have been successful implementing all the know-how from this form for thinking.
However, in recent months, I’ve been thinking a lot of the times spend in NY hearing Owen talk and pulling me many books. The value for my customers has been great and I have built a lot of applications relaying on these principles. I guess. In that time working whit Java it was clearly the way to do a lot of software. But, maybe I could have done a lot more instead of just making layering and transport classes.
They are boring, pointless and leading to bad productivity. Let’s take a datatransferobject. A DTO is made to transport data between logic layers in an application but why not just use model objects direct. What about an session façade object? It’s just makes object orientated thinking impossible. All it’s there for is to pass through method signatures. This extra its not elegance, its not beauty, its not sheer perfection! This is obvious only my personal opinion.
I feel obliged to state that I fell that all them Java-centric design patterns are old-fashioned. When I use the term java-centric it’s because I think that most Java people tent to be in a low level abstraction. Verly few people has the power to see things in big picture.
If the biggest percentage of errors still comes from the fact that people cannot grasp the basic concept of objects and how objects interact how is the understanding on design patterns can be, then?
I for one ultimately decided not to invest more of my time and efforts in learning boring, ugly old Java paradigm.
But, I was doing a lot of running around near Battery Park on Manhattan and enjoyed myself.
By Frank Vilhelmsen - 1 tag: patterns - 2 comments on New York Design Patterns - Add comment
Frank Vilhelmsen February 07, 2007 06:30 over 5 years ago
Hi Yichun, nice to hear from you again. I hope all is good in your life.
Some problems happen over and over again in a given context and Design Pattern provides a core of the solution in such a way that you can use the core solution every time but implementation should and may vary and the main reason behind that is we have the core solution and not the exact solution. We can discuss an example here about database normalization. Normalization is a pattern (Core solution to database design) but what level of normalization you need (exact solution) depends on your requirement and context.
I don’t think that Newton’s 3 theory are in the same group as design patterns. Newton’s third law of motion, a turning action of the flow will result in a re-action on the object
Yichun February 07, 2007 06:30 over 5 years ago
however some fundamental desgin patterns should always exit, just like Newton’s 3 theories. It should indpendent of languages and technologies.
Some J2EE design patterns, or java design patter is coming becoming ugly, because new tech. coming up. Life is becoming simple as it used to be. So some patterns will pass away. As everything do in this world.
There are some patterns should be independent of tech. but realities; In another side, some patterns should be side-products of tech., it will go eventually with their hosts.