Gli "Ospiti" della Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Login/Register
Nota: i miei commenti (quando ci sono) sono in italico

Esempi di programmazione

Tempo addietro sono stato assunto da una societa' di software come programmatore. Dopo circa un mese che lavoravo avevo cominciato ad avere incombenze di tutti i tipi.

Dopo poco cominciai a diventare il tuttofare di questa malnata societa' di ebeti.

Dopo circa un anno la societa' comincio' a licenziare a rotta di collo (non ho mai capito se la causa fossi io o la crisi del settore). A quel punto i vari programmatori che venivano allontanati lasciavano le loro opere d'arte sui vari applicativi dei clienti. Un giorno del mio secondo anno mi chiamano Boss/GR (gestore rete)/HR (Human Resourcers).

Boss: Ciao, dobbiamo passare sito di cliente X sul tuo nuovo applicativo di CMS e dobbiamo mettere questo script con questo form per spedire gli ordini via mail.
IO: Be' se devo solo mettere uno script che spedisce una mail con il relativo form non c'e' nessun problema.
GR: E' proprio cosi'.
HR: Esatto non devi fare niente di piu'.
IO: Meglio vedere lo script per sicurezza.
GR: Eccolo qui.

Mi si presenta uno script di centinaia di righe e gia' penso al mal di testa che mi verra' se mi metto a controllarlo.

IO: Ma siete proprio sicuri che sia a posto cosi'? Non dovrei darci un'occhiata e vedere se serve tutta quella roba.
Boss: No, lascia perdere: tu sei occupato nello sviluppo di $Applicazione_che_mai_riusciremo_a_vendere.
IO: Effettivamente tempo ne ho poco.
Boss: Appunto. Metti su sta roba e basta.
IO: Ma siamo sicuri GR.
GR: Ma si', tanto...
IO: OK. Eseguo.

8 mesi e 15 licenziamenti dopo.

Sto tornando dal pranzo quando incontro Boss con HR e SemiBoss.

Boss: Eccolo il disastratore.
IO: Io? In che senso?
Boss: Disastro! cliente X ha telefonato inca77ato perche' il modulo ordini manda cose alla ca##o.
HR: Si', sai quello script che avevi messo su al tempo.
IO (10 secondi per ricordare): Ahhhnnnn. Quella cosa che mi avevate assicurato che funzionava perfettamente fatta da $programmatore_del_menga. E con cio'? Io che c'entro?
HR: Ehmm, credo che non funzioni da quando hanno cambiato il form.
IO: come cambiato il form?
HR: Si' perche' il form e' stato fatto con il Cms.
IO: Gia', se lo script era fatto unicamente per un form fatto in una certa maniera con certi campi mai piu' funzionera' con un form differente.
Boss: Sarebbe da mettere a posto subito. Ho gia' preso una sequela di bestemmie dal cliente.
IO: Ok ora lo guardo.

Mi dirigo a velocita' warp verso l'ufficio, a quel tempo condiviso con n persone. Apro lo script e comincio l'analisi.

Comincia a formarmisi nella mente una sola frase: MA QUANDO MAI UNA COSA COSI' SI PUO' DEFINIRE PROGRAMMA? Noto subito una condizione di un if lungo quanto due pagine. Le altre quattro pagine sono di cose assolutamente inutili, tra cui commenti, caricamenti di variabili in maniera random, scopiazzature da altri programmi e via dicendo.

OK: partiamo dal form "che e' meglio" come direbbe quattr'occhi dei puffi. Vedo.... Controllo... Capisco! 5 minuti dopo avevo prodotto il mio script che ciclava tranquillamente l'array di valori spediti dal form, controllando un valore alla volta e spedendo la mail, con alcuni abbellimenti tipo formattare meglio la mail stessa. Inoltre l'avevo reso meno sensibile ai cambiamenti del form aka se avessero cambiato i valori e il numero di certi campi per lo script non avrebbe fatto nessuna differenza.

