Categories
Development

JavaZone over

JavaZone is over. I only got to attend the second day this year, but I caught some good presentations. I think their intentions are to put up videos of most talks on the site. Some highlights:

  • Pragmatic SOA, John Crupi – A good presentation of SOA. Still no warm and cuddly feelings from me, but he did point out that the services had to be task oriented and not just something you make because your boss decides it’s time to go SOA. I’ve got no issues with doing integration in a consistent and good way, but the trouble is that most people go totally overboard and sevice orient everything.
  • WebWork + AJAX, Patrick Lightbody – Not too much new, but an interesting overview of what WW2 is doing and it’s use of DWR and DOJO. Ajax is definitely slick, but it does raise a lot of issues like linking and backbuttons.
  • Building Statoil’s TOPS portfolio, Einar Landre – Interesting overview and experience report of a large scale event system for oil brokerage. He’s a big fan of Domain Driven Design and thought that had probably saved much of the project. He also had some interesting experience with JDO. They experienced a drop from 10 minutes to 25 seconds in processing time for one of their calculations when moved from stored procedure to Java. The stored proc wasn’t probably too well written, but it’s quite impressive anyway. The gains probably came from an easier model to do good calculations on, and repeated use of objects that lead the cache to kick in.
  • Unittesting witth Domain Experts, Alan Perkins – This was mainly a big plug for their program Agitator, but I kind of figured that before I showed up. It looked interesting before I got there, and after Alans super presentation it just seemed awesome. It is an alternative to writing unit tests in JUnit etc. The tool basically analyses and runs your code to with all sorts of garbage to find our what behaviour it exhibits. From this it generates a set of rules. You are then able modify or just take the rule as it is and set it as an assertion on your class. As an example he did a Product class and one of the rules generated was that the product name could be between 0 and 19. This exposed an error in the implementation and he changed it to check that it was between 1 and 20. All the time it showed coverage and let you easily do steps to ensure 100% coverage. When asked for the price he said just “cheap” which probably means the opposite, but I’m going to look into this product. I really think it could be a big timesaver.
  • Effective Enterprise Java, Ted Neward – I’m beginning to see why Ted is considered such an authority. He’s an excellent speaker, writer and it helps to have sane opinions too. 😉 Very entertaining talk where he went through some of the issues from his book. One point especially stressed was of course the cost of network access.
  • Managing Web Conversations with Spring WebFlow, Keith Donald – Interesting presentation for of an interesting technology. I’ll surely be checking it our soon. For the previous system I wrote I think it might have decreased the amount of code drastically. Keith has a bit to go on his presenting technique compared to his colleague Rod Johnson, but it was a good one.

That’s it for me. JavaZone was no disappointment this year either. And of course it helps that you always meet a lot of old aquaintances since the Java community in Oslo is relatively small. See you next year. 🙂

Categories
Development

DAO Layer

Getting the DAO layer right isn’t as easy as one might think. Especially with stateful persistence techonlogies like Hibernate and TopLink. There is a good article on the Hibernate blog here on how to do this in Java 5. For those of us still using 1.4 at least the standard operations is good input for designing our DAOs the old way.

Categories
Development

Maven setup

I did a lot of bad things when setting up Maven for my current project. I learnt a lot, and it did work in the end, but I certainly would do stuff a lot different next time around. It will probably look something like what is described in this article. 🙂