Loading
Please wait, content is loading

Fullstack Developer

Il corso ha l’obiettivo di farti diventare un Backend Developer, un esperto nello sviluppo in linguaggio Java: il linguaggio di programmazione più richiesto e la base di accesso all’architettura Java Enterprise Edition (Jakarta).

Sarai in grado di progettare e costruire applicazioni REST ed a microservizi.

Acquisirai capacità di integrare analisi dei requisiti e di progettazione del software attraverso diagrammi dello Unified Modeling Language (UML). Inoltre, acquisirai capacità di integrare analisi, progettazione, programmazione e testing.

Potrai gettare le basi del tuo futuro con un percorso davvero completo e sfidante, affrontando i framework in assoluto più utilizzati in ambito lavorativo come: Angular, RxJs, Ngrx, Spring Boot, JPA, Hibernate, JUnit, Mokito, etc.. Imparerai a progettare interfacce utenti accattivanti tramite i principali framework per il frontend quali Angular, Rxjs, Ngrx, etc..


Durata

160 - 280 ore

Ambito

Web Development, Backend, Frontend


[ Corso Modulare ]

Il Punto

ACCETTA LA SFIDA DI DIVENTARE UN ESPERTO DI ARCHITETTURE A MICROSERVIZI
ACQUISISCI COMPETENZE UTILIZZANDO I FRAMEWORK TECNOLOGICAMENTE PIU' AVANZATI.



Le Opzioni

CREA IL TUO PERCORSO SELEZIONANDO I CONTENUTI PER DARE UNA SPINTA AL TUO BUSINESS
CONTATTACI PER UNA PROGETTAZIONE OTTIMIZZATA OPPURE PER AVERE MAGGIORI INFORMAZIONI SULLE MODALITA' DI EROGAZIONE.



Java Standard

L'obiettivo del modulo è quello di gettare le basi della programmazione Java coprendo tutti gli aspetti necessari per passare allo step successivo.

  • Introduzione
    • Introduzione al linguaggio Java
    • Setup ambiente ed IDE
    • Primo programma in Java
  • Tipi e Costrutti del Linguaggio
    • Variabili
    • Tipi primitivi
    • Classi di tipo Wrapper
    • Boxing, unboxing e autoboxing
    • Casting
    • If / switch
    • Cicli: for e while
    • I metodi
    • Overload di metodi e "arguments"
    • Metodi statici / metodi di istanza
    • Array
    • Classe String
    • Enum
  • OOP
    • Introduzione
    • Classi, oggetti e costruttori
    • Ereditarietà
    • Polimorfismo
    • Classi astratte
    • Classi nidificate ( inner e local )
    • Classi anonime
    • I package
    • Generics
  • Date / Calendar
    • Date / Calendar
    • Gestione delle date
  • Item number two
    • Classe Thread e interfaccia Runnable
    • Thread ed Executor
    • Sincronizzazione e Locks con la classe Thread
  • Mappe e Collezioni
    • Collection e List
    • List e Queue
    • Map
  • Input / Output
    • Classe File ed uilities
    • Stream orientate al byte
    • Stream orientate al carattere
  • Connessione ai Database Relazionali con JDBC API
    • Configurazione driver per l'uso di JDBC
    • Connessione ad un database e gestione delle eccezioni
    • Esecuzione di Query
    • Classe astratta per l'esecuzione delle query
    • Oggetti JDBC
    • Operazioni CRUD e transazioni
    • Stored Procedures

Spring Framework

L'obiettivo del modulo è quello di affrontare tutte le tematiche di uno dei framework maggiormente utilizzati nei progetti.

  • Spring Overview
    • Introduzione a Spring e Spring-Boot
    • Inquadramento del framework
    • Ambiente di lavoro & tools
    • DI (dependency injection)
    • Qualifier annotation
    • Component Scan annotation
    • Path Variable annotation
    • Request Param annotation
  • Spring Boot
    • Building an Application with Spring Boot
    • Create a simple web application
    • Run the application
    • Add Unit Tests
  • Introduzione a Spring Data
    • Accessing Data with JPA
    • Define a simple entity
    • Create simple queries
    • Create an Application class
    • Primo progetto Spring Data repository
    • Approfondimenti
  • Spring Batch
    • Creating a Batch Service
    • Create a business class
    • Create an intermediate processor
    • Put together a batch job
    • Make the application executable
    • Build an executable JAR
    • Primo progetto Spring Batch
  • Spring Security
    • Securing a Web Application
    • Create an unsecured web application
    • Set up Spring Security
    • Make the application executable

Accesso ai Database con Hibernate & JPA

