Vagabondage de tweets – Février 2018 – Drupal 8, Github, Ansible vs Salt...

Veille Drupal février 2018
Au sommaire de ce nouveau numéro de vagabondage de tweets : Drupal 8, VueJS, Github, React, qualité du code, Ansible vs Salt, design…

Drupal

6 février – Ludovic Coullet @lcoullet
How to Use Webform Predefined Options in Drupal 8 : https://t.co/lQFaLamyZc
Le module Webform de Drupal permet de créer des formulaires complexes et avancés sans écrire une ligne de code sur-mesure. Le module propose d’utiliser des options prédéfinies pour faciliter la création de formulaires sur la base de listes prédéfinies comme les jours, les mois, les fuseaux horaires, les titres, etc. Ainsi, si vous souhaitez ajouter une liste de sélection dans laquelle les utilisateurs choisissent un pays, il est possible d’utiliser une liste prédéfinie fournie avec le module au lieu de le renseigner manuellement, ce qui permet un gain de temps non négligeable. Webform propose 30 listes prédéfinies qui peuvent être ajoutées aux cases à cocher, aux cases d’options, aux listes de sélection, etc. 

7 février – Ludovic Coullet @lcoullet
Drupal 8 Composer Best Practices : https://bit.ly/2E1RvMN
Composer est un outil écrit en PHP qui permet de gérer l’installation du CMS Drupal et ses dépendances. En effet, ce dernier est utile pour récupérer et placer automatiquement les modules dans les bons dossiers mais également pour créer un autoloader qui gère automatiquement les namespaces PHP. En somme, Composer permet :

  • La gestion des modules contribués ;
  • La gestion des librairies externes ;
  • L’utilisation de dépôts privés ;
  • L’application de patchs.

Grâce à Composer, fini la gestion des versions, du téléchargement et de la mise à jour des librairies composant l’application Drupal. Voici les bonnes pratiques pour utiliser efficacement Composer !

9 février – Ludovic Coullet @lcoullet
How to Implement Faceted search with Solr in Drupal 8 ? https://buff.ly/2EQqEoW
Si vous souhaitez implémenter la fonctionnalité de recherche à facettes avec le moteur de recherche Solr sur Drupal 8, le module Facets de Drupal peut être une solution intéressante. Ce dernier propose aux développeurs de créer et de gérer facilement des interfaces de recherche à facettes. Il y a plusieurs raisons d’utiliser Facets : 

  • Ce module permet de disposer d’une recherche détaillée efficace ;
  • Il peut être utilisé avec la recherche par défaut mais également avec Solr ;
  • Le module fournit un large choix de configurations possibles dans l’interface utilisateur pour trier et classer les éléments ;
  • Dans le cas d’un site avec une grande base de données de contenus, Facets permet d’indiquer les catégories d’éléments présents sur le site et propose un chemin immédiat vers un contenu plus spécifique, favorisant ainsi l’engagement des visiteurs dans le contenu.

Pourquoi la combinaison Facets avec le moteur de recherche Solr ? La raison principale est la performance de la recherche. Voici un tutoriel expliquant comment implémenter un système de recherche avec Apache Solr et Facets.

