В настоящее время создание 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, тестов и многого другого.