Legacy Trash (II)

Segunda entrega de este paseo por una aplicación PHP sangrienta. Después de pasar los ojos sobre un montón de líneas de código cuya complejidad solo es justificable en caso de que el programador estuviera realmente preocupado por su estabilidad laboral y después de encontrar:

-Una simpática variable llamada $cúmulo.
-Un script cuyo título era el nombre y apellido del autor.
-Un comentario /***SEGUIMOS***/, que me tranquilizó porque pensé que ya no estábamos siguiendo...

Encontré un par de cosas más interesantes.

Dialecto simplificado

function quitarAcentos($cad)
{
//40 lineas de código que no quiero discutir
$arr['z']='s';
$arr['ce']='se';
$arr['ci']='si';
$arr['ge']='je'; 
$arr['gi']='ji';
$arr['v']='b';
$arr['ll']='y';
$arr[' h']=' ';
$arr['x']='';
foreach ($arr as $i => $v)
{
 $cad=str_replace($i,$v,$cad);
}
}


¿Vieron eso? al parecer la aplicación no solo tiene problemas manejando tildes sino también que las letras c, g, v, ll, h y x son (por alguna razón que espero descubir algún día) problemáticas.
Inmediatamente abajo de esta función hay un bloque de código que hace la misma quita de tildes pero usando regex. Al parecer este enfoque no funcionó porque está totalmente comentado, pero claramente fue dejado ahí como muestra de un momento de lucidez a medias.

Not invented here (yet)

function minimoCero($num)
{
 $num=entero($num);
 if ($num<0 function="" if="" lt="" min="" minimo="" num="" return="">
No hay mucho que decir. Todo esta lógica de mínimos y máximos está solucionada desde PHP 4.

I'll not repeat myself, i'll not repeat myself, I will not repeat myself

Cada script que tiene una mínima lógica relacionada con el uso de días o meses tiene su propio Array de 7 posiciones para los días o de 12 para los meses. Supongo que esto tiene sentido ya que en algunos arrays los días aparecen con tilde y en otros no, en algunos con mayúsculas y en otros no, etc. Espero que sus detectores de sarcasmo no estén por estallar.

PD: No puedo evitar pensar que quizá:
- Soy un poco malo.
- Quién escribió todo este código lo hizo con sus mejores intenciones.
- Quién escribió no estaba estafando a nadie.
- Su autor solo fue un adolescente presuntuoso y que probablemente su código tiene mayor calidad de cualquier cosa que yo podría haber escrito.
- Solo fue un proyecto de juguete que se fue de las manos.

Sin embargo, tampoco puedo evitar pensar que debe haber cientos de proyectos crap que nos dejan mal parados a todos los desarrolladores y creo que ese pensamiento me puede más. Saludos.

Comentarios

Entradas populares de este blog

Introduccion a x86 ASM - Registros

JS: Triángulo de Pascal