Carnet Wiki

Approche framework

Version 5 — Septembre 2014 — Noplay

Spip est un framework pour le développement d’applications web.
Facile à dire mais qu’est ce que ça veut dire au juste ? Et qu’est -ce que ça implique lors du développement et de l’utilisation d’outils et plugins ?

(Avec des morceaux d’irc dedans)

Exemple pour  : problématique de l’e-commerce

PrestaShop est une application permettant de créer une boutique en ligne dans le but de réaliser du commerce électronique. Peut on faire l’équivalent en SPIP ?
Certainement, mais le domaine du e-commerce, dans sa globalité, est ÉNORME. Le nombre de trucs à gérer est énorme, et doublement énorme si on doit gérer une liaison/synchronisation avec un logiciel métier, ERP, stocks, etc.
Donc on est pas prêt d’avoir un truc aussi énorme vu que, à moins d’un passionné qui ne comptera pas ses heures, personne ne financera jamais ça…
En revanche, on peut petit à petit ajouter des fonctionnalités module par module, aux plugins déjà existants, si on développe bien sur une base de « framework » et non pas sur une base de solution tout-en-un.
Le développement doit donc être collaboratif car le tout, impérativement, est de toujours faire attention à ce que chaque module ait des points d’entrées pour être modifié par un autre truc plus tard.

Comparaison : Spip vs Drupal

Drupal n’a que des Nodes, et les champs particuliers à chaque sorte d’objet sont ailleurs : le Node est le truc central, et ensuite ya des sous-tables liées qui définissent des champs particuliers pour tel ou tel type de node. Du coup ça fait des jointures de malade, notamment pour la recherche / filtrage.
Avec SPIP, au contraire, un objet représentant un contenu a peu ou prou tous les champs importants dans la même table au même endroit et donc ça fait une requête toute simple.

Exemple de problématique

Forums et tickets ont des structures en grande partie similaires, des fonctionnements voisins, mais des sémantiques différentes, nécessitant une UI différente, çad des squelettes, des chaines de langues, des autorisations et un workflow différents, pour certains aspects.
La sémantique c’est  : «  <quote > 1 ticket = 1 affirmation » tandis que «  / 1 forum = 1 commentaire d’une affirmation  ».
affirmation</quote > Mais le ticket (l’affirmation) peut *aussi* porter sur un autre objet pré-existant.
Par ailleurs les forums peuvent s’inscrire dans un fil de discussion ; ce n’est pas le cas des tickets.

Le choix a été de faire 2 objets entièrement différents, mais les tickets utilisent les forums pour leurs commentaires... Une autre solution aurait été d’utiliser les forums, éventuellement en leur ajoutant un ou des champs et en adaptant leur présentation et workflow selon le contexte.

Quelques liens


-  sur wikipedia
-  sur SPIP Blog
-  sur SPIP pour les nuls
-  chez Arno* et Diala