Projet

Général

Profil

Amélioration #6892

[Controller] Uniformiser les API get* et set*

Ajouté par Charles Bonnissent il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
Version cible:
Début:
22/11/2016
Echéance:
% réalisé:

100%

Version source:
Solution proposée:

Après consultation, voila le résultat des cogitations :

on prend la right wing avec en plus l'ajout de deux méthodes hasAttribute, hasMenu qui retourne un booléen

Principaux fichiers impactés:
Wiki Détail:
Contrôle:
Thèmes UIs:
Contrôleur
Jalons: 3.2 R17, 3.2 R18

Description

Actuellement, l'API de controller de DDUI possède plusieurs méthodes get/set et ces méthodes ont été réalisées par deux personnes différentes sous deux paradigmes différents :

  • méthode bureaucratique dictatoriale : getAttribute, getValue, setValue => si jamais l'attribut référencé par ces méthodes n'existe pas une exception est lancée,
  • méthode babacool relaxe (comme jQuery) : getMenu => si jamais le menu demandé n'existe pas alors un objet Menu désactivé (il possède toutes les options du menu mais n'a aucun effet) est renvoyé (la doc explique comme trier le bon grain de l’ivraie)

=> L'idée est d'uniformiser le fonctionnement : plusieurs voies s'offrent à nous :

  • alt-right : on passe tout en strict, si ça n'existe pas ça throw une exception au dev de gérer et de mettre des try catch s'il est pas sûr (=> c'est le cas de ce qui manipule des attributs actuellement)
  • right wing : on retourne des undefined sur les get si ça n'existe pas et des exceptions sur les set, => pas trop de différence avec les try catch car en JS l'appel d'une fonction sur un undefined plante,
  • center : on retourne des objets sur les get (désactivé si n'existe pas, actif sinon), on throw des exceptions sur les set,
  • left wing : on retourne des objets sur les get (désactivé si n'existe pas, actif sinon), on fait rien sur les set (=> c'est le cas des menus actuellement)

Historique

#1 Mis à jour par Charles Bonnissent il y a plus de 2 ans

  • Statut changé de Nouveau à À analyser
  • Solution proposée mis à jour (diff)
  • Version cible mis à 1.1.0
  • Assigné à mis à Charles Bonnissent

#2 Mis à jour par Charles Bonnissent il y a plus de 2 ans

  • Statut changé de À analyser à Assigné

#4 Mis à jour par Éric Brison il y a plus de 2 ans

  • % réalisé changé de 0 à 100
  • Statut changé de Assigné à Intégré

Appliqué par commit commit:dynacase-document-uis|4e540f0564200ea0612be8a323139e5f6c1ecea2.

Formats disponibles : Atom PDF