779,58 € – 950,38 €

Applied Functional Programming Workshop

Informazioni sull'evento

Condividi questo evento

Data e ora

Località

Località

Istituto Pirelli

Viale Fulvio Testi, 223

20162 Milano

Italy

Visualizza Mappa

Descrizione evento

Descrizione

Milano, 20 - 21 - 22 novembre 2018, con Matteo Baglini

Using pure functional programming techniques to solve real-world problems

Il corso Applied Functional Programming è strutturato per mettere in pratica la programmazione funzionale ed è pensato per programmatori che hanno già assaporato questo paradigma e vogliono fare un salto in avanti nella sua adozione.

Attraverso le molteplici sessioni di coding impareremo a sfruttare le principali astrazioni (come le Monadi) e a crearne delle nostre, senza però rimanere impantanati nella teoria matematica.

Obiettivi di questo corso: riuscire ad applicare a partire dal “giorno dopo” il pure functional programming, e immagazzinare abbastanza teoria da poter continuare il percorso di studio.

Argomenti del corso

Gli ingredienti per raggiungere il nostro scopo sono:

  • capire l’impatto derivante dal lavorare con la referential transparency
  • comprendere la differenza fra effect e side-effect
  • progettare sistemi come small composable units
  • esprimere vincoli e interazioni tramite il type system
  • modellare comportamenti e dati del dominio tramite modules, functions e algebraic data types
  • utilizzare composability per assemblare grandi sistemi
  • modularizzare le responsabilità tramite type classes
  • ottenere una conoscenza approfondita delle principali functional structures: Functor, Applicative, Monad, Foldable e Traversable
  • scegliere la giusta Monad per il problema corrente: Reader, Writer, State, ecc.
  • come sopravvivere in un mondo colmo di side-effects.

Agenda

1° giorno

Refactoring di un'applicazione:

  • capiamo come i diversi layer applicativi si incontrano con la pure fp.
  • utilizziamo vari tipi di Monadi (effect vs side-effect)
  • gestire il Monad stack

2° giorno

Design di librerie (Functional Design):

  • shape delle API
  • comporre funzioni e strutture eterogenee
  • usare le firme delle funzioni per guidare il design

3° giorno

Approfondire le strutture funzionale:

  • da Functor a Traverse passando per Monoid
  • una monade per ogni occasione
  • MTL e Type classes

Come si svolge

La parola chiave di questo workshop è “pratica”: i momenti di teoria saranno pochi, ma essenziali.
Diciamo 30% teoria e 70% pratica.

Metaforicamente parlando, non verrà utilizzato un approccio “a catalogo” dove prima dobbiamo imparare tutti i mattoncini e solo alla fine possiamo provare a costruire la casa.
Piuttosto partiamo dal costruire la casa e usiamo le difficoltà come leva per introdurre e approfondire i vari mattoncini.

Tecnologia

Useremo Scala come linguaggio di programmazione.

È un linguaggio che non nasce con l’obiettivo di essere pure functional ma la versatilità del suo type-system ed il fatto che gira su JVM hanno fatto sì che una vasta community di sviluppatori spingesse il linguaggio in questa direzione.

Inoltre, la natura ibrida di Scala ci permetterà l’introduzione graduale dei concetti.

A chi si rivolge questo corso

Sviluppatori professionisti con un livello di esperienza medio/alto con linguaggi main stream come Java/C#/JavaScript già entrati in contatto con il mondo funzionale (per esempio high-order functions, Option/Stream type, list comprehension combinators). Durante il workshop faremo largo uso di concetti considerati advanced nei tipici linguaggi di programmazione (per esempio generics e subtype polymorphism) rendendolo non adatto a programmatori alle prime esperienze.

Inoltre, vista la densità di materiale del workshop è richiesta anche una conoscenza base di Scala.
Verrà data per scontata la conoscenza di:

  • l’uso di classi, oggetti e traits.
  • l’uso di metodi, funzioni, valori e variabili.
  • l’uso di strutture dati come: Seq, List, Map etc.
  • l’uso di companion object, implicit parameters e uniform access principle.

Se non conosci Scala il miglior modo per prepararti è:

Perché partecipare

Con questo workshop potrai andare a fondo sui principi base e potrai vivere in maniera diretta l’esperienza di sviluppo software della programmazione funzionale.
Matteo ti darà gli strumenti per farti valutare in maniera più oggettiva i pro e contro di questo stile di programmazione: a te poi la decisione finale sul fare o meno il salto!

PREREQUISITI:

Il workshop prevede che le esercitazioni avvengano sul tuo portatile, quindi avrai bisogno di avere un laptop con installato:

  • Java JDK versione 8/9
  • Scala, una versione della serie 2.12.x (https://www.scala-lang.org/download/)
  • SBT, una versione della serie 1.x (https://www.scala-sbt.org/download.html)
  • un IDE, IntelliJ (anche community edition) oppure un editor come Sublime, Visual Studio Code, Vim o Emacs.

F.A.Q.

Come devo prepararmi per il workshop?
Devi conoscere Scala. Nella sezione “Target / a chi si rivolge” sono presenti varie informazioni per colmare questo gap.

È un workshop per principianti o per esperti?
L’ago della bilancia pende verso gli programmatori di livello medio/esperto. Bisogna avere un buon livello di conoscenza del linguaggio e di concetti dell’OOP come per esempio polimorfismo, interfacce ed ereditarietà ed un livello introduttivo di Scala.

Io programmo in Java/Kotlin/C#/JavaScript/etc, come mi può essere utile questo workshop?
Ad oggi non credo esista un linguaggio che non abbia costrutti della programmazione funzionale. Basta avere first-class functions oppure costrutti come Future/Promises per essere già mani e piedi dentro al paradigma funzionale. Partecipando a questo workshop vi portate a casa una approfondita conoscenza su molteplici concetti ortogonali al linguaggio e che potrete sfruttare immediatamente nel vostro attuale stack applicativo.

N.B.

Il workshop sarà confermato al raggiungimento del numero minimo di partecipanti. Invieremo una comunicazione con la conferma del corso agli iscritti al più tardi tre settimane prima del corso.

Nel prezzo del biglietto sono compresi anche due coffee break e il pranzo insieme al docente e agli altri corsisti. Perché il networking è importante! :)

Dubbi, domande? Scrivi a: info@avanscoperta.it

Link al sito

https://www.avanscoperta.it/it/training/applied-functional-programming-workshop/

Docente

Matteo Baglini

Dove

Milano, Istituto Pirelli.

Quando

Il 20 - 21 - 22 novembre 2018.

Sconto Under_Cover_Learner

Save 20%

Se ti stai iscrivendo a titolo personale e non hai modo di scaricare l'IVA, c'è una tariffa speciale per te, con uno sconto del 20% sul prezzo corrente del biglietto.

Per usufruire dello sconto, ti basterà inserire il codice promozionale: Under_Cover_Learner.

Scrivici se hai dei dubbi: info@avanscoperta.it

Metodi di pagamento supportati

PayPal, Carta di Credito (via PayPal, al link: "Don't have a PayPal account?"), Bonifico Bancario su richiesta (info@avanscoperta.it).

Condividi con gli amici

Data e ora

Località

Istituto Pirelli

Viale Fulvio Testi, 223

20162 Milano

Italy

Visualizza Mappa

Salva questo evento

Evento salvato