Как стать разработчиком Web3
27 апреля 2022 г.Как стать разработчиком Web3, даже если вы никогда не писали ни строчки кода.
Web3 процветает и расширяется, охватывая все больше сфер жизни. Его принятие происходит быстрее, чем Интернет в свое время. Вероятно, вы загорелись идеей «присоединиться к движению и формировать будущее». И вы, возможно, уже слышали, что индустрия Web3 предлагает сочные вознаграждения.
Да, это так. Существует глубокий дисбаланс между предложением талантов и спросом в отрасли. Разработчики Web3 — редкая порода. Дефицит всегда делает что-то еще более ценным. Так как же заставить себя заниматься Web3-разработкой?
Некоторые гуру продуктивности сначала посоветовали бы вам определиться с целями, кем вы хотите быть, выбрать нишу и т. д. Но как вы должны это понять, если вы никогда не касались вещей Web3 и не имеете практического опыта, чтобы понять что вам больше всего импонирует?!!
В этой статье будет рассказано, как сразу перейти к разработке Web3, не теряясь в изобилии информации.
Давайте начнем.
Какие области охватывает Web3?
Не существует полностью доказанного академического определения Web3. Некоторые приписывают Web3 каждую следующую большую вещь, связанную с внедрением криптографии. Включая даже те проекты, которые ̶s̶h̶a̶m̶e̶l̶e̶s̶s̶l̶y̶ явно централизованы (например, Metaverse by Meta).
Другие определяют Web3 как децентрализованный ценный Интернет, позволяющий пользователям взаимодействовать по принципу «равный-2-равному», не полагаясь на посредника-гиганта (например, Facebook и Google), и сохранять полный контроль над своими данными. Это ближе к истине.
По крайней мере, именно так Web3 описывает Гэвин Вуд, один из пионеров и лидеров движения Web 3.0, который на самом деле придумал этот термин.
Независимо от того, сколько различных определений имеет Web3, ясно, что он является междисциплинарным.
Ключевые области, которые охватывает Web3:
- Искусственный интеллект (ИИ),
- Интернет вещей (IoT),
- Технология блокчейн,
- Метавселенная дополненной реальности.
Ни в коем случае вы не хотите начать осваивать их все одновременно.
Независимо от вашего опыта, IQ и настойчивости, в первый же день вы, скорее всего, будете ошеломлены. И откажется от второго.
Так как же подойти к разработке Web3?
Поскольку Web3 означает децентрализованный Интернет, поэтому основной технологией, на которую он опирается, является блокчейн. Это основа Web3. Другие области — AI и IoT — составляют его надстройку.
«Поэтому отправной точкой нашего пути развития Web3 является технология блокчейн».
Далее мы поговорим о том, как на него попасть. Но сначала давайте кратко рассмотрим, что на самом деле делает разработчик Web3.
Что делает разработчик Web3?
Каждый раз конкретный набор задач Web3-разработчика зависит от ниши, в которой он работает (DeFi, NFT, Metaverse, GameFi и т. д.) и того, что указал работодатель или клиент в описании роли. В этом смысле роль разработчика Web3 аналогична роли разработчика бизнеса. Последний может быть продавцом, менеджером, который занимается сбором средств, или кем-то, кто отвечает за установление партнерских отношений и PR-сотрудничество. Поэтому от случая к случаю набор задач уникален.
Я разделю разработку Web3 на две основные категории: базовая разработка и разработка приложений.
- Разработчики ядра Web3
Основной разработчик Web3 обычно занимается проектированием, архитектурой и безопасностью систем блокчейна. В основном их роли включают следующее:
- Проектирование и создание блокчейнов уровня 1 с нуля;
- Разработка согласованных протоколов и шаблонов безопасности для сети;
- Проектирование сетевой архитектуры и операционных узлов; и
- Надзор за всей сетью.
По сути, основной разработчик блокчейна создает основу для будущих децентрализованных приложений (dApps).
- Разработчики приложений Web3
У разработчика приложений (разработчика dApps) другой набор задач. Они используют архитектуру, созданную основными разработчиками, для проектирования и развертывания dApps.
Разработка dApps в основном разбита на внутреннюю и внешнюю части.
Бэкенд-разработка приложений Web3
Обычное (т. е. Web2) внутреннее программирование относится к серверной части приложения и ко всему, что взаимодействует между базой данных и браузером. Серверная часть — это часть приложения, которую пользователи не видят.
Бэкенд-разработка Web3 — это совсем другое. Нам не нужен сервер для создания dApp. Вместо этого мы хотим выбрать подходящую сеть уровня 1 (ETH, Solana, Polygon и т. д.), соответствующую целям нашего dApp, и построить на ее основе смарт-контракты, которые определят логику dApp и автоматизируют его работу. Грубо говоря, смарт-контракты заменяют серверный компонент в dApps.
Серверные задачи Web3 в основном включают работу с распределенными базами данных, разработку и развертывание смарт-контрактов, а также API-интерфейсы блокчейна, SDK и EDI (см. ниже). В отличие от серверной части Web2, Web3 всегда открыт для пользователей. Базы данных блокчейна и смарт-контракты по своей сути прозрачны и могут быть просмотрены всеми.
Разработка внешнего интерфейса Web3
Front-end означает клиентскую часть приложения. Это то, что пользователи видят и с чем взаимодействуют (например, веб-сайт и мобильное приложение).
Специфика интерфейса dApps заключается в том, что архитектура интерфейса ориентирована на связь со смарт-контрактами. Вместо того, чтобы делать сетевые запросы к централизованному серверу API где-то, вы будете считывать данные напрямую из блокчейна, обычно из смарт-контрактов.
Еще одна особенность здесь — аутентификация пользователей. Поскольку Web3 означает децентрализованное владение и хранение данных, пользователи получают доступ к сетям блокчейна через dApp напрямую, используя свои закрытые ключи. Итак, еще одна вещь, с которой вам придется столкнуться как разработчик веб-интерфейса, — это подключение к кошельку. Чтобы идентифицировать пользователя и обеспечить его доступ к блокчейну, вы обычно просите его подключить свои кошельки, такие как Metamask, к веб-сайту dApps (или мобильному приложению). Кошелек действует как лицо, подписывающее транзакции в сети блокчейн, и хранит закрытые ключи пользователей в браузере.
Полная разработка приложений Web3
Разработчик полного стека Web3 работает как с задней, так и с внешней частью dApp. В этом смысле они предоставляют комплексные услуги и могут участвовать в проектах, включающих базы данных и создание веб-сайтов, ориентированных на пользователей.
Как стать разработчиком Web3
Есть несколько разных подходов к Web3. Определяющими факторами здесь являются ваши текущие навыки и опыт.
Если вы новичок в программировании и разработке, путь может быть немного сложнее, чем иметь соответствующий опыт. Однако при сильном любопытстве, целеустремленности и самоотверженности нет ничего невозможного, верно?
Здесь я бы предложил общую практическую схему, которая подойдет как опытным, так и освежающим. Он основан на предположении, что независимо от того, насколько вы новичок в Web3, вы, по крайней мере, разберетесь с основами математики и компьютерных наук. Вы также в восторге от Web3, постоянно изучаете его и следите за тенденциями.
Так что, даже если вы еще не программируете, ваше теоретическое понимание технологий блокчейна уже твердое. Вот почему я бы не стал давать здесь советы по таким вещам, как изучение блокчейна, его целей и других вводных вещей. Если вы находитесь на стадии размышлений о том, чтобы стать разработчиком Web3, предполагается, что вы уже хорошо разбираетесь в таких основах.
Итак, вот как стать разработчиком Web3:
- Сосредоточьтесь на одном блокчейне
Я бы рекомендовал начать кодирование с Ethereum. На данный момент Ethereum является наиболее зрелой средой разработки в блокчейн-пространстве. В основе сети Ethereum лежит ее EVM (Ethereum Virtual Machine) — программная платформа, которую разработчики могут использовать для создания программ с использованием смарт-контрактов для различных целей, включая dApps.
EVM обладает всеми функциями полной по Тьюрингу виртуальной машины, что означает, что она может выполнять любой тип кода точно так, как задумано. Другими словами, полнота Тьюринга Ethereum подразумевает, что он может использовать свою кодовую базу для выполнения практически любой задачи, если у него есть правильные инструкции, достаточно времени и вычислительной мощности.
Еще одна причина начать с Ethereum заключается в том, что существует множество других блокчейнов, совместимых с EVM. Среди них Polygon, Avalanche, Polkadot и др.
Таким образом, как только вы освоите Ethereum, вам будет проще выйти на другие блокчейн-сети, совместимые с его EVM.
Кроме того, если вы строите на Ethereum, вы являетесь частью крупнейшего сообщества разработчиков блокчейнов. Так что всегда можно учиться у профессионалов и обращаться за советом, когда это необходимо.
Почему бы не начать с биткойнов?
Хотя Биткойн получил самое широкое распространение, его технология не обладает свойством полноты по Тьюрингу. Таким образом, Биткойн менее удобен для разработки, чем Эфириум.
Он просто принципиально не запрограммирован на это. Однако несколько проектов каким-то образом позволяют создавать dApps на BTC. Например, Stacks.
- Изучите наиболее подходящий язык программирования
В мире создания децентрализованных приложений обязательным языком программирования является Solidity. Solidity — это высокоуровневый объектно-ориентированный язык программирования, созданный командой Ethereum Network для создания и развертывания смарт-контрактов. Он предназначен для виртуальной машины Ethereum (EVM).
Solidity является статически типизированной и поддерживает наследование, библиотеки и сложные определяемые пользователем типы, среди прочих функций. С Solidity можно создавать контракты для голосования, краудфандинга, слепых аукционов, мультиподписных кошельков и других целей. Существенным преимуществом Solidity является то, что его легче изучить, чем многие другие языки программирования (например, rust или C++). Сфера его применения беспрецедентна. Solidity используется практически во всех EVM-совместимых сетях (Polygon, BSC, Avalanche, RSK, Fantom, Telos) и в большинстве решений масштабирования 2-го уровня, таких как Arbitrum, Optimism, Zk sync, Parastat и других.
Следующее предложение — изучить [Java Script] (https://www.javascript.com). Это язык программирования на стороне клиента (т. Солидность. Как упоминалось ранее, при разработке dApps даже его внутренняя часть открыта для пользователей. Поэтому, независимо от того, на каком аспекте разработки вы решите сосредоточиться — на бэкэнде или фронтенде — важно понимать основы обоих и то, как они взаимодействуют друг с другом.
Другими популярными языками программирования в разработке Web3 являются C++, Java, C#, Go, Python, Ruby и Rust. Тем не менее, Solidity + Java Script будет достаточно, чтобы охватить все необходимые основы, если вы только начинаете.
- Используйте IDE/SDK Web3
Как SDK (комплекты для разработки программного обеспечения), так и IDE (интегрированная среда разработки) представляют собой наборы различных инструментов в одном устанавливаемом пакете, используемые разработчиками для создания приложений для конкретных платформы или цели. Они призваны упростить и автоматизировать процесс разработки. С этими инструментами вам не нужно кодировать все с нуля.
Основное различие между SDK и IDE заключается в том, что IDE предназначены для предоставления интерфейса для написания и отладки кода, а SDK используются для добавления функциональности в написанный код.
Фактическое содержимое IDE и SDK варьируется от одного к другому. Они могут включать библиотеки, фреймворки, документацию, предварительно запрограммированные фрагменты кода, API, инструменты тестирования/отладки и т. д. Некоторые SDK имеют специальную IDE, которую можно использовать прямо из коробки.
Давайте рассмотрим некоторые наиболее популярные примеры Web3 SDK/IDE:
- Hardhat и Truffle — терминальные IDE, позволяющие разрабатывать, тестировать и развертывать смарт-контракты на Ethereum. блокчейн. Хотя у них есть небольшие различия, функциональность этих двух IDE очень похожа. Оба предоставляют фреймворки для разработки на основе JavaScript и Solidity.
- Remix — браузерная IDE, предназначенная для тех же целей, что и Hardhat и Truffle.
- Ganache — позволяет настроить личный блокчейн для тестирования смарт-контрактов и децентрализованных приложений. Это своего рода симулятор блокчейна Ethereum, который делает разработку приложений Ethereum быстрее, проще и безопаснее.
- web3.js, web3.py и ethers.js — самые популярные Web3 SDK (коллекции библиотек). Они позволяют подключать смарт-контракты к внешнему интерфейсу приложения. Другими словами, эти инструменты помогут превратить ваше веб-приложение в веб3-приложение.
- Нишевые SDK Web3. Под такого рода SDK я подразумеваю те, которые специально предназначены для создания определенных типов приложений. Вот пример. Допустим, вы хотите запустить криптобиржу или брокерскую платформу. Для этого вы можете использовать OpenDAX WEB SDK, созданный Openware, компания Желтого.
OpenDAX WEB SDK сочетает в себе конфиденциальность и безопасность децентрализованных финансов с удобством и простотой использования централизованных бирж. Этот пакет SDK предлагает многократно используемые компоненты пользовательского интерфейса и виджеты для распространенных веб-интерфейсов, используемых при создании приложений платформы обмена. Они имеют простой и современный дизайн, разработанный для удовлетворения любых потребностей и в соответствии с последними практиками UI/UX. Пользователи могут настраивать интерфейс в соответствии со своим корпоративным стилем, рекомендациями по дизайну или другими предпочтениями.
В дополнение к компонентам пользовательского интерфейса библиотека использует инструменты управления состоянием React, такие как Providers, Hooks и Utils. Это позволяет легко подключаться к OpenDAX WEB SDK для JavaScript и передавать данные на уровень пользовательского интерфейса.
- Присоединяйтесь к сообществам Web3
Разработка Web3 удивительна и радостна, но временами может быть довольно сложной. Особенно для новичков. Если вы пойдете волчьим путем, вы можете потерять дни, месяцы и даже годы, пытаясь преодолеть препятствия на своем пути развития. В этом нет смысла, учитывая, что всегда есть кто-то, кто уже опережает вас и готов поделиться своими знаниями. Вы можете легко найти таких людей в сообществах Web3.
Такие сообщества существуют практически вокруг каждой сети, протокола или отдельного проекта Web3. Они общаются на Reddit, Discord, Github, Telegram и других социальных платформах. Взаимодействуйте с теми, которые наиболее подходят для вашего текущего профессионального уровня и целей. Прелесть мира разработки Web3 в том, что он чрезвычайно поддерживает и сотрудничает.
Заключительные мысли: стать разработчиком Web3
Web3-разработка — это абсолютно блестящая карьера. Это не только вознаградит вас в финансовом отношении, но и время, потраченное на работу в этой области, даст вам первостепенный личный рост и высококачественный социальный капитал.
Пусть вас не смущает его кажущаяся на первый взгляд сложность. Учитесь на ходу. Ясность последует.
Автор: Джули Плавник для Желтой сети
Оригинал