Язык RUST для высоконагруженного сетевого сервиса - быстрый старт [ru] / Александр Сербул

  Рет қаралды 15,502

fwdays

fwdays

3 жыл бұрын

Видео с онлайн-конференции Highload fwdays'20, которая прошла 24 октября 2020 года.
Описание доклада:
В докладе рассказывается об эволюции разработки высоконагруженного сетевого кластера отправки пуш-сообщений с использованием технологий от unix / bash и PHP до асихнронных неблокируемых многопоточных соединений на базе Rust / Tokio. Говорят о тонкостях разработки на Rust, особенностях языка, подводных камнях и способах быстрого изучения и использования веб-разработчиками навыками LAMP. Говорят также о Go, Java и причины принятых технологических решений.
Доклад полезный для разработчиков, желающих освоить новый и популярный язык программирования Rust, функциональное программирование, идеи Haskell, которые имеют опыт веб-разработки на PHP / Python / JavaScript.
Таймкоды:
03:42 Как всё начиналось в ІТ?
06:36 Современный код. Управление сложностью
09:25 Haskell: “Quicksort”
10:27 Чем все закончилось?
11:31 Войны технологий - усугубляют сложность
13:01 «Шовинизм» в программировании
13:34 Выразительность языков программирования
15:20 Выразительность в Rust
18:51 Управление памятью в Rust
20:22 Как быстро понять Rust и его сравнение с другими ЯП
22:19 Как набить руку в Rust?
25:08 Начало работы с Rust
28:47 “Плюшки” в Rust
29:24 Как мы развивали архитектуру проекта: от bash-forks до rust/tokio
47:45 Итоги
49:36 Q&A
Страница доклада:
fwdays.com/event/highload-fwd...
Больше докладов и видео по теме конференции:
fwdays.com/event/highload-fwd...
Fwdays более 10 лет занимается организацией масштабных конференций для разработчиков таких направлений: JavaScript, .Net, Python, Data Science, PHP, QA, Highload, Architecture, DevOps, Databases.
Больше информации про актуальные события:
fwdays.com/events
Подписывайтесь, чтобы первыми узнавать про старт продаж билетов по самой выгодной цене:
Facebook: / fwdays
Twitter: / hlfwdaysconf
Telegram: t.me/highload_fwdays

