Рух 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