Cohesion and Coupling Talk at PhillyXP
I had the pleasure of giving a talk at PhillyXP's May meetup. The topic of the talk was Cohesion and Coupling - The Keys To Changing Your Code With Confidenc...
I had the pleasure of giving a talk at PhillyXP's May meetup. The topic of the talk was Cohesion and Coupling - The Keys To Changing Your Code With Confidenc...
One of the many valuable concepts described in Domain-Driven Design is the Ubiquitous Language. The idea is that you should strive to consistently apply the...
In software development these days, unit testing is a pretty well established "best practice". As such, there has grown many best/common practices around uni...
For those who may be unfamilar with Conway's Law, it states:
Getting software from your development machine to production so that your customers can start using it is not a religious experience.
I find the quirks of human nature very interesting. I was recently reminded of one - the ease of familiarity. This is the case where you fall back into old h...
I recently watched Ben Orenstein's talk from Aloha Ruby Conference 2012, Refactoring From Good To Great, with a group of fellow developers. It was very well ...
When two parties sit down for a job interview, they owe it to each other to be honest. That seems like a fairly obvious statement. But I'm not just talking a...
The post I wrote on job hopping ended up being the most viewed post on my blog, thanks in part to a colleague sharing it on Hacker News. There was a lot of f...
I've had, and quit, a lot of jobs. The reasons for doing so vary from moving out of state to seeing layoffs (I've never been laid off myself, but I've surviv...
I've always found the idea of the "best practice" concerning. I think it has to do with my proclivity for being the devil's advocate. Almost any time I hear ...
(This post is largely stream of consciousness after a short conversation I overheard recently. Hopefully it is at least slightly coherent.)
Is code ever really old? What does old code even mean? Or is saying "that code is old" a form of temporal immunity? A statement implying that the statute of ...
I'm a fan of unit testing. I practice test-driven development. But over the years, I've heard and seen statements made by unit testing/TDD practioners along ...
Don't.
It's good to know the paradigms of other programming styles even when it's just to apply them to another language.
These are things you often hear about legacy code that has built up large amounts of technical debt. They're a warning when they should be looked at as an op...
Switch statements are used a lot in code. They're certainly a way to make what would otherwise be a long IF-ELSE IF statement more readable. But there are a ...
The final post in my series on lambda expressions, looking at some .NET library helpers that make using lambdas even easier.
The 3rd post in my series on lambda expressions. This one moves you from inlined anonymous methods into lambda expressions.
The 2nd post in my series on lambda expressions. This explains how to inline your delegates as anonymous methods.
I'm going to take the next few blog posts to explain lambda expressions (and delegates) - something we use every day as LINQ users.
Extension methods are features of C# which allow you to add methods to classes without modifying the original type.
Managers push, leaders pull.
As this tale of pair programming comes to an end, I wanted to share a few things that didn't exactly fit within any larger themes.
Among the largest benefits you'll hear about pair programming is a decrease in defects and improved code quality. I'm here to say that in my experience, this...
This post deals with the loss of individuality and potential loss of creativity that can result from working with others.
I figured I'd start the series with the benefits that I've seen with pair programming over the past year and where it seems to work well.
For the past year, I've been working in an environment where pair programming is strictly enforced. This is the first post in what will most likely become a ...
Once upon a time, there was a developer who had recently graduated college. He was a confident and charismatic young lad who liked to think about and attempt...
I've recently been reading a lot about the way GitHub works. One thing they stress is to be asychronous. To that end, they use a tool similar to Basecamp (or...
In April of this year, I spent a week in New York attending Udi Dahan's Advanced Distributed Systems Design course. It was a great course that taught me a lo...
There's been a funny shift since since the invent of the computer. With the increased processing speed, us developers have convinced business folks that they...
One of the patterns I've fallen in love with since starting to use a service bus is the Command Handler pattern. It exists in most distributed messaging bus ...
I've seen a few articles recently of companies who have realized that management does more harm than good. I figured I'd share.
In most applications, developers use integers as their primary keys. And why not? They're dead simple. Most databases have a mechanism with which they can au...