Ian Letourneau is a Teacher, a Coach and a Software Engineer at Elapse Technologies. He is helping teams & individuals excel at what they do to build remarkable products in the most efficient and sustainable way.
From startups to large companies, Ian worked with teams and organizations to foster a culture of continuous improvements, to automate toil work and to increase the internal and external quality of their products.
Steps of TDD are well known: red (failing test), green (passing test), blue (test and code refactor). In addition to driving the development and the design of our architecture, we'll see how TDD cycles allow us to safely make micro experiments in order to select the best implementation, just like the scientific method states.
From method implementations to services exposed by microservices, our components are full of contracts we have to respect and collaborate adequately with them, even though this is not the simplest thing to do because microservices should be independently deployable. This session aims to show how to shift the way things are developed by writing collaboration tests before the contract tests of a service.
Abstractions are the founding principles of software development as they allow us to focus on the "what" and "why" instead of the "how". This will be a live coding session where we'll see the potential of abstractions, the importance of correctly designing them in our codebase and how they can be used to improve our architecture, to support product growth and to keep technical debt away.
Les étapes du TDD sont bien connues: rouge (test qui échoue), vert (test qui passe), bleu (nettoyage du code et des tests). En plus de piloter le développement et le design de notre architecture, nous verrons comment le cycle du TDD permet de mener des micro expérimentations en toute sécurité afin de choisir la meilleure implémentation, tout comme le décrit l'approche scientifique.
De l'implémentation d'une méthode jusqu'aux services offerts par un microservice, nos composantes sont remplies de contrats et nous devons les respecter et collaborer correctement avec, même si cela n'est pas facile à faire puisque les MS doivent être indépendants. Cette session démontrera comment renverser l'ordre habituel des choses en écrivant d'abord les tests de collaboration selon nos besoins, puis les tests de contrats d'un service.
Les abstractions sont les fondements du développement logiciel et permettent de se concentrer sur le "quoi" et le "pourquoi" plutôt que le "comment". Cette présentation sera une session de code en direct et montrera le potentiel des abstractions, l'importance de les définir correctement dans notre code et comment elles peuvent être utilisées pour améliorer notre architecture tout en permettant à nos produits de mieux évoluer.