venerdì 5 febbraio 2016

Java metodi che restituiscono piu' oggetti

C'e' un buon motivo per cui un metodo dovrebbe restituire UN solo tipo. Ma potreste trovarvi nella situazione di dover mettere le mani su un metodo fatto da qualcun altro, p.es che inserisce una riga a db e restituisce una ricevuta (e la usa per mandarla a frontend). Voi dovete fare delle modifiche e prendervi che ne so l'id della riga inserita.

Hibernate avrebbe un comportamento carino, cioe' i metodi save/updaterestituiscono l'id inserito/updatato il metodo save restituisce l'id della riga inserita. Ma il vostro metodo restituisce qualcos'altro e quel qualcosa serve.

a) andate a db e vi rifate una query con tutti gli altri dati e pregate che sia proprio quella che vi serve (in piu' avete il rallentamento dovuto al fatto di riandare a db per niente)

b) modificate il metodo in modo da restituire una mappa: in questo modo non avete bisogno di andare a db una volta di troppo, siete sicuri che quell'id e' proprio quello che volete, non aggiungete rallentamenti e avete tutto quello che vi serve. Ovviamente nei commenti specificate quali chiavi avete usato per mettere cosa, in modo che il povero cogl programmatore che viene dopo sapra' come ripescarseli. Ovviamente avete come effetto collaterale che tutte le chiamate a quel metodo andranno modificate.

c) create un terzo metodo che restituisce una mappa: vantaggi gli stessi di sopra con in piu' il fatto di non dovere modificare tutti i punti del codice ma solo quello dove vi serve a voi.

Telecamere nelle scuole - perche' non servono


Ennesimo caso di una maestra che picchiava i bambini. E' successo a Pisa stavolta e la maestra e' stata arrestata (notizia da Il tirreno). Il caso e' deplorevole e non dovrebbe mai succedere. Parlo da genitore, e probabilmente se succedesse a me sarei il primo ad andare a dare fuoco alla maestra, perche' i piu' deboli non si toccano.

Ma non e' questo il senso del post. Come al solito c'e' chi sull'onda dell'emozione propone le telecamere nelle scuole. Io sono contro e vi spiego il perche' sono giunto a questa conclusione ragionando.

Punto primo: le telecamere non sono un deterrente

Le banche hanno le telecamere eppure vengono rapinate lo stesso. Anzi i rapinatori lo sanno e si coprono il volto. Risultato? Le rapine vengono fatte lo stesso e i rapinatori non li identifichi ugualmente. Quindi le telecamere servono a prevenire i furti?
NO.

Punto secondo: i costi

Questa fonte ne riporta c.ca 29000 tra pubbliche e private in tutta Italia. Prendiamolo per buono. Calcoliamo che per "coprire" una scuola ci vogliono 10 telecamere (e son poche). Una telecamera da videosorveglianza costa c.ca 180€ (ma puo' arrivare fino a 700, ma prendiamo il prezzo piu' basso). Per coprire quelle 29000 scuole servirebero 290000 telecamere. Moltiplicato per i 180€ a telecamera fa 52'000'000€ CINQUANTADUE milioni di euro.

Ora da noi le scuole non hanno nemmeno i soldi per comprare le salviette per pulirsi la bocca quando i bambini vanno a mensa. Siamo sicuri di voler spendere cinquanta milioni di euro per qualcosa che non serve da deterrente?

Punto terzo: la giustizia funziona lo stesso senza, anzi meglio

Se nonostante che le telecamere non ci siano nelle scuole questi casi vengono fuori lo stesso, vuol dire che le forze dell'ordine riescono lo stesso a fare il loro dovere. Anzi ci riescono meglio per il semplice fatto che, una volta ottenuto il mandato dal Giudice, possono piazzare delle telecamere nascoste. Il fatto che l'indagato non sia consapevole che ci sono fa si' che si comporti naturalmente e possa venire "inchiodato" dalla testimonianza video. Se sapesse di essere sorvegliato semplicemente fingerebbe davanti alle telecamere, per poi "sfogarsi" dove le telecamere non possono vederlo e quindi addirittura sarebbe peggio.

Punto quinto: il numero di reati rispetto al numero di scuole

Abbiamo detto che le scuole sono c.ca 29000, mentre il numero di reati e' esiguo.

Conclusioni

Ribadisco picchiare i bambini e' una cosa che fa incazzare non ci sono mezzi termini. Il problema e' che non dobbiamo farci prendere dall'ira nel prendere certe decisioni. Dobbiamo analizzarle a mente fredda. Chiedere un provvedimento come le telecamere in ogni scuola sarebbe uno spreco assurdo di soldi, soldi che potrebbero essere spesi per esempio in pennarelli e tutte le altre cose che noi genitori dobbiamo continuamente portare affinche' i nostri figli possano fare lezione. Non servirebbe ad evitare i reati, anzi aiuterebbe questi delinquenti perche' consapevoli della presenza delle telecamere saprebbero come premunirsi.

Rimanete lucidi. Alla prossima!