22 février – Gábor Hojtsy‏ @gaborhojtsy
Drupal 8.5.0-rc1 is available for testing! Experimental layouts UI. Stable content moderation, migrate API, media and settings tray. BigPipe in Standard. Try it out, submit the bugs! https://bit.ly/2pxZugg
Le mois de février a été marqué par la sortie de la nouvelle version mineure Drupal 8.5, disponible en version test. Un coup d’œil sur les nouveautés :

  • La stabilité de plusieurs modules : le module Content Moderation est dorénavant stable et disponible dans le core. Ce dernier propose de créer des workflows de publication pour les différents types de contenus. Combiné avec le module Workflow, Content Moderation permet de créer des étapes entre la création et la publication et de choisir sous quel état enregistrer le contenu. Il permet également de gérer les rôles et les permissions pour la gestion des changements d’état. Le module Settings Trays a été amélioré et devient également stable, ce dernier ayant pour but de simplifier la vie de l’utilisateur quant à l’administration des blocs. Il permet d’ouvrir une barre d’édition sur la droite pour éditer un bloc et éviter ainsi les allers-retours entre le front-office et le back-office. Par ailleurs, la version 8.5 offre également la stabilité du module Migrate et propose une API complète de migration de données vers un site Drupal 8, facilitant ainsi le processus de migration.
  • Le module Media accessible : Drupal 8.4 fournissait une API Media dans le core dont l’accès était caché de l’interface utilisateur dans l’attente de régler certains problèmes liés à l’expérience utilisateur. La version 8.5 permet d’utiliser librement le module sans installer d’autres modules et propose quatre bundles (fichier, image, vidéo et audio) pour construire une bibliothèque de médias, réutilisables sur les contenus de notre choix.
  • BigPipe disponible par défaut : Proposé par Facebook, ce module permet d’optimiser la performance perçue par l’utilisateur en affichant un premier rendu de la page même incomplète donnant l’illusion d’une meilleure rapidité de chargement des pages.

A voir !

26 février – Christophe Dugué @chdugue
Optimisation d'images automatique dans #Drupal, avec le module Image API optimize - http://bit.ly/2CKx3iP  - #Performance #webperf
L’optimisation les images est primordiale quand la chasse à la performance est ouverte. Que ce soit pour l’upload  (le télépostage) ou l’affichage, les images de haute qualité sont des fichiers lourds et entraînent une perte de performance du site.  Il existe plusieurs outils pour optimiser le poids des images dont le module Image Optimize de Drupal. Ce dernier permet d’utiliser un large choix d’outils et de services tiers pour optimiser efficacement le poids de l’image lors de l’enregistrement, sans perdre de sa qualité.

26 février – Christophe Dugué @chdugue
Vaste sujet sans cesse remis sur la table: quels outils pour déployer vos environnements de développement en local, pour #Drupal - http://bit.ly/2CM6PNe  - #Sysadmin #docker #Workflow
Déployer un environnement de développement local n’est pas si simple. Le processus de configuration d’un serveur web sur un ordinateur personnel peut être compliqué. De ce fait, plusieurs outils ont fait leur apparition pour faciliter le développement en local mais quelle est la solution la plus efficace ? Le logiciel MAMP (pour Macintosh, APach, Mysql et PHP), les machines virtuelles comme Vagrant ou encore les conteneurs Docker… découvrez les options possibles pour 2018 !

VueJS

12 février – Ludovic Coullet @lcoullet
Drupal & Vue.js: how to work without jQuery
Disponible dans le core de Drupal depuis la version 5, jQuery est une librairie utile pour simplifier le développement notamment avec JavaScript. Cependant, nous rencontrons actuellement des problématiques front-end différentes que jQuery peut difficilement résoudre. Il est possible d'utiliser d’autres frameworks dont notamment Vue.JS. Versatile, ce dernier peut être utilisé de plusieurs manières que ce soit pour gérer une partie d’un DOM Client ou pour gérer lui-même un DOM complet côté client. Voici un post intéressant qui explique :

  • Comment améliorer l’interface utilisateur sans jQuery ;
  • Comment travailler avec les composants de VueJS ;
  • Comment intégrer VueJS avec des bibliothèques tierces ;
  • Comment créer une Single Page Application.

A ce sujet, nous avons testé le découplage Drupal et Vue.JS pour certains de nos projets, et le résultat est concluant. Pour aller plus loin, voici notre retour d’expérience.

Github

