Certains d'entre vous connaissent peut-être le MOVE, d'autres, seulement le MVC.

Ce sont tous deux des paradigmes de développement permettant de séparer les différents contextes.


Le MVC :
  • Modèles
  • Vues
  • Contrôleurs


Comme l'auteur présumé, Conrad Irwin, le dit sur son blog, le MVC pousse à trouver des compromis, afin de faire tout ce que l'on veut, avec la structure "imposée".


Le MOVE :
  • Modèles
  • Opérations
  • Vues
  • Évènements


Nous avons donc une structure plus complète, séparant vraiment bien les contextes.


Que peut-on avoir besoin de plus?

Vous vous êtes sans doute aperçu que l'on ne doit pas forcément renvoyer une vue.

En effet, vous pouvez notamment renvoyer un fichier, un flux, un document interprétable, etc., ou même rien du tout.

On peut, par exemple, lors d'une requête, créer une base de donnée, une table, un template, sans pour autant retourner la ressource en question.

On fait souvent de la manipulation de fichiers, comme l'autoload, sans avoir de contexte vraiment approprié pour le mettre.


Que faire alors? ajouter un nouveau contexte?

Non, bien entendu, nous n'allons pas complexifier notre architecture.

Ce que je vous propose, c'est une autre approche... nous allons simplement remplacer le contexte "Views" par "Resources".

Chaque fichier (scripts, classes, modules, interfaces, bases de données) et chaque flux est une Ressource.

Elle est accessible via une accesseur (une classe ou un module), afin d'interagir avec, de pouvoir les créer, les lire, les modifier, les transmettre, les supprimer...

Ensuite, c'est au contexte "Operations" de déterminer ce que l'on en fait, si on l'exécute, si on le retourne au client...


Now, you can make MORE!