Blog & ressources

Vagabondage de tweets - Mai 2017 - Drupal 8, Microservices, VueJS...

15 Juin 2017 Commentaires
Microservices Drupal

How to create a headless Drupal site:

1er mai – Christophe Dugué @chdugue
Face aux micro-services, #Drupal décline ou semble décliner... Que faire ? Excellent post et riches commentaires : http://bit.ly/2oZ5Ceg
Le CMS Drupal a atteint son point culminant de succès pendant le cycle de développement Drupal 8. Selon Dave Hall, un certain essoufflement apparaît, caractérisé par une baisse des téléchargements depuis 2015 et des impressions de recherche sur Google. Il est indispensable de se pencher sur cette problématique. Certains facteurs qui ont contribué à cette perte de vitesse, dont :

  • Une courbe d’apprentissage plus longue : Si d’un point de vue technique Drupal 8 s’est montré prodigieux, son adoption s’est avéré lente en raison d’une courbe d’apprentissage plus longue pour passer de Drupal 7 à Drupal 8 compte tenu de l’architecture différente de la dernière version.
  • Drupal est une application monolithique : Drupal essaie de tout faire, le CMS centralise tous les besoins ce qui rend le débug plus difficile et la maintenance moins évidente. A côté, nous observons une montée des microservices qui viennent faire de l’ombre à l’architecture monolithique. La conception et le développement s'articulent désormais à partir de plusieurs technologies permettant de décomposer la « complexité » d’une application en modules plus faciles à maintenir.
  • Finalement, nous ne pouvons pas affirmer que la popularité de Drupal 8 et de Drupal 7 se valent. Même si Drupal 8 n’a pas la volonté de devenir un ensemble de microservices, il est temps que le CMS devienne plus modulaire notamment par le découplage des composants.

5 mai – Ludovic Coullet ‏@lcoullet 
Rendez un site Drupal headless: http://bit.ly/2sCOLAX

L'architecture Drupal "sans tête" est devenue une tendance depuis quelques années. Drupal est utilisé comme gestionnaire de contenu (gérant le back-end) qui est lui-même lié à un autre framework front-end pour afficher les données : AngularJS, ReactJS, BackboneJS et bien d’autres ! D’un côté il permet de faciliter la vie aux développeurs en séparant le travail front-end et back-end, de l’autre, certaines technologies sont plus flexibles côté front-end que Drupal et offrent plus de possibilités. Dans ce post, vous découvrirez comment créer un site découplé avec Drupal (pour le back-end) et React (pour le front-end). 

9 mai – Ludovic Coullet ‏@lcoullet 
Drupal 8 Modules You Can't Live Without: http://bit.ly/2rDXOmI

Drupal offre un panier garni de modules : certains sont intéressants d’autres moins pertinents. Voici les modules indispensables pour de nombreux projets Drupal :

  • Admin Toolbar : ce module améliore la barre d’outil par défaut de Drupal. Il propose un menu déroulant qui permet d’accéder rapidement à toutes les pages administrables du site.
  • Pathauto : c’est le module de référence pour générer automatiquement les alias pour les URLS et ce pour un nombre très varié de contenus. Il prend en compte plusieurs langues.
  • Redirect : ce module permet aux utilisateurs d’accéder aux pages dans le cas où le chemin aurait changé.
  • Paragraphs : un de nos modules incontournables pour structurer le contenu d’une page en paragraphes flexibles et responsives. Il offre un grand pouvoir éditorial pour mixer plusieurs formats de contenus (textes, vidéos, images cliquables, etc.). Avec Paragraphs, le résultat est beau !
  • Honeypot : utilisé pour résoudre les problèmes de Spams. Le module insère un champ invisible qui permet de détecter les robots qui le complète. 
  • Add to Any : ce module permet d’ajouter des liens vers les réseaux sociaux pour partager du contenu par exemple.
  • Metatag : il permet de gérer les balises titres et la méta description d’une page. De plus, il s’assure que le contenu est bien visible quand celui-ci est partagé sur Facebook et Twitter.
  • Menu Trail by Path : il permet de définir le Fil d’Ariane en fonction de l’URL et non du menu.
  • Entity Browser : il fournit un navigateur d’entité générique notamment pour réutiliser des images ou des fichiers sur différents éléments de contenu.
  • Block Visibility Groups : ce module permet de contrôler la visibilité ou non d’un bloc sur certains types de pages.
  • Diff : Drupal propose de suivre les révisions de contenu à chaque mise à jour d’un utilisateur. Avec Diff, il est possible de voir ce qui a été changé.
  • Contact Storage : ce module fournit un stockage pour les messages des contacts qui sont des entités à part entière.


30 mai – Ludovic Coullet ‏@lcoullet 
An overview of testing in Drupal 8: http://bit.ly/2rE34Hb

Le test de module est une étape cruciale pour vérifier la viabilité de la solution mais également pour l’améliorer. Ce post explique comment les tests s’opèrent dans Drupal 8. Chaque test respecte :

  • une première étape qui consiste à préparer le contexte par exemple « Je navigue sur la page d’accueil » ;
  • une seconde étape où sont exécutées des affirmations liées au contexte par exemple « Il devrait y avoir un menu avec des liens pour naviguer vers les différentes sections du site ».

