что такое msi sdk

990x.top

Простой компьютерный блог для души)

Waiting for SDK initialization MSI — что это такое? (бесконечная инициализация)

Ошибка фирменного софта MSI, связанная с неработоспособностью некоторых служб.

Данное сообщение может появляться при запуске фирменного софта компании MSI, например — Dragon Center, пример ошибки:

Текст ошибки зависит от языка приложения.

Данная надпись может висеть вечно. Повторная переустановка программы, чистка реестра, использование утилиты CCleaner — не даст желаемого результата.

Ошибка Waiting for SDK initialization (бесконечная инициализация) вызвана остановкой сервиса MSI Central Service. При попытке вручную найти данную службу (запустить список можно зажав Win + R > команда services.msc) — пишет отсутствует файл. На форуме MSI было найдено следующее решение:

PS: узнать название сервиса для удаления можно в свойствах (Win + R > services.msc), смотрите поле Имя службы.

После удаления сервисов — первым делом повторно установите пакет MSI SDK (предварительно выполнив деинсталляцию), после выполните перезагрузку персонального компьютера, убедитесь в корректной работе служб. Далее — устанавливайте фирменный софт MSI (например Dragon Center).

PS: удалять пакет SDK можно используя специальные удаляторы Revo Uninstaller или Uninstall Tool. Однако сперва необходимо создать точку восстановления, а лучше образ системы.

Некоторым работоспособность ПО Dragon Center вернул сброс настроек BIOS (обычно отвечает настройка Load Setup Default).

Один пользователь предложил способ исправить: сперва деинсталлировал MSI Dragon Center, после — удалил MSI SDK, далее перезагрузка компьютера. Затем — установка Dragon Center, как результат — приложение стало корректно функционировать. Также пользователи пишут — достаточно удалить SDK > запустить Dragon Center > далее следовать подсказкам на экране.

Найден комментарий в социальной сети:

Данная информация может оказаться полезной.

Источник

Что такое msi sdk

Геймеры любят, чтобы все было под контролем. В игре, на поле боя и при работе за своим компьютером. Для того чтобы дать геймерам тот самый контроль над аппаратной частью, о котором они так мечтают, MSI разработала специальное программное обеспечение MSI Gaming Center. Эта небольшая программа позволит вам легко настраивать и управлять вашим геймерским оборудованием. В этом блоге мы объясним, как работать с различными опциями программы MSI Gaming Center, а также попытаемся раскрыть все ее тонкости настроек. Приступим!

Совместимость MSI Gaming Center

Вы можете использовать MSI Gaming Center практически на любых ПК. Если у вас настольный ПК MSI или моноблок All-in-One PC, данное ПО является стандартной опцией для таких машин и идет в комплекте. Если у вас еще нет его, вы можете скачать программу MSI Gaming Center ЗДЕСЬ.

EZ-SWAP

Одна из главных функций Gaming Center, это EZ-SWAP. В двух словах EZ-SWAP позволяет сделать два профиля и легко переключаться между рабочим и геймерскими режимами. Вы можете настроить оба профиля по своему вкусу так, чтобы не настраивать большое количество параметров в следующий раз, а просто выполнить переключение при помощи одного клика. Давайте посмотрим поближе.

По умолчанию EZ-SWAP выключен, как показано ниже:

При его включении вы можете настроить свой профиль здесь(1). Как было сказано выше, вы можете настраивать рабочий и геймерский профили.

В каждом профиле вы можете настроить 5 опций. Первая опция это: Производительность.
В этом режиме вы можете выбрать соответствующий профиль производительности для своей системы. Вам доступно 3 пресета: OC, Gaming и Silent.
OC устанавливает оверклокерские настройки для вашей системы
Gaming устанавливает профиль для получения игровой производительности
Silent делает вашу систему максимально тихой

При выборе соответствующего профиля появляется всплывающее окно соответствующего приложения. Приложение MSI Gaming App. В этом приложении вы можете еще больше разогнать графический процессор. Дополнительную информацию об MSI Gaming App смотрите ЗДЕСЬ.

