Движение 0deps: локальные зависимости и неизменяемые контракты

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

За эту скорость приходится платить. Вы сталкиваетесь с рисками цепочки поставок программного обеспечения.

Каждая зависимость увеличивает поверхность атаки. Зависимости могут:

  • Вносить уязвимости в безопасность.
  • Становиться целями для атак на цепочку поставок.
  • Быть заброшенными авторами.
  • Изменять свой публичный API.
  • Нарушать обратную совместимость.

Движение 0deps меняет это. Оно задает вопрос: что, если ваше приложение будет полагаться только на тот код, который вы контролируете?

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

Это дает несколько преимуществ:

  • Воспроизводимые сборки.
  • Отсутствие зависимости от внешних реестров пакетов.
  • Централизованный аудит безопасности.
  • Более высокая предсказуемость.
  • Снижение рисков цепочки поставок.

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

Вы проектируете стабильный интерфейс для каждой библиотеки. Например:

  • authenticate()
  • createSession()
  • verifyPasskey()

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

Это решает главную проблему при обновлениях. Обычно вы беспокоитесь о том, что, исправляя баг, вы одновременно сломаете свое приложение. С 0deps публичный API остается идентичным. Ваше приложение продолжает работать без изменений в коде.

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

0deps не против open source. Оно хочет использовать open source более безопасно. Вместо динамической установки вы относитесь к библиотекам как к интегрированным компонентам. Вы проводите их аудит. Вы управляете их версиями. Вы инкапсулируете их.

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

Источник: https://dev.to/fullagenticstack/movimiento-0deps-dependencias-locales-contratos-inmutables-y-seguridad-por-diseno-1a6o

Дополнительное сообщество для обучения: https://t.me/GyaanSetuAi