E/Orrore! Cose da non fare MAI

Per chi avesse letto il post precedente, trascrivo un pezzo di codice emblematico dell’orrendo orrore che si e’ presentato ai miei occhi. Dopo aver perso non poso tempo per capire a cosa servisse il seguente pezzo di codice (si, ho perso tempo perche’ non c’e’ un solo maledettissimo commento utile neanche a pagarlo), ho capito che lo scopo era quello di determinare la data successiva a quella odierna. Il problema non e’ banale, se si cerca di risolverlo a mano (per fortuna qualcuno ha gia’ scritto per noi delle funzioni!!!), xe’ i mesi non hanno tutti lo stesso numero di giorni e bisogna tenere conto anche degli anni bisestili.

PRIMA – CODICE PHP ORIGINALE:

$data_freccia=explode(“-“,$day_post);
$data_freccia[0]–;
if($data_freccia[0]<1){
$data_freccia[1]–;
if($data_freccia[1]==0){
$data_freccia[1]=12;
$data_freccia[2]–;
}
switch($data_freccia[1])
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
$data_freccia[0]=31;
break;
case 4:
case 6:
case 9:
case 11:
$data_freccia[0]=30;
break;
case 2:
if($data_freccia[2]%4==0) $data_freccia[0]=29;
else $data_freccia[0]=28;
break;
}
}
if(strlen($data_freccia[0])<2) $data_freccia[0]=”0″.$data_freccia[0];
$data_freccia=$data_freccia[0].”/”.$data_freccia[1].”/”.$data_freccia[2];

DOPO – CODICE PHP OTTIMIZZATO:

$data_freccia=date(“d/m/Y”, strtotime($day_post.’-1 day’));

RISULTATO:

notevole risparmio di tempo sia nello scrivere il sorgente, sia nel correggere eventuali (anzi direi sicuri!) bugs

COMMENTO:

Ok, posso capire che il PHP abbia migliaia di funzioni e difficilmente uno possa ricordarsele tutte… ma certo che ci vuole proprio tutta, eh?! Non vi ha nemmeno sfiorati l’idea di controllare su www.php.net se esisteva un comando gia’ pronto?!? …proprio non capisco certi “programmatori”… troppa fatica cercare su internet? Forse, anzi sicuramente, ci si mette molto meno che non a scrivere quelle righe!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.