2. Introduction to Cargo and Project Management in Rust (Rust on NEAR Course)
Nothing is loaded from YouTube until you press play, and then without tracking cookies.
About this video
All course videos: • Курс Rust на NEAR (RU) Joint course by NEAR & 4ire Labs
Subscribe to receive updates on NEAR news, promotions, project launches, bounties, and hackathons. Russian-speaking NEAR community: t.me/near_protocol Twitter: / near_protocol
Follow the latest from NEAR Protocol on: Website: near.org Discord: near.chat Blog: near.org/blog Twitter: / nearprotocol GitHub: github.com/near github.com/nearprotocol #Blockchain #FutureIsNEAR #NEAR #nearprotocol
Transcript
7,325 wordsCaptions as YouTube publishes them, usually machine-generated, so product and people names can be misheard.
- 0:17
так меня слышно
- 1:18
подождем сми часов
- 2:20
[музыка] [аплодисменты]
- 3:36
[аплодисменты]
- 4:37
так но те кто не успел присоединиться я не видно как говорится поэтому чтобы не терять время я предлагаю начинать поскольку сегодня кирилла я так понимаю не будет ответа я не смогу отвечать в чате поэтому задавайте вопросы специальной секции ask in cash in a sky кашин в конце я буду отвечать на ваши вопросы поэтому в чат бессмысленно писать я это окей будем начинать
- 5:54
итак сегодняшний курс посвящен 2 теме которым мы рассматриваем у рамках рожкова проводить буду я евгению фанов и тема сегодняшнего сегодняшняя лекция будет посвящена а парк и основам управления проектами это одна из водных те после общего введения раз и так я на всякий случай я проверил слышите вы меня или нет на всякий случай плесните в чате чтобы не оказалось что спасибо польши и
- 6:53
еще на всякий случай видно ли мой экран потому что я его сам не вижу и начнем давайте начнем с того какие цели мы ставим перед сегодняшним занятиям чтобы было очень четко и ясно понятно чем начнем и какие результаты должны получить первое как это страшно логическая цепь с чего можно начать это естественно установка роста возможно у кого то из вас он уже есть возможно у кого-то нету но отлично было бы чтобы было понимание как его
- 7:44
остановить как с ним работает хотя бы в базовых таких принципов будет очень здорово если окажется у вас где-нибудь под рукой консолька где вы сможете что-нибудь попробовать если нету ничего страшного я думаю что после лекции вы сможете посмотреть те команды которые я буду вводить воспроизвести их поиграться попробовать как у вас работает на всякий случай скажу что большую часть взаимодействия в
- 8:28
этом курсе мы будем править проводить именно с консоли что здесь подразумевается это консольные команды в частности это баш какой-нибудь потому что это наиболее быстро и удобно не исключается использование ваших любых других удобных инструментов следующей нашей цели были создание проекта и рассмотрение какие существуют типы проекта также необходимо понимать какие есть вообще общую концепцию управления
- 9:03
проектом напишем нашу первую программу она будет крайне элементарные но рабочий это самое главное разберемся с тем как наш проект и условно говоря программу собирать чтобы она была в том состоянии чтобы можно было использовать правило рассмотрим концепцию внешних библиотек хейг рейд в том числе и great оу оу который предоставляет собой набор не так сказал комьюнити драйвер веб сайт
- 9:43
котором есть пакеты разрабатываем и другими разработчиками компании рассмотрим параметр карба так я скажу что общие и комплексные примеры настройки и управления проектами поэтому давайте разберёмся с тем что вообще из себя представляют управление проектами и зачем и нужно это решает в первую очередь комплексной сложной задачи которые требуют эффективных инструментов в частности
- 10:35
что под этим подразумевается есть задача которая не просто там подразумевает написание cola волос но и каких-то более комплексных решений и для этого необходимы инструменты которые вы позволили управлять проектом и в данном случае эту роль на себя берет инструмент под названием карга это встроенный инструмент случаен роста и он позволяет достаточно гибкая эффективно работать с этим зачем нужна управление
- 11:28
проектом в том числе если над проектом работает некоторая команда людей частности проект может быть комплексным и очевидно что чем более комплексный проект тем сложнее и может оказаться управлять это как выстригаем также под этим подразумевается использование готовых решений наиболее очевидная вещь это сторонние библиотеки под управлением проекта также понимается гибкая настройка самого проекта поскольку у него может быть достаточно много
- 12:07
параметров разных и через управления проектом мы можем достаточно гибко производить настройку самого проекта также под управлением проекта может подразумеваться то что сам проект может быть достаточно большим если рассматривать пример сам язык программирования раз то он может себя включать под проекты и самые разнообразные комплексные зависимости также подразумевается под этим поддержка
- 12:48
разных платформ платформами у данных случае понимается операционную систему разные таргет и сборки и так далее и так же я хотел обратить ваше внимание на то что 1 имеет один из самых продвинутых инструментов управления проектами естественно сугубо мое личное мнение и название него карта если к примеру сравнивать с другими проектами то я и имел удовольствие использовать подобного рода решения и есть чем сравнивать вот примеру если
- 13:36
рассмотреть соски кабал фаска лета весь кто-нибудь из вас работал возможно вы знаете какие крокодильи слезы иногда приходится проливать для того чтобы решить проблемы с зависимостями не только по фото композер тоже иногда приносит много веселья я не буду перечислять существующие решения какие у них проблемы есть но в частности карга многие из этих аспектов принял на вооружение и прислушивается комьюнити поэтому соответственно последний пункт здесь мы рассматриваем
- 14:20
это комменте драммен в туре закупать это кризис а.ю. когда у вас будет возможность зайдите на этот сайт что он из себя представляет это набор клипс строительство проще говоря это библиотеки которая разрабатывается комьюнити компаниями и это позволяет через пакетный менеджер очень гибкая использовать их искать находить нужную информацию том числе документацию и как вы видите здесь есть
- 15:00
поисковая строка и вне вы можете вводить рыбу необходимо вам информации том числе к примеру вы можете ввести нир и увидите какие пакеты какие есть для нет они постепенно обновляются поддерживаться разные версии и в том числе это подразумевает и документацию и изменение которое подобно со поэтому одна из таких очень полезных вещей давайте начнем с какой тривиальной достаточно штуки если кто то из вас уже имеет установленный раз тасс равно не скучайте можете пока что походить по 3
- 15:48
но те кто раз не устанавливал я предлагаю сделать такие очень простые вещи в действительности это открыть сайт расстрел . и зайти на страничку stars я вам специально не буду кликать мышкой не показывать потому что достаточно такие тривиальные штуки и там можно соответственно перейти в раздел держаться и соответственно есть ссылочка вот вы увидите это corolla corolla куда вы можете ставили вашу команду и
- 16:30
достаточно легко и весело и установить раз обладает такой особенностью что вы вам необязательно для того чтобы его попробовать устанавливать есть раз playground and it's a player студенточку и туда можно зайти и что-нибудь интересное том числе написать 1 и специфика является то что он поддерживает достаточно много возможностей естественно далеко не все но ему есть чем вас удивить если вы установили
- 17:10
соответственно проверить вашу установку достаточно просто просто ввести команду россии и параметр версии я надеюсь что у вас будет установлена версия 153 сколько я знаю но еще не вышла в целом период обновления версию роста это 40 дней поэтому следующий релиз планируется скорее всего когда вы устанавливаете раз у вас устанавливается от 1 таб и это первый инструмент с которым вы начинаете работать что это такое в первую очередь
- 18:01
это когда же следует из названия это менеджер для управления капиталу чайном роста то есть наборов инструментов в первую очередь это сам компилятор раз и карга что он позволяет тела он позволяет управлять версиями роста примеру если вы хотите не самую последнюю версию менее свежую она позволяет управлять случайными рубля и управлять торпедами по таргетом здесь подразумеваются как я и говорил раньше это платформа под который происходит
- 18:52
сборка их на самом деле очень много если вы думаете что их там 2 3 вы глубоко ошибаетесь насколько помню что чуть ли не 20 может даже можно же больше и примеру есть возможность сборки не только по длину и мобильной платформы но и под экзотические читу типа гипса риск пять дней в целом вот этот раз запилим достаточно интересно и также через росстат есть возможность установки разных компонентов
- 19:40
роста это мы будем рассматривать позже и разные виды сборки роста что под этим подразумевается просто имеет три основных ветки я бы так сказал или направлении сборки to stay пол бета и найтли соответственно stay был это текущая стабильная версия бета это в это обновление которые постепенно выходят до релиза стоит новой версии найтли как догадаться это ежедневные ночные сборки и перейдем к следующему пункту установка одного из таргета которые нам
- 20:27
обязательно потребуется поскольку для работы со smart контрактами донер этот таркетт необходим примеру какие таргет и вообще существует это x86 64 примеру глину скомпоновать или там mapquest с в таргет можете установить не зависимости от того на какой операционной системы вы работает это не имеет никакого значения и соответственно под него можете вы делать сборку примеру если вы хотите продвинуться
- 21:02
скомпилировать какому под windows нет никаких проблем то же самое касается таргетом от вас внутри что-то полоса это баба я не буду вдаваться в детали что из себя представляет в possibly но целом это виртуальная машина который позволяет выполнять пойти код и в том числе 1 поддерживает написание компиляции программы для в бассейн частности нир протокол поддерживает в бассейн для сколько это очень эффективный торги для
- 21:41
работы с для работы с контрактами то нам необходимо его установить в частности это осуществляет и такой программы просто таргет it was a на 32 почему она на новом потому что в действительности базовый таркетт у нас вас в 32 это softorbits которого в принципе могут быть но они неизвестны потому что для вас матрицы 2 это не актуально поэтому у него такое составе на своеобразное название и после того как вы его установили
- 22:22
я рекомендую вам посмотреть вообще какие-то орбиты у вас установлен они у вас будут установлены частности эта команда таргет и так секунду тогда папа роста по еще что могу сказать в любой силой команде выгод для получения помощи всегда можете вводить команду help а просто по примеру help или 1 таб таргет рубила таки два минуса help и вы можете получить список аргументов которые есть на данный команд это стандартная практика фактически для всех unix подобных команд
- 23:13
то есть я бы сказал что здесь транспортно поддерживается posix так что если вы хотите узнать какие есть дополнительные параметры то всегда можно использовать аргумент help of он вам однозначно поможет и теперь мы перейдем к тому как создавать проект и какие типы вообще проекта существуют в данном случае уже работа идет через инструмент который называется через приложение которое называется карба и карба поддерживает
- 24:04
несколько типов приложений я бы так сказал первый тип это исполнимо и приложение под исполненном подразумевается что его можно запустить я новый даст некоторый результат есть библиотеки а значение библиотека это в первую очередь их при использовании но такой интересный нюанс поскольку у вас в 32 приложения она фактически то является библиотекой то именно в данном случае мы позже к этому вернемся она не является
- 24:43
исполнение программы поскольку это его спецификой но чтобы вы знали существует два типа проектов для это исполнимы и приложение или баннеры и библиотека для того чтобы создать исполнимы проложения достаточно там где вы хотите создать это приложение вести как new ну и соответственно имя приложение в нашем случае the first и у вас будет создана под директория соответствующая и для создания библиотеки
- 25:26
та же самая команда top class тоже с аргументом либо лампе и эта команда сделают она вам приручили генерирует код минимальный достаточное для того чтобы ваша программа сразу заработало собралась и заиграл яркими красками это случится сразу же и мы посмотрим что в результате у нас получилось и как вот у нас в целом выглядит сгенерированный код в данном случае это три которая показывает дерево файла потро показывает что у нас
- 26:08
получилось так для приложения мы имеем корневой директории файл карба твой мы-то ему это стандарт расширения и частности это способ конфигурирования файлов и директорий а сердце source для исполняемых приложения у нас соответственно будет файл main rs для библиотек липовец это важно просто запомни это не значит что она бренд всегда так будет выглядеть потому что у раз можно всего под свои нужды но в общем случае это
- 26:53
именно давайте посмотрим что из себя представляет само приложение которое нам сгенерировала в частности плавал это достаточно простая функция и для исполненного приложения всегда должна быть точка входа эта точка входа функция main и дальше мы уже видим макрос pride line почему макрос потому что макросы объявляются через imacros может принимать разного рода параметр почему оно написано таким образом в частности сгенерировано потому что макрос
- 27:40
достаточно комплексная штука и она облегчает написание комплексных вызовов для и в частности макро спринт ализаде что же мы получили для библиотеки здесь у нас по факту тестовый набор то есть у нас не сгенерировано какая-то функция поскольку естественно генераторы не знаю она функция нужно но у нас уже есть готовый тест который можно запустить и в данном случае это тест который всего-навсего
- 28:19
проверяет что происходит правит правильно суммирование с одной стороны вроде кажется что это не нужно но 1 на вам автоматически создаст файл а второе у вас уже будет скрыто некоторые заготовка под тесте который вы сразу же можете писать по мере написания теперь давайте разберемся что из себя представляет разборка проекта как я перед этим говорит что управление приложения осуществляется с использованием приложения парка
- 28:59
инструменты и даже тосковал то и для того чтобы собрать в той директории который вы сгенерировали вам необходимо ввести команду это команда отвечает за то чтобы произвести сборку приложения и я остановлюсь на добавилась и какие типы сборок существует когда я говорю сборка то под этим подразумевается компиляция но на самом деле компиляции это достаточно сложный процесс который подразумевает я имею в контексте именно
- 29:32
кадры который подразумевает компиляцию by блики компиляцию разного рода макросов скачивание зависимости связку из ту часть которую вы примеру все делаете ручками полностью это автоматизирует и большинстве случаев вам об этом никогда не нужно задумываться что он там делает это очень удобно поверьте так же его можно запустить картера для исполняла приложения у нас будет соответственно
- 30:20
выведен футбол для библиотеки всего-навсего соберется поскольку она не может быть исполнено также под какими типами сборки есть чем она отличается от дебаф гости по умолчанию тем что в дебаг версия к петру на догадаться попадает достаточно много информации для отладки и в процессе разработки это очень полезно а вот если вам уже необходимо собрать релизную версию где отладочной
- 30:57
информации не нужно я надеюсь что вы не будете в продавший добавь версию то соответственно она собирается с параметром калган когда pilt релиз и у вас на мини про может возникнуть вопрос где же в общем-то исполнимый файл потому что они в корневой директории и для этих задач существует директория таргет и это директория себе содержит торги ты для текстов которые у вас есть нашему самом простом случае это будет debug и release
- 31:36
но если вы будете билде под в другие таргет это в первую очередь примеру там будет идти у вас сам примеру а потом уже для соответствующего таргета будет поделили поддиректории ты пока лист ну и так далее если вы хотите посмотреть где она находится соответственно для исполняемого приложения это будет дпк feels that i для релизной версии это будет то же самое касается и библиотеки
- 32:20
и давайте теперь разберемся какие у нас вообще есть базовые команды к действительности всю эту информацию можно получить через команду картофель как я вам перед этим говорил что если у вас есть консольная команда в том или ином случае она фактически всегда поддерживать аргумент hell и если вы не знаете что делать водить ее если вы не нашли там the internet наше все он вам поможет и
- 32:59
примера можно ввести какие параметры увидите что в частности там в том числе есть возможность указания релизной версии и многих других параметров я на них не буду останавливаться поскольку на данный момент они вам могут пригодиться в будущем для каких-то специфических задач просто обратить на это внимание и так какие в целом у карга есть команды коробки соответственно осуществляет build проекта полной его сборку картера осуществляет запуск для
- 33:45
исполнения приложений очень полезная команда каркать тест она запускает теста как мы уже увидели для библиотеки на были автоматически сгенерированным и мы с помощью arcade с можем мы запустим и они не без некоторого энтузиаста нам покажут что они работают более того успешно и следующей командой так арка перейти что делает клипе это по сути дела очень правильный торента а вот позволить вам насколько это вообще возможно поскольку он не обладает
- 34:30
интеллекта помочь вам в разрешении простейших задач которые можно было бы упростить и я бы рекомендовал им регулярно пользоваться поскольку в раз он очень продвинутым примеру и вместо того чтобы постоянно вызывать парга pilt вы если у вас не очень сильно большой проект вы можете запускать каргу крепи и он будет проверять чаш вы там написали и всяческом в этом помогали у него и как его в других команд есть множество параметров
- 35:18
я надеюсь что самостоятельно с ними познакомитесь с форматирование кода просто реализован на собственное форматирование кода то есть вы наверное в курсе что есть такая проблема как правильно форматировать код разных языках программирования и это плодотворная почва для самого разного рода фли варов флот и мордобое но в данном случае чтобы сберечь жизнь программистов вели команду которая все эти задачи решает себя и после того как вы написали код вы запускаете эту команду для того
- 36:11
самостоятельно отформатировать код 99 процентах случаев это будет корректно более того имеется виду что код будет корректно я имею форматирования более того есть очень гибкая настройка форматирование через специализированные параметр ему эту тему не будем вдаваться но есть примеру стой командир который бы работать и специфические требования по форматированию иногда такое бывает примеру когда вы используете очень
- 36:47
длинные зависимости и они там выходят за пределы экрана но пришли нечитабельны через форматирование это все можно сделать и очень красиво оформить и самое главное над этим вообще не париться то есть вы можете написать как вы хотите отформатировать под вы получите необходимый результат команда карга чьи это очень классная штука для больших проектов примеру вас проект может собираться в силу разных специфик очень
- 37:25
долго под очень долго ну к примеру три минуты и вам нужно это сделать быстро карточек позволит вам это сделать он существенно убыстряет этот процесс хотя справедливости ради с тем что я сталкивался приятном железяки которая не калькулятор карба билось в принципе работает тоже весьма приемлема не то чтобы как бы наверно но все-таки весьма быстро потому что раньше это было и так весело на самом деле поэтому карга чек когда у вас происходит
- 38:14
длительная сборка он вам прямо таки может очень сильно помочь очень рекомендую карба band соответственно запускает punch man was marked с то есть batch марки у каждого из этих помад есть соответствующий параметр давайте разберемся с настройкой как я до этого говорил есть ключевой файл который находится в корневой директории вашего проекта это корр к твоему дому это соответствующий формат написание
- 38:58
конфигурация примеру вы знаете про и не прочь из он вот власти решили использовать его ключевая секция в этом это покачи и в ней есть некоторые обязательные параметры которые должны быть частности это название проекта и его версия ну здесь я добавил некоторые дополнительные параметры частности нет автор тоже является обязательным параметром дискрипшн насколько я помню не обязательно лицензия репозитории а вот эдишен
- 39:38
параметр обязательно что такое кадиш у раз то есть несколько условных пап развития вот появился в 2015 году есть эдишен который называется 2015 и он поддерживался то-то до середины в 2018 года и потом или обновление которое существенно упрощают разработку и соответственно вы можете напрямую вернее можете нужно напрямую указывать какую именно вы используете насколько я знаю в этом году в конце года начале следующего года появится
- 40:26
раз 2021 идише ну или может вы как ты то другого назовут но он активно готовится к жизни так же по поводу настройки проекта важно понимать что он разделяется на секции здесь мы посмотрим как себя выглядит секция она имеет название частности 5 еще она расположена парад попков скобках и все что за ниже находится это является атрибутами этой секции для того чтобы у вас было понимание
- 41:08
куда посмотреть есть ли более детальную документация и частности здесь есть ссылка я думаю потом вы сможете по ней перейти но в целом если вы хотите ознакомиться с документацией простого это адрес dog was the end . частость для карповых with a stage парка там достаточно много документации и есть возможность неплохо провести вечер и важно понимать что подготовилась до должен быть любой директории проекта по сути дела он является неким манифестом который указывает пополам
- 41:57
секция депо intense как нетрудно догадаться это секция отвечает за зависимости которые можно использовать некоторых случаях нужно потому что многие задачи которые вы решаете в той или иной степени какая-то их часть может быть решена и как я говорил про принцесс а его сайт вы можете найти соответственно соответствующий crate или говоря человеческим языком библиотеку и подключить ее в аппендиксе важно
- 42:37
понимать что зависимости порой это весьма нетривиальная задача у одной зависимостью может быть другая зависимость зависимость можно я зависимость и и [музыка] это иногда может быть весьма сложно и здесь вот я вам специально кричит какие есть примеры поскольку на мой взгляд это один из лучших инструментов для управления пакетами и как я раньше говорил это поставит кабал если кто-нибудь из вас пользовался вы знаете какой то ужас и
- 43:24
кошмар комод если кто-то из вас записал могу и со мной не согласен я дам описал достаточно много и в курсе что он конечно прекрасен но многие вещи которые необходимы и обязательно нем нету слова совсем и примеру диапазон версии к примеру всякого разного рода загара и так далее я не буду сильно углубляться подробности просто поверьте мне наслово по канту утер знаю кто нибудь пользовался с вами
- 44:03
или нет дремучая штука но она тоже очень веселая и очень странно на самом деле и другие и множество других примеров потому что если вы постараетесь вы тоже свои можете придумать но важным моментом здесь является что что разработчики роста постарались решить большинство проблем которые есть в индустрии связанные с управлением проект проектом смотрим он там пакетов зависимости гибкой конфигурации естественно что он не едят ему есть куда
- 44:42
расти но он прекрасен и так давайте опять же таки по зависимостям какие есть базовые возможности это контроль версий пакетов их диапазона сложный критерию приворотом его можно указывать через звездочку через эти льда на причем множество вариантов какие именно версии и как использовать для конкретной зависимости карпа уме это корректно и эффективно решать вопрос зависимости вложенных
- 45:32
зависимости в особенности с последним обновлением которое было если не ошибаюсь мая там вышел разврата размеров второй версии который умеет это делать крайне легато то есть на данный момент еще стал лучше также есть возможность указания конкретных источников примеру если у вас есть какая-то своя собственная разработка и она находится примеру по адресу совершенно экзотического вы его можете напрямую у указать как соответствующий источник
- 46:18
но в целом пакета предполагается что находится на краю вы так же спокойно можете указывать источник гитхаба beetle оба пакета и другие гибкого управления тенденции сейчас профи чист мы поговорим сегодня подробнее я поэтому я сейчас не буду останавливаться на этом имеет возможность тонкой настройки для каждой зависимости в данном случае тонкая настройка то размывается то что каждую зависимость можно вынести в отдельную
- 46:58
секцию этих квадратных скобочках и для нее там уже на бросать свои соответствующие параметры для конфигурации и одна из увлекательных экране полезных секций которые есть фрости это то есть это зависимости которые до разработки что под этим подразумевается примеру вы хотите зависимость которая будет использоваться только в теста и соответственно этот раздел он для вас потому что согласитесь зачем в
- 47:38
зависимости которая не используется protection версия с одной стороны с другой стороны они там не нужно и это очень очень полезная продуманная штука и давайте рассмотрим простейший пример зависимости как в эта секция можно поместить поверх в пределах этого курса очень понадобится для написания smart контрактов и здесь мы объявляем это не раз детей и соответственно мы указываем его версия как обрабатывается версия очень детально не буду вдаваться
- 48:26
поскольку на самом деле я сказал что это отдельная тема в данном случае к примеру если выйдет версия 315 его обновить и своей библиотеке то у вас автоматически эта зависимость обновиться также зависимость под стандартный контракт они тоже такой же версии и пакет hex под секс что из себя представляет сейчас это специальный механизм тонкого управления частями проекта и зависимости зависимости эти
- 49:15
этот параметр можно использовать в том числе и для указания зависимости и вот в частности пример когда мы используем библиотеку сердце то есть здесь мы посмотрим на предыдущий пример здесь у нас достаточно простой простейший пример как мы используем версия всего на свою версию здесь же мы напрямую указываем параметры версии и такие сейчас может быть это сейчас не очень очевидно что это такое но это сейчас это механизм для управления самой библиотекой
- 49:59
мы сегодня очень кратко но в общих чертах посмотрим что это такое и я надеюсь убедимся что это очень полезная нужная штука то есть через эти параметры мы можем управлять такие какая часть функционала из библиотеки может быть использована но нужно а какая часть примерно мне нужно частности вот дефолт фьючерсу нас фолз соответственно мы напрямую говорим компилятору что нам не нужны дефолтные
- 50:32
библиотеки который встроен в hex и это очень полезно частности это влияет объем файла первую очередь я бы рекомендовал когда вы используете библиотеки ознакамливаться с тем какие фичу у него есть и не лениться использовать есть также концепция space очень детально я в нее тоже не буду вдаваться я здесь для вас позову ссылочку она тоже такой находится в документации ток 1 плент карта секции
- 51:17
но в общих чертах верстается решает задачу разделения проекта под проекта сути дела нет нет никита kis от зависимости то есть когда у вас большой комплексный проект это крайне упрощает для команды разработки и такой простейший пример у нас есть секция gps и в указанном омс в данном случае пример и погнал нас есть библии никого это например там находится этот по самым бродил в данном случае это библиотеку которую мы сгенерировали и их может бесконечном количестве на
- 51:59
самом деле что это да и что это дает это дает возможность разделения проекта наладить в те структурные единицы поддержания их независимо фактически друг от друга но вместе с тем они сущности зачем же все-таки нужны сейчас я вам обещал что мы к этому вернемся и как я до этого говорил это гибкого управления года мы можем указывать что в коде и как мы можем использовать в первую очередь
- 52:42
это определяется через конфигурационный файл carver то ему и для этого существует специальная секция сейчас и здесь мы указываем какие фичу нас есть есть важные параметры под названием дефолт это значит что они по умолчанию будут у вас включены фактически это некие такие мета методы определения которые показывают что это фича примера включена и также она может использовать сад фичи ну вот к примеру у нас контракт может
- 53:25
использовать фичу engine std может использовать engine и дефолт может использовать ты че сша 2 и в данном случае мы через такую древовидную структуру описываем конфигурирование этих параметров и давайте посмотрим в кратком виде как как имя можно применим применим в данном случае это атрибуты для тестирования и как мы видим есть атрибут кфг конфигурация и именно данном случае это не является непосредственно
- 54:09
фичи но мы видим здесь как происходит работа с атрибутами то есть если вы хотите пример написать как он был тест он определяется ему таким образом для начала нужно определить секцию ктг тест и для тестовой функции соответствующий атрибут опознать это у нас сгенерированным файле для библиотеки по умолчанию а вот как это выглядит в ходе пример у нас есть некоторая функция заносом форчун и у нас есть вывод бога
- 54:50
куда-нибудь в данном случае это из не без детей салон и предположим что мы через конфигурацию который мы сделали вот здесь вот пример вот видите здесь есть блок если эта фича 1 показана и 2 подключена что-то подразумевается подключена это значит что когда мы делаем сборку через каркать build мы эту фичу можем указать в явном виде что мы используем если же мы хотим чтобы она была по
- 55:28
дефолту то соответственно мы указываем дефолт но при сборке мы ее можем напрямую классов и если это фича включена соответственно наша программа сбил диса с этим сообщением logo а вот если оно не включено соответственно ничего не будете когда вы вызовете эту функцию более чем очевидно что бог ничего не будет записана и так что же ты делал и что позволяет это гибкое управление участками кода это не только
- 56:03
[музыка] прямо сейчас видим но также это может быть целая функция это может быть целый файл целый модуль также это позволяет настройка управления сборкой пределов всего проекта я вам перед этим показал включение выключение функции путем конфигурирования в частности в примере которые выше указан это явно видно и опять же таки это очень удобно можно собирать через силой команды использованием у нас как параметр
- 56:42
аргумента можем указать нужную фичу это очень полезная штука для гибкой настройки проекта и у частей и в том числе то по очень гибкого управления проектами возможно на первых порах это вам не нужно но будущем хотя будет очень полезно чтобы давайте разберёмся с тем что такое модуль поскольку для проекта это является одной из 20 сущности и прости если абстрагироваться каждый раз файл просто файл по сути является
- 57:24
модулем и модули они являются атомарные не фактически изомеров сущностями что решает множество множество задач связаны в том что с зависимостями пределах внутри самого проекта также модули можно создавать и модулей и для этого существует специализированное слова моды моды мода модель название модуля и дальше уже идут функции и соответственно их уже можно вызывать и один из таких важных нюансов которые
- 58:05
вы будете постоянно использовать это доступ модерам модулем crate с 30 это как пакет модулей библиотека которая объединена осуществляется это через ключевое слово you is и такое немного непривычные синтаксис как вы видите пример из детей это название открыто которые мы за любите позиции и обычно синтаксис потому что потом идет двойное двоеточие и дальше мы указываем модуль примеру в частности это в этом
- 58:54
пакете это будет но на самом деле все может быть намного сложнее потому что эти все параметры они настраиваем степень видимости степень невидимость это достаточно такая комплексная тема сейчас мы мы ее не будем касаться но в общих чертах надо стать достаточно просто есть публичные функции и типа и к ним можно получить доступ через соответствующие объявления о частности больше сериала
- 59:37
девайс это является доступ к определением для функций когда мы указываем звездочка соответственно мы используем все функции или методы которые находятся в этом модуле так в частности вот сердце чтобы вы знали о он отвечает для сериализации специализации для нет борщ или зато ради сори за то соответственно решает задачи связанные с реализацией смарт-контракты это стандартный инструмент и давайте
- 1:00:16
попробуем настроить наш первый смарт комфорт для неё и для этого необходимо в консоли вести такую помаду карканье и соответственно название проекта нашем случае тонио смартфон он создаст нам новую директорию мы не приходим и вот что из себя представляет по умолчанию сбереги сгенерированный файл по умолчанию и давайте посмотрим как нам о сконфигурировать название проекта версия с этим все понятно и здесь важно уже
- 1:01:02
нюансом является то что мы вводим новую секцию под названием детальное вдаваться в подробности что это значит и какие типы бывают я не буду я так сказал ей достаточно много но в данном случае практически для всех smart контрактов на нерв мы используем соответствующие сидя или early это фактически является стандартным то есть свой всегда может переиспользовать и дальше у нас идет секция profile и темы русского указываем
- 1:01:37
profile именно для релизной вес и как вы видите секция можно через с точкой делать определение для определенных под параметров каждая из этих параметров я сейчас не буду вдаваться они достаточно специфические низкоуровневые но поверьте мне на слово будет просто напросто можете скопировать для релизной версии и вставили то данный момент что они решают они оптимизировать максимально профайлер для сборки smart
- 1:02:07
контракта под именно такие оппозиционные момент дальше у нас идут соответствующие детей и также специально показал как определять данном случае мы используем симулятор да не раз таки эти все параметры вам так или иначе понадобится пределов этого хочется для написания смартфон актов на нет поэтому не рекомендую игнорировать они вам пригодятся давайте посмотрим что из себя представляет файл и фактически это будет наша программа и
- 1:03:03
я вам расскажу за что отвечает каждый из строк частности как вы видите мы используем здесь стерилизатор больше и 10 реализатор параметров отвечает за то что мы напрямую можем обращаться к этой зависимости и так же мы используем не из детей зависимости информант нейро паники и так далее и далее у нас есть атрибут не рыба энгин я очень детально не буду вдаваться что он делает по факту это макроопределения которое под капотом позволяет через
- 1:03:47
описание структуры фактически множество функций который касается smart контракта сгенерировать автоматически то есть вам за вас делает всю грязную работу это очень полезная функция и она является по стандартам и при написании с марком факта для нет она является такой очень полезно и необходимо и также как вы видите мы подключаем зависимость избирают для реализации и для доходных значения эти все параметры являются smart контракта на них это важно
- 1:04:28
понимать те параметры которые вы хотите использовать для других программ они соответственно естественным образом будут другими и здесь также мы описываем самую простейшую структуру она без параметров не ничего нет но я достаточно для того чтобы мы пошли дальше и написали нашу первую функцию для смарт-контракты как вы видите здесь мы уже делаем определение функции до самого smart контракта я сейчас детально не буду вдаваться в подробности что из себя
- 1:05:11
представляет и пол что из себя представляют папку попавшим это отдельная тема поверьте мы это все рассмотрим но если говорить вкратце то практически ее можно сравнить с неким таким описанием класса который в себе содержит функции это если говорить очень просто с ним плата intel винтаж онер банки атрибут он опять же таки на себя берет задачу решение низкого уровня проблем который касается непосредственно
- 1:05:46
смарт-контракты номера здесь у нас простейшая функция которая всего-навсего вызывает она пишет зло что такое лбом общением это достаточно такая интересная тема это не значит что он будет выведен консоль это все сложнее и об этом я буду рассказывать мы с кириллом будем рассказывать части посвящена не это более комплексная штука чем может показаться но в данном случае она делает очень простую операцию она транзакция запишет
- 1:06:31
сообщение в принципе неплохо это смартфон и давайте посмотрим как мы можем это все дело построить для начала нам необходимо будет tarkett у вас матрицы 2 который мы передадим устанавлива но на всякий случай я здесь эту команду продублируем поскольку без нее мы не сможем сделать сборку и под в бассейн для и дальше у нас идет команда для соответствующей порки я попробую немного и и прокомментировать поскольку она может выглядеть
- 1:07:12
с одной стороны не очевидно а с другой стороны даже страшно значит на всякий случай если вы видите вначале команды доллар это не более чем знаете когда контрольной команде баш вы видите доллар соответственно это значит что вы находитесь под пользователям и дальше вы можете вводить команды то есть когда вы из этих примеров валите команды вам дала мне нужно но на самом деле будьте осторожны потому что еще может быть расчет я знаю что вы находитесь под рутом действительности под рутом учи ничего не делать свои
- 1:07:50
кроме задач которые касаются администрирования и делать это всегда под пользователя поэтому когда я указываю доллар это напрямую указывает что мы работаем под пользователям не подруг и в данном случае когда мы описываем браться раз flags то это всего-навсего параметры для линковки если вы работали с линков коми детей этому с некоторыми вещами вы знакомы на в данном случае специальный параметр
- 1:08:22
только для в бассейн для причем скорее всего больше больше по дни подходят поскольку специфические требования клинков щека просто-напросто запомните это виде будет счастье и дальше для карта пьют мы указываем напрямую попыток используем это вас матрицы 2 и то что это релизная версия все достаточно просто и после этого мы проверяем где в общем то наш свежеиспеченный smart на drag the police
- 1:08:55
если обратите внимание он находится по пути таргет басма 3200 из мест на контракт вас то есть как я и говорил раньше он находится в соответствующем соответствующий таргет директории и важный такой нюанс сейчас с этим файлом фактически вы ничего не сможете сделать поскольку его необходимо ты полуить нет потом эти транзакции нужно вызывать но на данный момент самое главное это то
- 1:09:34
что программа скомпилировалось успешно без ошибок это самое главное с тем как сделать диплом мы будем разбираться в соответствующем разделе посвященном нир протокол витязь и нюансы внимательно посмотрим и давайте наверное придём ещё приключение паспарту потому некоторые затонули какие темы мы сегодня прошли установка роста создание проектов и какие существуют типы проектов общей концепции управления
- 1:10:14
проектом первое программа успешно и нами было написано но мы очень старались сборка проекта настройка проекта внешней библиотеки creed садил параметры карта и такой более комплексный пример в частности смарт-контракты нанес какие материалы по теме есть в первую очередь это карпук и после этого занятия я рекомендую полазить читать его поверьте это очень полезно более того я очень рекомендую вам не только почитать но и попробовать
- 1:11:07
консольки как она там какой жизни она живет еще один полезный ресурс я не думаю что он прямо сейчас вам очень нужен но закладки добавьте это бит бокс при желании конечно вы его можете полистать если нет желаний и листайте принципе если нет желают соответственно можно ничего не считать но на данный момент одной из очень полезных книг после этого занятия будет имя на карту я думаю что на этом мы можем постепенно завершать и
- 1:11:56
переходить к вашему вопросу нир украинская компания не поверите мы нет нет нет находится в калифорнии и [музыка] создана выходцами из google microsoft и там на самом деле чемпионы мира олимпиад ники светлого губу всего мира собрались перехожу в секцию очень так visual studio нужно ставить перед установкой роста пишет на на сайте под
- 1:12:59
windows что нужно windows смотрите какая чтобы я под подведут лично я работал ли на таксиста это решает ряд некоторых проблем поскольку там примеру можно установить любимого вашего linux систему если вы конечно не работали и множество проблем фактически фактически как потребность сам можете не работать какие непосредственно действия нужны под windows если вы работаете под фавор шилом большому сожалению я не пробовал
- 1:13:49
каюсь но надеюсь вы сможете разобраться так так у вас компании из проекты не связанные с скептика раньше сна которые могут рассматривать запусти этим я не знаю про какую компанию говорите если вы говорите profile labs это наверное один вопрос если вы говорите про ньер это второй вопрос здесь и говорите про вову labs это третий вопрос давайте я попробую ответить за files есть достаточно потому
- 1:14:35
что 1 не только отвечает на вопросы связанные с блокчейном но если касаться именно блокчейна то есть про проекты посвященные tefal это очень такое модное направление есть проекты посвященная и нефти токена прошли достаточно новое направление поэтому есть есть так web assembly что такое двух словах выбросим бля фактически является ассемблером под в я постараюсь сказать максимально простыми словами но если я где-то буду усложнять
- 1:15:32
вы уж меня извините что он позволяет делать это фактически байт-код которые можно исполнять виртуальной машины практически любой пример или свою мы рассмотрим джаву то он фактически тоже исполняется под виртуальной машины java джи-ви вы оба сэмплер у исполняется также только он может исполняться много где в первую очередь стандарт создавался для в он непосредственно в вашем браузере может исполняться на данный момент все современные браузеры его поддерживаю и
- 1:16:12
это его было перевезено значение сейчас же в бассейн для перекочевал множество сфер и в том числе в частности это блокчейн поскольку его можно запускать под виртуальной машины и поскольку это написано на расцвету это будет работать очень быстро и так зал приемлемо и второе это то что он обладает очень широким спектром возможности существенно большем чем примеру те же самые виртуальная машина под эфир и
- 1:16:53
соответственно на нем можно писать программы которые будут исполняться фактически независимости от канвы армен то непонятно зачем нужна фича я бы сказал что эта тема advance ничего страшного это какой-нибудь пример например я вроде бы показал опять же таки на данный момент фичи вам особо не нужны я специально фичи показал достаточно таком приблизительно виде но достаточно для того чтобы использовать думаю что
- 1:17:43
ближайшее время фича вы использовать не будете но когда вы будете больше углубляться в ванну они могут понадобиться и если говорить в двух словах зачем нужны для гибкого управления проектом и частями пода если [музыка] для вас они являются чем-то сложным и непостижимым это абсолютно нормально и я пока чистки повторюсь что ближайшее время они вам не понадобятся но невзирая на то что может быть они не сильно нужны они о них нужно знать
- 1:18:37
конечно я не прочитал вопрос для проката свои модули языки и подключаются опять же таки поскольку мы используем управление проекта как я сегодня рассказывал у нас есть возможность использования любого типа 3 в том числе и саб street поэтому конечно же как вы знаете состоит написан на расти поэтому ни малейших проблем нету все эти муки какие отличные основные отличия басом и ппф есть либо сам аналоги пфр fire
- 1:19:20
которая обеспечивается программа [музыка] закончится я не знаю да купит ее в ссоре что да я в жизни должен не знаю так еще вопросы если вы мишка от скажите что такое baby flex fire можете смогу ответить максим но увы
- 1:20:32
так и ппф виртуальному члены изначально появилась блинам сверля dre используется также для smart контрактов с аланом смотрите я все таки считаю что это совершенно разная концепция стандарт небо сэмпле он решает один спектр задач то есть в первую очередь в бсмп создавался для интеграции с sv30 и [музыка] соответствующая организация если не ошибается добавим сиси она занимается стандартизацией и документированием
- 1:21:28
стандартно и фактически это очень просто простой инструмент да очень простой доску для генерации байт-кода и за счет своей простоты он позволяет реализацию достаточно эффективных и простых виртуальных машин и очень важно понимать что эти виртуальные машины могут быть написаны на чем угодно вот java скрипта для вы оба до роста примеру для запуска нативные программы ибо еще один аспект что это может использоваться в том числе и под л.м. здесь могут
- 1:22:19
использоваться оптимизаторы самого разного толка и очень важно понимать что чем проще и продуманнее структура генерации поить кода тем эффективнее и быстрее он будет выполняться и одновременно они разработали такой стандарт как под названием вася я не буду очень сильно отзываться чтобы остальные не заскучали но основная суть заключается в том что в этом стандарте предусмотрено с одной стороны гибкость и комплекса с другой стороны максимальная простота которая решает задачу скорость
- 1:22:57
выполнения и надежность ну по поводу солоны ничего не могу ответить надеюсь что я ответил на ваш вопрос так еще есть вопросы у вас немного подождем да следующая тема на всякий случай это структура и nanso control и так далее то есть мы уже пойдем больше сам язык
- 1:24:02
поскольку сегодня мы взяли очень начального базового и очень важная тема под названием управление проектом потому что как вы понимаете без понимание того как работать с проектом я хочу установить раз потому что далеко не всегда это очевидно как собрать проект как его гибко настроить какие типы бывают то есть это та тема без которой мы дальше двигаться не могли и дальше уже сможем погрузиться более глубокое понимание того что да повара
- 1:24:53
что-то мешает написать бесконечному циклу навасом и за тепло и в виде смарт-контракты чтобы повесить другие но by axel ответ очевиден газ если вы сможете да пока ответили александр катков [музыка] смотрите для вы можете запустить бесконечный цикл вам ничего не мешает рука вам придется заплатить свои собственные деньги никаких проблем следующий вопрос если intel и джея идею ставить раз там нельзя актов и
- 1:25:52
хотя это не библиотека если летяги говорим это сша получение которого устанавливать конфигурация смотрите у вас он будет находиться кода форму руки и фактически вы там у вы можете выбрать насколько я помню там есть возможность том числе управления этим я лично никогда этого не делал я использовал стандартные но если прогрев говорить про эту детей и то и насколько помню там есть возможность вручную этим управлять
- 1:26:34
я вам рекомендовал celine использовать больше потому что там более продвинуты дебаггер есть и это может оказаться по приятным если какой-то репозитории с примерами кода с лекций например шаблон проект smart контрактов с а сегодня лекции хороший вопрос давайте так я его создам и вам разошлю дома это будет оптимально или там скинуться скинут в telegram думаю то будет оптимально [аплодисменты]
- 1:27:27
так у нас за есть ещё 4 минуты если есть какие-нибудь вопросы задавайте будет ли практика будет ok тогда я полагаю что вопроса больше нету желаю всем продуктивно окончании неделя победе нашей сборной надо англии и хороших выходных всем
- 1:28:34
спасибо