Discussions

General J2EE: The framework jungle, and getting things done

  1. The framework jungle, and getting things done (1 messages)

    Hi all, This is in reference to my blog post here - http://optilude.blogspot.com/2006/10/mile-high-stack.html I am pretty good developer, and I know Java well. I have a preference for Python (cut me some slack, at least it's not Rails) mainly because I'm actively involved in Plone. I also happen to think that the aspect orientation of the Zope 3 (note - 3; it's new, it's hip, no-one's heard about it) component architecture is beautiful, if you're familiar with that - maybe it influences my thinking. But really, all I want is to get something done whilst not writing code that makes me feel dirty and sad. On our current project, we tried to evaluate the landscape of technologies and pick the ones that would be the most future-proof. Unfortunately, this wasn't a very big application (2-3 months of development) so we couldn't justify spending six months reading books and learning every framework under the sun. We settled for JSF on Tomcat with MyFaces and Facelets, used Maven and Eclipse as our main tools, Junit, DBUnit and jMock were the primary testing tools, and we used Hibernate for persistence. We used our own service locators with JNDI, mostly because we didn't have time to investigate what other framework could handle this for us. In terms of our experience, Hibernate is great (though iBATIS looks interesting). DBUnit is fairly good for testing Java code, less good for doing tests against the functionality in stored procedures or other cases where you need test data to varity from test to test, rather than have the same dataset for the entire testcase class (it's too slow to set up decent test fixtures). I like jMock. I'm quite disappointed by JSF, though - it's too complex, too much random stuff going on in the background (inline JavaScript that performs an HTTP POST when you click a link? You have got to be kidding...), and is sometimes unpredictable and hard to debug (pages that only appear on the second click). Maybe these are bugs, and I'm quite sure that there are details I'm just not aware of. More on this here - http://optilude.blogspot.com/2006/10/ignorance-and-java-server-faces.html However, I would really like for someone to have done this investigation for me. I need a book or set of tutorials, by a respected author who knows what he's doing, who can recommend a set of technologies and tools that work well together (for example, we used to use MyEclipse, which we couldn't make work well with Maven). The landscape is simply to big for me to justify a thorough investigation of every potentially interesting technology and every possible combination out there. I want someone I can *trust*. Most of all, I just want to be productive. I'm willing to invest time up-front in learning, but I need to know what I'm looking at is not barking up the wrong tree. In my experience, most web applications are fairly similar - there is a front end that requires some kind of MVC, there is a services layer with business logic that needs to be discoverable and managable, and there is a persistence layer that needs to be flexible and offer appropriate abstraction. I'd like to believe that a containable set of patterns and technologies could meet this, but if there is such a conensus, I've yet to find it. So - as in my blog - does anyone have a good book recommendation? :)
  2. The trouble with a book of the sort you are looking for -and I agree it would be useful - is that it there is a high chance of it being obsolete, or at least significantly incomplete, by the time it is published. I think the best you can do is keep trying new things and keep learning from other people's experiences I know this is all stating the obvious but......