Advertisement
Guest User

Alternanza scuola lavoro

a guest
May 24th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 KB | None | 0 0
  1. \title{Alternanza Scuola Lavoro} % Article title
  2. \author{%
  3. \textsc{Davide Tessari} \\[1ex] % Your name
  4. \normalsize Galileo Ferraris Padova \\ % Your institution
  5. }
  6. \date{2018 / 2019} % Leave empty to omit a date
  7. \renewcommand{\maketitlehookd}{%
  8. \begin{abstract}
  9. \noindent La mia ultima esperienza d'alternanza si è conclusa quest'estate, in cui ho imparato a gestire la migrazione di un vecchio applicativo che doveva inviare e-mail personalizzate ai clienti con Amazon Simple Email Service. L'applicativo era strotturato in più livelli: la generazione delle e-mail personalizzate tramite Mustache e Php, e il livello d'invio gestito in clojure e Aws.
  10. Il tutto doveva essere migrato in Scala per permettere il dialogo con altre classi utilizzate dall'azienda.
  11. \end{abstract}
  12. }
  13.  
  14. \begin{document}
  15.  
  16. % Print the title
  17. \maketitle
  18.  
  19. \section{Instroduzione}
  20.  
  21. \lettrine[nindent=0em,lines=3]{L} 'esperienza presso Thron spa è stata molto gratificante, ho imparato molto e mi hanno messo alla prova in questo mese di fuoco.
  22. Quello che dovevo fare inizialmente era la migrazione di un'applicativo scritto in Clojure al nuovo linguaggio usato dall'azienda, cioè Scala.
  23. Premetto di non aver molta famigliarità con questi linguaggi di programmazione, difatti mi sono trovato in reale difficoltà a capire cosa facesse il vecchio applicativo perchè oltre che essere scritto in clojure aveva molto codice che non mi era dato a sapere al momento.
  24. Entrato nell'azienda e messo a mio agio e spiegato il quesito, sono subito stato posizionato in una postazione con un manuale Scala da studiare.
  25. La prima settimana quindi l'ho passata a capire le complessità del linguaggio Scala e Clojure.
  26. Scala è un linguaggio di programmazione simil java orientato agli oggetti e alla programmazione funzionale. Il codice compilato viene trasformato in java bytecode (linguaggio intermedio tra il linguaggio macchina e il linguaggio di programmazione) quindi è molto comodo perchè supporta la java virtual machine (programma che traduce il bytecode in istruzioni macchina) perciò permette l'esecuzione multipiattaforma e le librerie Java.
  27. Clojure è stato molto più complesso da studiare perchè è molto simile alla sintassi di Lisp (un linguaggio utilizzato molto tempo fà per l'intelligenza artificiale), soltanto che ritorna anche lui un java bytecode.
  28. Finita la settimana di studio cominciai subito a comprendere il codice per iniziare la migrazione.
  29.  
  30. \section{La Metodologia}
  31.  
  32. Spesso migrare un'applicativo richiede molta abilità e costi per una azienda perchè è in assoluto una delle attività più complesse.
  33. Quindi sarebbe meglio non approcciarsi da sprovveduti ma besì avere una metodologia che ci permetta di ottimizzare il nostro tempo.
  34. Inizialmente mi sono approcciato riscrivendo riga per riga ma poi ho capito che era un metodo logorante visto le grandi dimensioni del progetto quindi ho abbandonato l'idea per seguire questa metodologia consigliata da un dipendente dell'azienda:
  35. \begin{itemize}
  36. \item Analizzare il codice.
  37. \item individuare tutte le Macro-funzioni del codice
  38. \item Fare uno schema ad albero per comprendere chi richiama cosa nelle varie librerie.
  39. \item Riscrivere una Macro-funzione da capo dopo aver capito tutte le possibili funzioni ed in modo semplificato. In caso il sistema si appoggi a servizi esterni sarebbe consono gestire il tipo di dato corretto.
  40. \item Testare il codice per ogni macro-funzione scritta tramite dei mock (oggetti che emulano l'invio e la ricezione di determinati dati, per fare il debug del codice anche se si basa su servizi esterni che spesso richiedono un costo ad utilizzo e per un fattore di sicurezza [password]).
  41. \end{itemize}
  42. Per massimizzare il tempo d'apprendimento e uso dei liguaggi ho fatto molto riferimento ai cheatsheet e references messi a disposizione agli sviluppatori dai siti ufficiali dei linguaggi.
  43.  
  44. \section{Repilogo Finale}
  45. L'applicativo finale doveva gestire anche i template php, a causa del tempo e della complessità del codice non sono riuscito a migrare l'ultimo pezzo che comprendeva l'utilizzo di template engine per generare l'email.
  46. I template Engine sono stumenti potentissimi che ci permettono di modificare tante porzioni di testo selezionate con delle "graffe", con un testo personalizzato a nostra scelta generato dal server.
  47. La parte d'invio e richiesta del template sono riuscito a scriverla completamente e testarla tramite Scala Mock.
  48. Utilizzando Scala Mock non si esegue un vero test ma bensì si emula il comportamento dell'oggetto, quindi potrebbero esserci degli errori logici derivanti magari alla mal configurazione del Aws, cosa che non era di mia competenza visto che non mi era dato a sapere.
  49.  
  50. \section{Pareri personali}
  51. Mi dispiace di non aver concluso l'attività in tempo visto che mi mancava veramente poco a finirla. Per me è stata come una sfida, un muro da varicare, per provare le skill e la mentalità che ho acquisito nei miei anni di studi e per mettermi alla prova. Ovviamente l'attività non era consona ad uno stagista, però avendo già affrontato uno stage di due mesi presso questa azienda hanno voluto mettermi alla prova, per vedere che sapevo fare e direi che mi sono divertito visto che mi ha insegnato molto.
  52.  
  53. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement