Technical Practices: if only as a Guard Clause

ifs only as a guard clause is one of the most impactful things that can be done to reduce complexity in code. I'm a very strong advocate for a lot of Object Oriented Practices. Most of them, really. I'm not great at all the buzzwords... or words I should know.…

MicroObjects to Technical Practices

MicroObjects is a fantastic way to write OO code. There's very few pain points that I've encountered. The teams using MicroObjects deploy confidently and have near zero bugs. New functionality and features are quick and easy to implement. The practice is vastly different than how most people write code. Most…

My Disagreement With Elegant Objects

We don't have to agree on everything to learn and grow from each other. This is exemplified for me with the Elegant Objects by Yegor Bugayenko. Elegant Objects being a book read about 6 months after an OOBootCamp from Fred George crystallized a few remaining pieces that the boot camp…

Getting Started With Unit Testing - VS & C#

I was at a the FlatIron Seattle open house where I met many great people. I had a great time talking with people about testing and Test Driven Development. It's something not as heavily emphasized as I think it should be in the education and training of individuals in our…

Book Review: Clean Code

I'm going to start this with saying that Clean Code helped me a lot early in my career. It also hindered me a lot. Clean Code places so much emphasis on things so trivial... I was misinformed about what is actually important to writing software. This used to be my…

Technical Practices: Trust Your Code

There's a few ways I've talked about this historically. One of the biggest that is probably well recognized in the industry No Nulls Do not let nulls into your code. Clean Code touches the idea All it takes is one missing null check to send an applicaation spinning out of…

Technical Practices: Switch and Else always evil

No Getters We've covered why we don't use getters. This reason is the fundamental principle driving all of Object Oriented Programming. Encapsulate Behavior. Encapsulating behavior allows changes to that behavior with a guarantee it is changed across the system. We need to encapsulate the behavior. The switch statement and the…

Quick: BookEnd for HttpClient

At a GREAT [Seattle Software Craftsmanshi meetup where David Bernstein gave a talk, there was a question at the end that really piqued my interest. The question was, paraphrased: How can we get tests for something using the HttpClient? This is a C# specific question - and ... well.... I happen…