Вторая настройка вашего профиля: ScenaMax
Данная настройка позволяет выбрать параметры дисплея. Здесь есть 5 предустановленных опций на выбор. В описании третьей функции мы подробно остановимся на данной настройке, но если вам интересно это прямо сейчас, крутите вниз.

Четвертая опция: Theme
Данная настройка позволяет выбрать тему Windows. Например, при выборе ‘Working Mode’ вы можете использовать синюю тему Windows по умолчанию. Но если вы собираетесь играть, с помощью одного клика, вы можете поменять тему Windows на более подходящую к игре.

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

EXTRA:
При включении EZ-SWAP на экране появятся 2 новые большие кнопки. При помощи этих кнопок вы можете легко переключаться между настроенными профилями. Вы можете разместить эти кнопки в любой части экрана. Вам не нужно запускать Gaming Center,если вы хотите быстро переключаться между профилями.

Utility

Приложение MSI Gaming App также может быть использовано для настройки вашей видеокарты MSI GAMING. Дополнительную информацию можно найти ЗДЕСЬ.

ScenaMax

Благодаря ScenaMax, вы можете управлять настройками дисплея. Существует три режима настроек, один из которых является полностью ручным.

РЕЖИМ GAMING: Данный эффект настроит ваш экран для оптимального использования в играх. Немного повышенная яркость позволит вам лучше разглядеть врагов на поле боя.

РЕЖИМ CINEMA: Данный эффект настроит ваш экран для оптимального использования при просмотре фильмов. Немного увеличенная яркость и насыщенность позволит насладиться просмотром фильмов.

РЕЖИМ EYE CARE: Ваш дисплей будет излучать меньше синего света, что более благотворно скажется на глазах при продолжительной работе.

PERSONAL SETTINGS (персональные настройки): В данном режиме вы можете задать любые параметры настроек вашего дисплея. Настраивайте цветность, яркость и контраст по вашему усмотрению.

Device Setting (параметры устройств)

Device Setting позволяет настраивать различные параметры ПК. Вы можете управлять чувствительностью микрофона (или полностью выключать его), настраивать уровень громкости (или полностью выключать звук), включать и выключать WiFi, а также активировать специальную функцию MSI Super Charger для зарядки вашего телефона с невероятной скоростью.

System Monitor (системный монитор)

Последняя функция Gaming Center это System Monitor. Имя говорит само за себя. Данная функция выполняет мониторинг производительности системы. Вы можете следить за следующими параметрами:
— Disk load (загрузка диска)
— Memory load (загрузка памяти)
— CPU load (загрузка процессора)
— GPU load (загрузка графического процессора)
— Скорость передачи данных через интерфейсы Ethernet и WiFi

Вы хотите полностью управлять своим игровым компьютером при помощи всего одной программы? Обязательно попробуйте MSI Gaming Center!

Источник

Как пользоваться MSI Dragon Center

Приложение MSI Dragon Center позволяет отслеживать и при необходимости оптимизировать производительность Вашей системы. Буквально в несколько нажатий можно изменить пользовательский сценарий, цветовой режим дисплея, звуковой эффект, настроить подсветку и многое другое.

Эта статья расскажет, как пользоваться MSI Dragon Center. Сразу же после запуска происходит ожидание инициализации SDK. Теперь можно переходить к использованию ПО. Настройка занимает буквально несколько минут Вашего времени. Мониторинг и подсветку настраиваем в первую очередь.

Читайте также:  что делать если прошел гта сан андреас

Настройка MS Dragon Center

Важно! Некоторые функции могут отличаться в зависимости от используемого продукта. С каждой новой версией приложения функциональность дорабатывается и появляются новые возможности. Хотя основные функции остаются прежними.

Приложение MSI Dragon Center можно установить с диска (например, к материнской плате), официального сайта производителя или же Microsoft Store. После его установки нужно будет зарегистрировать свой продукт любым из доступных способов.

Домой

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

User Scenario — позволяет выбрать предустановленный сценарий производительности или настроить свой.

Экстремальная производительность Конфигурация, обеспечивающая максимальную производительность в играх ААА—класса, так же включающая разгон.
Сбалансированный Использует удобные стандартные настройки, рекомендованные MSI.
Бесшумный Ограничивает скорость вращения вентиляторов, для обеспечения максимальной тишины.
Пользовательский режим Позволяет самостоятельно настроить уровень производительности под Ваши нужды.

