DrupalCon

Développeur Drupal backend, frontend et concepteur de sites

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

Développeur spécialisé Drupal, fullstack et freelance, je gère entièrement vos projets de manière agile. Je vous apporte toute mon expérience en tant qu'expert Drupal depuis 12 ans et développeur senior depuis presque 20 ans. Je peux également m'intégrer à votre équipe sous la direction de votre chef de projet Drupal ou développeur web principal. Vous avez un tout nouveau projet web sous CMS 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 ? Voulez-vous externaliser la maintenance de vos sites internet Drupal ? Je peux répondre personnellement à toutes ces 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. Ceci permet de faciliter les développements aussi bien initiaux que futurs. Il a notamment la responsabilité cruciale de la gestion des contenus. 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. Mais réaliser cette étape de conception initiale par un concepteur de sites Drupal expérimenté est beaucoup mieux. Ceci 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. 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é du 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 tout est possible.

Un autre avantage d'un concepteur de sites expérimenté est qu'il ou elle connaît la roadmap de Drupal. Il 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 back end Drupal, mon activité principale est de créer des modules custom pour votre site web. Il faut connaître différents langages dont principalement le PHP. J'étudie comment utiliser au mieux les APIs du coeur de Drupal, comme Entity, Fields, Views, Forms... Egalement de ses fondations web PHP comme Symfony, et celles des principaux modules contrib: Paragraphs, Rules, Webform etc. En effet, très souvent en développement Drupal il n'y rien de fondamental à coder. En développement de modules, si on connaît bien les différentes APIs, c'est souvent peu de code à écrire. Et quand il faut coder, il y a des outils comme Drupal Console qui permettent de gagner un temps fou. Il y a aussi 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. Ceci permet de les enrichir, les corriger ou en reprendre certaines parties ailleurs. A force aussi, on a tendance à avoir beaucoup moins besoin de documentation. En effet, on prend le réflexe de regarder directement dans le code open source de référence. Par exemple 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. Il 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. Par exemple 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. Il faut procéder méticuleusement à leur examen préalable. 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 et autres opérations plus spécialisées.

Développeur frontend

Enfin je suis développeur frontend Drupal, parfois aussi appelé intégrateur. Ceci signifie que je suis capable de créer un thème Drupal responsive en HTML5, CSS3 et JavaScrip. Votre application web sera forcément 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. Ils doivent bien sûr maîtriser les technologies frontend habituelles : HTML CSS, Less / Sass, JavaScript / jQuery, Yarn / Npm, Laravel Mix / Webpack / Gulp / Grunt, ...

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.). Mais 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. Mais dans 80% des cas mes compétences suffiront largement à tout votre développement front end.

Un thème Drupal peut très vite devenir extrêmement lourd à maintenir et à faire évoluer. Il 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". Celle-ci garantit plus de performance, plus de sécurité et une meilleure évolutivité. La vitesse de votre site est un critère majeur. Si elle est mauvaise, cela 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. 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. En plus 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, tout est clair. Résultat : tout nouveau développeur retrouvera immédiatement ses repères.

Articles in this category: