Programme de formation

en présentiel de Datasense-Group


Organisation & moyens

Moyens pédagogiques, techniques et d’encadrement mis en œuvre

Au début de chacune de nos formations le stagiaire se verra remettre une clé USB avec le support de cours au format PDF

Un vidéo projecteur sera systématiquement utilisé pour projeter le support de cours

Les formateurs assurant chacunes des sessions :

 

Moyens permettant le suivi et l’appréciation des résultats

 

Appréciation des résultats

A la fin de chaque formation, le formateur remettra au stagiaire:

Le formateur s’assure également du niveau de connaissances acquis individuellement en fin de formation en effectuant un tour de table.

 

Organisation et fonctionnement de la formation


Programmer en Java

        

CODE:

JAVA

Java est le langage objet le plus utilisé. Grâce à une communauté de

développeurs très dynamique il a atteint au bout de 10 ans d’existence un haut

degré de maturité pour être adopté par une multitude de projets d’entreprise.

Programme

Objectifs du cours :

> Maîtriser la syntaxe et les

principes de base de Java

> Comprendre les principes

de la programmation objet

> Acquérir une autonomie en

programmation

d’applications Java

> Acquérir les bonnes

pratiques de développement

Java

Profils visé :

> Développeurs

> Chefs de projets

> Architectes techniques

Pré-requis :

> Connaissance d’un

langage de programmation

type C/C++, Pascal,

Delphi...

Travaux pratiques et

dirigés :

Ce cours comporte de

nombreux TDs et TPs

permettant d’illustrer et de

mettre en œuvre les

différents concepts et sujets

abordés.

Rythme: en continu

Horaires: 9h00-12h00/13h00-17h00

Durée: 3 jours

Tarifs: 1900 € H.T.

Etat de l'art des technologies objet

> L'évolution des langages de

programmation

> Comparaison entre l'approche

fonctionnelle et l'approche objet

> Etat de l'art concernant les langages et technologies objet actuelles : C++, Java,

C#, PHP

Introduction à Java

> La machine virtuelle

> Le classpath

> Les types de base et opérateurs

> Les structures de contrôle

> Les tableaux

> Les chaînes

Les concepts Objets de base

> Concepts de classes, d’instances,

d’états et de comportements

> Messages, communication et

collaboration entre les objets

> Encapsulation, attributs et méthodes

> Mise en oeuvre avec Java

Les concepts Objets avancés

> Abstraction, objets et classes

> Généralisation et spécialisation,

classification, principe d'héritage

> Comprendre le polymorphisme

> Relations entre les classes,

association, agrégation, composition et dépendance

> Réutilisation

> Mise en oeuvre avec Java

Concepts Java avancés

> Introspection et notion de méta

modèle

>Les classes Class, Method

> Réflexion : invocation dynamique de code

> Les exceptions : principes,

utilisation.

Concepts architecturaux

> Programmation par contrat de service, notion d’interface

> Notions d’architecture et de

composants

> Couplage des composants,

organisation en couches

applicatives d’un système

Modélisation Objet

> Représentation naturelle des

entités métiers

> Approche systémique :

organisation, responsabilités

> Les Design Patterns de

conception, des solutions

optimisées pour les problèmes

récurrents

> Bonnes pratiques de la

programmation orientée objet

> Frameworks : introduction,

utilisation

Programmation avancée en java

        

CODE:

JAVA-AV

Le langage Java recèle de nombreuses fonctionnalités dédiées à la conception et à la réalisation d’applications d’entreprise. La compréhension et l’assimilation des principaux mécanismes du langage est un requis indispensable pour une

utilisation optimale d’un tel langage objet aboutit.

Programme

Objectifs du cours :

> Maîtriser les mécanismes

fondamentaux

> Manipuler les APIs

avancées de Java

> Réaliser une application

complète de type client riche

mettant en œuvre tous les

concepts abordés

Profils visé :

> Développeurs

> Chefs de projets

> Architectes techniques

Pré-requis :

> Connaissance de la

syntaxe du langage Java

> Connaissance du concept

objet

> Une mise en œuvre du

langage sur une application

basique est fortement

recommandée

Travaux pratiques et

dirigés :

Les TPs et TDs

 qui seront réalisés

dans cette formation

permettront de très bien

appréhender la multitude de

concepts exposés

Rythme: en continu

Horaires: 9h00-12h00/13h00-17h00

Durée: 4 jours

Tarifs: 2500 € H.T.

Concepts et syntaxes avancés du

langage

> Les « import static »

> Autoboxing et auto-unboxing des types primitifs

> Les types génériques

> Amélioration des boucles avec les collections

> Introspection et réflexion

> Méthodes à nombre d'arguments variable

> Annotations : utilisation, création

Optimiser la JVM (Machine Virtuelle)

> Comprendre comment fonctionne le garbage collector et la gestion de la mémoire, forcer un garbage