Monitor — содержит все доступные данные мониторинга. Отображает частоту и загрузку процессора, температуру комплектующих (центрального процессора и материнской платы), их напряжение и скорости вращения всех подключённых вентиляторов. Для подробного их просмотра нужно включить Hardware Monitor.

True Color — позволяет настроить цветовой режим монитора. Доступны предустановленные профили: комфортный, геймерский, кинотеатра, по умолчанию или пользовательский, который можно самостоятельно настраивать. Ранее подробно рассматривалась настройка цветов монитора в Windows 10.

Mystic Light — очень полезный раздел для включения и отключения подсветки комплектующих. Все поддерживаемые устройства с подсветкой будут здесь отображаться. Можно настроить как отдельный цветовой стиль для разных комплектующих, так и синхронизировать их подсветку.

Моё устройство

Теперь нужно зарегистрировать своё устройство. Это даст Вам несколько преимуществ в процессе использования. В разделе Моё устройство можно зарегистрировать его в автоматическом режиме. Программа сама обнаружит, например, Вашу материнскую плату, от Вас требуется только согласие на добавление.

К преимуществам относят получение регистрация гарантии устройств, новостей об акциях и мероприятиях, обслуживания и поддержки устройств и возможность просмотра зарегистрированных устройств MSI. Дополнительно после регистрации продукта можно будет использовать автоматическое обновление ПО.

Поддержка

Позволяет сканировать установленное ПО и при необходимости установить его обновление. Всё происходит в автоматическом режиме. Вам достаточно только подтвердить обновление.

Перезагрузка системы обязательна для завершения обновления BIOS, драйверов или Софта. Не выключайте систему во время процесса установки. Если уже он начался, дождитесь завершения.

На первый взгляд, программа MSI Dragon Center непроста в освоении. Хотя после нескольких дней использования привыкаешь к обновлению. Ранее использовал софт ASRock. Надеюсь на быстрое обновление и доработку как минимум пользовательского интерфейса MSI Dragon Center.

Если же у Вас поддерживается, можете попробовать установить Creator Center. Возможности те самые, интерфейс немного приятней. Для меня же самое важное это управление подсветкой комплектующих и быстрый просмотр температур компонентов системы. Это есть и работает в нормальном режиме.

Источник

Как пользоваться MSI Center

Наверное MSI Dragon Center больше не нужен.

Итак, MSI Center — это новая платформа с модульной концепцией, которая сочетает все эксклюзивные функции MSI. Собственный центр управления, страница наборов функций и раздел поддержки. На практике имеем доработанный MSI Dragon Center уже в новом амплуа.

Эта статья расскажет, как пользоваться MSI Center. Ранее разбирали приложения Dragon & Creator Center и Command Center. Собственно, новый MSI Центр должен объединить все разработки компании. Плюс пользователь сможет выбрать только необходимые компоненты.

Как настроить MSI Center

Время от времени мониторю раздел программного обеспечения материнской платы. На днях появилось приложение MSI Center (конечно же, с радостью его установил). Могу с уверенностью сказать: был приятно удивлён общей концепцией. Его можно загрузить прямо с Microsoft Store.

Что это за программа? Собственно, новый MSI Center сохраняет все функции модульными и настраиваемыми. Пользователь может установить только необходимые компоненты и избежать ненужной нагрузки. Сама компания MSI заверяет: Центр MSI стал умнее, быстрее, персональнее.

Мониторинг

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

Здесь можно мгновенно освободить оперативную память. Нажатием Стрелки возле Освободить и тут же напишет сколько получилось. Как минимум наличие такой возможности уже должно радовать. Что это даёт на практике? Вкратце: было ДО доступно 5,1 Гб, уже ПОСЛЕ стало 7,3 Гб.

Функции

На этой странице Вы можете скачать, обновить или удалить эксклюзивные функции MSI. Не стесняйтесь создавать свой собственный MSI Center. Все функции имеют подробное описание, плюс большинство разбиралось ранее. Некоторые просто перенесены с MSI Dragon Center…

Gaming Mode
[Игровой режим]
Оптимизация всех Ваших игр буквально в один клик. Больше не нужно будет постоянно настраивать каждую игру.
Smart Priority
[Интеллектуальный приоритет]
Режим на основе искусственного интеллекта максимально упрощает оптимизацию. Подойдёт для широкого спектра сценариев.
User Scenario
[Пользовательский сценарий]
Предустановленные сценарии в соответствии с Вашими повседневными операциями. Плюс, регулировка производительности.
Mystic Light
[Мистический свет]
Управление эффектами подсветки на Ваших MSI RGB устройствах или совместимых. Например, память или наушники.
True Color
[Истинный цвет]
Технология предоставляет различные режимы, которые наилучшим образом подходят под различные сценарии использования.
MSI Companion
[Компаньон MSI]
Эксклюзивный экранный интерфейс для быстрого мониторинга состояния и настроек даже в игре (с помощью игрового режима).
Smart Image Finder
[Интеллектуальный поиск изображений]
Категоризируйте память для удобного просмотра своих драгоценных моментов с помощью смарт-тегов, созданных ИИ.
System Diagnosis
[Диагностика системы]
Помогает отслеживать и анализировать состояние SSD-накопителей и батареи ноутбука с помощью обучения ИИ.
Game Highlights
[Игровые моменты]
Снимайте и записывайте свои лучшие моменты. Интерфейс и функциональность могут отличаться в зависимости от региона.
Noise Cancellation
[Шумоподавление]
Устраняет нежелательные внешние шумы и подавляет фоновую среду. Только для серии MSI GS&GE, Summit, Prestige или Creator.

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

Поддержка

Подраздел Live Update позволяет обновить драйвера и программное обеспечение. Плюс показываются приложения, которые совместимы с Вашей платой. Например, к звуку ставят Realtek Audio Control и Nahimic. Кнопка Расширенные настройки проверяет обновление БИОСа.

Второй подраздел System Info покажет, какие версии драйверов и БИОСа используются. Это удобно, поскольку можно сравнить версию, даже с доступными драйверами на официальном сайте MSI. Много раз была ситуация, когда непонятно, какой драйвер чипсета установлен…

Читайте также:  что значит продуло на сквозняке

Вернёмся в прошлое, а именно, до процесса использования MSI Dragon Center. Помню, в конце обзора писал: надеюсь, на быстрое обновление и доработку как минимум пользовательского интерфейса. Спасибо компании MSI, что каким-то волшебным образом они меня услышали.

Теперь MSI Center занимает лидирующую позицию среди программ для материнских плат MSI. Сюда включены все новейшие функции, такие как Smart Image Finder, MSI Companion и другие. О многих функциях можно писать отдельно, если Вам это интересно, тогда будем расширяться.

Источник

SDK тебе, SDK мне, SDK всем! Как делать SDK и зачем это нужно

Наша компания делает сервис для хранения и обработки данных с промышленных устройств (насосы, буры и прочая промышленная техника). Мы храним данные наших клиентов и предоставляем функционал для их анализа: построение отчетов, графиков и еще много чего.

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

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

Пора определяться

Начнем с того, что определим, что такое SDK и зачем он может быть нужен.

SDK (от англ. software development kit) — комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ. SDK использует преимущества каждой платформы и сокращает время на интеграцию.

Инженер-программист обычно получает SDK от разработчика целевой системы.

Что ж, логично. Простыми словами, SDK — это пакет библиотек, для того, чтобы клиент мог легко и быстро начать работать с вашей системой (в данной статье речь пойдет про наш сервис, но всё изложенное в статье применимо и к другим видам SDK) или выполнять однотипные действия.

Но, как и у любого подхода, у «Пути SDK» есть как преимущества, так и недостатки.

Преимущества

Высокая скорость интеграции нового клиента — вашим клиентам нужно писать меньше кода.

Переиспользование кода — один и тот же код используется сразу в нескольких местах. Можно сказать, что это дублирование предыдущего пункта, но речь идет о том, что логика работы везде одинокава, из чего следует

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

