Citation :Mais oui, mais ça ne semble pas propre d'avoir tous les objets mergés en un seul gros objet, peut-etre plus pratique, mais moins propre, je me gourre ou pas ?
Ou as-tu vu de l'objet ?
Il n'y a que des variables et des fonctions
Il ne faut pas que tu restes à ce stade, mais pense, par exemple que la closure renferme l'environnement jQuery, enfermer dans sa fonction, cela lui permet d'être à l'abri d'un écrasement de certaines variables et de certaines fonctions, mais aussi de pouvoir en écraser d'autres. Ajoute à cela les plugins, si l'on parle de plugin, ce n'est pas sans raison, les plugins sont des ajouts de fonctions closure qui permette ainsi d'ajouter des méthodes complète à jQuery, privée ou publique, mais cela permet aussi aux plugins de pouvoir interagir entre eux aux seins d'un objet unique. Des plugins peuvent avoir les mêmes noms de méthodes ou de variables sans être gênés puisqu'il sont privés, cela permet d'éviter beaucoup de conflits.
Il y a de nombreux avantages à cette méthode, l'Object standard aussi en a.
Le plus grand à mon sens est de permettre l'enchainement des fonctions aussi bien native que des plugins sur n'importe quel sélecteur, sans avoir à repasser les variables de l'objet principal ou à initialiser un nouvel objet.
Mais je pense sincèrement que de gros projets avec pleins de fonctions en chaines, jQurey devient rapidement plus simple à manier, ce qui n'est pas forcement visible au niveau des docs avec des exemples simples et courts n'utilisant qu'une fonction précise.
Je pense que tu devrais regarder plus comment sont écrit les scripts/plugins pour chacune des librairies pour t'en convaincre. Sur une trentaine de plugins que nous avons convertis de mootools à jquery nous avons gagné en moyenne 50% de lignes en moins.
Le nouveau code fait environ 50 lignes, ce qui fait 50% de lignes ne moins Tu verras qu'il existe une fonction public ui peut traiter plusieurs menus à la fois, mais aussi un fonction privée pour l'animation qui ne peut être appelé que par le plugin lui-même.
De plus je l'ai fait en 2h, ce n'est donc pas forcement ce qu'il y a de plus optimisé.Le comportement et les options possibles sont exactement les mêmes, j'ai récupéré la même page d'exemple en changeant simplement la librairie.
Les sources sont dispos pour comparaison et démonstration.
J'ai remarqué que les deux codes n'étaient pas tout à fait écrit de la même façon, donc j'ai récrit le code initial (Mootools) en me calquant sur ton code :
J'ai essayé de ne pas tricher en respectant le plus possible ta façon de programmer. J'obtiens ainsi un code de 58 lignes, soit 5 lignes de plus qu'avec jQuery, mais tout en ayant une notion d'objet propre ce qui permet de garder ses habitudes de la vie de tous les jours d'objet.
Mootools semble donc bien moins pire que vous le pensez, et que je le pensais.
Car pour tout te dire, en ayant vu les deux codes, je me suis dit "oui jQuery ça semble en effet plus clair, bizarre Mootools semble avoir un problème".
En analysant en détail j'ai remarqué que tout n'était pas codé pareil, j'ai recodé pareil, et cette fois avec le recul, je trouve que l'on a la même chose, l'un avec de l'objet standard, et l'autre avec des enclosures.
Je préfère l'objet standard, je garde mes habitudes, et peux tirer cette expérience pour mes autres conceptions objet en dehors de Mootools.
07-14-2008 12:59 PM
Anthor
Membre
Messages : 520
Inscription : Dec 2007
Réputation : 15
Personnellement, je préfère prendre jQuery comme un objet JSON, je trouve que c'est pus intéressant côté DOM, beaucoup moins pour les algorithmes plus "classiques".
Mootools et autres ont l'avantage de ne pas être basés sur les sélecteurs, qui ne sont qu'une partie de la librairie.
MoonTool à gauche, JQuery à droite. Et qu'en est-il de Prototype+Scriptaculous ?
Ayant testé Jquery et Prototype+Scriptaculous, j'ai une préférence pour le 2eme car c'est celui avec lequel j'ai commencé. Mais je les trouve sensiblement similaires. Quand est-il vraiment ? vaut-il ces 2 homologues ?
Si on pouvait faire de la flemme son métier, il y a longtemps que je serais professionnel .
Nessper a écrit :MoonTool à gauche, JQuery à droite. Et qu'en est-il de Prototype+Scriptaculous ?
Ayant testé Jquery et Prototype+Scriptaculous, j'ai une préférence pour le 2eme car c'est celui avec lequel j'ai commencé. Mais je les trouve sensiblement similaires. Quand est-il vraiment ? vaut-il ces 2 homologues ?
bonne question ! Etant utilisateur de scriptculous, vos avis m'intéresse aussi
07-18-2008 03:03 PM
oxman
Membre
Messages : 746
Inscription : May 2008
Réputation : 10