--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Can someone share a link to the slides, please ?I've found one here: http://www.edinburgh.bcs.org/events/2012-13/131204.pdfBut maybe there is a better one with each slide on a separate page.
Thanks.
On Tue, Jan 14, 2014 at 1:31 PM, Anthony Green <anthony.ch...@gmail.com> wrote:
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriented-software+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
At one point in the presentation, Steve did something that was very memorable for me. He said something like (my paraphrasing):"If there's a continuum of design where one end is procedures [extends his left hand] and the other side is objects [extends his right hand], most people are somewhere around here [Steve puts his hand about a third of the way from the procedures end]."Or if I can try with some plain text:Procedures [=====*==========] Objects* Most people are hereSo I'm curious - in your experiences, what aspects do you think people are missing?Steve, I'm curious to hear what you intended when you say it -- and I'm also curious what the rest of this group has found?
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
@mfeathers I have a copy of ‘Bitter EJB’ that I keep purely for historical interest. Future generations need to know.
"The vast majority of Java EE applications are built in a procedural way without a reason. The business logic is decomposed into tasks and resources, which are mapped into Controls and anemic, persistent entities. Such a procedural approach works surprisingly well until type-specific behavior for domain objects must be realized."..."All the shortcomings mentioned here are caused by the lack of object orientation in the persistence layer of most J2EE and Java EE applications."
"The solution is surprisingly simple: Model your application with real objects and don't care about the persistence at the beginning. Real objects imply cohesive classes with encapsulated state, related behaviour, and inheritance. Just put business logic into the domain objects and use inheritance where appropriate. JPA turns out to be really flexible for mapping rich domain objects into relational tables. The more complex is the logic you have to realize, the less viable is the development of applications in a procedural way with anemic domain objects."
"The outdated J2EE CMP persistence didn't supported inheritance or polymorphic queries, so the anemic domain object approach was the only viable solution. The J2EE patterns were designed to mitigate such restrictions. Although alternative solutions, such as JDO or Hibernate, support inheritance, the situation did not improve. Due to the implementation of outdated patterns, most of the domain objects in production are still anemic -- without any reasonable explanation.
With the ubiquity of JPA, it's time to rethink the way complex logic is developed. Persistence is a cross-cutting concern and should not have any impact on design or, in particular, on the amount of logic residing in domain objects. Only the remaining cross-cutting and, often, procedural logic should be implemented in a Control. You should have a good reason to split the state and behaviour into separate layers.
Rich domain objects have become a best practice and the anemic domain model (http://www.martinfowler.com/bliki/AnemicDomainModel.html) is an anti-pattern, at least in more ambitious projects."
So I'm curious - in your experiences, what aspects do you think people are missing?
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
I can tell you what was missing for me:Alan Kay's idea that the design of the system was expressed by the messages objects send each other.
At my age I'm very late to the party, but it does feel like a significant proportion of those now employed in the software field haven't undertaken that journey of discovery.
So I'm curious - in your experiences, what aspects do you think people are missing?I can tell you what was missing for me:Alan Kay's idea that the design of the system was expressed by the messages objects send each other.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
One thing that puzzles me is the number of prodigies software engineering seems to have, how do so many 20-somethings reach senior development positions in their first job out of college? Where are the experienced mentors?