Качество кода — много где любят экономить на тестировании (жалко бюджета, горят сроки и прочие причины). Понятно, что в реальном мире покрыть тестами все участки проекта это учень трудоемкая задача. Но качественно протестировать все модули SDK, а затем использовать их — это путь повышения процента покрытия тестами, что приведет вас к снижению количества ошибок.

Документация — тот же сценарий, что и с тестами. Покрыть документацией весь проект достаточно проблематично. Переиспользование модулей SDK повышает процент покрытия документацией, что снижает порог вхождения новых сотрудников в проект и вообще помогает по жизни.

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

Недостатки

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

Установка ограничений — SDK — это набор библиотек для реализации стандартных сценариев. Иногда разработчики SDK полагают, что кроме реализации одного из предусмотренных сценариев клиенту ничего не потребуется, что клиенту проще сделать все с нуля самостоятельно, чем строить пьедестал из костылей для SDK.

Dependency hell и обновления — при расширении функционала (например, кастомизации решения под конкретного клиента), вы выпустите новую версию библиотеки. Но существуют зависимости, различные наборы версий библиотек у разных клиентов, и нужно очень тщательно следить за обратной совместимостью или строгим версионированием.

Когда SDK действительно нужен

У вас есть несколько стандартных сценариев, которые реализуются заново из раза в раз — собственно, наш случай.

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

Когда SDK скорее всего будет лишним

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

Вы не умеете делать качественно — у меня для вас плохая новость: пора учиться. Но отдавать кривое решение клиенту это очень, очень неправильно. Клиентов надо уважать, в конце концов.

Итак, мы определились, что такое SDK, с его преимуществами и недостатками и когда он нам нужен. Если после этого вы поняли, что SDK действительно нужен — приглашаю вас встать на «путь SDK» и разобраться, а каким он должен быть и как его, черт подери, делать?

«А вы любите Lego?» — Модульность

Представим все возможные сценарии использования SDK (вы же уже определились, зачем он вам нужен, правда?) и сделаем по библиотеке на сценарий. Чем не выход? Но это плохой подход, и так мы делать не будем. А будем так:

Например, с учетом специфики задачи, нам необходимо, чтобы вся логика задавалась из конфигов. Реализуем модуль работы с конфигами (чтения, записи, обновления, валидации и обработки конфигураций) и будем использовать его во всех остальных модулях.

А для реализации стандартных сценариев мы действительно сделаем модули — этакие «управляющие» модули, каждый из которых реализуют один конкретный сценарий, используя другие модули того же SDK. Таким образом для реализации стандартных сценариев клиент должен лишь подключить управляющий модуль сценария (а он сам подтянет все зависимости), а для реализации нестандартных — используем базовые модули, так же переиспользуя код.

Читайте также:  что делать если тоскуешь по девушке

Именно этим обусловлено то, что SDK не должен быть одной библиотекой (хотя очень хочется, понимаю. Ведь когда весь SDK в одной библиотеке, можно забыть о зависимостях и всем, что с ними связано), а быть комплектом библиотек. Дополнительным плюсом данного подхода будет уменьшение «веса» программы клиента — он будет тянуть тяжеловесный SDK, а подтянет только необходимые модули.

Но не стоить плодить модули как попало, ведь чем больше модулей, тем больше головной боли от их зависимостей! Т.е. важно правильно разбить логику на модули, соблюдая баланс между решением «все в одном» и «на каждую функцию свой модуль».

«А что, так можно было?!» — Универсальность

Предоставьте клиенту различные интерфейсы для работы с вашей библиотекой. Приведу пример:

Если предоставить только синхронную версию, то при реализации асинхронного приложения клиент вынужден будет делать асинхронные обертки вашего синхронного метода. Если предоставить только асинхронную версию — ситуация похожа. Дайте клиенту и то и другое и он скажет вам спасибо.

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

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

«Родитель 1, Родитель 2, Дети[ ]» — Именование

Что самое трудное в работе программиста? Выдумывать имена для переменных.

И тем не менее… Правильное именование модулей, классов, свойств и методов сильно помогут тем, кто будут с вашим SDK работать. Пример, не требующих комментариев:

