Alpha's Manifesto

A black and white figure's thought-hive

Death to Singletons!

Singleton.Instance.SelfDestruct();

Evil Singleton

No, I’m not talking about those that can’t find someone to be with. You’re ok in my book.

One of my favorite question to ask at technical interviews is “Can you tell me advantages and disadvantages of the singleton pattern?” I get varied responses, but while almost everybody can think of the advantages, nobody mentions the problems that come along with it. I’m going to quickly explain what singletons are and then roast them good.

(Read more →)

Link del día: Mónadas en JavaScript

Notesé que el título habla de mónadas, y no de monadas. Esto se trata de un artículo algo extenso, pero muy interesante, de cómo el concepto de mónadas se puede aplicar a cualquier lenguaje que permita el uso de objetos función o lambdas. Y qué lenguaje más simple para demostrar esto que JavaScript: Understanding Monads With JavaScript.

El artículo nos lleva sobre una estructura muy simple (un array utilizado como pila) en donde se ponen dos valores y luego se recuperan. Ese mismo proceso se va modificando en la forma en que se codifica hasta el punto de lograr las mónadas: objetos “computables” totalmente encapsulados en donde se abstrae de nosotros el procesamiento y la estructura, que a la vez, es más funcional que procedural.

Por supuesto que para los que venimos de programación orientada a objetos (OOP) esto nos debe de resultar un poco raro, pero podemos ver fácilmente la relación con otros lenguajes que no tienen esta orientación, sino una orientación, como decía, más funcional, y como podemos en base a ellos también modelar la encapsulación, en estructuras “fractaloides”, que contienen subpartes que, bajo la misma estructura, hacen más simple los procesamientos internos de nuestro sistema.

Suena muy loco, pero si logran comprender el artículo los invito a llevarlo hasta donde su imaginación lo permita, y luego preguntarse si el gráfico en ese blog no está muy apropiadamente colocado.

Soy un zorrinito funcional.

Link of the day: Writing Testable Code

I’ve been looking into some documentation on how testable code should be written. They all say pretty much the same, but I found this article by Isa Goksu which is quite extensive on some particular points, and also provides a good linking to other related articles. He mentions concepts that are closely related to testing and test-driven development, like The Simplest Thing that Could Possibly Work, or Law of Demeter (which is a good design pattern too), some not-as-spread-as-they-should-be Principles of Object Oriented Design, and so on.

Remember we also have Google Testing blog where sometimes guidelines about testing and good testable code is engineered.

Hope it’s a testable Friday for you!

I’m a testable little skunk.