Ricerca in FOLBlog

[SdSM] Caro il mio programmatroto…

 Scritto da alle 05:05 del 22/03/2011  Aggiungi commenti
Mar 222011
 
closeQuesto articolo è stato pubblicato 6 anni 7 mesi 30 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

image

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

legenda personaggi

Articoli simili:

  • Facebook
  • Twitter
  • Delicious
  • StumbleUpon
  • Wikio
  • Reddit
  • Technorati
  • Segnalo
  • Live
  • Add to favorites
  • Email
  • RSS

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(richiesto)

(richiesto)

Pinterest
EmailEmail
PrintPrint
%d blogger hanno fatto clic su Mi Piace per questo: