• Passa alla navigazione primaria
  • Passa al contenuto principale
  • Passa alla barra laterale primaria
  • Passa al piè di pagina
Glue Labs

Glue Labs

Trasformiamo le tue idee in prodotti digitali di successo!

  • HOME
  • SOLUZIONI
  • NEWS
  • PRODOTTI
  • CONTATTI
  • CASE STUDY

Cos’è il Functional Programming (FP)

Funzioni pure con immutabilità e strong typing per ottenere software orientato al risultato

Il Functional Programming(FP) è un paradigma di programmazione utilizzato con l’obiettivo di creare software “pulito” e la cui manutenzione è più semplice. Basato su tre elementi, il FP modifica un paradigma ben noto come l’Object Oriented Programming(OOP) per cercare di essere quanto più aderente possibile a scenari moderni in cui la necessità principale è di ottenere risultati in pochissimo tempo.

Qualsiasi cosa è una funzione

Il primo elemento del Functional Programming è che qualsiasi componente del software deve essere una funzione; anche il software stesso deve operare come una funzione composta da una catena di moltre altre funzioni in cui ogni input viene valutato finchè l’ultima funzione termina la valutazione.

Tale concetto, a prima vista, può sembrare arzigogolato ma rendendo più concreto rappresenta il modo in cui operano software come Excel e le API: input – computazione( funzione di funzioni) – output. Anche l’ambito dei Microservizi e del Function as as Service(FaaS) operano seguendo il paradigma FP.

Immutabilità

Il secondo elemento è rappresentato dall’immutabilità dei dati, vale a dire che i dati devono essere protetti da modifiche, conflitti e concorrenze durante tutte le fasi computazionali. In pratica, attraverso l’immutabilità si garantisce che a medesimi input corrispondano medesimi risultati.

I dati non possono essere modificati una volta che entrano nella funzione, evitando così il side effect cioè che una funzione possa modificare dati esterni alla funzione stessa, per es. database, file e console possono contenere side effect.

Funzioni pure

Il terzo elemento è che le funzioni, nel FP, devono essere “pure“, cioè devono aggiungere ai concetti di immutabilità e minimizzazione del side effect quello dello strong typing, cioè la restrizione nell’utilizzo di diverse tipologie di tipi di dati e di valori preferendo spesso i tipi di dati algebrici. Un concetto abbastanza complesso da comprendere, questo delle funzioni pure, che può essere sintetizzato con l’utilizzo di un linguaggio dichiarativo (cosa la funzione deve fare) piuttosto che un linguaggio imperativo( come la funzione deve fare). Per un approfondimento ti consigliamo la lettura dell’articolo “Declative vs Imperative“.

Conclusioni

Il paradigma di utilizzare funzioni specifiche per ottenere risultati specifici sta diventando sempre più comune perchè permette di avere architetture semplici, qualificate e completamente business oriented. Tali vantaggi li puoi ottenere da subito attraverso servizi in cloud come Cloud Functions di Google, un FaaS integrabile con qualsiasi altra applicazione e che permette di operare specifici task senza doversi preoccupare di dovere progettare e manutenzionare architetture. Per approfondire il concetto di FaaS ti suggeriamo la lettura dei nostri due precedenti articoli : “FaaS vs Serverless vs PaaS,Container e VM” e “Cos’è il Function as a Service(FaaS)“.

Contattaci subito e senza impegno per portare in ambiente FaaS le tue applicazioni e servizi.

Glue Labs ed il Functional Programming

Ti supportiamo nel delivery, nello sviluppo, nell’integrazione e nella migrazione verso ambienti Cloud FaaS. Siamo Google Cloud Partner e grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e con un solido gruppo aziendale ti forniamo assistenza e supporto per qualsiasi progetto di delivery ed integrazione di FaaS. Contattaci subito e senza impegno per maggiori informazioni.

Continua la lettura

  1. Magento vs Shopify

Categoria: Articoli Tags: API, Cloud Functions, FaaS, functional programming, microservizi, OOP

Barra laterale primaria

