Showing posts with label Design. Show all posts

Anatomy of a Breaking Change

 
event

I mentioned that latest release of NMoneys included an "unusual" breaking change.

Let's do some forensics on the internals of such breaking change and how easy it is to solve.

share
comment
  class ,

SOLID principles are not WRONG

 
event

I am aware of the imposed necessity of bringing attention with titles (specially for talks), but one also needs to be aware that titles are, sometimes, the one and only thing that sticks.
And there, lies the need of them not being untrue.

share
comment
  class ,

Equality + implicit = nasty_surprises

 
event

There is a maxim in API design: the principle of least surprise. Whatever an API does it must look obvious and self explanatory so that the developer that uses the API is not surprised by the result or any side effect of such API.

Implicit conversion operators in .NET make it so easy to surprise they should not even be considered in a good designed API.

share
comment
  class ,

A Refactoring Journey

 
event

I have spent a week heavy on the refactoring side. It’s been a while since I spent so much time on a “virgin” codebase, growing it test first. And I want to share with you, guys and girls, a piece of refactoring that ended up being pretty cool.

share
comment
  class ,

Busted!

 
event

I think I said it before, but there are little things as challenging (for a developer) as showing your code publicly. Of course, there are few things as rewarding (for a developer) as showing your code publicly. It is always nerve-breaking: Will they understand it? Will they think is total crap? Will they be aware of all the trade-offs made?

share
comment
  class ,

Implementing Progressive Inner Closure Pattern in C#. 2. Progressiveness

 
event

But before drilling the progressive interface an introduction to the closure “ingredient” is needed.

share
comment
  class ,

Implementing Progressive Inner Closure Pattern in C#. 1. The Problem

 
event

I like some fluent interfaces. Not that I’d like everything API to be this way, but in some situations, it certainly helps due to its expressiveness. The only problem is that, if not created properly, it is difficult to choose the next method in the chain. For that purpose a different type of fluent interface, the so called progressive interfaces, was ideated. The difference is that with the later, the user of the interface will only have available those methods that can be chained for the given link. In other words, progressive interfaces are fluent interfaces that are easy to explore.

share
comment
  class ,

Do Not Know Why I Keep Getting Surprised

 
event

I have already written about the “principle of least surprise” applied to API design and how Microsoft’s .Net Framework developers themselves ignore their own recommendations.
I would not care less if their violations did not waste my time, but they do.

share
comment
  class ,

Integrating IoC Containers

 
event

“Integration” is a very overloaded term (almost as much as “implement”) and I took advantage of it in my not-so-catchy title.

I was preparing some material for some training I gave to some of my co-workers when I realized how the usage of Dependency Injection and getting comfortable with IoC containers has been assimilated into my standard way I develop enterprise software.

share
comment
  class ,

S.O.L.I.D Principles in the Wild

 
event

I just hope no one denies the great value of following these principles.

I am a great believer that by simply observing them every now and then, the quality of the code you create can improve by several orders of magnitude.

share
comment
  class