Ayrat
я думаю тут как-то глубоко костыль CLR зарыт
Vasily
А вот через генерик с констрейнтом и аугментацию типов должно быть ок
Vasily
Короче, там можно написать без боксинга по идее
Vasily
Но типы придется расширять
Vasiliy
Народ, а вы Akka.net юзаете, чтобы делать веб-сервисы, правильно уловил идею?
Romɑn
типа того
Vasily
Я пишу десктоп
Vasily
Но я упоротый
Dr. Friedrich
Народ, а вы Akka.net юзаете, чтобы делать веб-сервисы, правильно уловил идею?
Я с мессенжерами интегрируюсь через Akka. Привык 🤷‍♂️
Vasiliy
Я пишу десктоп
гммм, микросервисы ?
Dr. Friedrich
боты ?
Ну да, боты.
Vasiliy
видно, куда хочешь, туда и присобачивай akka
Dr. Friedrich
видно, куда хочешь, туда и присобачивай akka
Возможных применений много. Не все из них рациональные, впрочем.
Vasiliy
Romɑn
Ну да, гвоздь, тоже можно забивать айфоном)
Вот про айфоны я бы сказал что только ими и надо гвозди забивать
Vasiliy
эй эй эй) ахахах, был бы живой винфон, я бы согалсился. но так как винфон умер, а андроид все еще фигня.
Vasily
гммм, микросервисы ?
Акторы,дружок
Vasiliy
Vasily
920
Vasiliy
920
+ одна из первых в РФ. Прожила 5 лет. Сильно надеялся на вин10, но мс упустили все время.
Vasiliy
был момент писал несколько приложенйи под винФон10. Это было божественно. И да, я наркоман, мне нравился XAML. Хотя супер навороченной логики у нас там не было.
Romɑn
Блин, забавно, что вокруг меня много виндоводов, да и сам я тоже был. Наверное это один из немногих случаев когда мспродукт пользовались популярностью в основном у гиков
Vasiliy
имхо, МС хорошо пропиарили винфоны среды программистов, но конечным пользователям телефон не зашел.
Romɑn
Согласен
Vasily
Кто старое помянет,тому мейлбокс на актора натяну
Vasiliy
😂
Nikolay
У друга виндофон, троллю его 24/7
Nikolay
Ибо глючит
Nikolay
Постоянно что-то отваливается
Nikolay
То приложения не устанавливаются, то ещё что-то
Nikolay
То удалить не может
Vladyslav
windows phone с 8 версией самый топ телефона был. Летало и красивый, удобный минимализм в дизайне
Vasily
Такс, пришло время почитать akka bootcamp, а то крокодил не ловится :)
Ayrat
да ну брось, мануалы читают только ламеры
Ayrat
впрадакшн!
Vasily
Сам ты впрадакшн, а я ламер
Vasily
Айрат "Впрадакшн" Гопакович
Bonart
впрадакшн!
Интересные у индусов имена
Vasiliy
Ayrat
:D
Vasily
Предпочитаю отделять себя от серой массы сильно умных
Vasiliy
уже и так обмазываешься тестами по полной, все равно что нибудь да просочиться
Ayrat
А вообще, я заметил что чтение документации гораздо бодрее идёт если есть опыт в технологии. Я предпочитаю сначала набить шишек сам, познакомиться, а потом уже идти читать доки, иначе нифига непонятно, примеры оторваны от практики, синтаксис неясен, смысл теряется.
Vasily
Ну вот я подошел к моменту чтения документации
Vasily
Короче, тут написано that blocking is not an evil
Vasily
Ничо так документация
Vasily
Жызненная,
Vasily
В целом во вью моделях аски, наверное, можно использовать
Vasily
Потому как пока vm не проинициализирована, показывать ее смысла нет :)
Ayrat
я щас расскажу за блокинг в акторах. Представим что мы работаем с тредами. У них есть очередь работ в виде списка вызовов и если мы блокируем тред, то конечно ничего страшного не произойдёт. Просто тред перестанет свою локальную очередь обрабатывать, повисит чутка, другие треды, если у них работа кончится, застилят из его локальной очереди и всё переделают. Если мы заблочим много тредов, то случится thread starvation, всё будет работать очень плохо. Да и треды очень дорогие. Теперь абстрагируемся от тредов и считаем что наша рабочая лошадка - актор. У него есть очередь работ в виде мейлбокса и если мы блокируем работу актора ожиданием ответа от другого актора (с точки зрения нижележащих тредов асинхронно, но с точки зрения абстрации на уровне акторов это вполне себе синхронный вызов. Аналог - вызов другой процедуры), то актор просто перестанет обрабатывать свою очередь сообщений. Что произойдёт? Ну для начала у нас других акторов на этот мейлбокс нет, сообщения там будут висеть до последнего. Стилинг алгоритмов в актор систему не завезли, В актор системе это реализуется через актор роутер и мириаду акторов мелких, которые де факто мейлбокса не имеют (им кидают по одному сообщению для обработки). Понять что актор заблочен и не отвечает чтобы перероутить месаджи на другого актора (того же типа) актор система тоже вряд ли сумеет. Получаем настоящий пиздец, который работает кумулятивно. Каждый блок в теле актора замедляет обработку ВСЕХ сообщеий в мейлбоксе на время блокировки. Пример. Если каждый месадж требует блокировки на ожидание внешнего ответа 100мс, в мейлбоксе лежит 100 месаджей, то 2ой в очереди замедлится на 100мс, 3ий на 200мс, а последний на 10000мс, что сделает систему охренительно неотзывчивой.
Vasily
Да это понятно все
Vasily
Там разовые асинхронные операции
Vasily
Синхронные
Vasily
По событиям от пользователя
Vasily
Понятно, что если я строю все на асках, то у меня наступает пиздец
Ayrat
лютейший. Ещё и дедлоки на уровне акторов могут быть
Ayrat
его элементарно устроить с двумя акторами
Vasily
А ежели я делаю актор, который хранит стейты
Vasily
Нужные для построения вм
Ayrat
про дедлоки акторов. они вообще опасные. АкторА спрашивает (ask) у актораБ - как тебя зовут? и повисает нахер, не обрабатывая мейлбокс. Реквест попадает в конец мейлбокса АктораБ, который разгребая свой мейлбокс может спросить у АктораА точно такой же вопрос. и тоже повиснет в беспросветном ожидании, прям перед сообщением от АктораА ) И оба, как дебилы будут сидеть в ожидании ответа друг от друга, причём у них у обоих в мейлбоксах будут лежать запросы друг от друга. Полная дичь, причём это никак не проконтролировать
Ayrat
Это можно решить таймаутами, да. и логикой не получения ответа
Ayrat
А нельзя ли аски запретить навсегда?
Мы так и сделали. ctrl-f ".Ask" и рефакторили пока всё не выжгли
Bonart
И еще анализатор для рослина с матюгами запилить
Vasily
Ну без асков там схема с созданием временного актора
Ayrat
аск создаёт временного актора если чо
Ayrat
поэтому он такой медленный
Bonart
В общем, надо уметь проектировать без ЭТОГО
Vasily
Ок, тогда предлагайте решение на следующую задачу
Vasily
Есть список сервисов
Vasily
КОторый хранится в акторе
Vasily
VM должна уметь по айдишнику достать сервис
Bonart
Айрат, какой там у тебя рейт? 250 зелени в час? ;) Включай таймер
Ayrat
Василий, у тебя проблема последней мили. Как связать что-то внешнее с акторсистемой. Я решил так - делал точки входа в акторсистему через акторов. Если очередь - то она была инкапсулирована В акторе. Вебсервер - туда же. Ввод пользователя, бд, чо угодно - в актора. С UI не делал, но думаю запилил бы ViewModel ВНУТРЬ актора, а на объект вью модели обычные биндинги через INotifyPropertyChanged вьюху связал как обычно
Ayrat
вьюмодель в актора подаётся через конструктор как-нибудь