JPA è standard JEE e ti permettà di ottimizzare i tempi di sviluppo del tuo strato di persistenza semplificando e massimizzando le performance

  • Introduzione agli ORM
  • Principali scenari di utilizzo
  • Componenti
  • EntityManager
  • Entities e ciclo di vita
  • Gestione delle query
  • JPQL e performance
  • Criteria API
  • Transactions
  • Concetti avanzati

Creare Microservizi con Spring Boot

Modulo sullo sviluppo dell'API REST, dalla comprensione dei concetti fondamentali dell'API REST alle best practice per la progettazione dell'API e all'implementazione delle API con Spring Boot; dalla protezione delle API al test delle API; dalla documentazione delle API alla distribuzione delle API. Questo corso riguarda anche lo sviluppo di diversi tipi di applicazioni client REST come app Web .

  • Introduzione a Spring Boot e configurazione ambiente di sviluppo
  • I Fondamenti delle API REST
    • Cos'è una REST API
    • Capire gli URIs
    • Capire lo standard HATEOAS
    • Hypertext Application Language (HAL)
    • Link Relation
  • REST API Design Best Practice
    • Resources Naming Convention
    • HTTP Methods e Status Codes
    • Use Hypermedia (HATEOAS)
    • Secure APIs
    • Document APIs
    • APIs Caching
    • APIs Rate Limit

GIT e GitHub

Modulo per apprendere il funzionamento di uno dei tool imprescindibili per la collaborazione in team. Partirai dalle basi fino ai concetti più avanzati per applicarli a qualsiasi contesto indipendentemente dal linguaggio .

  • Installazione e Configurazione
    • Introduzione al corso
    • Introduzione su Git e i sistemi di versionamento
    • Installare Git su Windows
    • Installare Git su Mac
  • GIT e GIT HUB Fundamentals
    • Creazione account GitHub
    • Creare un nuovo repository su GitHub
    • Creare nuovi file da GitHub
    • Configurare git: username e password
    • Login & git clone
    • git remote
    • TEORIA - differenze tra WORKING area vs STAGING area vs REPOSITORY
    • WORKING AREA
    • git add: STAGING AREA
    • git commit: REPOSITORY
    • git log: history dei commit
    • git commit: best practices e riepilogo
    • git push: sync con REPOSITORY REMOTO
    • Creare del file README e Markdown Syntax
  • I Branch
    • Introduzione ai branch
    • Introduzione ai branch, master vs main
    • Creazione di un repository GitHub e rinominare il branch master a main
    • Creare ed eliminare branch
    • Sviluppare una nuova feature su un branch dedicato
    • git merge: unire diversi branch
    • Conflitti con repository remoto su file differenti
    • Diagramma branch con l'alias git lg
    • Conflitti sullo stesso file
    • Creare un branch remoto
    • Cancellare i branch remoto e locale (1:29)
  • Rebase
    • Introduzione al rebase
    • Modificare un commit message con reword
    • Unire più commit assieme con squash
    • Unire più commit assieme con fixup
    • Eliminare un commit con drop
    • Modificare commit con edit
    • Associare ed eseguire un comando al commit con exec
    • Spostare un commit eseguito in un branch errato
    • Merge vs Rebase
  • TAG & Release
    • Introduzione ai tag
    • Creazione di un tag
    • Lista dei tag e checkout di un tag specifico
    • Eliminare un tag
    • Associare un tag ad un vecchio commit
    • Sincronizzare i tag locali con il repository remoto con push
    • Creare una release
  • Pull Request
    • Introduzione pull request
    • Eseguiamo un fork repository
    • Aprire ed includere una pull request
    • Chiudiamo una pull request
    • Richiesta di revisione di una pull request Draft
  • GIT Stash
    • Accantonare le modifiche correnti e vederne la lista
    • Vedere contenuto dello stash
    • Riprendere ed applicare le modifiche accantonate
    • Eliminazione delle modifiche accantonate
    • Creare un branch ed applicare le modifiche accantonate

Angular Framework

Modulo per sulle principali funzionalità di Angular per acquisire una solida base sul framework e iniziare a sviluppare le prime Single Page Applications: styling, directives, template driven forms, servizi e dependency injection, server-side communication, multi-view applications con Angular Router, una veloce introduzione alla creazione di componenti e all’organizzazione di progetti.

Al termine del corso i partecipanti saranno in grado di creare semplici applicazioni multi-view con angular router, comunicare con il server attraverso REST API, creare template-driven form con validazioni e gestione errori, utilizzare le direttive del framework per manipolare il DOM e creare applicazioni CRUD, sfruttare il motore di dependency injection creando servizi e creare i primi componenti custom riutilizzabili.