Selon ce que vous voulez tester, il existe plusieurs types de tests pour Drupal 8 :

  • Si vous souhaitez tester les méthodes classiques, des tests unitaires feront l’affaire ;
  • Si vous envisagez de tester des modules API, il est conseillé de choisir les tests Kernel ;
  • Si vous souhaitez tester des interfaces web à savoir l’UI, deux options sont possibles :
    • Si cela n’implique pas du JavaScript : il vaut mieux opter pour les tests « Browser» ;
    • Si cela implique du JavaScript, les tests JavaScript ou les tests Behat sont recommandés.

31 mai – Christophe Dugué @chdugue
Passé, présent & futur du module #Drupal Webform 8.x-5.x : http://bit.ly/2rFGdfL  - Et du modèle #OpenSource pour 1 contributeur important!

Vous devez sûrement connaitre le fameux module de gestion de formulaires : Webform. Longtemps attendu en version 8, celui-ci est finalement disponible en version bêta. Anciennement connu sous le nom de Yaml Form, Webform est et sera toujours spécialisé dans la création de formulaire qui collecte des données. Pour l’avenir, le module tendrait à optimiser l’expérience utilisateur et les performances pour recueillir facilement les soumissions des données.

Programmation fonctionnelle

3 mai – Ludovic Coullet ‏@lcoullet 
And I am ! http://bit.ly/2qpHaVs

Si la programmation a été délaissée pour d’autre paradigmes comme la POO (programmation orientée objet), elle semblerait revenir sur le devant de la scène ces deux dernières années notamment avec les langages Erlang, Haskell et Elixir. La programmation fonctionnelle présente des avantages qui font réfléchir :

  • Propreté du code : la programmation fonctionnelle réduit les défauts en imposant l’interdiction de modifier l’état d’un objet et garantit qu’une fonction ne doit avoir aucun impact sur le reste du programme ;
  • Niveau de testabilité : ce type de programmation favorise les fonctions manipulant des valeurs simples, permettant ainsi de les tester facilement les éléments en isolation.
  • Moins de code : la programmation fonctionnelle confère moins d’écriture de code grâce à la réutilisation de portion de code.

Et si vous avez encore des doutes, jetez un coup d’œil à WhatsApp qui arrive à supporter plus de 900 millions d’utilisateurs avec seulement 50 ingénieurs en utilisant Erlang et Discord... qui gère plus d’un million de requête par minute grâce à Elixir.

Docksal

4 mai – Ludovic Coullet ‏@lcoullet 
Docksal http://buff.ly/2p8E4Dl

Docksal est un outil de gestion des environnements de développement. La solution utilise Docker pour créer des environnements dans des conteneurs. Docksal regroupe les outils communs, réduit la configuration et assure la cohérence de l’environnement de développement tout au long du workflow. La particularité de Docksal est qu’il intègre un outil de ligne de commande qui simplifie la gestion de tous les composants.

VueJS

4 mai – Christophe Dugué @chdugue
#Drupal et #VueJS : Comment zapper #Jquery ? :) http://bit.ly/2qCT5iL

Depuis Drupal 5, Drupal intègre la bibliothèque jQuery. Bien qu’elle soit utile, la bibliothèque ne permet plus de répondre à certains cas de figure, à l’inverse du framework front-end JavaScript : Vue JS. Dans cet article tutoriel, vous découvrirez comment Vue.js peut améliorer l’interface utilisateur Drupal, comment utiliser les composants du framework, comment implémenter une librairie tierce avec VueJS et enfin comment créer une SPA (Single Page Application).

CMS Grav

10 mai – Ludovic Coullet ‏@lcoullet 
Grav CMS for #Drupal developers | Mike Crittenden http://buff.ly/2pxX1Ap

Ce mois-ci, on a découvert un nouveau CMS ambitieux dénommé Grav ! Ce CMS flat file est « hybride » : un mix en le CMS statique et le CMS dynamique. On connaît les avantages du dynamique, mais pourquoi un mix avec du statique ? Tout simplement car le statique ne requiert pas de base de données, ce sont de simples fichiers HTML qui ne nécessite peu ou pas d’administration. Le risque de hack est quasiment nul et la consommation en ressources est faible : idéal pour les petits sites !
En effet Grav permet de bénéficier d’un site dynamique en utilisant PHP mais sans avoir à utiliser une base de donnée. Citons quelques points forts : 

  • Grav permet de conserver l’intérêt du dynamique ;
  • La configuration est en Yaml ou JSON ;
  • L’administration est simple et moderne ;
  • La communauté est réactive et a déjà proposé un grand nombre de thèmes et plugins ce qui permet d’avoir une grande capacité de customisation de votre site.

Si Drupal est souvent utilisé pour les grands projets en raison de sa robustesse, voici une alternative sérieuse pour les petits sites. Ca mérite d’y jeter un coup d’œil !

Sketch

19 mai – Ryad Karar @ryadkarar
Prototype est enfin là ! J'ai testé, ca marche bien et mes maquettes ressemblent à une carte du métro parisien : http://bit.ly/2r9hcES

