Gli "Ospiti" della Sala Macchine |
Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register
Micro digressione su di me: sono un Windows (l)user, senior programmer (leggi: sei comunque alla base della catena alimentare aziendale ma ti diamo 10e in piu' ed un titolo figo), programmo in qualsiasi cosa mi capiti sottomano (in particolare Java, ma non e' che lo conosco.. diciamo che lo uso) e fortunatamente spesso SO cosa sto facendo, quindi posso evitare di tenere l'etichetta di CL sul badge.
Eravamo alle battute finali di un progetto per $Grossa_ditta_supermercati_francese e ci avviavamo a togliere il telo dal nuovo progetto, per $Altra_grossa_ditta_supermercati. Il capo (project architect) si era fatto una settimana fuori per farsi un'idea di cosa avremmo dovuto affrontare e dopo aver riunito il team attorno alla tavola rotonda (seeeh) esordisce con le seguenti parole:
Capo (CA): "Waugliu'.. e' un applettone!"
Dopo di che ci illustra la rava e la fava del progetto: l'implementare una nuova funzionalita', modificando il pregresso in maniera non invasiva con interventi mirati e chirurgici atti a minimizzare gli impatti senza stravolgere il funzionamento precedente. La tecnologia sarebbe stata all'incirca AWT, EJB 2.0 per i batch, il tutto su Jbuilder X. Una delle ditte fornitrici di software per $Altra_grossa_ditta_supermercati stava per essere sbattuta fuori a calci e noi avremmo dovuto prenderne il posto, quindi performance bla bla, metodologia yadda yadda.. insomma le solite belle parole con cui ci si riempie la bocca.
Tradotto dal politichese: vedete di non far casino, che quella roba se finisce in produzione e non funziona perdiamo il cliente.
Ora, dopo che il mio neurone apposito si e' trascritto la parte interessante del discorso sopra, il CL che e' in me NON si e' fatto i fatti suoi e, dopo una rapida ricerca su interDet, si e' fatto un'idea di cosa CA stesse dicendo. Ma non aveva idea di cosa EFFETTIVAMENTE potesse essere cio' cui stava andando incontro (che CL sarebbe, altrimenti!), quindi fesso io a dargli ascolto e pronunciare le parole che mi suggeriva: "ah, beh.. allora e' facile!". D'altronde, un accrocchio fatto in AWT, che complessita' poteva mai avere? Ah, quanto sbagliavo...
Il senno di poi e' una scienza esatta. Dicono.
La settimana dopo, in compagnia di Collega1 (C1) e guidati da CA, ci siam lanciati verso la sede di $Altra_grossa_ditta_supermercati a seguire un corso per imparare a "programmare in $4WC" (WC per water closet.. e 4 perche' e' troppo grossa per starci in uno solo). $4WC? E che roba sara' mai? Ma non era Swing? AWT? Booooooh...
Sotto il simbolo della ditta, giro di presentazioni con il Manager, il Senior Manager (pezzo grosso) e Senior Executive (qualcosa che non potro' mai essere nemmeno dopo 130 anni di fedele lecchin.. ehm.. servizio in azienda), ci accomodiamo in uno stanzino, attacchiamo i portatili (mi ero portato il MIO PERSONALE perche' quelli aziendali erano finiti. E meno male che lavoro per una multinazionale), configurazione di rete per la posta (il vecchio progetto ancora richiedeva un po' di attenzione, particolare la cui importanza verra' spiegata in seguito), tiriamo fuori carta e penna e ci prepariamo a prendere appunti.
Partiro' prima col resoconto della giornata, poi vi illustrero' il motivo:
Pagine di appunti prese il giorno 1: 2.
% di testo comprensibile: 4% (a voler essere buoni), il resto erano tutte
frasi sconnesse.
Distanza tra arcata dentale superiore ed inferiore: non pervenuta, ma
sicuramente ben oltre il limite umano per via di stupore e sconforto.
Il motivo?
Visto che avevamo avuto parte della documentazione teorica (poco aggiornata) dell'accrocchio e ce l'eravamo gia' studiata, avevamo insistito per far qualcosa di piu' pratico. "Facciamo un esempio, un template" ha detto CA, "qualcosa che somigli molto alla maggior parte delle cose che dovremo affrontare in seguito. Qualcosa del tipo un filtro di ricerca, una griglia di risultati, una lookup (popup di ricerca, pensavamo) e le funzionalita' di inserimento, modifica e salvataggio".
Il primo Luser, che chiameremo quindi con uno sforzo di fantasia L1, era comunque una persona che si faceva seguire, quando spiegava. Dinamico quanto basta, preparato quanto basta, ma comunque chiuso nella sua conoscenza. Alla domanda "ma non possiamo mettere Hibernate per interfacciarci col DB?" ha risposto candidamente "non lo so", per intenderci.
Ci mettiamo comunque con la voglia di un condannato a morte ed un sorriso professionale e falso da politici consumati e cominciamo.
L1: bene, allora, per creare una nuova applicazione.
*scrib scrib*
L1: ..creiamo una cartella sotto l'alberatura col nome del progetto, per
esempio MyTest...
*scrib scrib*
L1: ...poi copiamo la cartella di un'altra applicazione, tipo questa..
*scrib...eh? mah.. scrib*
L1: ...dopo aver incollato la cartella sotto MyTest, apriamo e cancelliamo
queste sottodirectory..
*scrib....*
L1: ..quindi apriamo il progetto nell'ide e siamo pronti a continuare.
*tunk!*
L'ultima era la p... enna che cadeva.
CA: Quindi mi stai dicendo che non sappiamo creare un progetto da zero ma
dobbiamo partire da uno gia' esistente?
L1: eh... ma abbiamo sempre fatto cosė..
CA: ma qualcuno avra' pur scritto per la prima volta queste cose!
L1: eh si, forse $nome_che_ho_dimenticato, credo... anni fa.
CA: vabe', non fa niente, 'ndiamo avanti.
Passiamo a creare la classe con pannelli, bottoni, etc. ed il relativo controllore.
L1: quindi estendiamo la classe EXTGridController2Impl...
Io (ingenuo): 2? 2 come due?
L1: si, 2!
CA: perche', quante implementazioni precedenti ci sono?
L1: per questa solo un'altra..
Noi tre, quasi in coro: "per questa??"
E veniamo a sapere che altre classi hanno addirittura DUE antenati... e richiamano oggetti di questi di cui, ovviamente, le implementazioni sono a noi precluse perche' infilati in jar di infrastruttura (le famose cartelle che non dovevamo cancellare alla creazione del progetto). Scopriamo inoltre che OGNI SINGOLO COMPONENTE di AWT e' stato esteso da loro, quindi non usero' mai una comboBox, ma una EXTComboBox ed amenita' simili.
Scopriamo poi, nei giorni successivi, che hanno un modo tutto loro di fare operazioni sul db! Hanno costruito in illo tempore i loro metodi di lettura, scrittura, modifica e cancellazione ed usano solo quelli. E fin qui, se funziona non toccarlo, dice il saggio. Ci troviamo pero' di fronte a:
Quindi contiamo.. mapping + mapping + mapping + chiave sull'xml delle tabelle.. otteniamo.. un TRIPLO MAPPING PERFORANTE! Adesso capisco a chi si sono ispirati per creare sto accrocchio... agli scienziati pazzi dei cartoni giapponesi!
La nostra odissea continua, mentre ci addentriamo nella jungla del $4WC. Il nostro "esempio" si rivela una cosa assurdamente difficile da manipolare. O forse siamo noi troppo scemi.. non so.. pero'... ditemi voi se e' normale che per ottenere il risultato: caricare una griglia popolando dei filtri di ricerca e premendo il tasto "ricerca" e' necessario (faccio tutto il giro):
Con questo orrore che ci divorava la mente e' passata una settimana. Abbiamo avuto un week end per ripensare a tutto (o meglio, per dimenticare) e poi siamo ritornati a seguire il corso. Ignari di cosa ci aspettava ancora.
--segue--
GattoNero
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.
Accrocchi Di Adriano postato il 11/05/2009 22:25
-- Adriano
Gatto Nero Di Bill Green postato il 12/05/2009 10:19
-- Bill Green
-AT- Bill Green Di GattoNero postato il 14/05/2009 12:35
-- il gattaccio nero
Consiglio Di Andrea postato il 12/05/2009 14:51
-- Andrea
Ok, mi hai colpito Di Daniele C. postato il 12/05/2009 16:00
--
Don't Make me get my Hambone!!!
http://www.dilbert.com/strips/comic/2009-02-19
---
D.
Quanti brutti ricordi! Di Carlo postato il 25/05/2009 14:36
--
--
Carlo
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".