Cosa facciamo

  • Content Strategy
  • E-Commerce
  • Formazione avanzata Web, Mobile & Cloud
  • IoT – Sviluppo e Integrazione
  • Micro Live Learning(MLL) Web, Mobile & Cloud
  • Project Management Prince2
  • PushAPE
  • Sicurezza ICT
  • Software Aziendali
  • Sviluppo Mobile App
  • Sviluppo, Supporto, Assistenza Tecnica e Hosting Google Cloud
  • System Integration
  • Web Application
  • Web Design

Contatti

Scrivici dal form di contatto

Tel +39 06 56549766
Fax +39 06 21122581
Mail: info@glue-labs.com
Pec: gluelabs@legalmail.it

Dove siamo

Roma: Piazza Don Sturzo 15
Milano: Via Lazzaretto 19
Torino: Via San Domenico 28
Altamura: Via Maggio 1648 24

"*" indica i campi obbligatori

Nome*
Questo sito è protetto da reCAPTCHA e si applicano le Normative sulla Privacy e i Termini di Servizio di Google.
Inviando i tuoi dati accetti le condizioni sulla Privacy. Li useremo per rispondere alle tue domande e richieste.
Consenso*
Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.

Siamo parte di

La nostra Agenzia di Marketing

Footer

Partnership



Rimaniamo in contatto

Iscriviti alla nostra newsletter

Nome
Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.

Soluzioni

  • Integrazione di Spreaker API con WordPress e Web Application
  • Revisione, validazione, attestazione e Relazione Tecnica su Ricerca & Sviluppo e Innovazione Tecnologica
  • Migrazione da ASP.NET Web Forms e Visual Basic ad Angular Web Application
  • Corso Angular 15
  • Supporto ed Integrazione di SPID e CIE con OpenID Connect
  • Consulenza e Assessment pre-formazione
  • Integrazione con le API di OpenAI e ChatGPT
  • Corso Firebase
  • Corso Cucumber per Javascript
  • Supporto ed Assistenza nell’implementazione ed utilizzo dei Kit di Designers Italia

Articoli

  • Le 4 metriche principali delle Performance del DevOps
  • Come trasformare una Web Application in una Mobile App: Capacitor di Ionic
  • Moodle per essere compliant con gli obblighi formativi in ambito sicurezza sul lavoro
  • Perchè adottare il modello One Concern(o Application) One Container
  • Perchè utilizzare la WebAR
  • Le 3 ragioni per implementare un chatbot nella tua azienda
  • I 5 fattori che impattano sulla reliability delle applicazioni
  • Le 10 innovazioni che modificheranno i servizi IT nel 2023
  • DevSusOps: sviluppare per la sostenibilità del software e delle architetture IT
  • Cos’è la Communications Platform as a Service(CPaaS) e perchè utilizzarla

Le nostre sedi

  • Roma, Piazza Don Sturzo 15
  • Milano, Via Lazzaretto 19
  • Torino, Via San Domenico 28
  • Altamura, Via Maggio 1648 24

Contatti

  • Tel. +39 06 87811067
  • Fax +39 06 99335373
  • glue-labs@legalmail.it
  • info@glue-labs.com
  • Facebook
  • LinkedIn
  • Twitter

Scarica app da App StoreScarica app da Play Store


Glue Labs © 2011–2023 | Copyright | Privacy Policy | Company Info | Cookie Policy | Gestione Cookies

Gestisci Consenso Cookie
Usiamo cookie per ottimizzare il nostro sito web ed i nostri servizi.
Funzionale Sempre attivo
La conservazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire la fruizione di uno specifico servizio esplicitamente richiesto dall'abbonato o dall'utente, o al solo fine di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente a fini statistici anonimi. Senza un mandato di comparizione, il rispetto volontario da parte del tuo provider di servizi Internet o registrazioni aggiuntive da parte di terzi, le informazioni archiviate o recuperate solo per questo scopo non possono essere generalmente utilizzate per identificarti. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
L'archiviazione tecnica o l'accesso è necessario per creare profili utente per inviare pubblicità o per tracciare l'utente su un sito Web o su più siti Web per scopi di marketing simili.
Gestisci opzioni Gestisci servizi Gestisci fornitori Per saperne di più su questi scopi
Gestisci preferenze
{title} {title} {title}