Пікірлер: 96
@VladimirEmelyanov
@VladimirEmelyanov 2 жыл бұрын
Самый грамотный доклад о текущем состоянии IT , который я видел. Спасибо большое автору!
@hamestet
@hamestet 2 жыл бұрын
Вот как раз передать энергию изучать и использовать язык вам, Александр, удалось. Спасибо за мотивацию!
@dractw
@dractw 2 жыл бұрын
Первый доклад в моей жизни, который нужно смотреть на скорости 0.75
@user-yx5mv2lz7k
@user-yx5mv2lz7k 2 жыл бұрын
я смотрел на 1.5 - круто
@_boolive_
@_boolive_ Жыл бұрын
Да, на 1.75 переполнение мозга)
@maksimsergeevich5939
@maksimsergeevich5939 Жыл бұрын
И еще рюмаху налить, чтобы в одну волну попасть с вещающим
@mpenzin
@mpenzin 3 жыл бұрын
Саша Сербул - это всегда буря эмоций и мощный поток сознания! :)
@VonBismarkOtto
@VonBismarkOtto 3 жыл бұрын
Причем что важно - бессвязного сознания
@aeuonep
@aeuonep 5 ай бұрын
@@VonBismarkOtto бессвязность видит тут тот кто не в теме
@VonBismarkOtto
@VonBismarkOtto 5 ай бұрын
@@aeuonep у вас в Педерации все что ли лишнехромосомные? Два года спустя вы решили что-то прокомментировать. Да еще решили что тот, кого вы комментируете, не в теме.
@alexandergaiwer9804
@alexandergaiwer9804 3 жыл бұрын
Круто, что показали реальный боевой пример использования Rust.
@maksimgridin9322
@maksimgridin9322 2 жыл бұрын
Давно слышу про RUST хорошие отзывы, но после такого зажигательного доклада, я просто обязан его выучить! ))
@user-no5wx1re3u
@user-no5wx1re3u 2 жыл бұрын
Просмотрел на одном дыхании. Потрясающий доклад
@vlamai
@vlamai 3 жыл бұрын
Вот все бы рассказывали с таким энтузиазмом
@crewmerrick4840
@crewmerrick4840 3 жыл бұрын
i know I'm pretty randomly asking but do anyone know of a good website to stream newly released movies online?
@GraxS
@GraxS 2 жыл бұрын
@@demetriuskeenan3916 Зарепортьте этих ботов
@exploring-ukulele
@exploring-ukulele 3 жыл бұрын
Наконец-то! Это топовый доклад ! Сразу видно человек с опытом.
@alexandergaiwer9804
@alexandergaiwer9804 3 жыл бұрын
Интересный доклад и много полезной информации! Rust рулит! Огромное спасибо за доклад)))
@user-ul2jc8ej2p
@user-ul2jc8ej2p 2 жыл бұрын
Спасибо. Реально классное сравнение без подлизываний. Крутой расказчик. С удовольствием посмотрел
@twentxx
@twentxx Жыл бұрын
Вот это доклад, во это заряд энергии! 🚀👍
@alexanonymous5823
@alexanonymous5823 2 жыл бұрын
большое спасибо за доклад. было очень интересно
@MakarenkoSasha
@MakarenkoSasha 2 жыл бұрын
Давно я так не ржал... камедиклаб, по сравнению с докладчиком, просто дети. Вообщем супер.. пошел раст изучать..а то я уже старый стал, а все как молодой на феррари езжу ))
@vyasab1490
@vyasab1490 Жыл бұрын
А какие лимиты вы увеличили, которые решили проблему падения на первом запуске?
@TheRussificator
@TheRussificator 2 жыл бұрын
Увлеченный дядька. Лайк.
@aset2335
@aset2335 3 жыл бұрын
Как услышал про косяки Фон Неймана сразу поставил лайк!
@alexanderdickson1679
@alexanderdickson1679 Жыл бұрын
Сербул, респект, отличные статьи на Хабре
@tkachukpavel442
@tkachukpavel442 2 жыл бұрын
Спасибо, ценно что показали реальный проект. А что скажете по поводу многопоточности? У меня есть проект который на nodejs который требует многопотоков, он у меня работает на тредах. Как с этим обстоят дела на Rust ?
@alexserbul
@alexserbul 2 жыл бұрын
В Rust прекрасно все с многопоточностью. Как раз для защиты от дедлоков и гонок и используются описываемые в докладе аффинные типы данных.
@user-nh4ik4vy7d
@user-nh4ik4vy7d 9 ай бұрын
точно и по делу.
@maksimsergeevich5939
@maksimsergeevich5939 Жыл бұрын
Если для rust сделают что-то типа флаттера, то это будет бомба. Не хватает на rust какого-нибудь prod-ready решения широкого спектра. Почему не сделают? Кому нужен этот dart без флаттера? Вложения в rust очень трудно окупить, поэтому на нем пишут в основном энтузиасты и любители системного хобби программирования. Хотя я вижу большой потенциал rust в том чтобы писать высоконагруженные сервера и микросервисы, особенно такие где идёт интенсивная математика с финансами или виртуальной валютой. Если сделать что-то типа флаттера, то еще можно будет писать крутые аппликейшены для мобилок, которые не падают и очень эффективно расходуют батарею. Плюсом от этого будет то, что на rust будет больше реальных сфер применения и вакансий, и тогда действительно может быть он захватит мир.
@Deletedeletedelete
@Deletedeletedelete 2 жыл бұрын
вижу название доклада: не выбирай язык програмирования пока не посмотришь этот доклад)
@Valerii_Pivovarov
@Valerii_Pivovarov 3 жыл бұрын
Александр, Вы занимаетесь очень хорошим делом. Искренне желаю Вам успеха. Я тоже пытался создать ПРОСТОЙ И ВНЯТНЫЙ язык программирования, но у меня очень много времени забирает ФИЗИКА, которую я тоже стараюсь излагать в ПРОСТОЙ И ВНЯТНОЙ форме, чтобы она была понятна и школьнику. Интересно, чем тогда доктор (академик) "физико-математики" будет отличаться от обычного школьника?
@MichaelPankov
@MichaelPankov 2 жыл бұрын
Честно говоря доклад странный. 95% разговора про сам язык - вещи которые уже сказали все. Про сервис 5% и в целом ситуация такая, что "повезло" просто переписать, не огрести проблем, и легко завести. В принципе, по объёму кода-то уже понятно, что сервис копеечный.
@ostrov11
@ostrov11 2 жыл бұрын
охх старый бомбит, высказался на публику )) респект
@GoRustDeveloper
@GoRustDeveloper 8 ай бұрын
Благодарю за доклад. Всегда интересно послушать мнение и опыт человека из нутри компании. Одно но, есть язык Go и нет языка Golang
@nanoqsh
@nanoqsh 7 ай бұрын
Golag
@Cre0w
@Cre0w Жыл бұрын
>Я так понял цель была снизить потребляемые ресурсы, следовательно вам нужно было выбрать язык со сборщиком мусора например go, на процессор нагрузки почти не будет. эти 3.5 Gb на Rust превратились бы в 50 mb на go резидентной памяти.
@mihailsafronov3599
@mihailsafronov3599 Жыл бұрын
Вот прямо 3.5 Gb сразу станут 50 mb волшебным образом ? Такое возможно при какой-то адовой фрагментации кучи, в реальной жизни даже представить такое не могу. Снизить потребляемые ресурсы - это не про языки со сборщиком мусора, они про упрощение разработки. Там как раз часто приходится использовать переиспользуемые пулы для снижения нагрузки на GC, если для go - подумайте для чего sync.Pool появился. Впрочем подобные вещи делаются и в C/C++/Rust (чтобы не дергать alloc).
@pavelsmirnov660
@pavelsmirnov660 6 ай бұрын
Вы видимо не совсем понимаете как работают языки со сборщиком мусора. Если нет утечек памяти, то go ВСЕГДА будет потреблять больше памяти чем rust. Потому что в rust удаление объектов из памяти четко определено во времени, а go должен в рантайме запускать сборку мусора, что очень накладно
@serhiizaitsev2702
@serhiizaitsev2702 3 жыл бұрын
Вау
@yaroslavkhmyljovskii3388
@yaroslavkhmyljovskii3388 3 жыл бұрын
Нету сборщика? Как rust работает с неблокирующими структурами для мультитредов?
@nanoqsh
@nanoqsh 3 жыл бұрын
Для этого можно использовать подсчёт ссылок, аналог в C++ std::shared_ptr, в Rust называется Arc (Atomically Reference Counted). Структуру, спрятанную за Arc, можно шарить между разными тредами. Когда количество ссылок становится нулевым, объект удаляется. Своего рода микро сборщик мусора для одного объекта.
@zxcq
@zxcq 2 жыл бұрын
Arc
@sfera888
@sfera888 6 ай бұрын
@@zxcq а зачем там RWLock? Arc же противоречит идее SharedState (где собсно и нужен RWLock), разве нет?
Жыл бұрын
Интересный чувак. Спасибо за толковый подоход
@user-jx4jb4of3c
@user-jx4jb4of3c 2 жыл бұрын
Есть суровый минус. Учил его 4 месяца пока начал хоть какой-то код выдавать
@KNBLAUT
@KNBLAUT 2 жыл бұрын
Какой-то код это какой? Можно за 4 месяца не написать что то сложное, но простое без проблем.
@user-eq3zy9tg1q
@user-eq3zy9tg1q 11 ай бұрын
Жесть духота😀
@radiopapus
@radiopapus Жыл бұрын
Это язык(nodejs) который отстал лет на 50 - noted
@user-vo7lo3bo4z
@user-vo7lo3bo4z 3 жыл бұрын
Все языки плохие - раст хороший :) Классика жанра
@user-gw8bx4pm2o
@user-gw8bx4pm2o 3 жыл бұрын
Фейспальм
@r2com641
@r2com641 2 ай бұрын
На расте сложно писать и он чисто не выгоден для разработки быстрой. Лучше Zig. А borrow checker не хляет если ты пишешь low level code и где все приходится включать в блок unsafe И макросы в расте не нужно было делать и они слишком сложны, comptime в Zig лучше
@cool-story-bob
@cool-story-bob Ай бұрын
Так он и не создавался для быстрой разработки, а для надёжного кода. Официально Zig младше Rust на несколько лет если брать ржавчину как язык, а не исследовательский проект. То есть, практически ровесники. Последний сегодня принят сообществом Linux, принят в Microsoft, принят в Google, можно продолжать. У первого сегодня нет практически ничего, включая даже собственно языка - он до сих пор не формализован и не стабилизирован, а документация для новых релизов местами зияет неполнотой. Есть только не такое уж и многочисленное сообщество вокруг. Положа руку на сердце, не слишком много оснований для веры в большое будущее помня другие попытки на примере хотя бы того же D.
@r2com641
@r2com641 Ай бұрын
@@cool-story-bob прокомментируй то что я написал что borrow checker не работают когда ставится unsafe и то что если на металле пишешь то многие фичи безопасности уже не хляют. А еще в расте очень мутные макросы а в Zig элегантный и проще comptime. Zig это как бы С по новому
@r2com641
@r2com641 Ай бұрын
@@cool-story-bob а то что Zig развивается медленнее так это там спонсоров меньше ибо создатель языка не хочет чтобы компании диктовали как надо делать язык, вот и все. Поэтому Rust уже больше и больше жиреет (gets bloated), да и там постоянно какая то драма возникает, то сообщество запрещает использовать логотип то еще что, не зря же даже спин создали Crablang, посмотри сам
@cool-story-bob
@cool-story-bob Ай бұрын
@@r2com641 Все так, ржавый не замена С и никогда им не был. Это язык для прикладной надёжной разработки без технического долга и сомнительного наследия. По поводу скорости развития без поддержки крупных игроков тоже согласен и имхо именно поэтому дальше локального сообщества ZIG не пойдет.
@-AsL-
@-AsL- 2 жыл бұрын
"я хочу умереть, ничего страшного"
@Rust_ekb
@Rust_ekb 3 жыл бұрын
В PHP строгая типизация появилась с 7 версии и типизированные свойства с 7.4. Это к вопросу что там типов нет.
@EdwVee
@EdwVee 3 жыл бұрын
Нет типизации для переменных внутри функции. Но самое смертоубийственное это тип array: 1. Из каких элементов состоит? Даже само написание комментов, чтобы ide давала подсказки (допустим у меня там объекты класса Foo) уже убивает. 2. Это вектор или мапа? 2 совершенно разных вещи называются одинаково.
@VonBismarkOtto
@VonBismarkOtto 3 жыл бұрын
@@EdwVee , в php нет массивов. Под array скрывается ordered map
@EdwVee
@EdwVee 3 жыл бұрын
@@VonBismarkOtto ок. Я писал о моделях взаимодействия. Ты можешь не знать, что там внутри, когда работаешь с array как с вектором.
@TJ-wc3iq
@TJ-wc3iq 2 жыл бұрын
Мне очень нравится Rust. Но после всех косяков оратора о JS, Python, Go и даже Rust... Единственная ценность доклада - заинтересовать языком всех остальных, 95% сказанное автором либо "ошибка выжившего", либо непонимание языков о которых он говорит (как все реально под капотом работает), либо просто чушь (или провокация) и это печалит. "Чему мы научились, Палмер?" - "Не знаю, сэр"
@alexserbul
@alexserbul 2 жыл бұрын
не было цели заинтересовать людей Rust, хотелось рассказать о его месте среди других языков, на большинстве из которых, "к сожалению", пришлось написать много кода, предварительно плотно их изучив и позапускать в успешный прод десятки проектов
@eugenenovikov671
@eugenenovikov671 3 жыл бұрын
выводы надо было делать, когда вы начали использовать пхп
@KNBLAUT
@KNBLAUT 2 жыл бұрын
20 лет назад?
@user-ky8dr1hu5e
@user-ky8dr1hu5e 2 жыл бұрын
Я на 100% согласен с корневой идеей программирования - должен быть простой язык программирования и он описывает чистую математику, т.е. дисциплина программирования должна оставаться разделом математики (как это и задумывалось отцами основателями). Если программирование было бы чистой математикой, то не было бы такого количества непонятных выкидышей из 3-х месячных курсиков по реактикам, олигофренов после ‘сайт за 3 вечера’ и прочей перхоти. Верните блеать нормальное ИТ!!!
@readmeandanswer8142
@readmeandanswer8142 5 ай бұрын
Вы вновь смотрите на следствие, а не на причину. Зачем людям вообще идти и учить программирование? почему не кулинарию? да потому что программирование вошло в єкономику, ето уже не прикладная наука для ентузиастов, программирование - двигатель економики. Бизнесу не нужно чтобы вы создавали интернет магазин 3 года на Haskell, ему нужно получить приложение в кратчайшие сроки чтобы увеличить продажи. Хотите старое айти - занимайтесь им в свое свободное время, но откатывать мир по технологиям до уровня 80 годов не нужно
@user-ky8dr1hu5e
@user-ky8dr1hu5e 5 ай бұрын
@@readmeandanswer8142 тебя вот не спросили, типичная жертва скилфэктори. Я про инженерную культуру писал. Ты же пишешь про то, как тебе радостно вставать раком перед бизнесом за пару копеек. Вы бараны сами себе яму копаете через свои неподдерживаемые поделки на коленочке.
@readmeandanswer8142
@readmeandanswer8142 5 ай бұрын
​@@user-ky8dr1hu5e бизнесу не нужны ученые для етого есть университеты и аспирантуры, там занимаются научной деятельностью, а задача бизнеса - зарабатывать деньги. Даже если ето будет поделочки на коленочке, они все-равно приносят деньги. Так же как например китайцы делают низкосортные вещи но имеют огромную економику, или индусы которые известны своим отвратительным софтом, наполняют економику страны. По етому я и ответил, призыв "вернуть айти на академический уровень" полная глупость, всему свое время, сфере услуг и рыночной економике ето не нужно.
@liferunsoncode2921
@liferunsoncode2921 3 жыл бұрын
F# |> Discriminated Unions + pattern matching |> ♥ у Rust подход с GC = ♥
@SYMBAT.K.E
@SYMBAT.K.E 4 ай бұрын
Linux уже пишется на rust
@qq77777
@qq77777 4 ай бұрын
Ну да ну да😀. Rust - это секта. Все докладчики про rust с безумными глазами разсказывают какой язык клевый. Кроме того, все кто программировал на раст не в курсе, что все, что все новшества раста есть в других языках.
@r2com641
@r2com641 2 ай бұрын
@@qq77777согласен секта. Я сделал ставку на Zig
@user-jv4od5en6z
@user-jv4od5en6z 3 жыл бұрын
Не нравится сборщик мусора в го - пиши так что бы его он не возбуждался на твой код. Про раст и торвальдса слышал, не прошёл проверку. Про типы в пхп, вы доклад готовили лет 5 назад или когда там типы завезли? Вообщем-то краем уха можно послушать, но не более.
@konstantinta2803
@konstantinta2803 2 жыл бұрын
>Не нравится сборщик мусора в го - пиши так что бы его он не возбуждался на твой код. Рекомендую вам почитать пост discord'a, который объясняет(с замерами параметров) причины, почему это не сработает. И да, они в результате перешли с гоу на раст.
@user-jv4od5en6z
@user-jv4od5en6z 2 жыл бұрын
@@konstantinta2803 да читал, они там не плохо зафейлились, если читать внимательно.
@konstantinta2803
@konstantinta2803 2 жыл бұрын
@@user-jv4od5en6z так причина была в спайках, идущих с периодом в 2 минуты, который чудесным образом оказался равным периоду принудительного вызова gc гоу рантаймом. Как-то не похоже на фэйл разрабов discord
@delir0
@delir0 2 жыл бұрын
Если докладчик и готовил 5 лет назад про типы в пхп, то я уже сегодня могу сказать: 1. Нет generics, отсюда array становится нетипизированной ерундой 2. Функции - не first class citizen 3. Нет ADT и даже Enum'ов 4. Нет паттерн матчинга по типам (хотя union types есть) 5. Есть null'ы и NPE Я даже не знаю, как можно иметь смелость сравнивать систему типов в расте, где компилятор тебе может ДОКАЗАТЬ корректность программы с динамическим пхп, который только вчера подал заявку на систему типов.
@life_xypma
@life_xypma Жыл бұрын
Душой чувствую что имеет вместо причина таких «слез», но если даже внимательно слушать - грешное и праведное смешано, как говорил один человек: «Кровь, песок, говно и сахар!»)))) Интересно на чем сидит автор? Главное не принимать не апробированную фармацевтику!!!
@user-vo7lo3bo4z
@user-vo7lo3bo4z 3 жыл бұрын
Все языки плохие - раст хороший :)
@user-xf7xp8kv9q
@user-xf7xp8kv9q 2 жыл бұрын
в 4 раз напиши
@7nolikov
@7nolikov 2 жыл бұрын
Это какой то эмоциональный бред
@HeavyHeavyvich
@HeavyHeavyvich 3 жыл бұрын
Тот, кто прогает на RUST - то настоящий...
@leobreydo9318
@leobreydo9318 2 жыл бұрын
Слишком много воды. Не тратьте время.
@life_xypma
@life_xypma Жыл бұрын
Тут реально 95% воды))) как минимум
@xyzwio
@xyzwio 2 жыл бұрын
У чела каша в голове. По сути как бы все в основном правильно, но в деталях путает кучу понятий.
@xyzwio
@xyzwio 2 жыл бұрын
Послушать в все равно интересно, автору спасибо.
@alexyerin3475
@alexyerin3475 2 жыл бұрын
Очень много лишних вбросов, не осилил эту дичь слушать. Все языки не серьездны, только Rust красота. В других языках люди думать не умеют, очень странно...
@fess932
@fess932 3 жыл бұрын
на go получилось бы не хуже
@user-gw8bx4pm2o
@user-gw8bx4pm2o 3 жыл бұрын
Фейспальм
@ovellon9526
@ovellon9526 2 жыл бұрын
писать бизнес логику на Го то еще удовольствие, не хватает дженериков, да и обработка ошибок не сильно радует, надо привыкать
@fess932
@fess932 2 жыл бұрын
@@ovellon9526 писать бизнес логику постоянно думая о нескольких вариантах указателей и времени жизни переменных тоже не очень просто
@ovellon9526
@ovellon9526 2 жыл бұрын
Ну зачастую об этом не нужно думать, только в каких нибудь узких случаях, когда тебе нужно по каким то причинам несколько владельцев для одной области памяти и чтобы она была освобождена, когда все владельцы закончат свою работу. Но в большинстве случаев это работает так, что ты просто пишешь обычный код, как в go и не паришься.
@yuriytheone
@yuriytheone 11 ай бұрын
C++ хватает для всего! Просто кто-то др*чит на разные "красивые" аббревиатуры, типа SOLID, ACID, MVC и другие, а по факту не может высвободить память, которую сам и аллоцировал... 🎉
Event Driven Collaboration [eng] / Ian Cooper
57:03
fwdays
Рет қаралды 910
100❤️ #shorts #construction #mizumayuuki
00:18
MY💝No War🤝
Рет қаралды 20 МЛН
Joven bailarín noquea a ladrón de un golpe #nmas #shorts
00:17
Chips evolution !! 😔😔
00:23
Tibo InShape
Рет қаралды 42 МЛН
The Worlds Most Powerfull Batteries !
00:48
Woody & Kleiny
Рет қаралды 12 МЛН
Роман Проскуряков - Голый Rust
58:58
C++ User Group
Рет қаралды 9 М.
Rust? В моём фронтенде?! Константин Егупов, Modeldrive
42:20
Видео с мероприятий {speach!
Рет қаралды 6 М.
Программисты разучились оптимизировать
23:43
Как я писал клиента для YDB на Rust, сравнение с Go. Тимофей Кулин
27:37
Видео с мероприятий {speach!
Рет қаралды 1,8 М.
Rust и GUI // Демо-занятие курса «Rust Developer»
1:47:21
OTUS Онлайн - образование
Рет қаралды 13 М.
👎Главный МИНУС планшета Apple🍏
0:29
Demin's Lounge
Рет қаралды 494 М.
AMD больше не конкурент для Intel
0:57
ITMania - Сборка ПК
Рет қаралды 507 М.
Как я сделал домашний кинотеатр
0:41
RICARDO
Рет қаралды 1,5 МЛН
Pratik Cat6 kablo soyma
0:15
Elektrik-Elektronik
Рет қаралды 8 МЛН
МОЖНО ЛИ заряжать AirPods в чехле 🧐😱🧐 #airpods #applewatch #dyson
0:22
Apple_calls РЕПЛИКА №1 В РФ
Рет қаралды 21 М.