IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Idées d'améliorations sur un mini-projet JS


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 224
    Par défaut Idées d'améliorations sur un mini-projet JS
    Bonjour,

    J'ai commencé à écrire un petit projet (sous licence MIT) pour ajouter quelques fonction qui me semblaient absentes et utiles pour le JS.
    J'essaie de voir si quelque chose m'échappe ou pourrait être mieux fait.

    Le projet est ici : https://github.com/Zefling/BakuJS

    Cordialement.

    Note : je n'ai pas pris le temps de traduire en anglais les commentaires...

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Hello,

    Ça me fait penser à un autre projet similaire, SugarJS, qui venait ajouter des méthodes aux protos des objets natifs. Pour beaucoup de devs JS, étendre le proto d'objets qui ne nous appartiennent pas est une mauvaise pratique et présente trop de risques (pas future-friendly). C'est une erreur historique faite par Prototype.js, une des libs JS les plus populaires avant l'ère jQuery. La position de SugarJS est aujourd'hui de modifier uniquement certains objets, et d'en préserver d'autres (comme Object.prototype ou HTMLElement.prototype). Ils ont fait une page explicative très exhaustive là-dessus: http://sugarjs.com/native

    Je ne sais pas si tu avais déjà connaissance de tous les problèmes liés à l'extension d'objets built-in, et si tu as une opinion sur le sujet. Pour ma part, même si je trouve l'extension de proto très séduisante et pratique, je pense qu'il est plus sûr de passer par des wrappers comme le font jQuery et underscore.

    PS: attention avec navigator.language en nom de propriété, actuellement il y a des exceptions JS si la langue n'est pas gérée

  3. #3
    Membre éprouvé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 224
    Par défaut
    Je ne connaissais pas Sugar. À l'origine, j'avais fait ce projet pour pour les formateurs (nombre, date, string). J'ai juste poussé la partie DOM hier soir. Je vais prendre cela en compte.

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Le débat venait du fait que ces objets sont définis dans une spec du WHATWG, et non dans la spec ECMAScript officielle. Mais comme le WHATWG rassemble quasiment tous les éditeurs, je ne pense pas que cela cause trop de problèmes. Peut-être que certains navigateurs peu connus ne suivent pas ces specs, car rien ne les y oblige si on s'en tient au W3C.. mais bon, c'est sûrement des cas minoritaires

    Par contre, le risque de collisions futures ou d'assomptions est toujours présent. Cela implique de maintenir une vigilance constante sur le projet au cas où de nouvelles méthode viendraient à être standardisées et rentrer en conflit avec les tiennes. Cela signifie aussi que si les utilisateurs s'amusent à stocker des propriétés persos au sein de host objects comme les éléments HTML (ce qui est là aussi une mauvaise pratique, mais bcp de libs et d'utilisateurs le font, et ça m'arrive aussi ), ils risquent d'avoir des conflits.

    C'est le compromis confort/risque qui est délicat à trouver. Si l'opérateur bind de ES7 vient à être standardisé, on pourra obtenir ce même confort d'écriture sans devoir étendre les prototypes : https://github.com/zenparsing/es-function-bind

  5. #5
    Membre éprouvé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 224
    Par défaut
    D'après ce que j'ai lu, c'est que sous IE 6 & 7, ça causait des problèmes de mémoire et que sur IE 8 c'était mal foutu. D'où les problèmes pour Prototype.js. Sauf que ça c’était il y a 5 ans et que les supports de IE 8 est mort (même le 9 et quasiment le 10 sauf pour Vista).
    Depuis, ça s'est standardisé, il ne reste que les problèmes de collisions... on ne peut pas dire que ça soit le pire. D'ailleurs, j'ai vu des articles où ils dissent que ça n'est plus vraiment un problème.

    Bon, je vais continuer à explorer cette approche et regarde du côté des collisions, je n'ai pas pour but de faire un truc pour pour les navigateurs du moyen-âge. (sinon j'aurais commencé par String.trim() pas supporté par IE8).

    D'ailleurs, j'ai trouvé ça : http://lea.verou.me/2015/04/idea-ext...ut-collisions/

  6. #6
    Membre éprouvé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 224
    Par défaut
    J'ai fait pas mal de modifications et d'ajouts, dont l'inclusion récursive (c'est pour me rapprocher de ce qui est permis en jstl avec fmt:message).

Discussions similaires

  1. idée d'un mini projet en Java
    Par bourbita_thameur dans le forum Général Java
    Réponses: 9
    Dernier message: 08/04/2009, 20h42
  2. aide sur un mini projet
    Par thedon dans le forum C++
    Réponses: 0
    Dernier message: 03/01/2009, 01h42
  3. demande propositions mini-projet sur les réseau
    Par imadin dans le forum Général Java
    Réponses: 3
    Dernier message: 27/02/2008, 07h56
  4. [Projet] Idée de mini-projet?
    Par Arnaud F. dans le forum Général Java
    Réponses: 15
    Dernier message: 24/05/2006, 06h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo