В настоящее время создание SDK стало обычным способом для компаний сделать свои услуги более полезными для клиентов, нуждающихся в дальнейшей настройке. SDK не только позволяют эффективно создавать новые инструменты, но и упрощают процесс для всех участников, поскольку все готово. В этой первой статье мы рассмотрим лучшие инструменты для создания вашего JavaScript SDK.

Что такое SDK?

Комплект для разработки программного обеспечения (SDK) - это набор инструментов, который предоставляет разработчику возможность создавать пользовательское приложение, которое можно добавить в другую программу или подключиться к ней. SDK позволяют программистам разрабатывать приложения для конкретной платформы.

5 принципов хорошего SDK

Перед разработкой SDK вы должны помнить о следующих принципах:

  • Хороший DX (опыт разработчика). Он должен быть простым в использовании другими разработчиками, предоставляя простые интерфейсы.

  • Хорошая документация. Разработчикам потребуется место, где можно начать или получить дополнительную информацию об определенных аспектах или функциях SDK.

  • Высокая производительность. Это должно иметь минимальное влияние на производительность приложения вашего клиента.

  • Модернизированный. Регулярно обновляйте его, используя последние спецификации JavaScript, методы и инструменты.

  • Надежно. Управляйте версиями своих пакетов и своей кодовой базой на основе обновлений SDK. Предоставляйте надежные функции, которые работают для разработчиков / пользователей, как и ожидалось.

Инструменты

Я описываю здесь лучшие инструменты, используемые SDK крупных игроков. Давайте посмотрим, как эти инструменты могут помочь нам следовать принципам создания SDK.

Лерна

Lerna - это инструмент, который оптимизирует рабочий процесс по управлению многопакетными репозиториями с помощью git и npm.

Будьте последовательны

  • normalize package.json для всех пакетов до push / pre-commit
  • увеличить все пакеты версию
  • синхронизировать зависимости между всеми модулями
  • иметь составные задачи (установка, запуск сценариев npm), чтобы упростить обслуживание
  • опубликовать пакеты в npm

Хорошая документация

  • регенерировать README для корневого readme и всех пакетов, которые используют

Лерна использует Git и NPM для создания оптимального рабочего процесса для наших пакетов SDK через Lerna CLI. Он может включать управление версиями, распространение, тестирование и многое другое. По сути, Лерна будет организовывать нашу монорепорацию соответствующим образом. В следующей статье мы увидим каждую функцию Lerna, которую собираемся использовать в нашем SDK.

Накопительный пакет

Rollup - это сборщик модулей для JavaScript, который компилирует небольшие фрагменты кода в нечто большее и более сложное, например, в библиотеку или приложение.

Высокая производительность

  • с техникой Tree Shaking он генерирует небольшие сборки с помощью удаления мертвого кода.

Модернизированный

  • использует стандартизированный формат (т. е. формат модуля ES6) для написания кода.
  • имеет узел полифиллы для импорта / экспорта

Хороший DX

  • он создает пакет для старых версий спецификации JavaScript (например, ES5) и новых версий (например, ES6)

Мы собираемся использовать Rollup для создания пакетов ES5 и ES6. В следующей статье мы увидим, как это поможет нам оптимизировать модули ES для более быстрой нативной загрузки в современных браузерах.

Кодеков

Улучшите рабочий процесс и качество проверки кода. Codecov предоставляет высокоинтегрированные инструменты для группировки, объединения, архивирования и сравнения отчетов о покрытии.

Надежный

  • он группирует отчеты о покрытии, выделяя показатели покрытия.
  • накладывайте отчеты о покрытии прямо в Github и Bitbucket для безупречной интеграции в рабочий процесс

Мы интегрируем Codecov с нашим CI для создания отчетов о покрытии кода.

Шутка

Jest - восхитительный фреймворк для тестирования JavaScript с упором на простоту. Он работает с проектами, использующими: Babel, TypeScript, Node, React, Angular, Vue и другие!

Надежный

  • Jest поставляется со встроенными сопоставителями, шпионами и собственной обширной библиотекой имитации
  • Шутка быстрая. Очень быстро. Когда ваши тесты привязаны к ЦП, это может значительно сократить время выполнения ваших тестов.
  • Jest поддерживает TypeScript через пакет ts-jest

Jest будет нашей тестовой средой для тестирования каждой части нашего SDK, включая службы, компоненты и интерфейс.

TypeDoc

TypeDoc преобразует комментарии в исходном коде TypeScript в визуализированную HTML-документацию или модель JSON. Он расширяемый и поддерживает множество конфигураций. Доступен в виде модуля командной строки или узла.

Хорошая документация

  • он полностью устраняет когнитивный диссонанс, связанный с написанием документации, поскольку создается на лету
  • призывает разработчиков, особенно новичков, предоставлять содержательные комментарии к коду, что уже следует практиковать

Эта библиотека позволит нам создать документацию SDK на основе комментариев из вашего исходного кода TypeScript.

Красивее

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

Надежный

  • не требуется никаких усилий для исправления форматирования
  • не нужно искать правила в руководстве по стилю
  • не тратьте время на обсуждение стиля в пул реквестах
  • когда руководство по стилю изменяется (или когда оно впервые появляется) Prettier может автоматически применять его ко всей кодовой базе.

Prettier позаботится о нашем формате кода. Благодаря этому мы можем гарантировать, что наш код будет соответствовать тем же стандартам и стилю кода.

TypeScript

TypeScript - это язык программирования с открытым исходным кодом, разработанный и поддерживаемый Microsoft. Это строгий синтаксический надмножество JavaScript и добавляет в язык необязательную статическую типизацию.

Хороший DX

  • вывод типа, который дает некоторые преимущества типов без их фактического использования.
  • отличная поддержка инструментов с IntelliSense

Модернизированный

  • доступ к функциям ES6 и ES7 до того, как они станут поддерживаться основными браузерами

Надежный

  • возможность компилировать до версии JavaScript, которая работает во всех браузерах

Мы собираемся написать весь наш базовый код и тестовый код, используя TypeScript. Мы увидим лучшие практики создания и предоставления наших типов SDK.

Заключение

В этой статье мы увидели современные инструменты для создания JavaScript SDK. В следующем посте мы увидим лучшие практики по созданию базы кода SDK, тестов и многого другого.