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…

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…

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 [https://quinngil.com/2017/08/06/book-review-elegant-objects-vol-1/] by Yegor Bugayenko [https://www.yegor256.com/]. Elegant Objects [https://quinngil.com/2017/08/06/book-review-elegant-objects-vol-1/] being a…

Getting Started With Unit Testing - VS & C#

I was at a the FlatIron Seattle [https://flatironschool.com/campuses/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…

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…

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…

Technical Practices: Low Coupling

Low coupling can mean a few flavors of things depending on your context. My general definition of Low Coupling is "Not knowing what it is, just what it does". This allows us to interact with objects without knowing the underlying implementation, and unable to make any assumptiosn about…

Technical Practices: Switch and Else always evil

> No Getters [https://quinngil.com/2018/05/06/uobjects-never-return-your-data/] 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…