14 février – Ludovic Coullet @lcoullet
Le danger Github (revu et augmenté) | Carl Chenet's Blog https://buff.ly/2Eq39SJ
Quant il s’agit d’opter pour un service d’hébergement et de gestion de logiciels Open Source, plusieurs outils sont possibles. Github figure parmi les solutions les mieux notées et les plus recommandées en raison des nombreuses fonctionnalités avantageuses que ce dernier propose notamment pour le travail collaboratif. Cependant, Github est un outil propriétaire et commence à soulever plusieurs prises de conscience quant aux dangers liés à son utilisation. En effet, ce dernier a été pointé du doigt plusieurs fois et les critiques visent principalement :

  • La centralisation des codes sources au sein d'une entité unique : la plateforme Github est gérée par une seule et même société, américaine, ce qui implique qu’une entité unique gère l’accessibilité à la majorité des codes sources de projets Open Source. Du fait de cette centralisation, Github devient une cible privilégiée pour les attaques.
  • Github est un logiciel propriétaire : le code source de Github n’est pas accessible ce qui peut poser une contradiction idéologique avec la philosophie de l’Open Source. Par ailleurs, nous poussons du code, des données sensibles voire des informations personnelles, dont ces dernières peuvent être utilisées à des fins commerciales. Mais plus encore, l’utilisation du gestionnaire de suivi de bugs de Github pose un réel problème, étant donné que les rapports de bugs constituent la mémoire des projets des logiciels libres. Même si Github propose d’extraire les rapports de bugs via son API, les utilisateurs ne sont pas à l’abri d’une éventuelle défaillance du service voir, dans le pire des cas, d'un arrêt de l’activité de la société entraînant la possible perte de la mémoire du projet.
  • L’uniformisation de l’utilisation de Github : en popularisant l’outil Git, Github s’est imposé comme le gestionnaire de sources de référence, si bien que les outils alternatifs sont marginalisés et ne rencontrent que peu de contributeurs. En devenant presque une « norme », il est difficile de se tourner vers un autre gestionnaire de sources que Github, et cela ne fait que contribuer au problème de centralisation des codes sources dans un logiciel privateur unique.

Pour comprendre plus en profondeur les dangers de Github, nous vous invitons à consulter l’article !

React

15 février – Christophe Dugué @chdugue
#ReactJS pour #Drupal : http://bit.ly/2GeIzoP  - Violente liste de tutos, ressources ! Merci @lullabotedu
React pour créer de belles expériences utilisateurs et Drupal pour son système de gestion de contenu API-First : un découplage qui peut s’avérer intéressant ! Pour cela, rien de mieux qu’une documentation riche, complète et surtout mise à régulièrement pour initier ce type de projet. www.reactfordrupal.com centralise une liste presque exhaustive de documentations qui expliquent comment prendre en main React, Drupal et enfin pour découpler ces derniers. A lire !

Code

26 février – Christophe Dugué @chdugue
Les fonctions ne doivent faire qu'une seule chose. Les commentaires ne compensent pas un code pourri :) - Ecrire du joli #code - #codev #qualité #revuedecode
Ecrire un code de qualité demande un investissement supplémentaire... et pourtant la qualité permet de gagner un temps précieux sur le long terme : un code avec moins de bugs, plus facile à comprendre, plus facile à maintenir et à faire évoluer. Voici une liste non exhaustive de règles fondamentales détaillées et de conseils pour écrire un code de qualité :

  • Choisir un nommage cohérent et le respecter ;
  • Une fonction ne doit faire qu’une seule chose ;
  • Des commentaires pertinents pour un code source documenté efficacement ;
  • Mettre de l’ordre dans le code grâce au formatage ;
  • Mieux gérer les erreurs avec les exceptions.

A partager...

Ansible vs Salt

27 février – Christophe Dugué @chdugue
#Ansible versus #Salt : http://bit.ly/2CIafjL  - #SysAdmin #web #Python #DevOps - Excellente courte synthèse.
L’administrateur système doit gérer un grand nombre de serveurs. Il automatise les tâches et peut être amené à effectuer une même action perpétuellement comme installer et provisionner un nouveau serveur, redémarrer un ensemble de serveurs à des heures spécifiques chaque jour, etc. Pour standardiser les interventions et gagner du temps, les outils de gestion de configuration comme (les très connus) Puppet et Chef, leaders sur le marché de la gestion de la configuration, peuvent être d’une grande aide notamment pour automatiser les déploiements. Cependant, deux autres outils Ansible et Salt ont su démontrer leurs atouts. Jetons un coup d’œil sur ces deux outils, tout deux Open Source et développés en Python :

  • Ansible est un moteur d’automatisation qui permet entre autres d’automatiser le cloud, le provisionnement, la gestion de la configuration, le déploiement d’applications et l’orchestration des services. Simple et rapide, Ansible utilise un langage accessible qui est le YAML. Il ne nécessite ni d’installation d’agent ni de dépendance sur le serveur cible. Ce dernier utilise une connectivité par SSH sur les machines managées pour effectuer les opérations. 
  • Salt est un package de gestion de configuration à mi-chemin entre Ansible et Puppet. Il s’agit d’un outil IAC (Infrastructure As Code), conçu pour l’orchestration orientée données. Son interface de commande en ligne simplifiée permet la gestion de la configuration d’applicatifs ainsi que l’exécution à distance. Il fonctionne sur la base de deux services : un serveur master et des agents déployés appelés « minions » pour contrôler et communiquer avec les serveurs cibles.

