R7k_red_large
R7k_red_large

Detecting Refactoring Diligence

Michael Feathers
December 21, 2014

We’re really at a point in the industry where all developers should be aware of the importance of continuous refactoring. It’s easy to look at deteriorating code bases and get the sense that if only we’d done large refactorings along the way things would be better. But, code goes bad slowly and it happens through a predictable process. We add . . .

Read More

Detecting Shoved Code

Michael Feathers
November 26, 2014

I’m constantly amazed at how biological code seems. It grows and it sprawls. It becomes easier to patch than change deeply. I have this theory that any system the where the cost of changing old structure is high has a strong biological feel. Code, in the worst cases, is like a decaying city. It's easy to add a new sign or a clean up a . . .

Read More

Using Repository Analysis to Find Single Responsibility Violations

Michael Feathers
August 25, 2014

I’ve been thinking about cohesion, coupling, and the Single Responsibility Principle quite a bit recently. The other day I realized that cohesion is harder to explain or understand than coupling. I figured I’d put that thought out into the world via twitter (not realizing that Glenn Vanderburg had said essentially the same thing about four . . .

Read More

An Open Letter to the FCC on Net Neutrality

Michael Feathers
July 18, 2014

Over the past 30 years, the internet has transformed the world in immeasurable ways. As internet use spread from universities to the mainstream, millions of people were able to access and contribute knowledge, build businesses and connect with the world - at first with simple dialup modems over phone lines and later with more advanced . . .

Read More

Microservices Until Macro Complexity

Michael Feathers
July 03, 2014

At QCon New York last month I hosted a panel on architecture and nearly all of the questions were about microservices. It isn’t hard to sense the excitement many are feeling about this approach. When I first heard about microservices, the people talking about them framed them as a reaction to monolithic architecture, frameworks, and SOA. It . . .

Read More

Microservices and the Failure of Encapsulation

Michael Feathers
June 20, 2014

One of the things that we don’t appreciate enough in software development is the way that ideas echo across the industry. I remember seeing Rich Hickey and Stu Halloway presenting Datomic and feeling palpable echoes of git’s repository model. A similar thing happened to me a while ago with microservices - I got the sense that they were an . . .

Read More

Literate Chains for Functional Programming

Michael Feathers
June 19, 2014

One of the clear benefits of functional programming is composability. It’s easy to take fundamental operations like maps, filters, and folds, and build up computations that are both powerful and concise. But sometimes concision can come at the expense of readability.

This Ruby code creates a data structure that is used to generate the next . . .

Read More

Archive
  Subscribe by Email and Never Miss a Post