Trop compliqué ! – MVC Paradigm – object-oriented user interfaces



Trop compliqué ! – MVC Paradigm – object-oriented user interfaces

0 1


prezangular

Introduction to Client MVC architectures

On Github bennekrouf / prezangular

L'objectif de cette conférence est de parler WEB D'un point de vue Expérience Utilisateur Framework Architecture Pourquoi le WEB ? Le navigateur s'est imposé comme principal environnement d'exécution d'applications : grand public, application de gestion, voir industriel Ils sont déjà présents sur les supports mobiles : téléphones, tablettes console de jeux, télévision, on commence à en voir dans les voitures
N'ayez pas peur d'intervenir De poser des questions De dire : j'ai rien compris , tu peux répéter J'ai pas compris la question
Exultez
A l'origine le browser est assez simple : il affiche des informations avec un langage dédié / déclaratif : du markup, de l'HTML Et il possède un espace mémoire : une machine virtuelle et un langage qui permet de manipuler cette mémoire : y déposer des informations et en récupérer A un moment donné on ne sait pas trop ce qui s'est passé... partie de ces principes simples on est arrivé à des choses ...
Vieux débat (pour ceux qui ont eu leur bac avant 2000) la difficulté est la suivante : le contenu affiché sur le navigateur est toujours distant : les données sont distantes (BD) et les éléments graphiques sont distants (contenu statique)
idéalement, on aimerait que notre markup soit à l'image de ce qui s'affiche
Hello
<input model="firstname"> <input model="lastname"> Hello {firstname} {lastname}

Hello

finalement on explique au client que l'informatique c'est très compliqué on manipule beaucoup d'instruction et de traitement et ces traitements il faut les organiser en couche pour evolutivité maintenabilité scabilité transitivité la postérité on parle de patterns, affinité de session, transaction, de two-phase commit...
On explique au client qu'il faut organiser les informations et les traitements que potentiellement, les données seront utilisées par différents médias et que potentiellement on voudra changer allègrement la partie graphique par contre le backend, représente le coeur du métier de l'entreprise

Trop compliqué !

MVC Paradigm

Au même moment, on assiste à un retour en force du modèle MVC On dit : on final : nous avons 3 activités distinctes
controller : il écoute avant tout lorsqu'il recoit quelque chose, il le transmet model : la caverne d'ali baba : on y stocke tout les trésors données, les modèles de données View : c'est ce qu'on va afficher sur le browser : des données et des éléments graphiques
On décide de mettre tout ça : sur le serveur Pourquoi : car le navigateur n'est pas très performant en plus on a la proximité des données sur l'env de dev je vois mes données, mon modèle, je tire le tout et je le place sur ma view tout ça avec un seul langage principal : java, ou C# ou assimilé
Déclinaison basic de ce modèle avec les servlet et les JSP D'ailleurs ya une nouvelle formation prévue en 2014 JSP/Servlet pour les nulles à Nantes, trop bien Formation Vintage
Déclinaison Struts façon Groupama on manipule des JSP (la classe) mais on a un super fichier pour l'apsect controleur le strutsconfig.xml (.xml) Si vous n'en avez jamais vu ça vaut vraiment le coup C'est une tuerie... par contre si vous n'avez pas fait polytechnique ça risque d'être chaud
Déclinaison JSF Le point remarquable : "Render" Le rendu, cette opération mystérieuse que l'on confie à une personne sur le projet Personne ne comprendra sauf, il introduira les principaux goulots d'étranglement il ne fera jamais de transfert de co

object-oriented user interfaces

limites du Paradigme : MVC Server

0 - L'inconvénient du server side MVC : le V : le fait de faire du templating par le serveur nous limite trop sur les traitements graphiques. La seule chose que pour avoir du comportement : on ajoute du JS à l'arache on cache des champs... on fait des iframes...

JQuery, Prototype

1 - 2005, 2006 John Resig dévelop Jquery, l'API Prototype intervient à peu près au même moment 2 - Jquery API qui permet de manipuler directement le DOM l'arbre d'objet du navigateur : on ajouter des objets graphiques, on ajoute des traitements sur des évènnements 3 - Inconvénient : Jquery est bien en toolbox... on se retrouve à développer beaucoup beaucoup de JS... parfois difficile à structurer

MVC Client Paradigm

The father

Misko Hevery

Principes

DRY : don't repeat yourself / No boilerplate On évite d'avoir à développer une structure de projet de base le framework va réaliser lui même le binding / le lien mémoire <-> vue le framework offre en natif tout un tas de lib pour manipuler le DOM mécanisme d'enrichissement du DOM / HTML : possibilité de définir des balises HTML Structure : zone de déclaration des services ou factory, mécanisme de controller avancée : héritage des propriétés entre controleurs Testabilité : tout est testable grâce au mécanisme d'injection Basé sur la notation Jasmine + lanceur Karma (ex testacular) on peut injecter dans un test unitaire : un controlleur, un service, une factory les exécuter, voir leur comportement avant ou après

Ressources

egghead.io