Передовой опыт в разработке JavaScript API - PullRequest
8 голосов
/ 24 января 2011

Какой хороший подход к разработке JavaScript API?

Я относительно новичок в JavaScript и изучаю ключевые полезные функции языка, в основном из "JavaScript: Хорошие части". В настоящее время я разрабатываю веб-инструмент для обучения статистике. Часть кода становится громоздкой, отчасти потому, что я не понимаю, как разрабатывать JavaScript API.

Мой опыт работы на Java и C ++, и я привык проектировать интерфейсы, а затем реализовывать эти интерфейсы независимо. Очевидно, это не очень хорошо работает в JavaScript.

Спасибо за любую помощь и предложения.

Обновление : окончательная версия инструмента здесь: http://www.lock5stat.com/statkey/index.html

Ответы [ 3 ]

2 голосов
/ 24 января 2011

Джон Резиг подверг резкой критике API-интерфейс NodeIterator. Хотя это обзор одного конкретного API, он дает некоторое представление (по крайней мере, во что он верит) для хорошего инструмента.

2 голосов
/ 24 января 2011

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

Вы можете написать свои приложения в виде дерева плагинов. Вы можете думать о плагинах, таких как классы в C ++ / Java с агрегацией, но не наследованием.

Заметки о коде : в функции MAIN.bootstrapPlot вы используете document.createElement, вы должны использовать jQuery, как в остальной части кода, и отметить Библиотека Canto для Canvas. 1009 *

1 голос
/ 24 января 2011

Я думаю, это то же самое, что и разработка любого API независимо от языка, с учетом особенностей языка.

  1. Как вы указали, интерфейсы не имеют большого смысла в javascript, ноон ориентирован на объекты, поэтому вы можете разделить свою функциональность на «классы», использовать шаблоны проектирования и т. д.

  2. Документация.Вы можете задокументировать javascript 'class' точно так же, как вы документируете любой API.

  3. Несмотря на то, что в js нет встроенной поддержки интерфейсов или абстрактных классов, вы все равно можете применять эти принципы.Например, вы можете создать «абстрактный класс», определив объект с помощью методов, которые выдают ошибки. Таким образом, подклассы будут давать ошибки, если они не реализованы должным образом.Все, что использует интерфейс, может выполнить простую проверку, чтобы определить, имеются ли необходимые методы в init.Обратите внимание, что некоторые js люди будут недовольны этим, указывая, что js свободно набран и динамичен, и его следует использовать таким образом.

Обратите внимание, что я поместил «класс» в кавычки, потому что javascriptне имеет понятия как такового.Другая вещь, которую вы можете сделать, это взглянуть на существующие API, такие как Sencha или jQuery, чтобы получить некоторые идеи.Сенча чувствует себя как API, к которому привык бы разработчик на стороне сервера (посмотрите их документы).

...