Un modèle de versionnement efficace avec Git

Dans le contexte actuel, nous travaillons à plusieurs sur les mêmes projets qui peuvent durer plusieurs mois, et mêmes années. Pour chaque projet, nous avons une version de production, de développement et parfois une version pour des nouvelles fonctionnalités complexes qui doivent être isolées du reste du développement. Il faut donc utiliser un bon workflow. Mes recherches m'ont mené à cet article.

Git a permis d'avoir une nouvelle façon de penser pour les développeurs en ce qui concerne les branches et les fusions. Avec Git, ces actions sont simples, elles sont abordées dès le chapitre 3 du Git Book. En raison de leur nature simple et répétitive, ce n'est pas quelque chose qui doit vous effrayer. Je vais à présent vous présenter une méthode qui tire parti des points forts de Git.

Si toute l’équipe respecte ces règles, on se retrouve avec un dépôt propre, un historique lisible et cohérent et un processus simplifié pour le déploiement en production.

Spring REST Docs

Comme son nom l'indique, Spring REST Docs est un outil Spring d'aide à la documentation des API Restful. En s'articulant autour des jeux des tests Spring MVC, Spring REST Docs génère sans effort une documentation à jour et détaillée des API de l'application. Spring REST Docs se base sur l'utilisation de "snippets" (données de texte brut) générés suite à l’exécution de tests. La mise en forme est assurée par Asciidoctor (par défaut) qui va produire des pages HTML.

CodeLab Vue.js #Devfest2017

Lors du Devfest qui a eu lieu le 19 et 20 octobre, j'ai pu assister à un codeLab de deux heures sur la création d'une application avec Vue.js. Ce codeLab a été dirigé par deux personnes de chez Zenika qui sont Franck ABGRALL et Gregory BEVAN. Il s'est déroulé en deux temps avec une présentation du framework Vue.js puis avec le développement de notre première application.

Vue.js c'est quoi ?

Vue.js est un framework Javascript qui permet de créer des interfaces utilisateurs. Il a été développé par Evan You et la première release de ce framework est sorti en 2014. C'est un framework qui se veut minimaliste, performant et simple d'utilisation.

Déroulement de l'application

L'objectif de cette session a été le développement d'une application de gestion de séries en utilisant l'API Tvmaze. Pour celà, le codeLab a été découpé en 10 parties et chacune de ses parties a été séparée en 4 étapes : Explication, Live coding, 5 à 10 min de développement par nous même avec un résultat attendu et une correction. Durant ces 10 étapes, on a pu voir les principes de base du framework comme la génération d'un nouveau projet avec le client vue-cli (disponible avec npm), mais aussi la création des routes de l'application, les appels http avec les fonctions Javascript, les différentes fonctions Vue.js et la création d'événements entre les composants.

Mes impressions

Ça a été une très bonne expérience avec une bonne explication du langage, deux personnes disponibles en cas de difficultés  et une bonne ambiance.

Si vous voulez voir le résultat attendu, vous pouvez aller sur le lien github suivant : https://github.com/GregoryBevan/devfest-vuejs

Microservices : Etes-vous prêt à relever le défi ?

© Martin Fowler

Durant les dernières décennies, plusieurs nouvelles méthodologies et architectures ont été introduites dans l’industrie logicielle, toutes avec la promesse de rendre les entreprises plus productives, agiles, flexibles et  capables de répondre plus efficacement aux changements imposés par le marché et les réglementations. Ainsi on a vu les services Web, SOA, les architectures basées sur les composants, les ESB, et j’en passe.

Aujourd'hui c'est au tour des microservices.

La mise en œuvre d’une architecture en microservices se heurte à plusieurs problématiques organisationnelles, conceptuelles et techniques. Je me contenterai dans cet article de citer un exemple de chaque type :

Bases de Sécurité

La sécurité informatique est un enjeu majeur dans le monde de l’entreprise. Trois objectifs principaux s’en dégagent. Il faut tout d’abord s’assurer de l’intégrité des données, elles ne doivent pas être altérées. De plus, il est essentiel d’en garantir la disponibilité dans le cadre prévu. Et enfin il faut évidemment veiller à la confidentialité des données. Il est également possible d’ajouter trois autres objectifs que sont la traçabilité de la donnée ce qui signifie concrètement que l’accès ou la tentative d’accès à la donnée est conservé. Il y a aussi l’authentification qui permet la gestion des droits d’accès utilisateur. Et enfin la non-répudiation  dans le sens où chacun est responsable de ses actions et qu’aucun tiers ne doit être en mesure de s’en attribuer la paternité.

Partant de ce constat, il existe énormément de failles de sécurité. Ici nous nous focaliserons davantage sur le domaine du Web. Le but de cet article n’est pas d’en faire une liste exhaustive mais simplement de s’intéresser à une poignée d’entre elles en les définissant de façon générale et par l’exemple pour finir sur quelques bonnes pratiques Php à adopter.

* * *

Vavr.io : la bibliothèque objet-fonctionnelle

Vavr (anciennement Javaslang) est une bibliothèque objet-fonctionnelle, destinée aux applications codées en Java 8 et plus. Elle permet de réduire le nombre de lignes de code et d'augmenter sa qualité. Elle fournit notamment des collections immuables et des structures de contrôle orientées fonctionnelles ce qui permet de réduire les effets de bord. Nous verrons dans cet article quelques possibilité offertes par cette bibliothèque.