DrupalCon

Développeur Drupal backend, frontend et concepteur de sites

© Drupal Association / Trav Williams (https://www.flickr.com/photos/drupalassoc/8774101979)

Développeur Drupal fullstack freelance, je gère entièrement vos projets de manière agile en vous apportant toute mon expérience senior de presque 20 ans. Je peux également m'intégrer à votre équipe sous la direction de votre chef de projet ou développeur principal. Que vous ayez un tout nouveau projet web en Drupal, un besoin de refonte de votre site déjà existant sous une autre technologie, des demandes d'évolution ponctuelles sur un Drupal 8 ou 7 ou enfin si vous souhaitez externaliser la maintenance de votre site, je peux répondre personnellement à vos demandes. Je couvre les trois grands domaines de compétences suivants :

Concepteur de sites

En tant que concepteur de sites Drupal, je construis un site Drupal en utilisant au mieux Core et les modules contrib. Un bon concepteur de sites Drupal doit concevoir une architecture solide et évolutive, afin de faciliter les développements aussi bien initiaux que futurs. Il a notamment la responsabilité cruciale de la gestion des contenus. Si organiser et présenter ces contenus est relativement accessible à un public n'ayant pas de compétences en développement web via l'interface très puissante de backoffice, faire réaliser cette étape de conception initiale par un concepteur de sites Drupal expérimenté garanti la maîtrise des coûts dans le temps, la fiabilité et les performances du site. En effet, avec Drupal il y a toujours plusieurs manières très différentes de procéder mais seule l'expérience de nombreuses années, acquise en travaillant sur beaucoup de sites variés et riches en contenu, permet de mettre en place les meilleures méthodes.

Cette organisation doit aussi refléter vos besoins réels et non pas être mise en place machinalement sans réflexion. Exemple typique : faut-il plutôt optimiser la rentabilité avec une approche légère en code et manipulations mais extrêmement efficace pour le travail en équipe d'un développeur backend avec un développeur frontend ? Ou pour vous, le plus important est-il de pouvoir personnaliser au maximum votre site sans avoir besoin de faire une seule ligne de code ? Sur ce cas je préconise toujours très vivement la 1ère approche, mais si vraiment c'est votre demande tout est faisable.

Un autre avantage d'un concepteur de sites expérimenté est qu'il ou elle connaît la roadmap de Drupal et s'en inspire afin d'avoir une vision claire du futur. Est-ce qu'en faisant ce choix, le passage à la prochaine version de Drupal sera-t-il plus simple ou plus compliqué ? Est-ce que la fonctionnalité que vous désirez implémenter sur votre site web existe déjà dans la communauté Drupal ? Est-ce qu'elle est en développement ? Si oui peut-on attendre un peu le temps qu'elle soit disponible ?

Dernière particularité du concepteur de sites Drupal : il ou elle doit savoir coder un minimum et connaître le système de hooks de Drupal. En effet, dans 80% des cas toutes les briques nécessaires à réaliser votre vision sont déjà disponibles soit dans le coeur de Drupal, soit dans des modules sur Drupal.org. Encore faut-il savoir les relier entre elles, ce qui passe souvent par l'écriture de code simple.

Développeur backend

En tant que développeur backend Drupal, mon activité principale est de créer des modules custom pour votre site web, en différents langages dont principalement le PHP. J'étudie comment utiliser au mieux les APIs du coeur de Drupal, comme Entity, Fields, Views, Forms..., de ses fondations web PHP comme Symfony, et celles des principaux modules contrib: Paragraphs, Rules, Webform... En effet, très souvent il n'y rien de fondamental à coder si on connaît bien les différentes APIs. Et quand il faut coder, il y a des outils comme Drupal Console qui permettent de gagner à la longue un temps fou, et des habitudes de bon développeur à avoir, comme mettre en place des tests unitaires.

L'expérience permet de comprendre rapidement comment fonctionnent des modules spécifiques déjà codés par d'autres développeurs afin de les enrichir, les corriger ou en reprendre certaines parties ailleurs. A force aussi, on a tendance à avoir beaucoup moins besoin de documentation puisqu'on prend le réflexe de regarder directement dans le code de référence, que cela soit dans Drupal Core, les fondations comme Symfony, les modules contrib ou custom.

Le développeur backend a en général également la responsabilité de la gestion de la configuration du site et des déploiements. Drupal 8 va encore plus loin que son prédécesseur dans ce domaine et permet d'exporter et d'importer pratiquement 100% des réglages d'une instance d'un site à une autre. Ainsi, la plupart des opérations manuelles effectuées dans l'interface du backoffice ou en ligne de commande sur l'instance locale du site chez le développeur peuvent être sychronisées sur une instance de test, de préproduction ou de production. Ceci fait gagner énormément de temps car ces opérations soit parfois très longues, et évite aussi les erreurs humaines. Le dev backend prend aussi en charge la plupart du temps les mises à jour de Drupal et de ses modules, en procédant méticuleusement à leur examen préalable car souvent il y a du code ou de la configuration à changer, du code déprécié par Drupal qui doit être mis à jour, etc.

Dans des cas un peu plus rares et pointus, le développeur Drupal backend peut également effectuer des analyses pour améliorer les performances, mettre en place des tests comportementaux Behat ou de non-régression visuelle.

Développeur frontend

Enfin je suis développeur frontend Drupal, parfois aussi appelé intégrateur, ce qui signifie que je suis capable de créer un thème Drupal responsive en HTML5, CSS3 et JavaScript pour afficher votre application web en responsive design. Les bons développeurs frontend Drupal doivent connaître le système de templating de Drupal, son langage Twig ainsi que les fonctions de processing, et doit bien sûr maîtriser les technologies frontend habituelles : HTML, Less / Sass / CSS, JavaScript / jQuery, Yarn / Npm, Laravel Mix / Webpack / Gulp / Grunt, ...

Si je suis capable de créer un design simple, en général en partant de projets opensource existant (thème Bootstrap sur Drupal.org, MaterializeCSS, etc.), je ne suis pas designer moi-même. Pour des designs très complexes et pour ce qui est de la créativité, je préfère travailler avec votre designer ou vous proposer d'excellents collègues à moi. Dans 80% des cas mes compétences suffiront largement.

Un thème Drupal peut très vite devenir extrêmement lourd à maintenir et à faire évoluer et peut comporter de très grosses erreurs comme par exemple des requêtes qui viennent modifier votre base de données (vu en vrai dans un thème !). A l'inverse, il y a une façon de faire "à la Drupal" qui garantit plus de performance, plus de sécurité et une meilleure évolutivité. La vitesse de votre site est un critère majeur qui, si elle n'est pas bonne, va vous faire perdre des utilisateurs et vous pénaliser dans les résultats de recherche SEO. Le thème en est souvent responsable au moins en grande partie mais une optimisation plus avancée se fera plutôt par le développeur backend Drupal.

Enfin, des outils puissants comme le preprocessing de CSS, alliés à une structure logique, permettent de conserver une organisation simple du thème. C'est essentiel car le thème Drupal est très clairement la partie du site qui sera la plus souvent modifiée, et souvent par des développeurs différents. Si l'organisation de base suit celle de Drupal Core par exemple, il n'y a aucune question à se poser sur la façon de nommer les fichiers et les répertoires. Résultat : tout nouveau développeur retrouvera immédiatement ses repères.

Articles dans cette catégorie :