Cahier des charges du site

Site web écoconçu ?

20/03/2021

Sommaire du dossier


Préambule

Après avoir fait un grand (?) saut en devenant indépendant(1), j'ai eu envie de créer mon site pour me présenter et partager certaines de mes connaissances.
J'ai commencé par faire un site sous Wordpress, plateforme que je connais assez bien. Il est tout à fait possible d'arriver à de bons résultats moyennant certaines contraintes et une mise en œuvre d'une extension assez bluffante quant aux résultats obtenus.(2)

Mais mon engagement avec Infogreen Factory ⎋(3) m'a donné envie d'aller plus loin et de créer mon site depuis zéro en faisant en sorte de répondre au mieux aux exigences du Numérique Responsable(4).
Je dois aussi avouer que j'ai été titillé, de manière très positive, par certaines réactions constructives à la présentation du site de Infogreen Factory sur LinkedIn.

Me voilà donc embarqué dans une nouvelle aventure. Je ne suis pas développeur mais j'ai quelques connaissances sur le sujet et quelques idées de ce que je veux et de ce que je peux faire.

Je suis donc tout ouïe pour écouter toutes vos critiques constructives.

Introduction

OK, c'est très bien de vouloir faire un site mais sur quelle base ? Il existe déjà des solutions écoconçues et j'aurais pu partir d'une d'entre elles. Mais là, je n'aurai pas répondu à un de mes critères principaux : me faire plaisir en mettant les mains dans le cambouis. Donc exit les solutions existantes.

Je ne connais qu'un seul langage et encore, plus par imitation que par apprentissage. Il s'agit du PHP. Ce sera donc la première brique.

La deuxième brique est l'autonomie complète. Je souhaite faire mon propre hébergement. Et en ce qui concerne les serveurs, je ne connais que Linux : CentOS ou Debian. Le Raspberry 4 ⎋(5) vient de sortir et ce sera une bonne base de départ. Comme en plus le producteur de l'électricité que je consomme la produit à partir d'un barrage hydro-électrique à moins de 30 kilomètres de chez moi, je ne suis pas mal en alimentation. Ce n'est hélas pas mon fournisseur d'accès électrique mais difficile en tant que particulier de faire mieux.

Tout se met donc en place pour utiliser une pile Linux / Apache / PHP. Ce ne sera pas LAMP ⎋(6) car mon site sera alimenté uniquement par moi-même et je ne compte pas écrire une grande quantité d'articles. Je me passerai donc de MySQL et de toute base de données.

Je suis autant que faire se peut dans ma zone de confort au niveau technique.

Tout cela étant posé, quelles sont donc les exigences que je me suis imposées ?

Les exigences

Elles sont relativement simples pour répondre le plus possible au Numérique Responsable mais aussi à d'autres contraintes plus personnelles.

Les performances

Mon site doit pouvoir fonctionner en 2G sur un ancien téléphone portable. Je me fixe d'arriver à charger une page normale en 2 à 3 secondes, 4 au grand maximum. Même si je n'ai pas conçu mon site dans l'optique mobile-first(7), j'ai toujours fait en sorte de minimiser les fonctionnalités au strict nécessaire, de réduire le poids au maximum et limiter le nombre de requêtes et la taille de la structure de chaque page.

L'objectif est d'avoir la note maximale pour l'Ecoindex, GTMetrix, LightHouse, PageSpeed Insights, ... Ce n'est pas la note absolue qui m'intéresse mais l'évaluation initiale et la progression qui suit les actions que j'entreprends pour améliorer.

Il est donc évident que tout ce qui génère soit du poids, soit de l'usage du CPU que ce soit côté serveur ou poste de travail, ... est à proscrire. Mes pages sont donc simples sans animations, avec de petites images pour illustrer, des images optimisées si nécessaire à la compréhension du texte et taillées à la meilleure dimension selon l'usage.

J'ai aussi décidé que le site doit être le plus possible en html et non en php pour l'utilisateur final. Mais je n'ai pas envie d'écrire directement en html notamment pour les hauts de page, les bas de page, les titres, les notes de bas de page, les consolidations de dossiers, ...
Il me faut donc écrire un moteur qui génère les pages html à partir de fichiers sources écrits avec un mix en php pour le côté dynamique et en html.

