Разработчик создал API для проверки взаимодействий лекарств и трав, который работает полностью на стороне клиента — без серверов и зависимостей. Это позволяет обеспечить высокую безопасность данных пользователя, так как информация не передаётся на внешние серверы.
Почему важен клиентский подход
Личные данные о здоровье являются особенно чувствительными. При поиске информации, например, о взаимодействии метформина и зверобоя, пользователь раскрывает свои диагнозы. Используя API с удалённым сервером, такие данные могут быть собраны и сохранены, что создаёт риски в соответствии с требованиями законодательства о безопасности данных, такими как HIPAA и GDPR.
Разработанный сервис обходит эти проблемы, так как вся база с данными о взаимодействиях хранится в браузере. Позиция разработчика проста: «Клиентская сторона — это решение для всех, кто ценит свою конфиденциальность».
Архитектура без зависимостей
Вся база данных о взаимодействиях помещена в одну константу JavaScript. Доступно 592 взаимодействия, а поиск осуществляется с помощью функции автозаполнения, что обеспечивает высокую скорость работы. Например, полный поиск по 592 записям занимает всего 0,5 мс за нажатие клавиши. Для сравнения, API-запрос с задержкой в 200 мс был бы в 400 раз медленнее.
Сложность заключалась не только в написании кода, но и в сборе данных. Создание надёжной базы взаимодействий требовало изучения более 1200 научных публикаций и ручной проверки каждого взаимодействия.
Практическое значение для разработчиков
Для разработчиков это означает возможность создания приложений для здоровья, которые фокусируются на конфиденциальности пользователей. Используя клиентские API, можно минимизировать риски утечек данных, что особенно актуально для медицинских приложений. Такой подход также позволяет значительно сократить затраты на серверную инфраструктуру, что является плюсом для стартапов и небольших команд.
Данный проект может служить отправной точкой для разработчиков, стремящихся создать аналогичные инструменты, и предлагает возможность значительного снижения затрат на обработку данных.
Следующий шаг — расширение базы данных взаимодействий и добавление новых функций для улучшения пользовательского опыта.