Announcement Announcement Module
Collapse
No announcement yet.
Need for Spring "Framework Pattern Templates" Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by benethridge View Post
    Karl, this makes sense to me. Well said.
    +1 from me; well said.

    The problem I raised before still stands though; that the best way to transfer that knowledge is in a dynamic context, not a static book.

    At least to me, the most important lessons isn't just why architectureA is the best choice, it is why architectureB..X were excluded. This information just isn't going to get in a book

    To illustrate my point of view take ValueObjects...the most hideous anti-pattern ever It is nothing more than a workaround to reduce network overhead, yet how many people have read "ValueObjects are a good J2EE pattern" and then use them in their single JVM architecture? Or even use the full EJB stack in a single VM? The reason they do this is because they do not understand the rationale for this pattern, the pros and the cons. They don't see the bigger picture.

    I think the only way this kind of information can really be passed on is through a group of people discussing the architecture, working through the pros/cons etc. Note, I am not talking about architecting to the nth degree, not at all. I am simply saying that a dynamin discussion is in my experience the only way to really pass on all this information.

    i21 do (BTW ) do architecture reviews, project health checks, project kick starts etc....

    Comment


    • #17
      I couldn't agree with you more that knowledge transfer is best performed in a dynamic context. I think most people would sooner have the debates than sit down and thumb through the wealth of books on the market (no offence intended to the authors).

      I also agree with the idea that the discounted ideas are possibly more important to understand than the chosen one. I really don't want to just know the answer to a question, I want to understand the process to get there and also the possible answers that fell by the way side.

      I do think however lots of companies suffer from a lack of experience on this score. In the past I've worked with the Presriptive framework builder and all of the other architect stereotypes who doom a project. In this situation there is no debate. I've also worked with the guy who partially reads something and thinks it needs to be applied everywhere.

      Using a company like i21 would be a great idea and I would love to use something like that in the future, but I'm afraid to say lots of companies would just sooner muddle through (typically a management desicion).

      In a company that lacks experience and something like i21 consultancy where do we start?

      You brought up the example of ValueObjects (the most hideous anti-pattern ever) in a single JVM environment. This thread (http://www.theserverside.com/news/th...hread_id=38047) has lots of people that would disagree (last I heard OpenInSessionInView was the most evil thing since ValueObjects, ahhh). Spring 2.0 vs. the Anemic Domain Model on TSS just shows how confused people seem to be. There was even an article recently to clear up confusation about validation, think it was written by some i21 hot shot :-). Are people even confused about this?

      I just get the impression that there are lots of confused people out there muddling through. If thats just how it has to be, fair enough. I just think its worth while trying to brainstorm some ideas and try and help the community develop best practices for applying Spring.

      Karl
      1 and counting saved for Spring Training :-)

      Comment


      • #18
        Originally posted by karldmoore View Post
        I do think however lots of companies suffer from a lack of experience on this score. In the past I've worked with the Presriptive framework builder and all of the other architect stereotypes who doom a project. In this situation there is no debate.
        Yeah; I know exactly what you mean. There really is no good answer to that. I personally have walked away from a number of projects (as a contractor) that were "headed up" by the "my way or the highway" brigade. I chose the highway.

        Originally posted by karldmoore View Post
        I've also worked with the guy who partially reads something and thinks it needs to be applied everywhere.
        Exactly, and my concern about yet another book(s) is that this will just exacerbate the problem.

        Originally posted by karldmoore View Post
        In a company that lacks experience and something like i21 consultancy where do we start?
        That is a good question. There are lots of experienced architects out there, but as you infered, it quality improvement can be expensive and does require authorisation from middle management. In terms of "muddling along", I think there are two types of developers; those who can travel the road very effectively, and those that want to build a new road. IMO there are far more of the first kind then the second, and that is fine.

        If you are the second kind (which it sounds like you are), then there is already an excellent collection of books out there (PoEA, DDD, CodeComplete, XP explained, and of course the red Wrox books ), after that it is trial and error.

        Of course there are also these (and other) forums/mailing lists/JUGs etc.

        Originally posted by karldmoore View Post
        You brought up the example of ValueObjects (the most hideous anti-pattern ever) in a single JVM environment. This thread (http://www.theserverside.com/news/th...hread_id=38047) has lots of people that would disagree (last I heard OpenInSessionInView was the most evil thing since ValueObjects, ahhh).
        Yeah, that was an unfortunate example of how people miss the big picture (the technique being demonstrated) and focus on the detail (the DAO injection).

        I personally do not think the DAO should be injected, but that is a whole other story. DI into domain models = "A very good thing", however, just because we have a shiny new hammer doesn't mean we should make everything a nail

        Originally posted by karldmoore View Post
        Spring 2.0 vs. the Anemic Domain Model on TSS just shows how confused people seem to be.
        I think you should consider the audience on that one DI into domain models is clearly a good thing and really, anybody who has any sense should be able to realise that, regardless of the examples.

        Originally posted by karldmoore View Post
        There was even an article recently to clear up confusation about validation, think it was written by some i21 hot shot :-). Are people even confused about this?
        Yeah, I would steer clear of that guy

        Originally posted by karldmoore View Post
        I just get the impression that there are lots of confused people out there muddling through. If thats just how it has to be, fair enough. I just think its worth while trying to brainstorm some ideas and try and help the community develop best practices for applying Spring.
        I absolutely agree with you, just not sure how....

        Comment


        • #19
          Originally posted by yatesco View Post
          That is a good question. There are lots of experienced architects out there, but as you infered, it quality improvement can be expensive and does require authorisation from middle management. In terms of "muddling along", I think there are two types of developers; those who can travel the road very effectively, and those that want to build a new road. IMO there are far more of the first kind then the second, and that is fine.

          If you are the second kind (which it sounds like you are), then there is already an excellent collection of books out there (PoEA, DDD, CodeComplete, XP explained, and of course the red Wrox books ), after that it is trial and error.

          Of course there are also these (and other) forums/mailing lists/JUGs etc.
          Errrr I'm worried now do I want to be the second kind, which ones the are good guys :-).

          Again I agree there are lots of good books out there, I think I've read most of them. So..... as we said before we don't want another book (theres no room left on my shelf anyway). There wealth of books out there spell out lots of the pros and cons and there is no need to rehash that. So lets not bother there. Forums and mailing lists are good but I'm seeing the same kind of posts all the time.

          As far as I can see, there are typically two camps of people; don't want to know WHY, I'll follow the recommended approach and the rest of us.

          The rest of us will be quite happy to trudge through books, forums, code and anything else we can lay our hands on (maybe even do some coding). We'll learn all the WHYs. There is still a gap in our knowledge here though as we are treading new ground and aren't quite sure how to approach it.

          I think what we need is simply a getting started road map. The reference documention is obviously the definitive source for Spring but there is something missing both before and after it. The before is simply references to existing high level documentation on the framework and its uses. The after is FAQs and discussion of how to apply Spring to common architectural requirements. We all keep talking about useful books here so lets pool the useful references for other people (I can't be the only one who's read a book cover to cover only to find the blurb was the most useful part). There is plenty of existing documention for the WHYs lets just point people at it.

          This is where the two camps of people converge, they both would like a recommended blueprint or a template application to work from (I realise Spring already ships with a few). There are obviously millions of requirements variations, but with so many people churning out the same kind applications lets give them a closer starting point.

          Originally posted by yatesco View Post
          In my apps, I typically have a View layer, a service layer which co-ordinates the domain model and represent a use case, a DAO layer and a domain model containing the business logic (i.e. Address, Person etc.). My domain model however spans all the layers, there is no translation of the Person between the layers.
          Right, good start. For a co-located application this is the recommended approach. All we need to do is supply more details about this approach at a lower level e.g. transactions, validation, exception handling, security, internationalisation, unit testing. I'm sure a few simple diagrams and some text would do it.

          There aren't many WHY questions here, thats what the guided reading is for. These are just prescribed best practises for simple architectural problems. If we can implement each approach as well, job done. Something that closer matches a real system and with more substance to it is going to be much more useful to the majority of people.

          There might not even be a need to provide more than a handful of blueprints and a couple of template applications. People are going to need there own variations, but we can't do everything for them. I just feel there are some very common design goals we can demonstrate.

          Karl
          Spent his Spring training savings on a sandwich, having to start saving again :-(
          Last edited by karldmoore; Oct 19th, 2006, 02:37 PM.

          Comment


          • #20
            Sounds like AppFuse to me. Embodies much of the best practices of several frameworks and puts into a neat little package.

            Comment


            • #21
              Thanks for the tip, I'll check that out.

              Comment


              • #22
                Well said, again, Karl.

                Bill, I heard that AppFuse is good, but comes with a huge learning curve. You think that is so?

                Ben

                Comment


                • #23
                  I haven't used it myself so I don't know.

                  Comment


                  • #24
                    Originally posted by wpoitras View Post
                    I haven't used it myself so I don't know.
                    Just had a look at Appfuse. As far as the learning curve goes, its just running ant commands, only took five minutes to get up and running. I was really impressed. Given the fact it supports different MVC and database frameworks as well, it should clear up lots of the "how do I integrate questions for people". I'm going to have a more detailed look into the code and report back later.

                    Comment

                    Working...
                    X