Formation Software Engineering Design Principles


  • DESIGN PATTERN OBJET, ARCHITECURES DISTRIBUÉES, LANGAGES ET FRAMEWORKS, APPROCHE DEVOPS, OUTILS D'INTÉGRATION CONTINUE
REFERENCE
 
 
DEDP
DUREE
 
 
3 jours
TARIFS
 
 
1890 € HT
Niveau : Intermédiaire
Cours à distance: Possible
OBJECTIFS :
 

Il est enfin accepté dans les appréciations des décideurs que les développeurs ne sont pas tous égaux ! La réussite d'un projet de x jours/homme dépend principalement des hommes qui réaliseront ce projet. Cette formation « Design Principles » a pour objectif de transformer des développeurs ayant des premières expériences en des développeurs « full-stack », capables d'appréhender tous les composants nécessaires à l'élaboration des applications modernes afin de participer aux choix techniques de conception et d'architecture.

Cette formation au contenu technique dense et de haut niveau propose de nombreux ateliers participatifs. A l'instar des développements agiles, prônant la communication inter-équipes, les stagiaires collaborent pendant les ateliers et donnent un avis critique et constructif sur les différentes implémentations proposées par leurs pairs ou par le formateur.

PRÉ-REQUIS :
 

Pour suivre ce cours de façon optimale, la connaissance d'un langage orienté objet est nécessaire.

PUBLIC :
 

Ce stage s’adresse aux développeurs ayant 2 à 3 ans d'expérience de programmation objet.

PROGRAMME :
 

Introduction, présentation du contexte

L’activité de développement, organisation et dimensionnement des équipes, types de projets. Développeur full-stack, Dev leader, architecte, DevOps
Cycle de vie d'un logiciel, d'un projet. Méthodologies de développement et critères d'adoption
Les indicateurs de qualité d'un logiciel : performance, ergonomie, robustesse, “scalabilité”, évolutivité, maintenabilité, portabilité
Développer… mais aussi tester, documenter, communiquer, s'engager

Patterns de conception, les gammes du développeur confirmé

Introduction à la notion de pattern : Pattern de conception et d'architecture, Origine de la notion de pattern avec le GOF, Description et formalisme d'un pattern, Typologie des patterns dans la POO
Les patterns de construction : détails de Factory, Object pool
Les patterns structuraux : détails de Décorateur et Adaptateur
Les patterns comportementaux : détails de Visiteur et Chaîne de responsabilité

Atelier

Chaque stagiaire met en place un des 6 design patterns détaillés. Discussion collective des implémentations

Patterns architecturaux de l'informatique distribuée, l'orientation service

