Storie dalla Sala Macchine |
Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register
Ok oggi abbiamo qualche cosa di diverso dal solito.
Come vi sarete accorti e' un po' che ho a che fare con sviluppatori di webapplicascion che continuano a proporre delle cagate pazzesche rendendo la mia vita una pena infernale e provocandomi trabocchi di bile a non finire. Quindi quest'oggi ho preso una decisione: invece di passare una mezz'ora deliziandovi (per vari valori di "delizia") con le mie geremiadi e lamentazioni, ho deciso che per una volta mi comportero' professionalmente e cerchero' di proporre le mie critiche in una maniera costruttiva. Prendero' quindi l'ultima webapplicascion teste' consegnatami dal programmatroto del giorno e la usero' come un esempio di come NON SI DEVE fare una webapplicascion (o un software in generale).
Magari riesco a convincere qualcuno dei programmatroti che leggono a non ripetere gli stessi errori.
E magari riesco pure a convincere il sole a tornare a splendere su questo ca$$o di paese. E magari riesco a cavalcare un unicorno d'oro fino al Regno Magico Abitato da Ragazze Carine Intelligenti e Vestite da Conigliette di Playboy...
1) Fornisci della documentazione con il tuo programma
Quando ricevo un file zip di 132 Mb e lo scompatto mi aspetto di trovare uno straccio di filettino 'readme' o 'install' o 'salca$$o' dove c'e' scritto come ci si aspetta che questo obbrobrio sia installato, se devo aggiungere dei pezzi alla configurazione di Apache o similare. Perche' io questa merda che tu hai passato nonsisaquantotempomamicapoitantosecondome a sviluppare non l'ho mai vista prima e come posso sapere come dovrebbe essere installata altrimenti?
2) Usa i file di configurazione in modo acconcio
Quando sono finalmente riuscito a capire come dovrei installare questo accrocchio per farlo funzionare mi aspetto di doverlo configurare in qualche modo. Per esempio per dirgli 'ndo' ca$$o sta' il suo database, quale e' la password, dove deve/puo' scrivere le sue cagate eccetera eccetera. Per fare cio' mi aspetto di trovare da qualche parte (magari in una bella directory chiamata "config") un bel file di configurazione in cui scrivere le mie baggianate. Quello che non mi aspetto e' di dover dare la caccia al foxxuto file di configurazione per tutto il tuo foxxuto albero di directory e scoprire che invece di un file di configurazione ce ne sono una flotta, tutti contententi piu' o meno gli stessi parametri!
3) Metti i commenti nei foxxuti files di configurazione
Se il tuo file di configurazione contiene piu' di una mezza dozzina di parametri sarebbe bene metterci dei commenti per spiegare cosa tali parametri significano e dare una vaga idea al pistola che deve gestirselo (aka: io) cosa dovrebbe scriverci dentro. Perche' che il parametro chiamato "SysDirectId" deve contenere una foxxuta password di cui io non so un tubo non posso di certo sognarmelo alla notte!
4) Se hai tanti parametri ficcali nel database
Se il tuo programma richiede piu' di una dozzina di parametri, alcuni dei quali servono a modificare l'aspetto grafico del programma stesso, allora e' molto meglio ficcarli tutti nel database e mettere nel file di configurazione solo i parametri relativi alla connessione al database stesso. Questo ti consente di tenere la configurazione semplice e comprensibile ed allo stesso tempo non ti obbliga a riavviare il foxxuto server 40 volte solo per vedere come viene il programma con un colore di sfondo diverso.
5) Usa le funzioni di "logging" in maniera acconcia
Il "logging" (aka: scrivere su file quello che succede) e' una cosa molto bella ed utile, sono lieto che tutti siamo d'accordo su questo. Ma una cosa e' usarlo in modo intelligente ed una cosa completamente diversa e' semplicemente vomitare tutte le ca$$ate che il tuo programma fa' in un file! Che ne pensi di usare uno dei millemila parametri dei tuoi foxxuti files di configurazione per specificare quanta roba scrivere? In questo modo il foxxuto file di log potrebbe quasi diventare utile a capire cosa c'e' che non funziona invece di essere solamente una massa incomprensibile di testo che viene scaricato direttamente in /dev/null!
6) Smettila di copiare #!$%@!Microsoft Windows!
"Sei sicuro di voler fare questo?" "Sei sicuro di voler fare questo?" "Sei sicuro di..." Sai una cosa? NO! Non sono sicuro di voler fare questa cagata, ma mi pare che sia l'unico modo di procedere in questo ca$$o di software dato che non mi hai dato uno straccio di informazione di come dovrei fare. E visto che me lo domandi SI Sono sicuro di voler fare anche le successive 30 operazioni invece di dover ogni volta rispondere si o no!
7) Prova il tuo software prima di portarmelo
E per "provare" intendo installalo su una macchina pulita, non sullo stesso picci' sulla quale lo hai sviluppato (sempreche tu non lo abbia sviluppato sul tuo merdoso 'ifone sul tram mentre venivi qui' a consegnarlo... considerando la qualita' della cosa non e' una ipotesi da scartare) e non dirmi che non puoi permetterti una macchina di test: VMWare e' gratuito e fornisce una funzioncina sciccosa chiamata snapshot che ti consente di installare e reinstallare la stessa cosa un bazilliardo di volte ripartendo ogni volta con un sistema pulito!
8) Non raccontare palle, soprattutto non a me
Nessuno si aspetta che un software sviluppato secondo le moderne metodologie del fancazzismo funzioni al primo colpo senza sbagliare una virgola. Si' ok, in effetti si potrebbe dire che il cliente (sai, quel cretino che ti paga... e che paga anche me) potrebbe pensare che questo sia il caso, lui ti paga per un software che funziona e riceve in cambio un software che funziona... ma sorvoliamo su questi dettagli. Comunque, quando sono riuscito (dopo ore ed ore di bestemmie) ad installare questa cagata e scopriamo che non funziona un ca$$o e mi riempie il log di schifezze che mi fanno pensare che non hai fatto un secondo di debugging prima di scaraventarmelo qui', non venirmi a raccontare stronzate che le librerie cosi' e cosa' e dare la colpa al proxy che ti fa il caching sbagliato o roba simile perche' l'unico risultato che otterrai sara' di farmi incazzare!
Che tu non abbia la piu' pallida idea di come si sviluppa il software ed in particolar modo questo tipo di software appare chiarissimo (almeno a me), d'altra parte c'e' un ovvio motivo per cui far sviluppare questa chiavica a te costa un quarto (o anche meno) di quanto potrebbe costare farla sviluppare a qualcuno che sa' cosa cappero sta' facendo, quindi se il "cliente" ha deciso che vuole risparmiare dei soldi dovrebbe anche essere sufficientemente furbo da capire che da qualche parte c'e' un reggimento di uccelli paduli pronti a buttarsi in picchiata verso il suo didietro. Quindi se non sai cosa cappero significa "garbage collection" e perche' il fatto che il tuo software spenda il 90% del tempo in quella attivita' sia una brutta cosa dimmelo subito cosi' posso erudirti, non continuare a blaterare del database e della query non ottimizzata, anche perche' la query l'hai scritta sempre tu.
Conclusione
Sviluppare software, come ogni attivita' creativa, richiede tempo e capacita', purtroppo mentre per cose come scrivere libri, produrre film o costruire palazzi c'e' un sistema di controllo qualita' implicito che ci protegge (o protegge molti di noi), qualunque ritardato con un picci' sembra pensare di essere il nuovo Kernighan.
A meno che questo non sia il tentativo di provare oltre ogni possibile dubbio che se si lasciano un milione di scimmie in una stanza con un milione di macchine da scrivere si otterra' alla fine la Divina Commedia. Bhe', se questo e' il caso vi siete dimenticati di un particolare: dovrete anche aspettare un milione di anni!.
Davide
20/12/2010 08:00
I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.
Di Anonymous coward postato il 20/12/2010 09:03
Se si lasciano un milione di scimmie in una stanza con un milione di macchine da scrivere si ottengono un milione di scimmie morte...
-- Anonymous coward
@ Anonymous coward Di Messer Franz postato il 20/12/2010 11:16
Se si lasciano un milione di scimmie in una stanza con un milione di macchine da scrivere si ottengono un milione di scimmie morte...
dopo un milione d'anni di sicuro...
-- Messer Franz
Di Messer franz postato il 20/12/2010 09:09
cit<quest'oggi ho preso una decisione: invece di passare una mezz'ora deliziandovi (per vari valori di "delizia") con le mie geremiadi e lamentazioni, ho deciso che per una volta mi comportero' professionalmente e cerchero' di proporre le mie critiche in una maniera costruttiva
E' natale che ti rende piu' buono
-- Messer franz
Di Anonymous coward postato il 20/12/2010 09:22
> Ragazze Carine Intelligenti e Vestite da Conigliette di Playboy
Davide, proprio perché Intelligenti, le ragazze Carine Intelligenti non si vestono da Conigliette di Playboy...
-- Anonymous coward
@ Anonymous coward Di Messer Franz postato il 20/12/2010 11:13
> Ragazze Carine Intelligenti e Vestite da Conigliette di Playboy
Davide, proprio perché Intelligenti, le ragazze Carine Intelligenti non si vestono da Conigliette di Playboy...
Commento prettamente maschile:
va detto anche:quando hai davanti una ragazza carina e vestita da coniglietta di playboy,che te ne frega se è intelligente?
Per quanto mi riguarda puo' essere anche una phprogrammatrice,io non ci faccio caso (Davide , se ne hai ma non le vuoi perchè phprogrammatrici passamele pure , ti tolgo io l'incomodo)
-- Messer Franz
Di Davide G. postato il 20/12/2010 09:30
Proporrei di "promuovere" questa non-storia ad articolo o commento.
Di Anonymous coward postato il 20/12/2010 09:35
Direi che per i programmatori "pigri" e che non hanno tempo e voglia di leggere un documento così lungo e difficile, basterebbe rendere obbligatorio il punto 7: almeno non ci sentirebbe dire "sul mio pc va!"
Sante parole le tue, ma come al solito verranno tranquillamente disattese.
j.
-- Anonymous coward
Di Anonymous coward postato il 20/12/2010 11:59
ragazza carina E intelligente?
Utopia.
-- Anonymous coward
@ Anonymous coward Di Thomas postato il 20/12/2010 18:15
ragazza carina E intelligente?
Utopia.
Ci sono, rare ci sono... il problema è farle vestire da conigliette di PlayBoy.
-- Thomas
@ Anonymous coward Di Anonymous coward postato il 20/12/2010 23:59
ragazza carina E intelligente?
Utopia.
http://it.wikipedia.org/wiki/Geena_Davis
-- Anonymous coward
Di St0rM postato il 20/12/2010 23:25
Comunque, tutti a pensare alle Ragazze e nessuno che fa caso al povero unicorno.
Vergognatevi.
(Certo pero', da conigliette...mmmh...)
-- St0rM
Di Anonymous coward postato il 20/12/2010 23:51
> Ragazze Carine Intelligenti e Vestite da Conigliette di Playboy
Hai dimenticato disponibili. Senza questo, il resto è inutile
-- Anonymous coward
Di Nik postato il 21/12/2010 00:13
E magari riesco a cavalcare un unicorno d'oro fino al Regno Magico Abitato da Ragazze Carine Intelligenti e Vestite da Conigliette di Playboy...
Hai dimenticato di aggiungere "e disponibili"
-- Chronicles of a Broken Heart
Di IgorB postato il 23/12/2010 13:43
Il Kernighan - Ritchie, che bei ricordi!
Quando si faceva programmazione, mica phporcate...
-- IgorB
Di Giovanni postato il 24/12/2010 18:46
ecco un buon link per i programmatroti: http://www.ioccc.org/main.html
-- Giovanni
Di Luke postato il 27/12/2010 10:21
Aggiungerei una sotto-domanda al punto numero 4)
Usare i CSS pare tanto complicato? (Se proprio il database non lo vuoi configurare)
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".