JeuWeb - Crée ton jeu par navigateur
Sugar, étendre les objets natifs de Javascript pour un code plus clair - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Sugar, étendre les objets natifs de Javascript pour un code plus clair (/showthread.php?tid=5677)



Sugar, étendre les objets natifs de Javascript pour un code plus clair - Sephi-Chan - 06-09-2011

Je tenais à vous présenter Sugar, une librairie Javascript qui étend les objets natifs de Javascript pour les rendre plus sympa à utiliser.

Une page recense les fonctionnalités et voici l'API complète.

Voici un minuscule échantillon de fonctionnalités dont j'ai déjà eu besoin :


'Ménage à trois'.normalize() // "Menage a trois"

'just sittin on the dock of the bay'.truncate(20) // "just sittin on..."

'jumpy'.has('py') // true

(5).pad(2) // "05"

Number.random(1, 100) // 83

[ { a:1, b:2 }, { a:1, b:3 }, { a:2, b:4 } ].findAll(function(n){
return n['a'] == 1;
}); // [ { "a":1, "b": 2 },{ "a": 1, "b": 3 } ]

[ 'cuba', 'japan', 'canada' ].findAll(/^c/, 2) // [ "canada" ]

[ 1, 2, 3, 4, 5, 6, 7 ].inGroupsOf(4) // [ [ 1, 2, 3, 4 ], [ 5, 6, 7, null ] ]

Date.create('next friday') // "Friday, September 16, 2011 00:00"

Object.extended({ a: 1 }).merge({ b: 2 }) > { "a": 1, "b": 2 }

Et plein d'autres (notamment pour la manipulation de dates) !

Ça ne pèse pas grand chose (14 ko minifié) et ça allège/simplifie considérablement le reste du code. À utiliser sans modération.


RE: Sugar, étendre les objets natifs de Javascript pour un code plus intuitif - niahoo - 06-09-2011

j'aime bien underscorejs et les trucs dont je me sers le plus y sont présents, donc ça ne me servira pas trop mais c'est sympa de présenter ce genre de trousse à outils.


RE: Sugar, étendre les objets natifs de Javascript pour un code plus intuitif - Sephi-Chan - 06-09-2011

(06-09-2011, 04:04 PM)niahoo a écrit : j'aime bien underscorejs et les trucs dont je me sers le plus y sont présents, donc ça ne me servira pas trop mais c'est sympa de présenter ce genre de trousse à outils.

J'aimais beaucoup Underscore jusqu'à ce que j'utilise CoffeeScript. En effet, Underscore a une empreinte trop importante sur le code et en diminue la lisibilité.

Exemple :


// Javascript
_.map([ 1, 2, 3 ], function(n){ return n * 2; }); // Underscore (Functional style)
_([ 1, 2, 3 ]).map(function(n){ return n * 2; }); // Underscore (Object-Oriented style)
[ 1, 2, 3 ].map(function(n){ return n * 2; }); // Sugar

// CoffeeScript
_.map [1..3], (n)-> n * 2 // Underscore (Functional style)
_([1..3]).map (n)-> n * 2 // Underscore (Object-Oriented style)
[1..3].map (n)-> n * 2 // Sugar

Ici, on voit que Sugar est plus discret que Underscore : il n'y a aucun parasite.


RE: Sugar, étendre les objets natifs de Javascript pour un code plus clair - niahoo - 06-09-2011

C'est exact, mais comme je le disais il faut voir si Sugar propose toutes les features intéressantes dont je me sers, et ensuite je pourrais bien switcher.

Par contre c'est le genre de trucs dont tu ne peux plus te passer rapidement Smile

(Pour mon jeu j'étais en train d'étudier backbonejs et knockout et si je prends backbone _.js sera pris aussi. Sauf si tu connais un truc plus simple pour mapper un ou plusieurs objets de quelques types (perso/ennemi/inventaire) à de l'affichage et de la récup des objets en JSON par comet)


RE: Sugar, étendre les objets natifs de Javascript pour un code plus clair - Viciousity - 07-09-2011

Tu as Batman.js qui est aussi très bien dans le style de backbone ou knouckout Smile


RE: Sugar, étendre les objets natifs de Javascript pour un code plus clair - niahoo - 07-09-2011

C'est intéressant mais j'accroche vraiment pas avec batman. Je trouve leur exemple du hello world confus et qu'il y a trop de data-machin="chose" dans le HTML.

C'est bien sur mon avis et mes goûts.


RE: Sugar, étendre les objets natifs de Javascript pour un code plus clair - Viciousity - 07-09-2011

Ben disons que j'ai bosser avec Backbone sur un projet et j'avais vraiment galérer méchamment pour le prendre en main.
Maintenant j'avoue qu'il est clair que Batman peut sembler barbare au premier abord (et leur doc est pas top, mais bon, c'est un petit nouveau, laissons leur du temps ;P). Une fois que tu as compris comment il marche, c'est un plaisir, je ferai un tuto dans la soirée pour expliquer tout cela Smile


RE: Sugar, étendre les objets natifs de Javascript pour un code plus clair - niahoo - 07-09-2011

ok cool sympa.