Formation Développement et Architectures d’Applications

De l’objet aux frameworks, Java xE, .NET, les langages, les architectures urbanisées, mobilité, sécurité, parallélisation, etc.

Présentation

Cette formation aborde les aspects techniques auxquels sont confrontés aujourd’hui chefs de projet et développeurs : l’adaptation à de nouveaux environnements et langages, le changement de repères, le recours aux frameworks. Elle fait le point sur les changements d’architectures centrales et clients.

En trois journées denses et concrètes, tout ce que doivent savoir les DSI, chefs de projet et développeurs : une synthèse des outils, méthodes, langages, API et environnements de développement.

  • Les évolutions clés du développement d’applications : abstraction de la conception, modélisation, urbanisme des solutions.
  • Les nouvelles architectures fondées sur la réutilisation et la distribution des composants.
  • Les « Run Time », nouvelles boîtes à outils des développeurs et les frameworks de référence.
  • Le rôle central de JSON, l’architecture SOA, les MSA et confirmation des Web Services.
  • Le panorama des solutions du marché, avantages et inconvénients.
  • Les paradigmes nouveaux du développement : Cloud, langages scripts et dynamiques, fonctionnel, JavaScript à tous les étages, techniques de programmation avancées.
  • Les plateformes de développement.
  • Les problématiques nouvelles : « parallélisation », mobiles, sécurité, économie d’énergie, capteurs.
  • La mutation du métier de développeur.
Afficher plus

Le mot de l'animateur

« Il y a manifestement deux mondes dans le développement des applications modernes. Le premier est très technique, qui met en œuvre des concepts, langages et frameworks sophistiqués, celui de Java et de .NET. Le second, l’est moins, qui s’intéresse à la partie cliente des applications et pratique les langages script. Le formation auquel vous allez participer couvre ces deux aspects du développement pour lequel je vous donnerai les clés de la réussite : passer moins de temps sur le code et plus sur la réflexion et la modélisation. Avec un intérêt particulier pour les contextes nouveaux, sécurité, mobiles, etc. Avec plus de 30 ans d’expérience, je devrais pouvoir vous faire partager les bonnes pratiques de développement et vous alerter sur les autres. »

Objectifs

  • Comprendre les évolutions du développement d’applications?: abstraction de la conception, modélisation, réutilisation des composants (SOA, MSA, Web Services). Maîtriser les nouvelles architectures fondées sur l’asynchronisme des traitements et l’intégration du Cloud.
  • Se familiariser avec les paradigmes innovants des langages objet. Participer à des projets nécessitant une connaissance approfondie des langages script : JavaScript, PHP… Intégrer Python dans des projets à connotation d’Intelligence Artificielle.
  • Se préparer aux techniques de programmation fonctionnelle. Comprendre les spécificités du développement mobile. Intégrer les concepts de sécurité, de performances et d’esthétisme dans les projets nouveaux.
  • Adopter un processus de modélisation du code et des données : réfléchir avant de coder. S’insérer dans une nouvelle organisation des équipes de développement.
  • S’ouvrir à d’autres méthodes de gestion de projet, telles que l’agilité. Pour les chefs de projets, mieux gérer les équipes et réduire le gap entre les développeurs et les utilisateurs.

Programme

1 – La gestion de projet moderne

Ce qu’il faut savoir.

  • Les grandes tendances en gestion de projet.
  • Les cycles de vie du développement.
  • La MOA se substitue à l’informatique.
  • Ne pas s’encombrer d’acteurs inutiles.
  • L’approche bimodale du développement (Gartner).
  • Les qualités d’une équipe projet.
  • La boîte à outils réinventée.
  • La documentation : une nécessité.

Qualité des logiciels et complexité.

  • La qualité du logiciel : des réflexes à acquérir et critères.
  • Ce qu’est la complexité du logiciel.
  • Méthodes Halstead et McCabe.
  • Méthodes spécifiques de l’objet.

Evaluation des projets.

  • Principes généraux.
  • La méthode Cocomo et les points de fonction.
  • La gestion des portefeuilles de projets.
  • La maturité CMMI dans les projets

L’Open Source dans le développement.

  • Les quatre libertés fondamentales selon Stallman.
  • L’incompatibilité « sournoise » des licences Open Source.
  • Licence et propriété intellectuelle, licences permissives et copyleft.
  • Open Source et Open Core.

Montée en puissance de l’agilité.

  • Les faiblesses de la gestion de projets traditionnelle.
  • Le manifeste agile et les 12 principes agiles.
  • Le développement piloté par les tests.
  • Scrum : fonctionnement, acteurs, backlog, histoires.
  • Scrum : phasage, planification, cérémoniaux.
  • La programmation en binôme.
  • XP et les bonnes pratiques du « Lean Management’.
  • L’agilité au carré : plusieurs projets agiles menés en parallèle.

DevOps : le lien avec la production.

  • Pas de développement agile sans production agile.
  • Prise en charge des phases d’intégration, livraison et déploiement en continu.

La modélisation.

  • Méthodes et langages formels.
  • UML et ses principaux diagrammes.
  • La modélisation conceptuelle des données.

2 – Langages et programmation.

Les principes généraux de la programmation.

  • Schisme et technicité de la programmation.
  • Familles et popularité des langages.
  • Les paradigmes en progression : déclaratif, réactif…

Les évolutions de l’objet.

  • L’esthétisme du code.
  • Les fonctions de première classe.
  • L’inférence de type.
  • Le “duck-typing”.
  • Héritage simple ou multiple : une vieille affaire.
  • Les fonctions anonymes et lambdas.
  • La généricité.
  • Closures, itérabilité, syntaxe en losange, évaluation paresseuse…
  • L’évolution des structures de données.

Le monde Java.

  • Rappel des principes structurels de Java.
  • Les évolutions des JDK.
  • Les alternatives à Java (hors .NET) : Ceylon, Kotlin, C++..

La programmation fonctionnelle.

  • Les concepts.
  • Fonctions, composabilité, fonctions d’ordre supérieur.
  • Fonctions pures, immutabilité, « curryfication » et applications partielles.
  • Fonctions de première classe, récursivité.
  • Avantages et inconvénients de la programmation fonctionnelle.

Les autres langages.

  • La réalité de Cobol.
  • Clojure pour le traitement des listes.
  • R pour les statistiques.
  • Golang de Google.

Les langages script.

  • Langages scripts, statiques et dynamiques.
  • Le positionnement des langages script.
  • Le transpilage : traduction de source à source.

La galaxie JavaScript.

  • L’écosystème JavaScript.
  • Les références ECMA, jusqu’à ES11.
  • Node et le développement JavaScript sur les serveurs.
  • Les API Angular et React.
  • Dart de Google concurrent de JavaScript.

Les autres langages script majeurs.

  • Python.
  • PHP jusqu’à PHP 8.
  • Julia.

Les langages .NET.

  • C# vers les langages fonctionnels.
  • ASP.NET.
  • VB.NET.

3 – Les architectures applicatives.

Principes généraux.

  • Les patterns de référence.
  • Les frameworks (quadriciels) : architectures et composants.
  • L’indispensable gestion centralisée des API.
  • Le concept de « run time » et son positionnement.
  • Moteur JavaScript, MV Python…
  • Le moteur Zend de PHP.
  • La plate-forme universelle LLVM.

Les API Java.

  • Les évolutions de Java SE et de la machine virtuelle.
  • Les langages qui génèrent un byte code Java.
  • Les évolutions de JavaEE pour les applications centrales.
  • Les API de complément : Struts et le pattern MVC, Hibernate…

L’architecture .NET.

  • NET et ses constituants, la chaîne .NET et la CLR.
  • Convergence vers l’Open Source et .NET 5.0.

SOA, MSA et urbanisme métier.

  • L’évolution des architectures urbanisées.
  • Le problème délicat de l’intégration des composants et services.
  • Les styles d’architectures : RPC, SOAP, Rest, GraphQL.
  • Principe des SOA et MSA.
  • Les problèmes liés aux SOA : granularité, généricité, propriété, « stateless ».
  • La manière de mettre en œuvre une architecture MSA, les précautions à prendre.
  • Le mode FaaS et le Cloud.
  • Retour en force des moteurs de règles.

Les architectures Web.

  • Concentration sur le navigateur.
  • SPA (Single Page Architecture).
  • Responsive et Adaptive design.
  • Cross-scripting.
  • Isomorphisme.
  • L’urbanisation par les Web Components.
  • Les préprocesseurs de feuilles de style.
  • La réalité virtuelle dans le navigateur.

Ecriture d’un code sécurisé.

  • Les bonnes pratiques du codage sécurisé.
  • Les principales faiblesses à prendre en compte (référentiel SANS).
  • Des outils pour sécuriser le code.

Le codage des applications mobiles.

  • Les spécificités des applications mobiles.
  • La prise en compte des capteurs.
  • Le rôle des frameworks de base JavaME et .NET.
  • Quatre solutions pour les mobiles : HTML, natif, cross-platform et hybride.
  • Le mode PWA (Progressive Web Application), pour du « quasi » natif dans le navigateur.
  • L’aspect graphique des applications mobiles : « material » et « flat » design.
  • Le problème spécifique des batteries.