Omniprésence du réseau dans les applications informatiques : application autonome, client léger/client lourd, application embarquée
Problématiques de la programmation distribuée : localisation des ressources et services de nommage, modèle synchrone/asynchrone (proxy, file d'attente), stateless/stateful.
Apports de la distribution en termes d'évolutivité, de performance, de disponibilité, de mutualisation. Clustering
Difficultés apportées par la distribution : temps de latence, sérialisation/dé-sérialisation, les transactions distribuées, propagation de la sécurité, cycles de vie lié des différents composants
Architecture n-tiers, Couche présentation et MVC, Couche service, Couche de persistance
Les services Web : les apports de XML et WSDL, découverte automatique de services. Exemple de ASP.NET
L'approche REST : les apports de JSON et Javascript, Architecture RESTFul, Notion d'API. Exemple de Swagger
Approche SOA, SOA de surface. Applications de SOA, EAI, ESB. BPEL. Exemples de WSO2, Fuse
SOA de profondeur : concevoir des applications composites, les architectures micro-services et notion de singlee-responsibility. Exemples de Spring Boot, LightBend  
Comparaison et retour d'expérience sur les différentes architectures : déploiement, maintenabilité, évolutivité

Atelier

Démonstration et discussion autour d'une mini-application développée en 3 variantes : ear JavaEE, Services Web et ESB, Microservices REST et Angular JS

Langages de programmation, les critères de sélection

Typologie des langages et apports inhérents (compilé/interprété, procéduraux et orienté objet, typé, fortement typé et non typé)
Framework et Middleware, AOP, Méta-données sur le code, le Pattern IoC et ses applications
Rappels sur Java et .NET, similarités, historique des versions et nouveautés des dernières versions
Langages présents dans les services back-end (Java, .NET, Perl, PHP, Ruby, Python, Scala, Groovy), Frameworks associés. Exemples de SpringBoot et JPA
Langages « front end » : HTML5, CSS, JavaScript. Frameworks associés : BackBoneJS, SenchaJS, Angular JS/Angular2
Les langages pour les mobiles : Androïd, ObjectiveC

Atelier

Développement d'une mini-application Web avec SpringBoot et AngularJS

Usine à logiciel et intégration continue

Intégration continue, Relations avec les méthodologies Agiles, Mentalité IC, eXtreme Programming
Les outils de SCM : SVN, Git. Impacts sur les workflows collaboratifs
Les outils de build. Exemple de Maven/Graddle, problématique de l'adéquation à l'environnement (QA, pré-prod, production…), problématique du provisionning, les impacts de la virtualisation et de la « containerisation », les réponses de Docker, Puppet, Ansible
L'importance et la nécessité des tests dans l'IC. Typologie des tests : Tests unitaires, d'intégration, de performance, d'acceptance. Les outils associés : JUnit, Arquilian, Selenium, JMeter/Gatlin
Métriques d'un projet, couverture fonctionnelle, conformité du code, documentation, analyseur de code. Cobertura, Checkstyle, FindBugs
Rôle d'un serveur d'intégration continue. Le succès de Jenkins. Problématiques liées aux serveurs d'IC : plugins, provisionnement de ressources, gestion de l'historique projet, organisation des builds en pipelines, déploiement continu

Atelier

Démonstrations et mini-ateliers Docker, Puppet, pipeline Jenkins

TRAVAUX PRATIQUES :
 

Les ateliers représentent plus de 50 % de la formation.

Les avis figurant ci-dessous sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions. Avis des participants à la formation Software Engineering Design Principles : Note moyenne : 4/5
4/5
Avis certifié A suivi un cours chez PLB

SSJ

Mon avis sur le contenu du stage :

"Les ateliers techniques devraient être plus longs."

Ce que j'ai le plus apprécié :

"bonne salle, "

4/5
Avis certifié A suivi un cours chez PLB

CT

Mon avis sur le contenu du stage :

"Intéressent mais pas nécessairement adapté : techno connue plus en profondeur que ce qui a été présenté."

Mon avis sur le formateur :

"Très bonne animation, vivant. Pas de temps mort, et sujets adressés lors des interactions avec le groupe."

Mon avis sur la salle de formation :

"Problème de réseau, difficulté à télécharger les binaires nécessaire aux TP"

Ce que j'ai le plus apprécié :

"Le matériel fourni est de qualité et dans l'ensemble les machines sont très bien préparées (VM installées et IDE/binaires fournis directement sur les VM). Bon rythme de formation et interactions régulières avec le groupe."

S'INSCRIRE À CETTE
FORMATION DESIGN PRINCIPLES
Cliquez sur une date pour vous inscrire
Information pratiques sur
LA FORMATION
Lieu de la formation Paris - LA DEFENSE
Nous contacter 01 43 34 90 94
CETTE FORMATION SUR-MESURE Ce cours est réalisable en intra-entreprise, dans vos locaux ou nos salles de cours CONTACTER NOTRE SERVICE INTRA
D'autres formations
SUR LE MÊME THÈME

3 j

 
Scala est un langage polyvalent qui permet de développer tout type d’application en cumulant les possibilités de la programmation objet et de la programmation fonctionnelle....

5 j

 

Développement

Le Langage Go
Cette formation de quatre jours s’adressant à tous types de développeurs a pour but la prise en main du langage Go. Dans un premier temps, les participants...

4 j

 

Développement

Ruby On Rails
Cette formation Ruby On Rails a pour objectif principal de permettre la prise en main du langage Ruby et surtout du framework Ruby On Rails (basé sur le modèle MVC). Le framework...

4 j

 

Développement

Python
Cette formation Python vous permettra d'acquérir les connaissances nécessaires à la programmation avec le langage Python. Quatre jours pour acquérir les bases du...
Plus de formations sur le même thème

Des questions ?

ON VOUS RAPPELLE

 

0

Formations
Informatique
et Management
en ligne à ce jour

+ 0

Stagiaires dans nos
salles de cours sur
l'année

0%

De participants
satisfaits ou très
satisfaits de nos
formations

0

Formateurs experts
validés PLB