L'accessibilité

C'est le domaine où je suis le moins à l'aise. J'essaye de répondre au mieux aux exigences en me basant sur des outils comme des contrôleurs de contraste en fonction des déficiences, de respect des bonnes pratiques. C'est le sujet sur lequel je dois progresser même si je pense que le site est en bonne voie.

Je ne dois pas avoir d'erreurs ou d'alertes sur la majorité des outils de contrôle. Ce n'est pas parfait mais au fur et à mesure j'arrive à améliorer la conformité.

La facilité

L'automatisation

Il y a beaucoup de fonctionnalités qui sont évidentes et nécessaires à mettre en place : lazy loading, images optimisées et à la bonne taille, css concaténé et minimisé, ...

Je ne veux pas faire le travail moi-même. Lorsque j'insère une image, ce n'est pas à moi à l'optimiser et la proposer en plusieurs tailles. L'application va devoir le prendre en charge.

Ainsi, toute l'optimisation qu'il est possible de mettre en œuvre doit être automatiquement réalisée.

La réutilisation

Elle se retrouve à plusieurs niveaux :

La simplicité

Je veux me consacrer à l'écriture et ne pas être perturbé par le codage ou la présentation. Il faut donc disposer de modèles de pages ou d'articles, définir les éléments essentiels comme le titre, la description, ... et écrire le plus simplement possible.

L'optimisation du serveur

Il n'est pas possible de parler de Numérique Responsable si l'utilisation des ressources ne se fait pas de manière optimisée.
Mon serveur répond bien à ce critère. Il me sert en effet de NAS, de serveur multimédia, d'espace de développement, de serveur de sauvegardes pour mes photos, de serveur TimeMachine, de serveur de partage de fichiers, ...

La sécurité

En partant du principe que je ne mets pas de Javascript et que je n'ai pas de base de données, je réduis déjà la surface d'attaque.
L'objectif est donc de limiter au strict minimum possible les points de vulnérabilité.
Pour mesurer tout cela, il faudra que le site réponde avec les notes maximales sur les sites de tests de sécurité comme l'Observatory moz://a, Immuniweb, SSLLabs, ... Je les détaillerai dans l'article correspondant.

En conclusion

Le moteur du site, s'il répond à ces exigences, permettra d'être à un bon voire très bon niveau Numérique Responsable.
À moi par la suite, lors de la rédaction des articles, de ne pas perdre tout le bénéfice en ne respectant pas la sobriété rédactionnelle ou la conformité à l'accessibilité.

À très bientôt pour la suite sur les solutions mises en œuvre.

PS : sur ce site, personne ne sera traqué ; il n'y a au plus qu'un seul cookie fonctionnel pour la session PHP et aucun autre ; bon surf !



Notes et renvois

(1) : Il est vrai, en ayant pris un grand coup de pied au derrière, bénéfique, en octobre 2020 ┃ retour au texte, note (1) ䷀
(2) : voir l'article traitant de l'extension Asset CleanUp sur le site de Infogreen Factory sur l'Écoconception et WordPress - Partie 2 - Les extensionsretour au texte, note (2) ䷀
(3) : lien envoyant dans un autre onglet sur le site de Infogreen Factory ┃ retour au texte, note (3) ䷀
(4) : l'Institut du Numérique Responsable propose un MOOC de sensibilisation très intéressant à suivre (lien s'ouvrant dans un autre onglet) : MOOC Sensibilisation Numérique Responsableretour au texte, note (4) ䷀
(5) : lien envoyant dans un autre onglet sur le site en anglais de Raspberry ┃ retour au texte, note (5) ䷀
(6) : lien envoyant dans un autre onglet sur le site de IONOS ┃ retour au texte, note (6) ䷀
(7) : Voir les explications dans un nouvel onglet sur le site de IONOS : Mobile First : la nouvelle approche du Web designretour au texte, note (7) ䷀