Low et No code.

  • Développement par des non techniciens.
  • Distinctions entre Low et No Code.
  • Les précautions à prendre.
  • Les applications envisageables.
  • Les principales solutions du marché.

4 – Les bases de données

Principes généraux.

  • La hiérarchie des services en 7 niveaux.
  • Base de données logique et SGBD, ne pas confondre.
  • Les évolutions des bases de données.
  • Le format JSON.

Le modèle relationnel.

  • Le principe fondateur ACID.
  • SQL, la clé de voute.
  • Les faiblesses du modèle relationnel : complexité du schéma et volumétrie.
  • Performances et sécurisation des bases relationnelles.

Le modèle NoSQL.

  • Comment est-on arrivé aux bases NoSQL et l’émergence du modèle.
  • Le modèle de référence CAP.
  • Les bases orientées colonnes, exemple de Big Table, mixte Cassandra, requêtage.
  • Les bases clés-valeurs et requêtage CRUD.
  • Les bases documents, l’exemple de MongoDB et requêtage.
  • Les bases orientées graphes, exemple de Neo4j.
  • Les bases temporelles (timeseries).

Les bases de données distribuées.

  • L’architecture des bases distribuées.
  • Les douze lois de Date.
  • Parallélisation et bases GPU.
  • Le concept de NewSQL.
  • Le mode actif-actif.
  • Les nouvelles lois de la 5G des bases de données distribuées.
  • Les techniques du sharding et du hashage cohérent.
  • L’apport du Cloud.

Retour à la gestion de fichiers.

  • La distribution des fichiers.
  • Les techniques de stockage des fichiers distribués : réplication, erase coding.
  • Hadoop et son écosystème.
  • HDFS et Map Reduce.
  • SQL sur des fichiers distribués.

5 – Les plates-formes de développement et les équipes.

Développement dans le Cloud.

  • Deux architectures distinctes : mono et multitenant.
  • Les principales solutions : Azure, Cloud Foundry, Heroku, AWS…
  • L’influence de l’Open Source : refactoring, gestion des sources et exécutables, profilage, build

Les plates-formes dédiées

  • Les plates-formes orientées Java : Eclipse, IntelliJ, Netbeans…
  • Les plates-formes JavaScript.
  • Les plates-formes Python.

Les plates-formes PHP.

Les équipes de développement.

  • La structuration des équipes de développement.
  • La gestion des compétences et l’insertion « intelligente » de la formation.
  • Vers une externalisation plus importante des équipes.
  • Mutation du « métier » de développeur.
Afficher plus

Public

DSI et leurs collaborateurs directs, architectes, consultants, ingénieurs et chefs de projets, développeurs, maîtrises d’ouvrage (Product Owner). Tout intervenant dans l’entreprise appelé à définir une stratégie dans le développement d’applications.

Prérequis

Connaissances de base en développement : expériences même minimales sur un langage, participation à des projets en tant que développeurs ou maîtrise d’ouvrage. Cette formation part du principe qu’il ne sera pas nécessaire de rappeler les grands principes, considérés comme acquis.

Méthodologie

METHODES PEDAGOGIQUES : - Formation « ex cathedra » à distance, avec Teams de Microsoft. Nombre de participants limité, pour maintenir un haut niveau d’interactivité. - QCM quotidiens pour s’assurer du bon suivi du formation (10 questions avec 4 réponses possibles). - Fourniture du support de cours au format PDF. - Vidéo de référence portant sur l’ensemble des sujets traités dans le formation. Il ne s’agit pas d’un enregistrement des sessions, mais d’une vidéo spécialement conçue pour être une référence.
METHODES D'EVALUATION : Le stagiaire reçoit en amont de la formation un questionnaire permettant de mesurer les compétences, profil et attentes du stagiaire. Tout au long de la formation, les stagiaires sont évalués au moyen de différentes méthodes (quizz, ateliers, exercices et/ou de travaux pratiques, etc.) permettant de vérifier l'atteinte des objectifs. Un questionnaire d'évaluation à chaud est soumis à chaque stagiaire en fin de formation pour s’assurer de l’adéquation des acquis de la formation avec les attentes du stagiaire. Une attestation de réalisation de la formation est remise au stagiaire.

Présentation de la formation en vidéo

93%

de participants satisfaits sur les 12 derniers mois
Projets et Développement

Développement et Architectures d’Applications

Appréhendez les évolutions clefs (modélisation, composants), les frameworks et langages, les paradigmes (cloud, scripts) et problématiques (mobilité, sécurité, énergie) nouvelles.
  •  
  • 2825 € H.T

Autres formations sur le même thème