Всю статью не читал, осилил только первый наброс про мутабельность, и вот это правильный комментарий.
Ссылки в расте надо интерпретировать именно так:
&mut T - уникальная ссылка. Из этого свойства как раз и вытекает возможность безопасной мутации объекта.
&T - шаренная ссылка. На этот объект может иметь доступ много кто, поэтому в общем случае изменять данные под ней нельзя. Но можно переложить ответственность за контроль корректного доступа (exactly one writer XOR multiple readers) в рантайм с помощью Mutex, RwLock или иных способов Interior Mutability.
К сожалению уже устоявшаяся классическая дискриминация по признаку наличия\отсутствия смартфона. Типа, если нету у тебя смартфона, то ты и не человек вовсе.
Это серверное оборудование, в любом сервере всегда имеется сильный воздушный поток вдоль всего корпуса. Все карты расширения предназначенные для серверов проектируются с учётом того, что хороший обдув будет обеспечен корпусными вентиляторами, соответственно ограничиваются только радиатором на чипах, но это не отменяет необходимость активного охлаждения.
Верно, actix-web не использует под капотом actix уже давно, добавление последнего к actix-web сейчас в основном имеет смысл только для реализации websocket'ов (да и то, это не обязательно, просто как один из вариантов, хотя пожалуй он самый удобный).
Сам actix как фрэймворк модели акторов для своих задач очень хорош, но в нём очень плохо с документацией, её по сути нет, только пару страниц с поверхностным описанием. Но естественно прочтение этих пары страниц не даёт полной картины как надо делать правильно, даже если есть багаж знаний об архитектуре модели акторов, например, из Erlang'а.
Ситуацию усугубляет то, что почти все, кто используют actix-web, именуют его просто actix'ом, и, как следствие, гугление по "actix" выдаёт нерелевантные результаты. По итогу, чтобы разобраться в actix, требуется изучать исходники самой библиотеки и искать какие-нибудь проекты на гитхабе использующие её. Это прямо боль.
По поводу db, хочется добавить, что есть очень хорошая ORM на основе sqlx: sea-orm, как альтернатива распиаренному diesel.
Зачем-то смешали в кучу actix и actix-web. Это совершенно разные продукты для решения разных задач. Статья даже не то, что слабая, а вообще вводит в заблуждение.
SSD использовались не для хранения плотов, а для создания. Сейчас уже не актуально, т.к. софт доработан и в основном плоты создаются в оперативной памяти.
Вывод всех доступных пакетов - какая-то бесполезная команда, если честно.
Есть `pacman -Ss [search_string]` , который является почти аналогом `apt search [search_string]`. Однако в pacman'е можно опустить аргумент поиска, в таком случае будет выведен весь список пакетов.
Ну уж точно не раста. Не виноват он в том, что людям удобно тащить свои знания, опыт и привычки из других языков. Хотите использовать исключения - идите в кресты и не мучайте себя растом.
Основной смысл catch_unwind - поймать панику до того, как оно пересечёт FFI, так как в противном случае это будет UB.
То, что этот `catch_unwind` лепят где не попадя - так это не проблема раста. В документации к этой функции, кстати, прямо сказано: использовать её для реализации механизма try\catch - моветон.
Я даже встречал некоторый софт, который использует эту публичность у ключей юзеров. Самый известный, пожалуй, это установщик Ubuntu Server: во время установки ОС предлагается ввести имя пользователя на гитхабе и прописать все публичные ключи в `~/.ssh/authorized_keys`.
Раст прекрасно поддерживает `С ABI`, оно стабильное. Конечно, использовать неудобно, т.к. фактически доступны только примитивы, да Box с Option , но что поделать, так в любом языке будет.
Автору надо ник поменять, а то его тёмное прошлое пестрит даже без резюме. /s
Всю статью не читал, осилил только первый наброс про мутабельность, и вот это правильный комментарий.
Ссылки в расте надо интерпретировать именно так:
&mut T
- уникальная ссылка. Из этого свойства как раз и вытекает возможность безопасной мутации объекта.&T
- шаренная ссылка. На этот объект может иметь доступ много кто, поэтому в общем случае изменять данные под ней нельзя. Но можно переложить ответственность за контроль корректного доступа (exactly one writer XOR multiple readers) в рантайм с помощьюMutex
,RwLock
или иных способов Interior Mutability.К сожалению уже устоявшаяся классическая дискриминация по признаку наличия\отсутствия смартфона. Типа, если нету у тебя смартфона, то ты и не человек вовсе.
Я вот понять не могу, откуда это утверждение взялось, что раст каждый релиз ломается?
Это серверное оборудование, в любом сервере всегда имеется сильный воздушный поток вдоль всего корпуса. Все карты расширения предназначенные для серверов проектируются с учётом того, что хороший обдув будет обеспечен корпусными вентиляторами, соответственно ограничиваются только радиатором на чипах, но это не отменяет необходимость активного охлаждения.
Вы так говорите, как будто действительно верите что Земля не плоская )
Я так понимаю, Бобрандреску это отсылка к А. Александреску.
Ну, с номера вашей бабушки позвонить уже не смогут, например.
Эта система режет только звонки с подменных номеров, а не те звонки про которые вы подумали.
Верно, actix-web не использует под капотом actix уже давно, добавление последнего к actix-web сейчас в основном имеет смысл только для реализации websocket'ов (да и то, это не обязательно, просто как один из вариантов, хотя пожалуй он самый удобный).
Сам actix как фрэймворк модели акторов для своих задач очень хорош, но в нём очень плохо с документацией, её по сути нет, только пару страниц с поверхностным описанием. Но естественно прочтение этих пары страниц не даёт полной картины как надо делать правильно, даже если есть багаж знаний об архитектуре модели акторов, например, из Erlang'а.
Ситуацию усугубляет то, что почти все, кто используют actix-web, именуют его просто actix'ом, и, как следствие, гугление по "actix" выдаёт нерелевантные результаты. По итогу, чтобы разобраться в actix, требуется изучать исходники самой библиотеки и искать какие-нибудь проекты на гитхабе использующие её. Это прямо боль.
По поводу db, хочется добавить, что есть очень хорошая ORM на основе sqlx: sea-orm, как альтернатива распиаренному diesel.
Почти сразу разобрались, мэйнтэйнер у actix-web есть.
Зачем-то смешали в кучу actix и actix-web. Это совершенно разные продукты для решения разных задач. Статья даже не то, что слабая, а вообще вводит в заблуждение.
SSD использовались не для хранения плотов, а для создания. Сейчас уже не актуально, т.к. софт доработан и в основном плоты создаются в оперативной памяти.
Вывод всех доступных пакетов - какая-то бесполезная команда, если честно.
Есть `pacman -Ss [search_string]` , который является почти аналогом `apt search [search_string]`. Однако в pacman'е можно опустить аргумент поиска, в таком случае будет выведен весь список пакетов.
Ну вообще, pacman это очень популярный мендежер, он по умолчанию поставляется в Arch и других дистрибутивах.
Существуют таблицы соответствия команд apt и pacman, которые легко гуглятся.
А в чём там разбираться, обычный pacman же?
Ну уж точно не раста. Не виноват он в том, что людям удобно тащить свои знания, опыт и привычки из других языков. Хотите использовать исключения - идите в кресты и не мучайте себя растом.
Основной смысл
catch_unwind
- поймать панику до того, как оно пересечёт FFI, так как в противном случае это будет UB.То, что этот `catch_unwind` лепят где не попадя - так это не проблема раста. В документации к этой функции, кстати, прямо сказано: использовать её для реализации механизма try\catch - моветон.
Я даже встречал некоторый софт, который использует эту публичность у ключей юзеров. Самый известный, пожалуй, это установщик Ubuntu Server: во время установки ОС предлагается ввести имя пользователя на гитхабе и прописать все публичные ключи в `~/.ssh/authorized_keys`.
Раст прекрасно поддерживает `С ABI`, оно стабильное. Конечно, использовать неудобно, т.к. фактически доступны только примитивы, да
Box
сOption
, но что поделать, так в любом языке будет.