- inheriting from HibernateDaoSupport
- using HibernateTemplate
12/03/09
A case for the Generic lightweight DAO
This post stems from my research in how to correctly use hibernate3 in a spring-webmvc application. It outlines the various means to do so and proposes a rationale for using a generic lightweight DAO pattern.
I have been spending some time researching the various ways of using hibernate3 with spring in a web app.
The first thing I noticed is that there are multiple ways of doing that. The immediately obvious way is to inject the hibernate session factory in the various business components which would have to manipulate persistent data. This allows to work directly with the hibernate API, however it also means your business layer will become tightly coupled to Hibernate (think API usage all over the place) changing to a different orm later would be very hard. it also means code which is harder to test.
The common answer to that is to use the DAO pattern (Not everyone agrees, see the ORM and the misleading DAO pattern at the serverside ). Supposedly it helps with the decoupling by centralizing the API usage in one place. On the implementation side however things tend to get messier than the theory predicts.
Spring 2.5 proposes two ways to create DAO implementations :
Libellés :
pattern,
programming,
spring
11/03/09
Manifesto for software craftmanship
Following a blog post by Dave Carver which I found through planet eclipse. I have signed the Manifesto for software craftmanship. It values the following :
Not only working software,
but also well-crafted software
Not only responding to change,
but also steadily adding value
Not only individuals and interactions,
but also a community of professionals
Not only customer collaboration,
but also productive partnerships
Libellés :
manifesto,
programming
04/03/09
VCS branching diagram
At last I have found a tool which makes branch diagrams easy enough to be formalized : yED
It takes a couple seconds getting used to the UI: clicking drops a node by default, dragging creates an edge (at first you create a few unwanted nodes and edges) they have a very friendly palette system which allows you to define a node or edge archetype in a few cliks.
Once you have defined you palette this is what you can get in a couple minutes:
Alignement is handled automatically through the use of yED layouts. there are many many options, and I couldn't get it to do exactly what I wanted yet but I haven't read any doc either :)
Definitely a tool I'll remeber for network and graph visualisation
Alignement is handled automatically through the use of yED layouts. there are many many options, and I couldn't get it to do exactly what I wanted yet but I haven't read any doc either :)
Definitely a tool I'll remeber for network and graph visualisation
Inscription à :
Messages (Atom)
