En navigant sur ce site, vous acceptez l’utilisation de cookies ou autres traceurs vous permettant une utilisation optimale du site (partages sur les réseaux sociaux, statistiques de visite, etc.)

PRATIQUES DU DÉVELOPPEMENT

QUALITÉ DU LOGICIEL

EXCLUCulture code : manager la qualité

La qualité du code affecte non seulement la « santé » d’un système d’information, notamment son coût, mais aussi ses performances, ainsi que la capacité de l’entreprise à innover sur le terrain de ce qu’on appelle aujourd’hui la « révolution numérique ».

Le code est source de valeur. C’est pourquoi la qualité du code que produit l’entreprise, son département ou les équipes de développement est une question centrale. Aujourd’hui, il est possible de mener dans son entreprise une politique de culture de la qualité du code sans nécessairement connaitre les arcanes du développement.

A travers cette formation, découvrez comment manager des équipes de développement remarquables à partir de quelques principes directeurs. Le premier d’entre eux est de considérer que l’équipe de développement, son « produit » et ses « clients » forment un système, c’est-à-dire un ensemble structuré d’éléments en relation les uns avec les autres, visant un but particulier : livrer de manière efficace, continue et durable, des fonctionnalités ayant de la valeur pour les utilisateurs.

Vous découvrirez comment ce système peut être freiné dans ses performances au point qu’il devient impossible à l’équipe, de concilier et de répondre de manière efficace et suffisamment rapide, à la fois aux demandes des clients (fonctionnalités) et aux problèmes de qualité du code (bugs, maintenance, montée de versions).

Au terme de la formation, vous serez en mesure d’intervenir sur ce système afin de créer un environnement favorisant l’amélioration continue des pratiques et la qualité du code.

plus d'infos

NEWIntroduction à la programmation fonctionnelle en Haskell

Au cours des dernières années, la programmation fonctionnelle est devenue un paradigme incontournable. Un nombre croissant de langages de programmation intègrent des “capacités” fonctionnelles (fermetures, composition de fonction par exemple), et certains framework, tels que rx, sont entièrement fondés sur ce modèle.


Les enjeux sont importants. En effet, l’approche fonctionnelle permet d’écrire un code à la fois plus sûr, plus clair et plus modulaire.


Cette formation d’initiation à la programmation fonctionnelle, vous propose de vous familiariser avec ses concepts clés, tels que transparence référentielle (fonctions pures), immutabilité, fonctions d’ordre supérieur (Higher order functions), fermetures, types de données ou encore pattern Matching. Elle vous permettra également d’apprendre les bases de Haskell, langage-étendard de la programmation fonctionnelle.

plus d'infos

Revue de code

Améliorer son code grâce au Code Review

Avec la technique des tests de développeurs, la revue de code est unanimement reconnue par l’industrie comme une des meilleures pratiques pour la qualité du développement. Ses bénéfices directs et indirects, qui en font une pratique clé de la qualité logicielle, sont nombreux : réduction du nombre de défauts dans le code, amélioration de sa qualité structurelle, amélioration de la communication, formation, contribution à une culture de la qualité. Fait étonnant, cette pratique qui est apparue depuis qu’existe le développement de logiciel, est encore assez peu répandue, si l’on excepte les grands éditeurs de logiciels. Elle n’est pas sans difficulté, car elle demande une certaine rigueur dans son déroulement ainsi que la présence, parmi les participants, de facilitateurs actifs.
Cette formation permettra à vos équipes d’acquérir la pratique essentielle leur permettant de détecter les problèmes et les défauts plus rapidement que jamais, et contribuera ainsi à réduire spectaculairement le coût de non qualité dans vos projets informatiques.

plus d'infos

BESTQualité des développements avec Test Driven Development

Optimiser son développement logiciel par les tests

Pratique de base des équipes agiles, le développement dirigé par les tests (TDD : Test Driven Development) est une technique de programmation simple, élégante et efficace, qui repose sur un cycle de feedback court : écrire un test – le faire passer – refactorer le code. Cette approche allie l’avantage d’une conception modulaire et lisible, à la sécurité que procure la couverture du code par les tests automatisés.
À l’issue de cette formation, vous serez ainsi en mesure d’écrire des applications entières, étayées par du code en état de marche, particulièrement maintenables et évolutives.

plus d'infos

Test Driven Development sur du code legacy

Du code legacy au code propre

Le code legacy est une métaphore pour parler de ce code existant dans nos applications, difficile à maintenir, souvent de mauvaise qualité et non testé automatiquement.
Ce module forme les développeurs aux pratiques permettant de maintenir et de faire évoluer du code legacy sans risque, et ainsi trouver les trajectoires de retour à une haute qualité. Ce sera l’occasion d’apprendre à mettre en place des tests automatisés quelles que soient les possibilités initiales du code.

plus d'infos

Clean Code

Concevoir et écrire un code propre ou améliorer un code existant

Les artisans du logiciel savent que la qualité du code va de pair avec la rapidité, la simplicité et l’efficacité du développement. Les pratiques, principes et standards qui définissent cette qualité sont rassemblées sous le vocable « Clean Code ». Ils permettent à toute équipe de créer, de maintenir (ou de rétablir) un code de grande qualité, et concernent de multiples aspects de la programmation : conventions de style, règles de nommage, critères de qualité des fonctions, des classes, des relations entre les classes.
À l’issue de cette formation, vous pourrez mettre en œuvre les pratiques de base permettant d’obtenir un code de grande qualité, testé et flexible.

plus d'infos

NEWDesign applicatif

Architecturer une application pour ses besoins présents et futurs

Dans leur grande majorité, les développeurs ont déjà été confrontés à une architecture en couche. Même si ce paradigme n’est pas forcément bien appliqué, il existe toutefois d’autres possibilités en terme de design applicatif, permettant notamment de maximiser la maintenabilité et l’évolutivité de l’application comme l’architecture hexagonale ou la clean architecture. Mais aussi, dans certains contextes métiers, il peut être opportun d’utiliser un design très spécifique, comme le CQRS (Command and Query Responsibility Segregation) ou l’événementiel.
Durant cette formation, vous manipulerez du code pour aborder ces différentes architectures, et ce afin justement de mieux comprendre les concepts qui se cachent derrière, mais aussi être en mesure de faire un choix adapté à son contexte..

plus d'infos

DDD : Domain-Driven Design

Acquérir les pratiques d’une conception logicielle orientée métier

Le développement logiciel est employé généralement pour automatiser des processus existants ou pour fournir des solutions à des problèmes métier. Le Domain-Driven Design repose sur une idée simple : pour créer un bon logiciel, il est indispensable qu’il reflète le domaine métier pour lequel il est conçu, qu’il en incorpore les concepts, les process, les éléments et qu’il saisisse avec précision, leurs relations. A titre d’exemple, vous ne pouvez pas créer un système logiciel bancaire à moins d’avoir une bonne compréhension du secteur bancaire et de ses métiers.

Décrit par Eric Evans dans son ouvrage « Domain-Driven Design : Tackling complexity in the Heart of software », le Domain-Driven Design fournit un cadre solide et un ensemble de techniques décrivant comment modéliser le domaine du logiciel et définir une vision et un langage partagés par toutes les personnes impliquées dans la construction d'une application, afin de mieux en appréhender la complexité.

Tout au long de cette formation, vous serez à même de comprendre pourquoi le Domain-Driven Design permet ainsi de maintenir un alignement constant, pas toujours évident, entre les experts métier, les développeurs et le code afin de s’assurer que le logiciel réponde bien à ses objectifs.

plus d'infos

EXCLUDomain-Driven Design : de l’espace du problème à l’espace de la solution

En partenariat avec Bruno Boucard et Thomas Pierrain

Dans la plupart des projets, nous sautons très souvent trop tôt sur l’espace de la solution (choix de frameworks, stacks techniques, data stores) avant même d’avoir bien compris ce qu’il fallait faire. Le logiciel n’est-il pourtant pas là pour nous aider à résoudre efficacement des problèmes métiers à la base ?

Pour celles et ceux qui auraient déjà exploré certaines techniques pour découvrir le métier (comme l’Event Storming par exemple), la question se pose ensuite très vite de comment on passe du post-it au code.
Par quoi commencer ? Comment articuler ce passage délicat entre l’exploration et le code qui laisse bien des gens sur le tapis ?

Durant cette formation co-animée par Bruno Boucard et Thomas Pierrain , nous verrons ensemble à la fois les bases et tout le cycle du développement logiciel à la Domain Driven Design (DDD). Vous utiliserez pour ce faire des techniques d’exploration et de distillation du domaine bien connues du DDD que nous vous présenterons en détail : Event Storming, Context Mapping, Example Mapping (issue du BDD) ou la reformulation, si chère à Éric Evans (le créateur du DDD).

Le deuxième jour, vous vivrez cette transition vers le code tout en appliquant et en découvrant au fil de l’eau un ensemble de concepts et de techniques du DDD qui nous serviront à travers la résolution de plusieurs modules/labs. Nous découvrirons en passant la forme de Test Driven Development vers laquelle nous avons convergé après 15 ans de pratiques du TDD : l’Outside-In et sa double boucle.

Enfin, nous protégerons ensemble notre code métier en l’isolant de la partie technique grâce à la mise en place d’une Architecture Hexagonale.

plus d'infos

Sécurité applicative : intégrer la sécurité dès la conception

Pratiques pour concevoir et développer une application sécurisée

Depuis quelques années, les attaques informatiques se sont complexifiées et leurs auteurs se sont professionnalisés. Garantir la sécurité des applications informatiques est une question essentielle non seulement pour maintenir la confiance des utilisateurs et se prémunir contre certains risques aux conséquences économiques importantes comme un arrêt de la production, l’indisponibilité d’un site d’e-commerce...

En parallèle, la réglementation s’est renforcée pour devenir de plus en plus exigeante et la responsabilité de l’entreprise est engagée. Face à ces nouveaux enjeux, les équipes de développement doivent maîtriser la sécurité de leurs applications.

Cette formation a pour objectif de vous transmettre les connaissances nécessaires pour renforcer la sécurité de votre application (sécurité défensive) et mieux appréhender les techniques des attaquants (sécurité offensive).

plus d'infos

NEWBDD : Behavior-Driven Development

Au delà de l’automatisation des tests

Le BDD (Behavior-Driven Development) peut être présenté comme une extension logique du TDD (Test-Driven Development). Il consiste à étendre le TDD en écrivant non plus du code compréhensible uniquement par des développeurs, mais le comportement attendu d’un système que tout le monde peut comprendre. Et c’est là que ça se complique car il est pour beaucoup question de langage commun et donc de collaboration entre deux univers (métier et développement). En simplifiant grandement, le BDD va guider le développement d’une fonctionnalité, tandis que le TDD guidera son implémentation.

Cette formation présente l’approche BDD et ses enjeux. Vous apprendrez comment favoriser la collaboration entre développeur, testeur et product owner à travers différents ateliers. Vous verrez également le pont entre ces discussions à une spécification exécutable par le code.

plus d'infos

Pratiques de Tech Leading en contexte Agile

Bien que le rôle de Tech Lead soit davantage question de posture et de savoir-être, il peut s’appuyer sur un certain nombre de pratiques et de connaissances qui lui permettront tout à la fois de construire une équipe auto-organisée, de maintenir sa cohésion et son autonomie tout en l’aidant à produire du code de meilleure qualité.

Le but de cette formation est de permettre aux participants de progresser dans la connaissance de ces outils et techniques et de les expérimenter dans le cadre de mises en situation concrètes.

plus d'infos
Télécharger en pdf