Tuesday, 21 July 2009

El principio PIE (Program Intently and Expressively)

Hoy quiero compartir con vosotros uno de los principios ágiles más importantes llamado PIE Principle (Program Intently and Expressively). Vendría a ser "programa atentamente y expresivamente". Hace tiempo que sigo los pasos de las buenas prácticas AGILE, y a mis colegas siempre les hablo de éstas practicas al igual que sobretodo utilizarlas. Sobretodo del DRY y del YAGNI que son muy importantes para mantener tu código limpio y entendible.


El principio PIE se basa en que el código debe ser más entendible, y que debemos evitar cosas como estas:


box := TBox.Create(1); //Direction = 1 - Down


Como podéis ver en el ejemplo, en la creación del objeto aparecen parámetros que a primera vista ni siquiera entendemos. Una codificación numérica expresa solo eso "números" y a lo mejor internamente si siguiésemos el programa veríamos que ese número significa un estado. Por lo tanto, la solución es simple, utiliza el estado en vez de un número, de esta manera estamos haciendo el código más entendible y simple.

Para solucionar el ejemplo anterior, solo tenemos que crear un tipo enumerado que cumpla con el significado de la creación de nuestro objeto:


type
TDirection = (isUp, isDown, isLeft, isRight);


begin
box := TBox.Create(TDirection.isDown);


Según el libro Practices of an Agile Developer, Andy hunt nos describe el PIE principle como:
Code you writemust clearly communicate your intent and must be expressive. By doing so, your code will be readable and understandable. Since your code is not confusing, you will also avoid some potential errors. Program Intently and Expressively.
Otro de los puntos fuertes es sobre el tema de los arrays o de los punteros con los índices +1/-1 los cuáles nunca sabemos si lo tenemos que incrementar o decrementar. Todos estos problemas hay que tenerlos muy en cuenta a la hora de ponerse a programar y evitar crear parxes para evitar estos problemas. En el libro también nos lo comentan:
Never kludge in a fix without understanding. The +1/-1 syndrome starts innocently enough but rapidly escalates into an opaque mess. Fix the problem, not the symptom.

1 comment:

  1. Basicamente evitar los trukillos!! Ya que, el propio implenetador puede olvidar el porque del trukillo.

    ReplyDelete