In un mercato dove il time-to-market regola la vita di ogni sviluppatore, affidarsi a strumenti e tecnologie che aumentano la qualità del nostro lavoro e ci permettano di fare di più in meno tempo è fondamentale.
In questo workshop abbiamo visto insieme come Liferay può esserci d’aiuto per progettare e realizzare moderne esperienze online… Ma con uno sforzo minimo!
… Ovviamente dal punto di vista dello sviluppatore!
3. D'veloping software solutions
Chi sono
Digital entrepreneur, software developer
enthusiastic, friendly and curious! :)
Also a dad, an husband & more other things.. :)
Twitter: @JedJds
jader.francia@d-vel.com
Phone: 338 78 76 587
4. Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
5. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• Liferay è leader per il decimo anno nel
Quadrante Magico di Gartner per le
Piattaforme di Esperienza Digitale 2020
• Liferay has a good understanding of the DXP market. Its
product strategy and packaging suit customer, partner
and employee experience use cases.
• Customers benefit from Liferay’s active open-source
community, which continuously contributes to the
codebase and encourages use of the open-source version.
• Liferay offers strong capabilities for extensibility and
application integration, which appeals to IT buyers.
Perché Liferay?
6. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
- Multi tenancy (multi istanza E multi sito)
- Gestione Utenze
- Gestione Ruoli
- Gestione Gruppi
- CMS ed Experience Designer
- ... un sacco di robe fighe per quelli del business!
Cosa mi offre OOTB
7. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
- un potentissimo framework applicativo;
- tutte le tecnologie per l'ottimizzazione già inserite in
architettura;
- gestione delle dipendenze applicative;
- software modularity;
- mostruoso riuso dei componenti applicativi;
- ambiente di sviluppo pensato per chi fa codice (di ogni tipo...)
- nessun vincolo sulla costruzione del front end (choose your weapon...)
Ma io faccio il dev.. :)
8. Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
9. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
OSGi (Open Service Gateway Initiative) è una specifica che
permette di costruire applicazioni modulari a componenti
(Bundle) e che introduce una programmazione Service Oriented,
permettendo una separazione tra interfaccia ed
implementazione molto più rigorosa di quella nativa Java.
• Modularità
• Bundle
• Declarative Services
• Semantic Version
• Microservices
OSGi: Quali sono gli elementi chiave
10. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Perché sia valido, un modulo deve avere uno unique identifier.
Module Name + Module Version
Ad esempio: it.dvel.my.module,1.0.1
Questo significa che possiamo rilasciare differenti versioni dello
stesso modulo!
Naming convention di un modulo
11. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• Le API definiscono un contratto
• Assegnare un numero di versione alle funzionalità esportate dà
maggior vita al contratto
• 1.x => 2.0 := apportati cambiamenti critici alle API
• 1.x => 1.y := apportati cambiamenti retro-compatibili
• 1.x.y => 1.x.z := bug fix
• Vantaggi
• Chi utilizza le API può decidere liberamente un intervallo di
versioni che accetta
• Con queste convenzioni, i numeri di versione, ed il modo in
cui essi cambiano, comunicano significato relativamente al
codice sottostante e a cosa è stato modificato da una
versione all’altra.
OSGi: Semantic Versioning
12. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
I componenti sono i blocchi con i quali puoi costruire una
applicazione.
Sono riusabili e sempre disponibili perché potenzialmente non
legati ad una singola applicazione.
Rinforzano il concetto di modularità.
Cos'è un componente?
13. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• I componenti sono contenuti
all’interno del moduli
• I singoli componenti definiscono
funzionalità atomiche e possono
essere utilizzati in modo isolato o
insieme ad altri componenti per
costruire una o più applicazioni
• Un’applicazione è definita da uno o
più componenti che possono
risiedere all’interno dello stesso
modulo o su moduli diversi
Componenti e Liferay 7
14. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• Un’applicazione è installata
con dei moduli che
contengono dei componenti
• Il framework modulare (il
container OSGi) gestisce
l’installazione, l’attivazione e
le dipendenze tra moduli
• Il processo d’installazione e
attivazione di un modulo è
gestito tramite l’application
lifecycle
Application Lifecycle
15. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• I Services sono costituiti da una serie
d'interfacce e classi Java registrate
all’interno del Service Registry
• Un componente può essere pubblicato
come servizio
• Un componente può richiedere un
servizio
• I Servizi sono registrati dal Bundle
Activator del modulo
OSGi: i Services
16. D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• Liferay utilizza il framework
modulare a Declarative Services
(DS) che fornisce un alto livello di
astrazione nella gestione dei
servizi
• Un service è costituito da
un’interfaccia ed
un’implementazione
• Il Service Registry è il “faldone”
con i servizi che abbiamo a
disposione
OSGi: i Services
17. Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
18. Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
19. Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!