Тёмный

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

fwdays
Подписаться 21 тыс.
Просмотров 16 тыс.
50% 1

Видео с онлайн-конференции 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

Наука

Опубликовано:

 

24 янв 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 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.
@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 Зарепортьте этих ботов
@maksimgridin9322
@maksimgridin9322 2 года назад
Давно слышу про RUST хорошие отзывы, но после такого зажигательного доклада, я просто обязан его выучить! ))
@user-no5wx1re3u
@user-no5wx1re3u 2 года назад
Просмотрел на одном дыхании. Потрясающий доклад
@alexanonymous5823
@alexanonymous5823 2 года назад
большое спасибо за доклад. было очень интересно
@alexandergaiwer9804
@alexandergaiwer9804 3 года назад
Интересный доклад и много полезной информации! Rust рулит! Огромное спасибо за доклад)))
@exploring-ukulele
@exploring-ukulele 3 года назад
Наконец-то! Это топовый доклад ! Сразу видно человек с опытом.
@twentxx
@twentxx Год назад
Вот это доклад, во это заряд энергии! 🚀👍
@user-ul2jc8ej2p
@user-ul2jc8ej2p 2 года назад
Спасибо. Реально классное сравнение без подлизываний. Крутой расказчик. С удовольствием посмотрел
@vyasab1490
@vyasab1490 Год назад
А какие лимиты вы увеличили, которые решили проблему падения на первом запуске?
@aset2335
@aset2335 3 года назад
Как услышал про косяки Фон Неймана сразу поставил лайк!
@TheRussificator
@TheRussificator 2 года назад
Увлеченный дядька. Лайк.
@tkachukpavel442
@tkachukpavel442 2 года назад
Спасибо, ценно что показали реальный проект. А что скажете по поводу многопоточности? У меня есть проект который на nodejs который требует многопотоков, он у меня работает на тредах. Как с этим обстоят дела на Rust ?
@alexserbul
@alexserbul 2 года назад
В Rust прекрасно все с многопоточностью. Как раз для защиты от дедлоков и гонок и используются описываемые в докладе аффинные типы данных.
@MakarenkoSasha
@MakarenkoSasha 2 года назад
Давно я так не ржал... камедиклаб, по сравнению с докладчиком, просто дети. Вообщем супер.. пошел раст изучать..а то я уже старый стал, а все как молодой на феррари езжу ))
@alexanderdickson1679
@alexanderdickson1679 Год назад
Сербул, респект, отличные статьи на Хабре
@user-nh4ik4vy7d
@user-nh4ik4vy7d 9 месяцев назад
точно и по делу.
@Deletedeletedelete
@Deletedeletedelete 2 года назад
вижу название доклада: не выбирай язык програмирования пока не посмотришь этот доклад)
@GoRustDeveloper
@GoRustDeveloper 8 месяцев назад
Благодарю за доклад. Всегда интересно послушать мнение и опыт человека из нутри компании. Одно но, есть язык Go и нет языка Golang
@nanoqsh
@nanoqsh 7 месяцев назад
Golag
@ostrov11
@ostrov11 2 года назад
охх старый бомбит, высказался на публику )) респект
@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), разве нет?
@Valerii_Pivovarov
@Valerii_Pivovarov 3 года назад
Александр, Вы занимаетесь очень хорошим делом. Искренне желаю Вам успеха. Я тоже пытался создать ПРОСТОЙ И ВНЯТНЫЙ язык программирования, но у меня очень много времени забирает ФИЗИКА, которую я тоже стараюсь излагать в ПРОСТОЙ И ВНЯТНОЙ форме, чтобы она была понятна и школьнику. Интересно, чем тогда доктор (академик) "физико-математики" будет отличаться от обычного школьника?
@maksimsergeevich5939
@maksimsergeevich5939 Год назад
Если для rust сделают что-то типа флаттера, то это будет бомба. Не хватает на rust какого-нибудь prod-ready решения широкого спектра. Почему не сделают? Кому нужен этот dart без флаттера? Вложения в rust очень трудно окупить, поэтому на нем пишут в основном энтузиасты и любители системного хобби программирования. Хотя я вижу большой потенциал rust в том чтобы писать высоконагруженные сервера и микросервисы, особенно такие где идёт интенсивная математика с финансами или виртуальной валютой. Если сделать что-то типа флаттера, то еще можно будет писать крутые аппликейшены для мобилок, которые не падают и очень эффективно расходуют батарею. Плюсом от этого будет то, что на rust будет больше реальных сфер применения и вакансий, и тогда действительно может быть он захватит мир.
@serhiizaitsev2702
@serhiizaitsev2702 3 года назад
Вау
Год назад
Интересный чувак. Спасибо за толковый подоход
@MichaelPankov
@MichaelPankov 2 года назад
Честно говоря доклад странный. 95% разговора про сам язык - вещи которые уже сказали все. Про сервис 5% и в целом ситуация такая, что "повезло" просто переписать, не огрести проблем, и легко завести. В принципе, по объёму кода-то уже понятно, что сервис копеечный.
@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 должен в рантайме запускать сборку мусора, что очень накладно
@user-jx4jb4of3c
@user-jx4jb4of3c 2 года назад
Есть суровый минус. Учил его 4 месяца пока начал хоть какой-то код выдавать
@KNBLAUT
@KNBLAUT 2 года назад
Какой-то код это какой? Можно за 4 месяца не написать что то сложное, но простое без проблем.
@user-eq3zy9tg1q
@user-eq3zy9tg1q 11 месяцев назад
Жесть духота😀
@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 как с вектором.
@-AsL-
@-AsL- 2 года назад
"я хочу умереть, ничего страшного"
@user-vo7lo3bo4z
@user-vo7lo3bo4z 3 года назад
Все языки плохие - раст хороший :) Классика жанра
@user-gw8bx4pm2o
@user-gw8bx4pm2o 3 года назад
Фейспальм
@liferunsoncode2921
@liferunsoncode2921 3 года назад
F# |> Discriminated Unions + pattern matching |> ♥ у Rust подход с GC = ♥
@eugenenovikov671
@eugenenovikov671 3 года назад
выводы надо было делать, когда вы начали использовать пхп
@KNBLAUT
@KNBLAUT 2 года назад
20 лет назад?
@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 не пойдет.
@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 бизнесу не нужны ученые для етого есть университеты и аспирантуры, там занимаются научной деятельностью, а задача бизнеса - зарабатывать деньги. Даже если ето будет поделочки на коленочке, они все-равно приносят деньги. Так же как например китайцы делают низкосортные вещи но имеют огромную економику, или индусы которые известны своим отвратительным софтом, наполняют економику страны. По етому я и ответил, призыв "вернуть айти на академический уровень" полная глупость, всему свое время, сфере услуг и рыночной економике ето не нужно.
@TJ-wc3iq
@TJ-wc3iq 2 года назад
Мне очень нравится Rust. Но после всех косяков оратора о JS, Python, Go и даже Rust... Единственная ценность доклада - заинтересовать языком всех остальных, 95% сказанное автором либо "ошибка выжившего", либо непонимание языков о которых он говорит (как все реально под капотом работает), либо просто чушь (или провокация) и это печалит. "Чему мы научились, Палмер?" - "Не знаю, сэр"
@alexserbul
@alexserbul 2 года назад
не было цели заинтересовать людей Rust, хотелось рассказать о его месте среди других языков, на большинстве из которых, "к сожалению", пришлось написать много кода, предварительно плотно их изучив и позапускать в успешный прод десятки проектов
@radiopapus
@radiopapus Год назад
Это язык(nodejs) который отстал лет на 50 - noted
@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 раз напиши
@HeavyHeavyvich
@HeavyHeavyvich 3 года назад
Тот, кто прогает на RUST - то настоящий...
@7nolikov
@7nolikov 2 года назад
Это какой то эмоциональный бред
@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 и другие, а по факту не может высвободить память, которую сам и аллоцировал... 🎉
Далее
How to bring sweets anywhere 😋🍰🍫
00:32
Просмотров 2,6 млн
How charged your battery?
0:14
Просмотров 3,2 млн