Archetipo Di Formazione

7
CORSO Java Base ARCHETIPO di Formazione : Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso ARCHETIPO di Formazione: Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso. Sommario Background di programmazione su linguaggi object-oriented..............2 Migliorare la produttività in fase di sviluppo e acquisire la padronanza di Ambienti, Framework e Best Practices:...............................2 Competenze tecniche calate nel contesto infrastrutturale utilizzato quotidianamente: Tomcat e Eclipse.....................................3 Nozioni teoriche, propedeutiche alla comprensione e padronanza degli aspetti tecnici:....................................................... 4 Composizione della giornata formativa………………………………………………………………………………………………………..6 c/o Cogetech SpA Formazione teorica e laboratori pratici Docente : Richard Gennaro

Transcript of Archetipo Di Formazione

Page 1: Archetipo Di Formazione

CORSO Java Base ARCHETIPO di Formazione :

Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso

ARCHETIPO di Formazione:

Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso.

Sommario

Background di programmazione su linguaggi object-oriented.........................................................................2

Migliorare la produttività in fase di sviluppo e acquisire la padronanza di Ambienti, Framework e Best Practices:..........................................................................................................................................................2

Competenze tecniche calate nel contesto infrastrutturale utilizzato quotidianamente: Tomcat e Eclipse.....3

Nozioni teoriche, propedeutiche alla comprensione e padronanza degli aspetti tecnici:...............................4

Composizione della giornata formativa………………………………………………………………………………………………………..6

c/o Cogetech SpAFormazione teorica e laboratori pratici Docente: Richard Gennaro

Page 2: Archetipo Di Formazione

CORSO Java Base ARCHETIPO di Formazione :

Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso

Dal confronto telefonico avvenuto in data odierna con Nicola Miletti sono emersi i seguenti argomenti che caratterizzeranno la struttura programmatica del corso:

