Прошедшие боевые испытания фреймворки JavaScript. Часть 2. Знакомство с фреймворками и библиотеками, которые можно использовать для разработки dApps.

Поскольку разработка Web3, вероятно, начнется в 2022 году, мы воспользовались моментом, чтобы подготовить этот список инструментов, специфичных для Web3, для разработки dApp завтрашнего дня. При этом не так много библиотек и фреймворков, предназначенных только для этой цели. Концептуально разработка веб-интерфейсов Web2 и Web3 мало чем отличается, несмотря на все очевидные различия. Еще нужно разработать интерфейс. По-прежнему нужен бэк-энд, который преследует ту же цель. База данных по-прежнему необходима, потому что, если вы храните все в основной цепочке, вы можете легко обанкротиться до Eth2.

С этим кратким вступлением мы можем начать знакомить вас со всеми специфическими фреймворками и библиотеками.

Взаимодействие с блокчейном Ethereum

Эфиры.js

Пакет стремится быть простой, компактной и полной библиотекой для всех ваших потребностей Ethereum. Технически это также не отдельная библиотека, а скорее набор библиотек. Их четыре: Ethers.provider, Ethers.contract, Ethers.utils и Ethers.wallets.

Плюсы Ethers.js

  • Написан полностью на TypeScript
  • Относительно маленький
  • Несколько способов подключения к узлам Ethereum
  • В отличие от Web3, он не поддерживается Ethereum Foundation (хотя все равно будет работать).
  • Есть только один сопровождающий

Репозиторий GitHub

https://github.com/ethers-io/ethers.js

Web3.js

Это был первый пакет, который появился на сцене для взаимодействия с цепочкой Ethereum. Таким образом, у него есть явное преимущество первопроходца; поскольку он был доступен намного дольше, у разработчиков было больше времени для подготовки учебных материалов.

Плюсы Web3.js

  • Построен Фондом Эфириума.
  • Первый, кто появился на сцене

Минусы Web3.js

  • Громоздкий. Почти 600 КБ в минимизированном виде и в сжатом виде.
  • Лишь малая часть написана на TypeScript.
  • Требуется работающий локальный узел Ethereum
  • Вы столкнетесь с проблемами при использовании Angular ›11 (хотя их легко исправить)
  • Он использует старые операторы «require».

Репозиторий GitHub

https://github.com/ChainSafe/web3.js

Среды разработки

Трюфель

Полная среда разработки для разработчиков, обеспечивающая максимально комфортное от идеи до d[A]pp. Это наиболее популярная из двух сред для разработчиков, вторая — Hardhat. Несмотря на то, что звезды на GitHub мало что значат, они являются хорошим индикатором того, сколько ресурсов можно найти.

Преимущества трюфелей

  • Автоматизированное тестирование контрактов с Mocha и Chai.
  • Лицензировано по разрешающей лицензии MIT
  • Доступен набор полезных шаблонов («коробок»)
  • Работает с Гиперледжер
  • Нет графического интерфейса
  • Поддерживает Менеджер пакетов EthPM для смарт-контрактов.

Минусы трюфелей

  • Коробки не очень гибкие
  • Нет графического интерфейса
  • Тестирование не самое простое

Репозиторий GitHub

https://github.com/trufflesuite/трюфель

Каска

Hardhat — вторая из двух основных сред разработки, доступных для разработчиков dApp.

Каски плюсы

  • Написано на TypeScript
  • Можно использовать Truffle для тестирования через плагины (@nomiclabs/hardhat-truffle4 и @nomiclabs/hardhat-truffle5)
  • Полная экосистема плагинов
  • Подходит для более опытных разработчиков Web3
  • При поддержке Фонда Эфириум

Минусы каски Репозиторий GitHub https://github.com/nomiclabs/hardhat

Развертывание

Варианты развертывания, специфичные для Web3, еще не прошли боевые испытания. ipfs.js находится в альфа-версии, а Bee-js (который подключается к Swarm) — в бета-версии. Есть уверенность, что они созреют, хотя неясно, когда это произойдет. Из-за этого мы не будем говорить о них. Здесь вы можете использовать старый добрый Vercel для развертывания, которое так же просто, как ввести команду в свой терминал. Естественно, для этой работы идеально подойдут AWS, Azure и Firebase.

Если вы хотите попробовать специфичные для Web3 параметры, репозиторий ifps.js на GitHub доступен здесь, а исходный код Bee-js доступен по этой ссылке.

UI

Что касается пользовательского интерфейса, вы можете использовать любой фреймворк, который вам наиболее удобен. React, Vue или Angular — здесь все будет работать. Svelte, Inferno или Solid также подходят, хотя на данный момент по умолчанию используется React. Библиотека часто используется, но также имеет множество готовых опций, которые снимают с вас когнитивную нагрузку. Одним из примеров является useDApp.

Заключение

Как мы уже упоминали: список библиотек только для Web3 короче, чем можно было ожидать. Это предпочтительнее, так как не нужно много времени, чтобы запрыгнуть в поезд ажиотажа dApp. Единственное препятствие, если оно вообще есть, — это изучение Solidity (или Vyper). Однако, поскольку большинство читателей этого поста будут разработчиками JavaScript, мы рекомендуем изучить Solidity.

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

Первоначально опубликовано на https://www.itmagination.com.

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.