Pour aller plus loin, voici un article pertinent qui compare Ansible et Salt ! 

 

Design

26 février – Laurent Demontiers @L_Demontiers
Quelques éléments de base du Design expliqués aux intégrateurs. https://bit.ly/2Gl1S0l
Voici quelques idées simples que vous pouvez utiliser pour améliorer votre design :

  • Utiliser la couleur et le poids de la police pour créer une hiérarchie, au lieu d’utiliser la taille : il est très courant de jouer sur la taille de la police pour mettre en avant un texte. Pourtant, le rendu peut être bien meilleur en jouant sur les couleurs et le poids de la police.
  • Ne pas utiliser de texte en gris sur des arrières plans colorés : utiliser un texte en gris clair sur un arrière plan coloré permet de rendre ce dernier moins imposant, mais cela pose un problème de contraste peu esthétique. Il y a deux manières de réduire le contraste en utilisant un arrière plan coloré : la première est de réduire l’opacité du texte pour que la couleur de cette dernière se fonde de manière plus naturelle avec la couleur de l’arrière plan. La seconde solution est de choisir une couleur basée sur celle de l’arrière plan.
  • Eviter les encadrés « brutes » : lorsque vous souhaitez séparer ou faire la distinction entre les éléments de votre site, il est recommandé d’éviter ou de minimiser les bordures trop brutes, pour un site plus aéré. Il est possible de jouer sur les ombres pour définir un bloc, de définir un arrière plan légèrement différent pour créer la séparation ou encore de jouer sur les espacements entre deux éléments.
  • Respecter la taille des petites icônes : il est possible de jouer sur la taille des icônes mais il est recommandé de conserver la taille initiale des icônes pour un rendu plus fin et travaillé.

Divers

26 février – Laurent Demontiers @L_Demontiers
Pourquoi nos projets informatiques échouent – Compte-rendu du talk de Ludovic Cinquin à La Duck Conf 2018 | OCTO Talks ! https://buff.ly/2FdGlXv
Voici un compte rendu du talk de Ludovic Cinquin à la Duck Conf 2018, présentant un ensemble d’idées reçues qui peuvent entraîner l’échec des projets web, dont notamment :

  • Ajouter des développeurs pour livrer à temps une application : beaucoup pense qu’ajouter des développeurs permet de finir un projet plus rapidement. Une idée fausse, puisque selon la loi de Brooks, ajouter des personnes engendre un temps supplémentaire d’adaptation et des problèmes de communication favorisant le retard du projet.
  • Affecter une personne sur plusieurs projets pour supprimer les temps morts : une autre idée reçue consiste à affecter une personne sur plusieurs projets et lorsqu’un projet ralenti, cette même personne peut s’occuper des tâches d’un autre projet de manière parallèle. Selon Peter Bregman, agir de cette manière pourrait faire baisser la productivité de 40%.
  • Miser sur la réutilisation pour réduire les coûts de développement : selon Robert Glass, un composant réutilisable est trois plus complexe à construire qu’un composant à usage unique.
  • La taille du projet n’est pas importante : plus un logiciel est de bonne qualité moins il coûte cher. Et pourtant, il est plus difficile de faire un projet de qualité avec un grand nombre de développeurs.

… et bien d’autres idées reçues qui font réfléchir !

 

Veille synthétisée par @Myriam à partir des comptes twitter de l'équipe de bluedrop.fr.