Today was the last of the Hal Helms Real World Object Oriented Development class here in Sarasota, Florida. With what the little brain capacity we had left, we spent the majority of the day defining and then coding the actual domain model of our sample Coffee Shop application. To me, this is where things really get fun; this is where we really get down and dirty and start wiring CFC's together and creating mock CFCs for contract tests.
Unfortunately, we didn't have enough time to get the app up and running, but Hal tells us that he will put the finishing touches on it this weekend. Even so, I think we really started to get a good taste of all the object goodness of such an architecture. Speaking of objects, though, we did have a good discussion today about what it means to be an object and that although not all CFC's might have enough "behavior" to be considered real objects, they still add a great amount of convenience to your programming. See, when we started to learn about what "real" object oriented programming is, in an attempt to find the "right way," we dismiss all non-objects as anemic and therefore symptoms of a poor architecture. Because of this, we seek to assign behavior in places that it shouldn't be. But, when we accept that not all objects are meant to have "behavior", we can start to see that other OOP-qualities such as encapsulation, polymorphism, and cohesion can still be leveraged in a non-behavior context.
Forgive me if I am not explaining myself clearly - my mind is a bit fried :)
To bring the week to a close, the remaining attendees went out to Munchies 420 where Steve proceeded to take their Hot Wing Challenge - trying to eat 10 wings in 20 minutes. He made it through 3 wings before his eyes turned completely bloodshot and he started tearing up and his knees buckled a bit. A brave man, that Steve.