Noder.io

Compétence
Intérêt

Le but de Noder.io est de pouvoir se créer très rapidement une lib ou un framework complet, pour le Web ou Node.js ou les 2 (comme par exemple le framework de tests unitaire Unit.js).

J'aime beaucoup la façon de gérer une collection d'items, le container IoC et la gestion des services de Pimple (PHP), la gestion des services et l'injection de dépendance d'Angular, le système de middlewares de Connect JS et Express JS.

Alors j'ai créé Noder.io qui implémente tout ceci (entre autres), de façon homogène, compatible Node.js et navigateur (seulement 7kb, 2kb avec gzip activé sur le serveur).

Exemple de création et utilisation de services :

noder.$factory('myServiceFactory', myFactory);

noder.$factory('anotherFactory', ['myServiceFactory'], function(myService) {
  myService.someMethod();

  // ...
};

ou de façon plus directe avec le scope de this qui bind le container IoC :

noder.$apply('anotherFactory', function() {
  this.myService.someMethod();

  // ...
};

Avec du commonJS (module, require, exports, ...), coté Node.js ou front (navigateur) ... I'm happy !

var plugin1 = require('./plugins/plugin1');
var plugin2 = require('./plugins/plugin2');

noder
  .use(plugin1)
  .use(plugin2)
;

En utilisant Noder.io en commonJS, avec du jQuery (ou autre lib de manipulation du DOM telle que React.js) + un EventEmitter + les promises (pour gérer l'asynchrone), ça devient puissant très rapidement.

Quelques minutes suffisent pour démarrer un projet avec une API complète (manipulation du DOM, injection de dépendance, système de plugins, container IoC pour la config etc, événement, gestion de l'asynchrone, ...).

Je n'utilise pas Noder.io systématiquement sur tous mes projets, tout dépend des besoins. Quand le besoin s'en fait sentir, c'est bon de pouvoir compter dessus, c'est toujours un plaisir pour moi d'utiliser son API simple et flexible.