> Optimiser l’utilisation de la mémoire, modifier les paramètres de lancement

> Comprendre le class loader

> Modifier la stratégie de chargement des classes : écriture d’un classloader

> Piloter la JVM via API

Gérer les accès concurrents

> Définition d'un thread

> Créer et manipuler les threads

> Synchroniser les threads sur un objet moniteur

> Exemple de temps réel

> Bonnes et mauvaises pratiques

La sécurité en Java

serveur Java EE

> Les API de sécurité (JAAS, JCE,

JSSE)

> La configuration

Principes des architectures n-

tiers, pattern MVC et Design Patterns

> Le couple Observer/Observable

> Façade

> Fabrique abstraite

> Inversion de contrôle

> Itérateur et Visiteur

Accéder à une base de données

relationnelle avec JDBC

> Architecture et types de pilotes

JDBC

> Charger le pilote et récupérer

une connexion à la base de

données

> Exécuter des requêtes SQL,

requêtes paramétrées

> Exploitation des résultats

> Notion de persistance objet :

• Principes

• Data Transfer Object

• Exemple d’Hibernate

Gestion de flux d’entrées/sorties

> Flux binaires, encodages

> Sérialisation/désérialisation

d’objets

> Les modifieurs Java et leurs

impacts

Architecture à objets distribués :RMI (Remote Method Invocation)

> Présentation

> Appel de méthodes d'un objet

distant (TCP-IP)

> Appel de méthodes d'un objet

distant (RMI)

> Annuaire d'objets : RMIRegistry

> Interface Remote

> Le compilateur rmic

> Stub et skeleton

Développer une application Java avec le framework Spring

CODE:

JAVA-SPRING

Spring est un framework d’intégration qui permet de gérer les technologies de

présentation, de persistance ou services tout en limitant fortement l'adhérence

aux technologies d'implémentation. La clé en est l'utilisation du pattern IoC

(Inversion of Control). Ce type de solution est également dénommé « conteneur

léger ».

Programme

Objectifs du cours :

> Etre capable de

développer une application

Java EE en utilisant Spring

> Connaître et assimiler les

concepts d'un conteneur «

léger

> Connaître les apports de la

Programmation Orientée

Aspect (AOP)

> Savoir utiliser les bonnes

pratiques de développement

Spring

Profils visé :

> Chefs de projet

> Architectes

> Développeurs

Pré-requis :

>Bonne pratique de Java

Travaux pratiques et

dirigés :

Les TPs et TDs

 qui seront réalisés

dans cette formation

permettront de très bien

appréhender la multitude de

concepts exposés

Rythme: en continu

Horaires: 9h00-12h00/13h00-17h00

Durée: 4 jours

Tarifs: 2800 € H.T.

Introduction

> Concepts de conteneur léger,

> Vue d'ensemble et exemples d'utilisation

> Pattern 'Inversion de Contrôle (IoC) par Injection de dépendance

Mise en oeuvre : le conteneur léger de Spring

> Vue d’ensemble du framework

> Les Beans, BeanFactory et

ApplicationContext,

> Mode singleton ou normal,

> Méthodes d'injection de dépendance,

> Configuration de beans spécifiques à Spring, cycle de vie,

> Définition de bean abstrait et héritage,

> Injections automatiques

> APIs d'accès aux ressources,

> Techniques de validations

(PropertyEditors, DataBinder,

BeanWrapper).

Framework MVC Web spécifique à Spring

> Orientations MVC2, rappels

> Configuration du serveur

> Les contrôleurs,

> Les gestionnaires de vues,

> Les mappings

> Spring WebFlow

> Intégration avec JSF et Struts.

Pattern DAO, Accès aux données avec JDBC

> Classes abstraites pour le support DAO,

> Utilisation de JDBC via les APIs

d'encapsulation Spring.

Accès aux données avec

Hibernate

> Gestion des ressources,

> Configuration de SessionFactory

dans le contexte d'application

Spring,

> IoC : HibernateTemplate et

HibernateCallback,

> Implémentation DAO avec les

APIs Hibernate,

> Démarcation de transactions par

programmation et déclaration.

Programmation Orientée Aspect

(AOP)

> Les concepts,

> La terminologie utilisée : Aspect,

Joinpoint, Advice, Pointcut,

Introduction, Target object, AOP

Proxy, Weaving,

> Les différents types « advice » :

Around, Before, Throws, After,

> Les objectifs et fonctionnalités

AOP de Spring,

> Intégration avec le framework

AspectJ.

Gestion des transactions

> La couche d'abstraction Spring,

> Les stratégies de transaction :

par programmation ou par aspects

> Mise en oeuvre d’une gestion

transactionnelle sans

programmation et par les aspects

Panorama des « autres »

couches d’intégration Spring

Maven et cycle de vie d’un projet

CODE:

MAVEN

