READING


Favourite & Recent

 
DEVELOPING

JIRA is Atlassian's J2EE bug tracking, issue tracking and project management package.


 
CONTACTING MIKE

I'm always happy to hear from you. Sometimes it helps to read "About" first.
 
Web:
Click here to send an email to the editor of this weblog. (via Radio)
ICQ:
191468
AIM:
mcannonbrookes
MSN:
mcannonbrookes
Email:
mike at atlassian.com
Cell:
(612) 416 106090
Blog Chalk:
blogchalk: Mike/Male/21-25. Lives in Australia/Sydney/Glebe and speaks English. Spends 80% of daytime online. Uses a Fast (128k-512k) connection.


 
BUILT USING

rebelutionary
Mike Cannon-Brookes on Java, J2EE, OSX, Open Source, Australia, Atlassian, Bug Tracking, JIRA and more...

  Monday, 23 September 2002
 

My thoughts on Joe's response about O/R bridges:

From my experience, if you're building a system and are constrained to a relational database a good O/R persistence layer is essential. The way to think of it is to imagine you have no database at all. Go away database.

Agreed - a persistence layer is essential for any large project. Once you know how to use your framework properly, you'll use it for small projects too. I can get the EE up and running for new projects in literally minutes - including building the whole entity model. Do that with JDO

Now, you're building a system out of objects that lives in memory - magically the memory always lives. Your objects can represent state, relationships and behavior all in one. To persist it, all you have to do is add it to a hashtable. The code is so clean. It's agile. You can do smart things with it (try implementing the strategy pattern in SQL). And performance is great because you're not constantly worrying about network latency as you hit a db.

I find that the performance of OR frameworks is generally pretty poor. The problem with 'use objects and let the framework handle persistence' is that you really do need to know how the framework works to work out the performance of your code. Same deal with RMI. You can't really just forget the object is remote, or your code will be hellishly slow.

Joe then defines JDO (grin) in a few bullet points, here are the ones we differ about:

Classes define all. Definitions of data schemas should come from the java classes themselves, not config files or existing databases.

I don't agree. I love the ability to edit the entitymodel.xml file and add new entities in a flash. It's wickedly fast, and OFBiz goes and creates the tables and columns for me. Granted by your definition OFBiz isn't an OR framework as it doesn't map objects directly.

Sophisticated mapping. Persistent classes should not just contain simple values that map directly to a table. They should also be able to deal with object reference, aggregation, composition, collections/maps, embedded types, inheritence, circular dependencies, etc.

Very hard to find in most frameworks - but definitely nice if you find it.

Simple querying. It should be easy do things like 'find me all employees with a salary of x', or 'all people who orders totalling over x'.

Right. The biggest problem I have with almost all frameworks is the findAll() curse that actually ends up loading too many objects. You have the EJB approach (findAll() just returns primary keys, and then the objects are lazy loaded), or the OFBiz approach (findAll() loads the whole record set in a single query) - but ne'er the twain do meet.

Transparent database management. The tool should be able to look at your object model and find out what changes need to be done to the database schema to support it (and optionally make the changes).

This is a must, and something that very few frameworks do at all.

SQL alone is not complicated. But building an application with SQL scattered around throughout it that's tightly coupled to a database schema can make app dev very messy very quickly. Something I prefer to avoid.

Amen!

[Joe's Jelly]
4:08:52 PM  comment []   
 

Chris is discussing the Importance of the build process. Agreed! I have to try Maven again, I'm sure all the people who rant about it aren't stupid - it's more likely to be me

And you're using an internal version of Sourceforge to track your bugs? I pity you!

3:45:04 PM  comment []   
 

Resin: Standing Ready to Serve. via OnJava.com: Daniel Solin, in his article on Resin, says: "Imagine a Java Web application server that runs on Unix,... [ZOPEN-X: Web Dev and OS X]

*nod* Resin is a very good server. Don't let the "it's not free" fools tell you otherwise - sometimes you get what you pay for. Sometimes you don't 

3:38:02 PM  comment []   
 
Bob is talking about classloading and the The ServerSide article on the same topic. While it's a good explanation of classloaders, I actually thought the article was pretty weak and very PR-driven. It could be summarised as "here's how to do advanced classloading, oh and by the way you need Iona's app server to do it". Poor.
3:34:29 PM  comment []   
 
Just cleaned out my Radio aggregator's old news - and realised all the items I had not deleted in order to post later were gone. Thinking about it, that's probably a good thing. If it's more than 48 hours old, likely someone else has blogged it already right?
3:17:16 PM  comment []   
 
Niel Eyde has added competition to the Java blogger market with his Struts enabled version of PersonalBlog. Competition is good!
2:43:34 PM  comment []   
 

Blog-rant for the day: Why don't people understand that opening windows for me is a bad idea? It's one of the original usability sins.

  • People know how to right click and open a new browser window if they want one.
  • You don't get more traffic or views by opening windows for them.
  • All you do do is piss them off and treat them like newbies.

This rant is brought to you by the letters TSS and JL. Both spawn more freaking windows than an cheap porn site.

2:35:22 PM  comment []   
 

Confused about Java content management systems? There's a thread over at JavaLobby about it, but this post sums up the whole playing field very well.

1:10:43 PM  comment []   
 

For anyone who wasn't at the Cream Party, you missed out on a funny night. Then again, as I forgot to blog the invitation - and very few readers are even from Sydney, you probably couldn't have come anyway

1:07:58 PM  comment []   
 
Wow - I just realised that I haven't posted anything in 4 days. That's the longest blog-free stretch since I started my blog about 3 months ago.

Perhaps this is proof positive that frequency of posting is directly related to volume of 'real work'? Last week was a long one

Don't worry - lots of backed up ideas and posts to get out today.

12:41:35 PM  comment []   
 
Craig M has posted a long discussion about how JSF affects and integrates with Struts. A good read.
12:39:57 PM  comment []   
 



September 2002
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
Aug   Oct


TOPICS

Home, J2EE, Java, OSX, Open Source, Atlassian, Australia, Blogs

this site is a java.blog


WRITING

View All


LOVE THESE


XML FEEDS

Subscribe to "rebelutionary" in Radio UserLand.

Click to see the XML version of this web page.


SITES I READ