I discenti hanno tutti un background di programmazione su linguaggi object-oriented (C#) e interpretati (PHP). 

Tale know-how permetterà di omettere l'introduzione al paradigma della programmazione orientata agli

oggetti, dei suoi componenti (Classi, Oggetti, Interfacce...) e delle proprietà che caratterizzano tali linguaggi

(Ereditarietà, Polimorfismo e Incapsulamento).

L'obiettivo richiesto è quello di acquisire le competenze necessarie per migliorare la produttività in fase di sviluppo e acquisire la padronanza di Ambienti, Framework e Best Practices:

Ambienti (Eclipse), 

Design Pattern 

o creazionali (Factory, Builder, Prototype e Singleton), 

o strutturali (Decorator, Façade, Proxy, Filters), 

o comportamentali (Chain of Responsability, Command, Event Listener/Observer, Iterator,

Memento, State Machine) 

o architetturali (MVC, Standalone Client, Client-Server, Multi-Tiers, Batch, Broker, Reflection,

Data Access Object, Data Transfer Object, Object-Relational-Mapping, Inversion Of

Control) 

Framework utilizzati che implementano i pattern architetturali ( confronto, contesti pratici, best

pratices ) :

o MVC (Struts e JSF)

o Standalone Client (Swing e Eclipse SWT)

o Client-Server (TCP, HTTP, Unix Sockets)

o Batch (EasyBatch, Spring Batch we JSR 352 in JEE7)

o Broker (CORBA e JMS)

o DAO e DTO Anti-Patterns (JDBC e MyBatis)

o ORM (Hibernate e JPA in JEE6)   

o Inversion of Control (Spring Core e CDI in JEE6)

Cenni Architetturali SOA : 

o Servizi Web SOAP e RESTFul, 

c/o Cogetech SpAFormazione teorica e laboratori pratici Docente: Richard Gennaro

Page 3: Archetipo Di Formazione

CORSO Java Base ARCHETIPO di Formazione :

Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso

o EJB 3.x e Business Delegate

o Ambienti distribuiti, bilanciati e in alta affidabilità (cluster)

L'approccio tematico a quanto sopra elencato sarà del tipo:

1. Approccio ad un Contesto Pratico

2. Introduzione alla Problematica (Requisiti Utente)

3. Soluzione (studio di fattibilità):

- Definizione dei requisiti attraverso casi d'uso

- Scelta di uno o più Design Pattern che garantiscano le caratteristiche funzionali individuate

dai casi d'uso

(Function Point)

- Scouting dei Framework che implementano tali Design Pattern

- Laboratorio Pratico di implementazione del Framework scelto attraverso l'utilizzo di Eclipse

- Best Practices

E' emersa l'esigenza di acquisire le competenze tecniche in questione calate nel contesto infrastrutturale utilizzato quotidianamente dai discenti, ovvero Tomcat come Application Server e Eclipse come Ambiente di Sviluppo.

Per questo motivo verrà approfondita l’analisi dell’implementazione della gamma di soluzioni offerta

dagli ambienti sopra citati rispetto alle linee guida e specifiche tecniche generiche dettate dalla

Comunità Java attraverso le JSR (Java Specification Requests).

Inoltre verranno messi a confronto Frameworks diversi ma funzionalmente concorrenti per

permettere alla classe di sperimentare lo scouting delle soluzioni tecniche

c/o Cogetech SpAFormazione teorica e laboratori pratici Docente: Richard Gennaro

Page 4: Archetipo Di Formazione

CORSO Java Base ARCHETIPO di Formazione :

Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso

 L'approccio deciso durante il confronto telefonico di affrontare i vari aspetti nozionistici in ambiti estremamente concreti, con una preponderanza verso laboratori pratici piuttosto che esposizioni teoriche, non può comunque esimere la classe dall'affrontare le seguenti nozioni, propedeutiche alla comprensione e padronanza degli aspetti tecnici trattati:

1. Breve percorso storico e confronto con altri linguaggi O.O. 

2. Esecuzione del codice: pre-compilatore, bytecode, JVM

- Best Practices per la scrittura del codice: Naming Conventions e metriche di qualità

3. Limiti della portabilità di un'applicazione Java (metodi nativi) :  "Write once, run everywhere" -

> "Write once, debug anywhere" 

4. Tipi Immutabili e Strutture di Dati

5. Gestione della memoria in Java: Aree di memoria, passaggio di argomenti ai metodi per valore o per

riferimento, Garbage Collection, Configurazione di Tomcat per ottimizzare l'uso della memoria 

- Best Practices per l'ottimizzazione dell'uso della memoria: destory, finalize e strategie di

GarbageCollecting

6. Logging e Debugging: utilizzo di librerie di log e unit test

7. Programmazione test-driven, cenni di programmazione Agile

8. Programmazione event-driven in contesti web: JSF e Ajax

9. Separazione delle logiche:

a. . Presentation Logic

b. . Business Logic

c. . Persistence Logic

d. . applicazioni multi-tiers

10. Programmazione di strati specializzati per il disaccoppiamento, riutilizzo del codice e

implementazione di ambienti distribuiti

c/o Cogetech SpAFormazione teorica e laboratori pratici Docente: Richard Gennaro

Page 5: Archetipo Di Formazione

CORSO Java Base ARCHETIPO di Formazione :

Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso

11. Disaccoppiamento e Coesione : sistemi strong-coopling e loose-coopling, tipi di coesione.

Dipendenze circolari

- Best Practices per il disaccoppiamento e la distribuzione: 

- Disaccoppiamento totale con protezione implicita

- Inversion of Control

- Applicazioni message oriented (MOM)

- .Enterprise Service Bus

12. Programmazione Aspect-Oriented : 

- Come ottenere le caratteristiche dell'ereditarietà multipla in Java. 

- Il Pattern Decorator

- Le annotations e il pre-compilatore AspectJ

13. Strumenti di supporto alla programmazione e alla gestione del ciclo di vita del software (ALM)

- Versionamento del codice e collaborazione : CVS, SVN, ecc... 

- Automazioni per la compilazione e la gestione delle dipendenze (librerie) : ANT e MAVEN a

confronto

- Repository delle dipendenze e degli artefatti remoti e locali : NEXUS e ARTIFACTORY

- Issue Tracker

- Collaboration Platforms

- Continuos Integration : JENKINS

- Best Practices sulle metodologie di programmazione: le metafore dell'altalena e della cattedrale nel

deserto

c/o Cogetech SpAFormazione teorica e laboratori pratici Docente: Richard Gennaro

Page 6: Archetipo Di Formazione

CORSO Java Base ARCHETIPO di Formazione :

Minuta riepilogativa sul confronto telefonico per decidere il taglio del Corso

Composizine della giornata formativa:

La giornata formativa sarà composta da 8 ore così suddivise:

1a ora : 

o Riepilogo delle nozioni acquisite durante la giornata formativa precedente ed eventuali

approfondimenti on-demand

o Introduzione agli argomenti che verranno trattati, correlazioni, motivazioni e contesti reali

o Azioni necessarie allo svolgimento della formazione (download, installazione e

configurazione di ambienti, software e framework trattati durante la giornata)

o Test di valutazione

dalla 2a alla 4a ora : esposizione delle nozioni teoriche previste (con pausa intermedia di 10 minuti)

Pausa Pranzo

dalla 5a alla 8a ora : laboratori pratici (con due pause intermedie di 10 minuti)

Questa minuta sarà l'archetipo sul quale strutturerò il programma delle 3 giornate di formazione che invierò entro domani.

Per domande o approfondimenti sono disponibile via e-mail

Grazie,

               Richard Gennaro

               Coordinatore dello Sviluppo               Software Architect  - SOA Solutions Expert

               Cell. +39 334.7156742

     [email protected]

c/o Cogetech SpAFormazione teorica e laboratori pratici Docente: Richard Gennaro