dato / i

Correcciones comunes a TPs de Algoritmos (incomplete)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Estructura interna de funciones

dato opened this issue · comments

En materias anteriores se le dio mucha importancia a no repetir código, aunando todas las copias en una única función común con los argumentos apropiados.

En esta materia queremos practicar que el ese código sea
simple, legible y conciso, pues cuanto menos código haya en una función,
y más simple y fácil de entender sea, más probable es que no albergue errores
tras revisarlo (o corregirlo).

Estas tres cualidades —sencillez, legibilidad y brevedad— están muy relacionadas pero, a veces, en conflicto (esto es, empujan en direcciones contrapuestas o contradictorias). Gran parte de lo que se debe practicar es encontrar el mejor equilibrio.

Como ejemplo completo, se ofrece a continuación una función inventada contrato_vencido(), y se proporcionan cinco ejemplos de implementación, de los cuales una entrega aprobable usaría la tercera o la cuarta versión.¹

(¹) La cuarta versión sería, en mi opinión, una excelente resolución para esta materia. La quinta versión también está muy bien, y elicita un debate entre cuál de las dos es más legible. La segunda versión es de la que queremos aprender a alejarnos.

Enlace al ejemplo: https://github.com/dato/i/blob/862a451/4/contrato.c#L26-L131