Контракты и паттерны
Уже на следующей неделе я выложу программу летнего практического курса. Видел в чате много вопросов про обучение с нуля и постараюсь придумать, как новички могли бы быстро догнать текущих учеников и продолжить обучение с ними.
А пока пара слов про паттерны в контрактах, которые следует знать разработчику.
Вообще "паттерн", на мой взгляд, это какая общая идея, которую можно использовать во многих проектах. В некотором роде, популярные библиотеки от Open Zeppelin с реализацией токенов ERC20 и ERC721 тоже являются частью вселенной (кто пропел?) паттернами.
Помимо стандартов сложились и другие общие идеи, которые мы наблюдаем в сегодняшних протоколах. И их можно разделить на три основные группы:
1. Архитектурные паттерны;
2. Паттерны кода;
3. DeFi паттерны;
В первую категорию можно отнести:
1. Аукционы: голландский и английский. Там пользователи делают свои ставки, и в зависимости от типа аукциона, цена падает или растет.
2. Multisig - когда для одобрения исполнения какой-либо функции в протоколе требуется подтверждение несколькими пользователями, управляющими данным функционалом.
3. DAO и governance - популярные (де)централизованные системы и управление протоколом через голосование пользователей;
4. Commit / reveal - некая система (например, голосование) основанная на хешировании данных и последующее их подтверждение;
Паттерны кода куда более сложные для разбора и используются в некоторых профессиональных протоколах с какой-либо определенной целью. К ним можно отнести File pattern.
Ну, и популярные ныне DeFi паттерны:
1. Стейкинг - депозит токенов с целью получить выгоду от последующих наград ил выплат;
2. Айрдропы - первоначальная раздача токенов для привлечения внимания к протоколу;
3. Займы и ликвидации - уже традиционный инструмент большинства финансовых протоколов;
4. Свапы и Vaults - обмен токенов;
Сюда также можно включить более сложные системы связанные с опционами и деривативами, но разобраться с ними "в лёгкую" не получится, так как нужно иметь некоторые представления о работе бирж и трейдинга в целом.
Современным разработчикам нужно знать эти паттерны не только чтобы уметь реализовывать сложные системы, но и быстро разбираться в коде протокола, который ему могут предоставить на доработку.
Если вы учитесь самостоятельно, то обратите на этот список и изучите, если что пропустили. Для других - большинство этих тем мы будем разбирать на практическом модуле.
Всем отличной пятницы и приятных выходных!
#patterns
Post #1120
1.22K
- 🔥 10