Sunday, January 27, 2008

Code Camp Debrief

My first ever code camp!! It was so worth my time... I learned about all sorts of cool stuff. The talks I attended are above(morning) and below(afternoon).

Taking a top/down approach I'll start with the Castle Project, this was way cooler than I initially realized discovering it on my own, the presenter point out key components that were being used... I felt so grateful having been there to hear it and to have a more deep understanding of how to implement them in my own applications. He also ran over by thirty five minutes talking about Rhino Mocks which was also really good, because I got an opportunity to see what I'm doing correctly and also what I need to change about the way I do Mocking in my tests. Next was Dependency Injection with ObjectBuilder 2.0.. this was by far the most amazing talk. Not only did Brad open my eyes to Inversion Control Containers (what they are, and how there used) but the implementation in ObjectBuilder2.0 is awesome... Chris also gave a talk on Unity which is another Inversion Control Container product which uses ObjectBuilder 2.0 underneath. The ICC(Inversion Control Container) stems or derives from service locator pattern
again the great Martin Fowler has great documentation on. I've known of DI before the code camp... I just didn't know what problem it aimed to solve and more importantly... how it would be useful to me in my development efforts. WAMU will definitely be seeing DI in it's code base very soon. ;)

Soon after that Papa johns arrived and I ate pizza, drank pop, and chatted with Brad, Chris, and company a little more about service locator and DI. Great bunch of guys and brilliant... I had to really think about what I was going to say before I actually said it, but in the end I learned a ton, even found out that ObjectBuilder 1.0 is used underneath eventbroker and other services in CAB Enterprise library stuff... also, System.ComponetModel underneath uses DI to wire up custom componet classes that we as developers write. This began to make so much more sense. :) Happy Day... I actually understand DI and ICC Pattern.

After lunch I walked over to the F# talk, this was way out of my realm and I knew it would be... functional programming is something I've never formally studied, except for the LISP, and TCL courses online that I've watched... other than that it was new and exciting. I got a chance to discover functional programming on .NET level and was able to see what IL is actually generated from the F# so that was really cool as well. After that I went over to Windows Application Enhancements in VS2008. Even though I work on cutting edge stuff at home and on the weekends, that doesn't mean it's at work as well... so I went to this talk to see what's new since I'm probably 6 months to a year away from getting VS2008 at work. Finally, I finished up with Rethinking Unit Testing in XUnit. This was also a good talk... not just because Brad gave it, but because it gave me a new perspective on Testing in general. I've been trying so hard to do TDD for the last year and half and I always give up half way through, usually it's because I don't know where to stop with testing the components in the system under test. This leads me back to the white board and I usually end up saying to myself what I want the application to accomplish... more of a BDD style approach and this works great because I can iron out wrinkles that show up right away and then take care of the few edge cases, and then I'm done with the feature. The XUnit talk helped verify that this was ok to do.
I also found great comfort in this ruby talk as well. Overall code camp was great! I can't wait until ALT.NET this spring. I would definitely advise all developers to attend code camps or other inexpensive events to collaborate with the experts and get a since of the code we all should be writing... as Scott says we need to venture out of the echo chamber to discover what's new and to see how we as developers are progressing in our craft.

-Develop with Passion
(Jean-Paul S. Boodhoo)

No comments:

Post a Comment