Developpez.com - Rubrique JavaScript

Le Club des Développeurs et IT Pro

Object Model 1.0 : première révision stable

Pour la bibliothèque JavaScript à typage dynamique fort

Le 2015-06-14 20:25:30, par SylvainPV, Rédacteur/Modérateur
Object Model 1.0 : première révision stable
Pour la bibliothèque JavaScript à typage dynamique fort


Object Model est chargée d'apporter un typage dynamique fort en JavaScript. JavaScript est déjà un langage typé à typage dynamique, mais ce typage est très libertaire et ne fournit pas du point de vue du développeur les avantages présupposés du typage dans un langage de programmation. De ce fait, on ne peut pas considérer que JavaScript ait un typage fort, même si cela peut encore faire débat. Ce qui fait que des erreurs de types sont encore source de nombreux bugs dans les applications JavaScript.

La version 1.0, première révision stable de la bibliothèque JavaScript, vient d'être publiée.

Pour s'assurer de sa stabilité, plus d'une centaine de tests ont été effectués sur tous les principaux navigateurs : Chrome, Firefox, Internet Explorer 9/10/11, Opera 20, Safari 5.1 et même la version preview de Microsoft Edge alias Project Spartan. Vous pouvez donc l'utiliser en toute sérénité, et profiter du typage fort pour gagner en confiance sur vos futurs projets JavaScript.

Cette version introduit également les méthodes validate et test pour vous permettre d'interagir de manière plus fine avec le mécanisme de validation. De plus, les conventions de nommage utilisées pour les variables privées et les constantes sont désormais optionnelles et personnalisables (bien que par respect des conventions, je vous recommande de garder celles par défaut).

La nouvelle documentation et le lien de téléchargement sont disponibles sur le site officiel : http://objectmodel.js.org/
  Discussion forum
8 commentaires
  • SylvainPV
    Rédacteur/Modérateur
    Les commentaires précédents ont été déplacés vers cette nouvelle discussion : http://www.developpez.net/forums/d15...ol-javascript/

    Merci de parler de ObjectModel sur le topic de ObjectModel

    @Kimojasan: le postulat de départ pour utiliser cette librairie est que l'on juge les solutions de typage statique insuffisantes. Comme expliqué en introduction du site de la bibliothèque, je me suis aperçu que les erreurs de type les plus courantes dans nos projets venaient de sources non prédictibles, en particulier les Web services. Statiquement, nos EDI JavaScript nous indiquent déjà quelques erreurs de typage statique, surtout lorsqu'on accompagne le code d'une JSDoc. Bien sûr, si tu n'as pas fait le même constat et si tu estimes ne pas avoir besoin de typage dynamique, cette bibliothèque n'est pas pour toi.

    Concernant le fait de pouvoir désactiver les proxies de validation, j'y avais pensé mais la phase de validation peut influer la logique du code, ainsi que d'autres fonctionnalités spécifiques comme le parcours null-safe ou les assertions. Je ne peux pas garantir que les gens ont un usage totalement transparent de la bibliothèque, mais si c'est le cas, ils peuvent assez facilement remplacer en environnement de production le namespace Model et les modèles associés par un mock-up ne faisant aucune validation.
  • Beginner.
    Membre expert
    Salut,

    Étant débutant je ne peux tester ni donner un avis mais on sent qu'il y a dû y avoir un gros boulot d’achevé...

    PS : C'est hors sujet mais je trouve que le site est top.
  • Kimojasan
    Membre à l'essai
    Pour ce qui est de ObjectModel, je suis un peu sceptique. Je ne vois pas l'avantage de cette librairie face à typescript par exemple. La résolution des types à la compilation permet de couvrir les principales erreurs de typages. Mettre une couche supplémentaire aux js pour checker les types risque de faire beaucoup baiser les performances. De plus, nous n'auront pas les avantages qu’apporte un préprocesseur comme typescript en terme d'intellisense.
    Ceux-ci dit, cela peux apporter un plus pour certains développement, surtout au niveau des testes...Est ce que c’est possible de désactiver les proxy qui valident les données, une fois les testes effectués ?
  • Gnuum
    Membre expérimenté
    Intéressant! Et de 70!
  • Gugelhupf
    Modérateur
    Bonjour, Object:Model ressemble beaucoup au proposal StructType d'ES7. Je n'ai pas testé mais on dirait que les erreurs sont découverts au runtime et non au compile-time. Quels sont les avantages de ce framework par rapport à TypeScript ?
  • SylvainPV
    Rédacteur/Modérateur
    Salut,

    Effectivement, la grosse différence est qu'Object Model fait du typage dynamique, tandis que TypeScript valide à la compilation. J'ai expliqué la différence et l'intérêt qu'on y trouve dans le post initial de présentation d'Object Model sur ce topic.

    Pour les StructType ES7, c'est une proposition assez ancienne dont le statut n'a pas beaucoup évolué depuis, donc j'ignore où ça en est. Je note toutefois comme principales différences avec Object Model:
    - pas de typage imbriqué (définition de modèles objet sur plusieurs niveaux)
    - pas de détection de changement ni de validation dynamique (a priori)
    - pas d'assertions
    - pas de composition possible (sauf si StructType hérite de Type, mais ce n'est pas indiqué dans la spec)