Maîtriser les outils de build de votre projet. Compilation, résolution de dépendances, gestion de module …  rendre votre projet “industrialisable”.

Cette formation vous donne une vision globale et complète sur l’utilisation de maven.

Programme

Objectifs du cours :

>Structurer un projet autour de Maven

>Gérer les dépendances et les repositories

>Rendre un projet industrialisable

>Mettre en place une intégration continue avec Jenkins

Profils visé :

> Chefs de projet

> Architectes

> Développeurs

Pré-requis :

>Connaissance de java

>Notion de compilation, packaging et intégration

Travaux pratiques et

dirigés :

Toutes les notions théoriques seront mis en pratique à travers des TPs et TDs proposés par le formateur

Rythme: en continu

Horaires: 9h00-12h00/13h00-17h00

Durée: 2 jours

Tarifs: 1800 € H.T.

Principe de base

> javac Vs Ant Vs Maven

> Compilation et résolution de dépendances avec maven

> cycle de vie de Maven

Base d’un projet Maven

> utilisation  Artefact maven, le pom.xml

> configurer le setting.xml, repository local et distant

> coordonnées d’un projet,les dépendances, le versionning, les scopes

Utilisation courante

> les commandes de bases ( clean,install,package...)

> les plugins et leur configuration

>Les profils et variable d’environnements

> notion de version ( snapshot Vs Release)

>Les tests Junit: execution, skip  

>reporting: PMD, checkstyle, cobertura

Architecture du projet

 >Notion d’héritage de POM, le pom reactor

 >Découpage en  module: mode multi-projet

> L’utilité du dependency Management

> le pattern BOM

La releases et les outils

> Releaser un projet et les enjeux

> Introduction d’un serveur de dépôt (ex: Nexus)

> Introduction d’un dépôt de source

Utilisation avancée

>Les commandes maven pour l’analyse

 >Industrialiser avec un serveur d’intégration continue

> Intégration de sonar pour l’analyse de code

>Génération d’un site Maven

Intégration Continue

Introduction CI avec Maven

Intégration avec Jenkins


Intégration Continue - Jenkins

CODE:

CI-JENK

L'intégration continue est un des aspects essentiels des méthodes Agiles. Elle vise à garantir la qualité et la fluidité du cycle de développement. Cette formation présente les bonnes pratiques et techniques associées pour la mettre en oeuvre.

Programme

Objectifs du cours :

>Mettre en place un environnement d’Intégration Continue

>Automatiser le builds et le déploiement des applications d’entreprise

>Automatiser le contrôle de qualité et l’audit du code

>Mettre en oeuvre différents outils autour de jenkins ( Nexus OSS, Git, Sonar..etc)

Profils visé :

> Chefs de projet

> Architectes

> Développeurs

Pré-requis :

>Connaissance de java

>Connaissance de Maven

Travaux pratiques et

dirigés :

Toutes les notions théoriques seront mises en pratique à travers des TPs et TDs proposés par le formateur

Rythme: en continu

Horaires: 9h00-12h00/13h00-17h00

Durée: 3 jours

Tarifs: 1900 € H.T

Introduction à l’intégration continue

>Définition du CI (Continous Integration)

>Gestion de projet & CI : le cycle en V et la méthodologie Agile, devops

Mise en place du serveur Jenkins

>Déploiement standalone VS serveur

>Installation de jenkins

>Configuration de jenkins (jdk, maven…)

 Les différents composants de jenkins ( jenkins home, interface admin ..etc)

>Gestion des utilisateurs

Configuration des outils autour de jenkins

>Gestionnaire de source: introduction à git

>Référentiel de livrables : mise en place d’un dépôt d’entreprise

>Outil de build : maven

Automatisation des Tâches avec Jenkins

>Création de jobs simples, paramétrables,multi projets.

>Le build implicite et explicite

>Job de release: configuration et construction

>Mode de scrutation pour déclencher un job

Tests & métriques

>Présentation des différents tests d’un projet: test unitaire, test d’intégration ...etc

>Automatiser le build et les tests d’un projet

>Les rapports de tests

>Mesurer les couvertures de tests

>Les outils d’analyses : PMD, Checkstyles, Sonar ...

Notions avancées CI 

>Haute dispo et scalabilité: jenkins slave et master

>Administrer jenkins en ligne de commande : jenkins-cli.jar

>Administrer jenkins avec l’API REST

>De l’intégration continue au déploiement continue

>Jenkins 2 Pipeline

DATASENSE GROUP

64 rue du Montparnasse   -  75014 Paris

Tél : + 33659473726 – email : contact@datasense-group.com - www.datasense-group.com

Société par Actions Simplifiée au Capital de 2000 € - R.C.S. Paris 821 308 640 - code TVA FR FR26821308640 - Siret 82130864000019 - APE 6202A

                              Enregistrée sous le numéro 11755673175. Cette enregistrement ne vaut pas agrément de l’Etat.