Прошедшие боевые испытания фреймворки 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.