Le diagramme d'état est un outil qui devrait figurer dans votre arsenal de codage Web. Un diagramme d'états indique les différents "états" (réactions) dans lesquels votre application (site Web, par exemple) peut être, ainsi que l'action ou l'entrée (de l'utilisateur) nécessaire pour atteindre un état spécifique. Un diagramme d'état aide à concrétiser dans votre esprit toutes les interactions possibles entre l'utilisateur et l'application. Cela augmente les chances que vous envisagiez au moins de coder pour toutes les possibilités simplement parce que vous les connaissez toutes - ce qui réduit les chances que vous ayez un code erroné ou pire, que vous ayez oublié de gérer des fonctionnalités spécifiques..
Un diagramme d'états comprend deux composants: des cercles pour représenter les états (réactions / sortie de l'application) et des flèches pour représenter les transitions (actions de l'utilisateur / entrées). Les diagrammes d'état sont très pratiques pour les applications informatiques complexes et peu complexes. Cependant, en ce qui concerne le développement de sites Web, les diagrammes d'état ne sont pas toujours utiles:
D'autre part, si vous construisez un site Web sur lequel vous devez gérer des transitions spéciales, un diagramme d'états peut s'avérer très utile:
La chose surprenante est que les diagrammes d'état ne sont pas si compliqués à produire. Cependant, selon mon expérience, ils ne sont pas utilisés très souvent par la plupart des programmeurs, malgré les avantages (compréhension plus approfondie des interactions des utilisateurs; cohésion des efforts de codage). Je jure par eux - ou je le faisais quand je codais tous les jours dans divers emplois.
Il est recommandé de créer d'abord les diagrammes d'état sur papier, puis de les transférer sur une copie numérique si et seulement si cela est nécessaire. (Il y a quelque chose dans la tactilité de dessiner des relations d'entrée / affichage sur papier qui les rend plus concrètes dans votre esprit, ce qui permet de gérer plus facilement toutes les interactions possibles et ainsi de réduire les bugs dans vos applications.)
Un diagramme d'état comprend:
Vous pouvez voir un exemple simple directement ci-dessous - qui sera développé plus loin dans cet article:
Voici les étapes à suivre pour créer des diagrammes d'état (avec un penchant pour les applications basées sur les sites Web):
Pour développer le numéro 7 ci-dessus, gardez à l'esprit qu'avec les sites Web, les actions pourraient être répétées. Par exemple, si chaque page comprend le même menu de navigation, il n'est pas nécessaire d'afficher ces transitions à plusieurs reprises et d'encombrer le diagramme d'états. Il suffit de représenter des actions en cluster avec une notation / symbole abrégé.
(Il est beaucoup plus facile de comprendre un diagramme d'état si vous êtes la personne qui le dessine, étape par étape. Si vous regardez un diagramme d'état complet, cela peut être intimidant. Pour cette raison, les diagrammes d'état ne vivent souvent que sur papier. - en supposant que vous les utilisiez.
Pour un site web statique qui utilise non Fonctionnalités AJAX-y (c’est-à-dire toute fonctionnalité dont l’URL ne change pas), un diagramme d’état est relativement facile à produire mais généralement inutile. Par exemple, un site Web statique dans lequel chaque page est connectée à une page sur deux génère un diagramme d'états appelé parfois un graphe "entièrement connecté". De tels diagrammes d'état sont généralement inutiles car il n'y a aucune manipulation particulière à visualiser. Chaque état est connecté à tous les autres états)
Les diagrammes d’état sont particulièrement utiles pour les sites dynamiques - en particulier ceux avec Fonctionnalités AJAX-y (telles que menus déroulants, curseurs, accordéons, galeries, etc.). Dans ce dernier cas, l'URL dans le navigateur peut ne pas changer mais le contenu de la page le fait partiellement. Il est plus difficile de visualiser tous les états et transitions possibles (actions) car une "page" peut avoir plusieurs sous-états..
Un diagramme d’état (ou un ensemble de diagrammes de plus en plus détaillés) s’avère très utile dans ce cas, surtout s’il existe une équipe de codeurs (et parfois de concepteurs) avec laquelle travailler..
Dans un prochain tutoriel, je vais vous montrer comment coder jQuery pour deux effets que j'utilise dans mon modèle AboutMe. La page en direct présente quelques problèmes CSS qui doivent être résolus en premier. J'aimerais également ajouter d'autres fonctionnalités basées sur jQuery s'il reste suffisamment de temps. Ces fonctionnalités supplémentaires feront l’objet de notre exemple.
À l'avenir, ce modèle deviendra un thème WordPress gratuit destiné aux pigistes souhaitant mettre en valeur leur expérience de travail (concerts). Pour l'instant, je veux montrer comment les diagrammes d'état peuvent vous aider à comprendre la cause / les réactions nécessaires (entrée / transitions) pour la galerie "Current Gigs" présentée ci-dessus. Comprendre les transitions nécessaires vous aide à coder avec plus de confiance, et tout est indépendant du langage de codage. Vous pouvez donc choisir la bibliothèque / le code après avoir créé le diagramme d'état..
Si vous regardez la galerie "Current Gigs" au centre à gauche de l'image ci-dessus, ou sur la page en direct, vous verrez qu'il s'agit essentiellement du même concept qu'une galerie d'images. Cliquez sur un lien et les détails de ce "concert" apparaîtront. Cependant, lorsque j'ai créé la page en direct, il n'y avait pas de tutoriels jQuery sur la manière d'ajouter du texte dans le mix, pour chaque "cadre" de la vitrine. Je devais venir avec mon propre code.
Pour ce faire, je devais d'abord comprendre toutes les interactions possibles entre les utilisateurs. Un diagramme d'état est idéal pour cela. Let's up the ante, cependant. Ce que je voulais vraiment, c’est un espace vitrine montrant les concerts actuels et passés. C'est un peu comme un visuel visuel. (Curriculum Vitae, aussi appelé "CV"), présentant une galerie d’expériences professionnelles. Le cadre de chaque concert contient une capture d'écran de la page d'accueil du site associé, ainsi qu'un texte donnant des détails sur le travail que j'ai effectué / que j'effectue actuellement..
Pour le moment, la page contient uniquement les "concerts actuels", mais devrait également contenir les "concerts passés". Voici une liste des exigences fonctionnelles pour ce que la zone de démonstration devrait avoir:
Donc, pour réitérer, l'objectif est d'avoir une interface à onglets où les onglets sont étiquetés "concerts actuels" et "concerts passés". Cela permet d'avoir plus d'onglets plus tard, uniquement limité par la largeur de chaque étiquette et la largeur de l'espace d'affichage (590 pixels). Mais je veux que les onglets soient "invisibles", comme mentionné. Au lieu des onglets typiques d'une interface à onglets, je souhaite utiliser des mini-bannières. Si vous regardez la page de test en direct, il y a une mini-bannière intitulée "Current Gigs" et une autre intitulée "Past Gigs". Ce seront les onglets. Voici un aperçu en gros plan de ce à quoi la zone finale de la vitrine pourrait ressembler, avec les paramètres par défaut.
Pour créer le diagramme d'états, nous devons d'abord énumérer tous les états, entrées et actions uniques possibles:
Remarque: pour l'instant, nous ne nous intéressons qu'à ce qui se passe dans le C.V. vitrine. Dans le diagramme d'état, nous ne nous soucions pas des actions qui affectent d'autres parties de la page Web. Nous ne montrons que les actions / réactions qui affectent le CV. vitrine.
Voici un exemple de diagramme d'état pour la fonctionnalité ci-dessus..
Quelques notes sur ce diagramme:
En développant le point 5 ci-dessus, la règle de base est que s'il existe plusieurs transitions répétitives à partir d'un groupe d'états apparentés, vous pouvez les annoter avec une sorte de forme abrégée. Vous voulez simplement avoir une idée des transitions importantes pour qu’elles soient au premier plan dans votre esprit. Une autre approche consiste à prendre un diagramme complexe et à le scinder en plusieurs parties: aperçu général, puis versions "éclatées" des grappes de transition..
Par exemple, le diagramme ci-dessus aurait pu avoir un diagramme d'état principal contenant les nœuds S, CG et PG. Ensuite, il y aurait deux schémas détaillés. On aurait S, CG, et les sous-états correspondants représentant divers concerts. L'autre diagramme détaillé aurait S, PG et les sous-états de gig correspondant.
Globalement, vous devriez maintenant avoir une image mentale plus claire du fonctionnement de la section vitrine. Je ne vais pas vous expliquer comment passer d'un diagramme d'état à un code réel. Cela devrait devenir évident une fois que vous aurez compris toutes les interactions de l'utilisateur. Diagrammes d'état - et votre compréhension de ceux-ci devrait vous aider à écrire un code plus cohérent, réduisant ainsi les risques d'application buggy. Votre technique de codage ne change pas.