Kinect 2.0 SDK example

Всё ясно из названий классов и методов. А если есть автодополнение кода в вашей IDE, то зачастую можно и в документацию не заглядывать, если и так все понятно.

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

Документация, в SDK, как правило, проста и лаконична. Она обычно делится на две части: Tutorial — пошаговый курс в стиле “Построим город за 10 минут” и раздел Reference — справочник по всему, что можно сделать с помощью данного SDK.

Мы выбрали самый простой путь — summary + articles. Мы добавляем Xml атрибуты для методов и классов, которые светятся в intellisense как подсказки. Используя Docfx мы строим документацию по этим атрибутам и получаем подробную и удобную документацию, которую дополняет статьями, описывающими сценарии использования и примеры.

«— Чтобы чисто было! — Как я буду вилкой-то чистить?» — Тестирование

Что можно сказать про тестирование в рамках обсуждения SDK… Must have! Лучшим решением будет TDD (несмотря на то, что я негативно отношусь к данному подходу, в данном случае я решил использовать именно его). Да, долго. Да, нудно. Но зато в будущем вы не повеситесь от постоянных падений SDK на стороне и следствий этого падения.

Основной сок ситуации заключается в том, что отдавая SDK клиенту вы теряете контроль: вы не можете быстро пофиксить ошибку, сложно эту самую ошибку найти, да и выглядеть в такой ситуации вы будете достаточно глупо. Поэтому — тестируйте. Тестируйте лучше. И еще раз. И, на всякий случай, протестируйте ваши тесты. И тесты тестов. Так, что-то я увлекся, но важность тестирования SDK, надеюсь, понятна.

«Жертва, которая не могла противостоять своему прошлому, была поглощена им» — Логи

Поскольку вы отдаете SDK сторонней компании, в следствие чего теряете контроль над ситуацией, в случае ошибки (на этапе тестирования вы все-так решили «и так сойдёт», да?) вас ждет достаточно долгий и болезненный процесс поиск этой самой ошибки. Именно тут вам на помощь придут логи.

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

«Alarm! Achtung! Attention!» — Ошибки


Долго размышляя на тему ошибок я пришел к интересному выводу — ни один метод в вашем SDK не должен отдавать ошибку, не описанную в документации. Согласитесь, очень неприятно, когда вы подключаете стороннюю библиотеку для работы с HttpRequest, а она вываливает на вас какой-нибудь NullPointerException и StackTrace, который уводит в недра библиотеки. И вам приходиться погружаться в эти самые «недра», пытаясь понять, насколько глубока кроличья нора, и в чем, собственно, проблема.

Поэтому я предлагаю следующее решение — декларируйте закрытый список возможных исключений и документируйте их. Но, т.к. нельзя быть увереннным, что вы предусмотрели все, оберните метод в try-catch, а пойманную ошибку — в задекларируему. Например, ConfigurationException, который будет содержать InnerException — пойманную ошибку. Это позволит стороннему разработчику поймать все возможные ошибки, но в случае чего быстро разобраться в чем дело.

Версии или «как не укусить себя за хвост»

Во избежание проблем в будущем крайне рекомендую использовать строгое версионирование. Выберете подходящую вам систему построения версий и используйте ее. Но если новая версия библиотеки не имеет обратной совместимости — это необходимо указать. Как это разруливать — думать вам. Но подумать об этом точно стоит.

«Паровозик, который смог» — Deploy

Необходимость актуальности документации и версий порождают требование к корректности деплоя. В своем решении мы используем следующее решение (костыли, но работают).
Когда надо выпустить нвый релиз, разработчик дергает bat’ник с указанием номера релиза, а затем батник:

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

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

«-А так можешь? — Фигня. Смотри как надо!» — Примеры & toolkit

Заключение

Разработка SDK стало для меня интересной новой задачей, поднявшей много важных архитектурных вопросов. Многое описанное в статье является очевидными вещами (для меня), но считаю важным огласить даже очевидные вещи, чтобы получить четкую общую картину.

Спасибо за прочтение, буду рад вашим комментариям. Надеюсь, эта статья будет для вас полезной.

Источник

Строительный портал