C’est avec excitation que nous accueillons la nouvelle mise à jour de Sketch. Pourquoi ? Parce que dorénavant, l’outil d’UI design intègre le prototypage avec Craft Prototype. Cet outil puissant propose une passerelle entre Sketch et Invision. En combinant le processus de conception et de prototypage, le travail est plus rapide et simple… et nous en sommes ravis ! 

Phalcon

21 mai – Christophe Dugué @chdugue
Et hop... Un petit #CMS #Phalcon, avec certainement des choses à récupérer :) http://yonacms.com/  - http://bit.ly/2sWEoaK

Yona est un CMS open source Phalcon (version 3.X). Petit tour sur les fonctionnalités du CMS :

  • Il possède une structure modulaire pratique basée sur des namespaces et dont chaque module peut servir de composant indépendant. Chaque module peut avoir ses propres itinéraires, CSS, assets JavaScript, etc. 
  • Il dispose d’une architecture facile à appréhender d’une configuration simple. 
  • Le CMS est performant et confère une certaine rapidité d’exécution.
  • Le CMS est multilingue et propose un nombre illimité de langues et de traductions directement depuis l’administration.

Divers

11 mai – Bluedrop @bluedrop_drupal
#Drupal : déclin ou transition ? Part 1 - http://bit.ly/2pDhMuv  par sieur @lcoullet #Polemique

On vous parlait plus en haut du phénomène du déclin de Drupal depuis la sortie de Drupal 8. Suite au post de Dave Hall « Drupal we need to talk », Ludovic, directeur technique chez bluedrop.fr a décidé de partager son avis sur le sujet ! Dans cette première partie de notre post, nous abordons la perte de vitesse du CMS et des raisons qui ont contribué à cet état. Tout d’abord, même si nous observons un essoufflement de l’utilisation de Drupal, nous ne pouvons nier que la part de marché de Drupal augmente au sein des entreprises notamment de type Fortune 500 ou CAC40. Drupal 7 a certes connu une popularité sans précédent mais posons le contexte : l’époque de Drupal 7 était également l’époque de Facebook, tous les sites devaient ressembler à un site communautaire. Aujourd’hui la demande a évolué tandis que le cœur de métier de Drupal reste le même : la gestion de contenus.
Par ailleurs, le passage difficile de Drupal 7 à Drupal 8 a fortement contribué dans la stagnation de la popularité du CMS, étant donné que la dernière version était une rupture technologique face à ses prédécesseurs impliquant une courbe d’apprentissage plus drastique à appréhender. L’adoption de Drupal 8 est involontairement réduite aux développeurs spécialisés et ne laisse que peu de chance pour les webmasters de mettre les mains dedans. Sans parler des nombreux modules qui ne sont pas disponibles en Drupal 8 et qui rendent le développement plus difficile…

16 mai – Christophe Dugué @chdugue
L'avenir de #Drupal Part 2/3 - La fin du monolithe ! http://bit.ly/2rmnL7C  - par @lcoullet

Dans le phénomène du déclin de Drupal, nous constatons un autre facteur très important : l'émergence des microservices. Et alors ? – me direz-vous - Drupal est une technologie monolithique, c’est-à-dire un CMS d’un point de vue fonctionnel complet, capable de répondre à n’importe quel type de projet/ de demande. 
Aujourd’hui de nombreuses fonctionnalités passent par une API ou un micro-service, d’où le succès grandissant des micro-services. Vous développez, ni plus ni moins, ce que le client a demandé. En plus de l’optimisation du développement et de l’amélioration de la maintenance, le site est performant ! Toutefois, il y a une ombre au tableau : à la moindre demande d’évolution (par exemple changer l’intitulé d’un champ), oblige le client à passer par le développeur. Avec Drupal, l’administration est assez complète pour effectuer les modifications soi-même.

18 mai – Ludovic Coullet ‏@lcoullet 
L'avenir de Drupal - Part 3 sur 3 - La concurrence est rude | Bluedrop, Agence web Drupal http://buff.ly/2qUC7jk

La concurrence est plus corriace qu’on ne le croit. En plus des micro-services, Drupal doit se confronter aux solutions en SaaS qui commencent à s’imposer doucement mais sûrement. Les solutions en SaaS proposent de fournir un back-office couplé à une solution d’hébergement pour un front-end statique de votre choix. Certaines solutions offrent un entrepôt pour stocker le contenu ainsi qu’une gestion des utilisateurs. Le CDN, le HTTPS et les backups sont déjà en place, pas de gestion de serveurs, moins de failles de sécurité…

18 mai – Christophe Dugué @chdugue
Le changement, c'est tout le temps ! - https://www.linkedin.com/pulse… by @agence_drupal on @LinkedIn

Cette année a été un peu différente, en particulier avec l’adoption de Drupal 8 qui nous a valu de nombreuses heures de travail, de recherche, de tests et de compromis technologiques... La constante évolution du web nous contraint à chercher, à progresser et à nous améliorer perpétuellement tant sur les choix techniques que sur notre méthode de travail. Finalement, avec le web le changement c’est tout le temps !