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 :
- Lorsque je passe une page (ou un article) écrite de l'environnement de test vers l'environnement de production, cela doit se faire par un unique copier-coller
- L'ajout d'un module (thème, gestion des bas de note, des dossiers d'articles, ...) doit aussi se faire par un simple copier-coller
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 extensions ┃ retour 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 Responsable ┃ retour 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 design ┃ retour au texte, note (7) ䷀