Friday, February 23, 2007

OO Principles

Hi! Today I am reading the book Head First Object-Oriented Analysis and Design, I specially liked the OO Principles, I have already read about them in c2, but I really like the way they are summarized in this book:
  • OCP: Classes should be open for extension, but closed for modification. (to avoid new requirements breaking old tested code)
  • DRY: Don't repeat yourself, avoid duplicate code by abstracting out things that are common and placing them in a single location. (to avoid having to fix the same thing in different places, or solving the same problema again, and again and again... I believe this is releated to YAGNI balances OAOO.... i guess I could say that YAGNI balances DRY, and therefore DRY equals OAOO)
  • SRP: Single responsability principle, every object in your system should hava a single responsibility, and all the object's services shoul be focused on carry in out that single responsability. (to avoid Big Ball of Mud, a huge object that does everything, that is hard to extend, hart to understand, and lots of stupid little object that do nothing, mmmm, this reminds me of a pricinciple I read about a long time ago about balancing the intelligence between your objects)
  • LSP: Subclasses should be suitable for their base clases (to avoid confusing code, on which you believe you can use a member of class hierarchy, and after trying you realize thet the result is not the expected one)

Thursday, February 22, 2007

OpenLaszlo & Spring & Hibernate

Hi!
Okey, changed my job again, time to rest from .NET and to refresh my Java abilities... my goal for this week is to find an easy way to teach everyone at my new job how to build a great application using: Hibernate + Spring + OpenLazlo...
My Java abilities are a little rusty so this is going to be a really entertaining challenge..

Here are some links I have found about this:

Seems that finding information on Laszlo is harder than I thought...

Requirements Analysis: Negative Space

A while ago, I was part of a team working on a crucial project. We were confident, relying heavily on our detailed plans and clear-cut requi...