[Подборка] Melchior.js, ng-admin, Hello.js, ineed

http://dailyjs.com/2014/09/15/melchiorjs-ng-admin
  • Перевод

Melchior.js


Melchior.js (GitHub: voronianski/melchior.js, Лицензия: MIT, npm: melchiorjs) от Dmitri Voronianski представляет собой реализацию цепочного определения модулей(CMD), концепцию, введенную John Wu.
Идея, кроющаяся за цепочными определениями модулей разрешает некоторые неприятные моменты AMD, такие как объемные объявления зависимостей, а так же обеспечивает простоту и читабельность с использованием визуально-дружелюбного и ясного синтаксиса.

Так же как CommonJS больше подходит для вне-браузерной среды, цепочные определения модулей с их требованиями, идеально вписываются во внутри-браузерные сценарии использования.


Вот пример использования данного программного интерфейса (API):

// create module
melchiorjs.module('yourModule')
	// define dependencies
	.require('dependencyUno')
	.require('dependencyDuo', 'duo')
	// define module body
	.body(function () {
		// `dependencyUno` is available here!
		dependencyUno.doSomething();

		// aliased `dependencyDuo` is available as `duo`!
		duo.doSomething();

		// return methods for other modules
		return {
			method: function () {
				//...
			},
			anotherMethod: function () {
				//...
			}
		};
});


Пояснительный(readme) файл содержит больше примеров среди которых имеется один для AngularJS. Данный программный интерфейс(API) выглядит более идиоматическим по сравнению с большинством модульных загрузчиков. Будет интересно посмотреть если данный продукт станет популярным.

ng-admin


François Zaninotto выложил информацию о ng-admin (GitHub: marmelab/ng-admin, Лицензия: MIT), это крутой проект который добавляет интерфейс администрирования к вашим RESTful CRUD — программным интерфейсам взаимодействия(APIs).

Вы сможете найти демонстрацию проекта на Amazon и документацию, которая показывает как настроить ng-admin для использования с сущностями вашего приложения. Данное решение способно справится с преобразованием(mapping) полей и со связями между сущностями. Связи могут быть 1-N, N-1, и N-M(many to many).

По мнению François, ng-admin полезен потому-что если вы создаете многочисленные проекты с различными бэкэндами (MongoDB, MySQL, Node, Python) вы все еще можете добавить «платформенно-агностический» интерфейс администрирования.

Этот-же автор реализовал gremlins.js.

Hello.js


Andrew Dodson выложил информацию о hello.js (GitHub: MrSwitch/hello.js, Лицензия: MIT, npm: hellojs), Клиентский комплект средств разработки(SDK) для аутентификации с OAuth2 (и OAuth1 через прокси oauth) веб-сервисами и выполнения запросов к их REST API. Данная библиотека представляет из себя, унифицированный интерфейс взаимодействия, нормализующий пути и ответы для сервисов Google Data, Facebook Graph и Windows Live Connect.

Одно из преимуществ hello.js заключается в его модульности. Здесь вы сможете найти модули для Dropbox, LinkedIn, SoundCloud, и Yahoo.

Программный интерфейс(API) модуля позволит вам определять такие вещи как функции jsonp, так что это должно быть достаточно гибко для того что-бы покрыть большинство современных сервисов.

Речь о HelloJS уже заходила на Hacker News, с обсуждением аспектов безопасности, и одобрениями от пользователей:

HelloJS хорош. Я использовал его в моем последнем проекте. Он всего-навсего работает. Он хорошо протестирован и документирован. Настройка не выглядит запутанной. Это просто сработало как по маслу, когда я пытался настроить учетные записи OAuth для Twitter, Google, LinkedIn и Facebook .

ineed


Ivan Nikulin написал о parse5, говоря что он имеет новый HTML-парсер в SAX-стиле на котором соответственно и зиждется проект ineed:

ineed позволяет вам собирать полезные данные с веб страниц, используя простой и приятный программный интерфейс. Давайте соберем изображения, ссылки, скрипты и стили со страницы www.google.com:

var ineed = require('ineed');

ineed.collect.images.hyperlinks.scripts.stylesheets.from('http://www.google.com',
  function (err, response, result) {
    console.log(result);
  });



Внутренне ineed использует потоки HTML символов(токенов), так что он не тратит время на построение и обход дерева DOM. Это выглядит идеальным решением для обработки множества различных, неудобных, выборочных задач.

Пометки


Здесь представлен перевод двух статей Alex Young. Во первая статья, и вот вторая. Спасибо за внимание.
Поделиться публикацией

Похожие публикации

Комментарии 5

    0
    Так же как CommonJS больше подходит для вне-браузерной среды, цепочные определения модулей с их требованиями, идеально вписываются во внутри-браузерные сценарии использования.
    Не согласен. CommonJS подходит для браузера, но для вебного. AMD же идеально подходит для мобильного WebView браузера, где накладные расходы на количество файлов (обращений к диску) не так велики, как выигрыш от ленивости. В вебе же — наоборот. Если AMD используется в вебе, то всё равно нужно сконкатенировать все определения и добавить в них имена, а затем использовать минимальный загрузчик, типо almond. Это уже нельзя назвать «идеалом».
      0
      Функция require() в commonJS, в браузере, не может заблокировать выполнение до загрузки нужного модуля, если он еще не загружен. В результате с CommonJS может быть важен порядок загрузки модулей. Что несколько усложняет жизнь.

      Все остальное, включая то как склеивать модули — задача инструментов. По возможностям в этом плане AMD точно не хуже CommonJS.
        0
        Я не говорю об использовании функции require напрямую. На клиенте CommonJS требует сборки. Но так как AMD тоже, вообще говоря, лучше собрать, чтобы уменьшить количество файлов, мы получаем одинаковые условия. При этом, CommonJS: менее громозкая структура файла, множество пакетов npm, возможность разделять код с сервером.
          0
          Есть случаи когда сборка в один большой кусок — не лучший вариант:
          — во время разработки удобнее цеплять все файлы отдельно
          — в больших проектах имеет смысл клеить скрипты в несколько больших кусков, и подгружать их по мере необходимости. С AMD такое делается проще
            +1
            Что касается нескольких файлов, то тут я согласен. И чем больше файлов, тем сильнее преимущество AMD. Лучший кейс для AMD это WebView мобильного девайса.
            Что касается разработки, то browserify умеет делить кусок на бандлы. А ещё есть кеширующие сборщики.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое