SOLID: le projet du créateur du World Wide Web de reprendre le contrôle de ses propres données

Sir Tim Berners-Lee est parfois surnommé « l‘inventeur d’Internet« . Le World Wide Web et le langage HTML ont tous deux été créés par un homme. Fervent défenseur de la neutralité du réseau et de la confidentialité des données personnelles, il vient de lancer une nouvelle initiative pour lutter contre l’influence croissante des GAFA.

L’objectif du projet Solid est de reprendre le contrôle d’Internet aux quatre géants des médias sociaux. Les informations privées des individus sont au centre des modèles économiques des plus grandes entreprises du web, et elles sont la cible de cette prise de contrôle. Si la plateforme parvient à convaincre à la fois les développeurs et les utilisateurs, elle a le potentiel de modifier radicalement l’internet tel que nous le connaissons.

Que signifie exactement le SOLID ?

En matière de conception orientée objet (OOD), Robert C. Martin (également connu sous le nom d' »Oncle Bob ») préconise un ensemble de cinq principes que l’on abrège par l’abréviation SOLID.

Ces règles établissent les meilleures pratiques en matière de développement de logiciels tout en tenant compte de la nécessité d’une maintenance permanente et de nouvelles fonctionnalités au fur et à mesure de l’évolution du projet. L’adoption de ces procédures peut contribuer à éliminer les odeurs désagréables, à recycler l’ancien code et à créer des logiciels flexibles et réactifs.

Les significations du SOLID 

S – Responsabilité unique (Single responsibility principle)

O – Ouvert/fermé (Open/closed principle)

L – Remplacement par Liskov (principe de substitution de Liskov

I – Ségrégation des interfaces (Interface segregation principle)

D – Inversion des dépendances (Dependency inversion principle)

Individual Accountability (S) (Principe de responsabilité singulière)

Le principe de responsabilité singulière (SRP) précise ce qui suit :

Chaque classe ne doit jamais être utilisée que dans un but précis, et ses modifications doivent être motivées par cette seule chose.

Par exemple, considérons un programme qui additionne la surface d’une collection de formes (telles que des cercles et des carrés).

Principe d’ouverture/fermeture (O – Ouvert/fermé)

Le principe de la « porte ouverte » ou de la « porte fermée » (S.R.P.) spécifie en détail ce qui suit:

Il ne doit y avoir aucune restriction à l’extension d’un objet ou d’une entité, même si des modifications peuvent y être apportées. Cela signifie qu’une classe doit permettre des extensions sans modifier la classe elle-même.

A lire aussi : comment définir le navigateur de messagerie par défaut sur iOS 14

Changement de Liskov (L) (principe de substitution de Liskov)

Les détails sont irréfutables selon le principe de substitution de Liskov :

Si la propriété q(x) est prouvable pour tous les objets de type T, alors la propriété q(y) est vraie pour tous les objets de type S, à condition que S soit un sous-type de T.

Cela signifie que toutes les classes dérivées doivent être totalement interchangeables avec leurs classes sources.

Ségrégation des interfaces (Interface segregation principle) (Principe de ségrégation des interfaces)

Voici ce que l’on peut attendre, selon le principe de la ségrégation des interfaces :

De la même manière que l’on ne doit pas obliger un client à installer une interface qu’il n’utilisera pas, on ne doit pas non plus l’obliger à s’appuyer sur un ensemble de procédures qu’il n’utilisera pas.

Vous devez prendre en compte les nouvelles formes tridimensionnelles Cuboid et Spheroid de la même manière que vous avez traité les exemples précédents de ShapeInterface. Ces modèles nécessiteront également des calculs volumétriques.

Inversion de dépendance (D) (principe d’inversion de dépendance).

Pour être plus précis, l’inversion de la théorie de la dépendance stipule :

Les entités doivent s’appuyer sur des conceptualisations plutôt que sur des implémentations concrètes. Elle suggère que le module de niveau supérieur ne doit pas s’appuyer sur le module de niveau inférieur, mais plutôt sur des abstractions.

Ce cadre théorique permet le décodage.

Le rôle de SOLID

L’objectif de Solid est d’inverser la tendance vers un web dominé par un petit nombre d’entreprises comme Google, Facebook et Apple en redonnant aux utilisateurs le contrôle de leurs données personnelles. Pour Solid, le principe d’organisation central est le POD (Personal Online Data Store), qui permet aux utilisateurs de contrôler l’endroit où leurs données sont stockées, les programmes qui y ont accès et les autres utilisateurs qui peuvent les voir. 

Les utilisateurs auront le contrôle total de l’endroit où sont stockés les fichiers multimédias (photos, vidéos, contacts, messages, etc.) et pourront y accéder à partir d’une interface unique. À l’heure actuelle, ce sont les entreprises, et non les utilisateurs finaux, qui ont accès aux données et les contrôlent. En utilisant les POD, l’utilisateur peut récupérer l’autorité sur ses propres données.

Bien que Solid soit construit sur des formats de fichiers en ligne et des langages de programmation standard, son incorporation dans les sites Web et les applications existants nécessitera le travail des développeurs. Ils auront la possibilité de créer des applications qui fonctionnent en tandem avec l’écosystème Solid

Nous devrions avoir une première indication de la viabilité du projet si les applications commencent à intégrer Solid. Il est, en effet, difficile de concevoir une adoption généralisée sans une masse critique de personnes.
Néanmoins, Solid est une alternative crédible au Web actuel en raison de la mystique de Sir Berners-Lee, de l’intérêt porté au projet et de l’utilisation des normes Web. Il faut savoir que c’est un projet vraiment ambitieux qui va ouvertement à l’encontre des GAFA.