Familiarità con almeno un linguaggio di programmazione e, possibilmente, conoscere i concetti fondamentali su cui si basa il paradigma della programmazione ad oggetti. Aver già utilizzato HTML, CSS e Javascript ES6 sicuramente saranno di grande aiuto.Se pensi di avere delle carenze su JavaScript e TypeScript, valuta il programma del corso Javascript ES6 & Typescript Intro

  • Environment & Tools
    • NodeJS, NPM & gestire differenti versioni di NodeJS con NVM
    • Installare un Terminale su Mac e Windows
    • Installare e creare progetti con Angular CLI
  • Angular Fundamentals
    • Creazione progetti con angular-cli
    • Integrazione framework e librerie CSS: Bootstrap, FontAwesome, …
    • Template Tags
    • Manipolazione DOM
    • 1-way e 2-way Binding
    • Decorator @Component e metadata
    • Dynamic HTML templates
    • Direttive built-in: *ngIf, *ngSwitch, *ngFor
    • Gestire e manipolare collezioni dati
  • Dynamic Styling in Angular
    • From static to dynamic CSS
    • inline CSS
    • css “unit” suffix
    • ngClass
    • ngStyle
  • Dependency Injection
    • Creazione custom Service Providers
    • @Injectable decorator: quando e perché usarlo?
    • Utilizzare i servizi per condividere dati tra routes e componenti
    • Utilizzare i servizi per gestire lo stato dei componenti
  • Angular Forms
    • Keyboard Events
    • Template driven forms
    • Form & Input Template Reference Variables
    • ngModel directive: 1-way vs 2-ways binding
    • ngForm e submit
    • Form validators
    • Form Errors: custom messages in according with the error type
    • form state: dirty, invalid, touch, …
    • Validation with regular expressions
    • Custom validators with Directives
  • Introduzione ai Custom Components
    • Creare Angular Components
    • Template dinamici
    • Passare proprietà ai componenti
  • Multiview Applications
    • Il modulo @angular/router
    • Single Page Application Multiview
    • Router Navigation
    • Feature Route components
    • Condividere dati tra le routes

Mastering Angular

Acquisire il know-how necessario per la creazione di progetti Angular di una certa complessità applicando pattern, best practice e affrontando diversi aspetti fondamentali nella creazione di Single Page Application: gestire lo stato applicativo, autenticazione JWT e sicurezza, ottimizzazione performance e bundle-size, creare nested routes e applicare strategie di lazy loading, creazione codice scalabile ed efficiente, organizzare e strutturare l'applicazione in componenti e moduli.

OBIETTIVO DEL CORSO: Approfondimento sul framework, utilizzo di pattern e best practice: approccio component-based; applicazioni modulari tramite la creazione di custom ngModules (core, features, shared); approfondimento su router, guardie, lazy loading e nested routes; gestire l'intero processo di autenticazione; approfondimenti su componenti, direttive e depedency injection; ottimizzazione performane; manipolazione

REQUISITI: Conoscere le fondamenta del framework: binding, direttive incluse nel framework, form, dependency injection e comunicazione con REST API, ovvero gli argomenti alla base del corso introduttivo Angular Core Concepts

  • Custom Components
    • Input properties
    • Output Event emitters
    • Content Projection
    • Sibling Components communication
    • Comunicazione tra componenti "padre" e "figli"
    • Componenti riutilizzabili: Collapsable, Tabbar, Map, ...
    • Component-based approach: organizzare la UI in componenti stateless
    • Stateful vs Stateless components
  • Approfondimenti sul Router
    • API, componenti e direttive fornite dal modulo router
    • Creare applicazioni multiview
    • Creare custom modules per le regole di routing
    • Gestire route con parametri
    • Router e Lazy Loading
    • Children Routes
    • Nested Routes e multipli router-outlet
    • Router Events
  • Manipolazione DOM in Angular
    • DOM e local template reference variables
    • @ViewChild and DOM references
    • Il servizio ElementRef e nativeElement
    • Introduzione: direttive custom
    • Introduzione: creazione custom Pipe
  • Organizzazione modulare dei progetti
    • Strutture progetti scalabili e manutenibili
    • Creazione applicazioni modulari e custom ngModule
    • Applicazioni modulari e custom ngModule
    • Differenze tra moduli Core, Shared & Features
    • Domain vs Widget vs Service Modules
    • Build & Deploy
    • Convenzioni, styleguide, best practice
  • Data Architectures in Angular
    • State management con servizi e dependency injection
    • Gestione Stato e Side Effect
    • Immutabilità? Perchè è utile e quando?
    • Ottimizzazione performance con le strategie di ChangeDetection onPush
    • Bad (e Good) Practices nell'utilizzo della Dependency Injection
  • Sicurezza e Authentication
    • Autenticazione con JWT
    • Procedure di Login e Logout
    • Utilizzo REST API protette da token
    • Creare HTTP “interceptors”
    • Gestione errori HTTP
    • CORS, preflight e OPTIONS
    • Router Guards: protezione routes
    • Local Storage & Auto-login
    • Creare direttive custom per la gestione dei ruoli utente

Angular & Rxjs

Un corso intensivo per acquisire i concetti fondamentali sul paradigma funzionale reattivo e sull’utilizzo della libreria RxJS in Angular. RxJS è, infatti, una delle dipendenze più importanti di Angular, alla base della maggior parte delle funzionalità del framework che ruotano attorno al concetto di Observable: reactive forms, Router, HttpClient, HTTP interceptors, @Output EventEmitter, state manager come NGRX, solo per citarne alcuni..

  • Introduzione a RxJS
    • Introduzione al paradigma funzionale reattivo.
    • Imperative vs Reactive programming
    • Observable vs Observer
    • next, error and complete
    • Pull vs Push
    • Hot vs Cold Observable
    • Unicast vs Multicast
    • Subscription
    • subscribe e/o async pipe
    • Operatori di Creazione vs Pipeable operators
    • Marble Diagrams
    • Higher Order Observables: switchMap vs mergeMap vs concatMap vs exhaustMap
    • Creare e gestire sequenze di observables
    • Debug
    • Bad & Good practices
  • RxJS Operators: esempi pratici
    • Creation operators
    • Filtering operators
    • Combination operators
    • Transformation operators
    • Higher Order operators
    • Conditional operators
    • Error Handling operators
    • Multicasting operators
  • Creare custom RxJS Operators
    • Creare operatori custom in JavaScript
    • Creare operatori custom in TypeScript
    • OperatorFunction vs MonoTypeOperatorFunction
  • RXJS & Angular: esempi pratici HttpClient
    • bad (& good) practices in RxJS
    • Operatori RXJS indispensabili: map, filter, reduce e molti altri
    • Async Angular pipe
    • Nested HTTP request with switchMap
    • switchMap ed emissione valori multipli
    • switchMap e salvataggio dei risultati parziali
    • Richieste HTTP simultanee con l'operatore forkJoin
    • switchMap vs mergeMap vs concatMap vs exhaustMap
    • reduce and scan operators
    • Gestione errori e operatore catchError
    • retry operator
    • Esempi di utilizzo con forms, router, pipes, directives
  • Multicasting
    • Unicast vs Multicast: differenze
    • Operatori share, publish, multicast
    • Le differenti tipologie di Subject
    • Subject & Angular services: gestione stato applicativo
    • Esempi real-world in Angular
  • Autenticazione e sicurezza in RxJS
    • Gestione dell'intero processo di autenticazione in RxJS
    • State management in RxJS
    • Gestione Stati derivati
    • login e logout
    • Gestione token JWT e stato autenticazione con Subject
    • Router Guard e Http Interceptor: utilizzo idiomatico di RxJS
    • Protezione DOM e gestione ruoli tramite direttive strutturali
  • RXJS & Angular: Reactive Forms
    • Integrazione XHR con i Form tramite operatori
    • Applicare operatori RxJS a FormControl e FormGroup
    • Integrazione 3rd party API e utilizzo di operatori RxJS (ad es. l'operatore withLatestFrom

Reactive Forms Fundamentals

Questo corso intensivo si focalizza su RxJS e le API dei Reactive Forms forniti dal framework, in quanto offrono una flessibilità decisamente superiore rispetto ai template-driven forms, ed esplora diverse tecniche per sfruttarli al meglio, con esempi pratici e casi d’uso reali.

  • Angular, Rxjs e Reactive Forms
    • Introduzione a RxJS
    • HTML Native Events in Typescript
    • From Vanilla JavaScript to RxJS
    • Pipeable RxJS operators
    • Creare un progetto Angular
    • Angular, @ViewChild, Component LifeCycle & Input Text
    • TypeScript Strict Mode, Optional Chaining & Non-Null Assertion Operators
    • Creare Form reattivi in Angular con l'operatore fromEvent
    • FormControl - Il mio primo Reactive Form
    • RxJs Operators: work with data, debounceTime, distinct & distinctUntilChanged
    • REST API, HttpClient & Reactive Forms
    • Bad Practice: evitare subscribe all'interno di altre subscribe
    • Flattening Operators: esempio con mergeMap
    • Gestione errori in RxJS
    • Typing
    • Display Data
    • Pipe Async e richiede http multiple
    • Considerazioni Finali
    • Depencency Injection, Services e Reactive Forms
  • Typed Form Control
    • Form Control & initial values
    • Typed Forms: default value, nonNullable & reset
    • setValue and type forms
    • Dirty, touched and FormControls properties
    • Validators
    • Pattern Validators con regular expression
    • Messaggi di errori personalizzati
    • Creare animazioni sulla base messaggi di errore
    • Creare il component "error-bar"
    • Creare un componente riutilizzabile per visualizzazione errori
    • Performance e creazione Custom Pipe
    • Utilizzo di Generics & Custom Types con i FormControl
  • Reactive Forms & Angular Material
    • Installare e configurare Angular Material
    • Hello Angular Material
    • Form Builder e matInput
    • Il componente matCheckbox
    • Il componente Date Picker
    • Submit & Reset
    • Fix Pulsante Clear

State Manager & Data Architectures con Angular e Ngrx

Creare applicazioni Angular scalabili, testabili e semplici da mantenere utilizzando NGRX per la gestione dello stato applicativo, applicando una netta separazione tra architettura dati e presentational layer. Al termine del corso il partecipante sarà, quindi, in grado di introdurre NGRX nei propri progetti Angular e di sfruttarne al massimo il potenziale.

REQUISITI: per comprendere gli argomenti trattati nel corso è necessario avere una buona conoscenza delle seguenti funzionalità del framework Angular: componenti custom, moduli, dependency injection, router e lazy loading. Nel caso di intenda prima approfondire questi argomenti consiglio di frequentare il corso Mastering Angular.

  • Redux fundamentals
    • Principi fondamentali di Redux
    • Immutable State in Javascript
    • Pure vs Inpure functions
    • Redux core concepts: store, reducers, actions
  • NGRX fundamentals
    • Introduzione tecnica alla libreria
    • Costrutti, funzionalità e API principali
    • Installare le librerie necessarie
    • Reactive Store e Observable
    • Modellare lo store con StoreModule
    • Modificare lo stato tramite reducer
    • Selectors e memoization: selezionare porzioni di stato
    • Debugging e Redux Chrome Dev tools
    • Esempi e casi d'uso reali
  • Impostare progetti NGRX
    • Organizzazione progetti scalabili e manutenibili in Angular
    • Data architectures in Angular e NGRX
    • Sviluppo modulare: custom ngModules Core, Shared e Features
    • Approccio component-based
    • Stateless architectures
    • Containers vs Presentational components
    • Sviluppo Real World Applications in ANGULAR / NGRX: gestione CRUD, autenticazione, profilo, forms complessi, protezione DOM, router e molto altro
  • Autenticazione, Sicurezza e NGRX
    • Processo di autenticazione JWT
    • Modifica profilo utente
    • Router Guards: creare sezioni protette da login
    • HTTP Interceptors
    • Protezione del DOM tramite custom structural directives, ad es. *ifLogged
    • AutoLogin e persistenza dati tramite localStorage
  • Reducer & Selectors
    • Stato globale con forRoot
    • Gestione stato "lazy" tramite l'utilizzo di forFeature
    • Modifica dello stato tramite reducer
    • Il metodo createReducer in NGRX
    • Nested reducers con ActionReducerMap
    • Selectors semplici e compositi
    • createSelector vs createFeatureSelector
    • MetaReducers
  • Actions & Effects
    • Time travel debugging
    • Typed Safed Actions con createAction
    • Il metodo createAction
    • Gestione side effects con "NGRX Effects"
    • Il metodo createEffect
    • Gestione applicazioni CRUD, router e localStorage
    • Avviare azioni multiple negli effects
    • Effetti condizionali sulla base dello store
  • Router Store
    • Installazione e configurazione NGRX Router
    • Sincronizzazione router con stato applicativo
    • Navigazione
    • Creazione custom Actions per il router
    • Router Selectors
    • Protezione route con guardie, NGRX e l'utilizzo di JWT
    • Gestione router con Lazy Loading
  • Reactive Forms, UI & NGRX
    • Integrazione Reactive Forms
    • Sincronizzazione Form con lo stato applicativo
    • Utilizzo di FormBuilder, FormControl, FormGroup
    • Gestione elenchi dati con FormArray
    • Gestione User Interface tramite NGRX (ad es. apertura e gestione pannelli)






View All Works

next case