Lunghezza dello script 1,2,3.....40 righe!!! Meno di una pagina.

Provo ancora a guardare che cavolo aveva combinato $programmtore_del_menga. No! Impossibile. Non credo di riuscire a capire questo codice.

IO (a voce sostenuta): Ma che ca##o!!!!!! Ma come si fa a scrivere sta M3RDA.

Li' davanti avevo GR che mi guarda interrogativo.

GR: Che c'e'? Cosa succede?
IO: E' sto script fatto da $programmtore_del_menga per cliente X. Mai visto una munna tale!
GR: In che senso.
IO: Ha fatto una condizione di un if lunga 2 pagine, e non serviva a un fava.
GR: Ah be'. Perche' tu non hai visto la tabella mostro, sempre fatta da $programmtore_del_menga.
IO: Tabella mostro?
GR: Ma si' la tabella mostro. Era una tabella con $Numero_di_colonne_che_mi_ha_quasi_fatto_venire_un_infarto.
IO: Ma come??? Ma per caso stai parlando delle righe?
GR: No sto parlando proprio delle colonne.
IO: Ma che ca##o gli servivano tutte ste colonne?
GR: Vallo a sapere. Fatto sta che la tabella aveva solo 2 o 3 righe.
IO: Ma sara' servita (parola grossa) a qualche applicazione.
GR: Si' pero' PC (programmatore capo) quando l'ha vista non ha voluto nemmeno sapere come era fatta l'applicazione. Ha voluto sapere a cosa serviva e poi l'ha riscritta totalmente. Credo abbia impiegato una cosa come 2 giorni a tempo perso.
IO: In effetti facendo le dovute proporzioni il tempo che ho impiegato a riscrivere da zero lo script e' circa lo stesso.
GR: In effetti non era un guru della programmazione $programmtore_del_menga.
IO: Guru? Ma manco il caffe' gli farei preparare a sto tizio.
GR: Dici? E' proprio cosi' infame tutto quello che ha fatto?

Un brivido mi scorre lungo la schiena... "tutto"?

IO: Ma quanta roba ha fatto il tipo?
GR: E chi lo sa!
IO: Va bene, metto in linea il nuovo script e me ne vado a casa. Torno domani.
GR: Come?
IO: Sono stanco e abbattuto. Probabilmente domani tutta la sala macchine brucera' e io devo essere pronto con l'estintore: se abbiamo lasciato questa roba dentro le nostre applicazioni, sono convinto che qualcuno ha anche messo una bomba dentro la sala macchine con un timer. Mi trovi on-line comunque. Ciao.

La schifezza fatta da $programmtore_del_menga poi e' saltata fuori altre volte, assieme ad altri capolavori di altri programmatori. Ammetto che anche io a volte faccio delle schifezze, ma nemmeno nei miei sogni piu' perversi avrei saputo creare un if di quel tipo.

Marco Ruaro
26/01/2009 10:16

Precedente elenco Successivo

le storie degli ospiti sono in ordine sparso, quindi 'precedente' e 'successiva' possono portare su storie di altri autori

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli (io o l'autore della storia) e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

In aggiunta: se il vostro commento non viene pubblicato non scrivetemi al riguardo, evidentemente non era degno di pubblicazione.

1 messaggio this document does not accept new posts
Daniele C.Che sollievo Di Daniele C. - postato il 28/01/2009 13:26
Che sollievo, vedo che non sono l'unico a lavorare su codice scritto da incompetenti. Basti pensare che quando ho migrato il sito di <a href="http://www.soft-land.org/storie/visit/visit216">$cleanMe</a> ho dovuto dare una simpatica ed attenta lettura di file ASP lunghi 1300 righe, MILLETRECENTO, ma dico, quanto devi essere idiota per fare una roba simile?!?

--
Daniele C.


Precedente elenco Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gort