Failure is inevitable


INounPhrase or IVerbPhrase?

Naming is an important part of creating clean, readable code.  The de facto standard for naming interfaces in the .NET community has always been INounPhrase, such as IEnumerable, IDbConnection, etc.  However, Rob Simmons and others have recently been advocating using IVerbPhrase instead, such as IAmEnumerable, IProvideWidgets, etc.  At first I was resistant to this change, but I’m starting to come around.  Note: this is not my usual type of blog post.  This is more me thinking out loud than anything else.  If you’re looking for solid conclusions, you should stop... [More]

Tell-tale Signs of a Good Software Project

I’ve been working in this industry a long time.  I’ve been on projects that were truly a joy to develop for, and I’ve been on projects that were so painful to work with that I found myself wondering if I’d chosen the wrong career.  In hindsight, there are some characteristics that were shared by all of the “good” projects I’ve worked on.  In this post, I’ll describe some of those characteristics. Note that I’m going to use the phrase “good project” subjectively in this post.  It simply refers to any project that I enjoyed working on.  The Path of Least Resistance ... [More]

The Right Way to Do Automocking with Ninject

While StructureMap is definitely my IoC container of choice, it’s not the only game in town.  At my new job, our existing project uses Ninject.   One of my first tasks at this new job was integrating my SpecsFor “framework” into the existing projects.  The original version of SpecsFor worked with StructureMap and leveraged its auto-mocking container.  While Ninject has an auto-mocking extension, ninject.moq, it is sorely lacking when compared to StructureMap’s offering.  In this post, I’ll show you how to modify it into a useful automocking container, and I’ll als... [More]