Ayrat
1) юзать VS Enterprise которая умеет на лету интерсептить статические вызовы. Там ядерный мок фреймворк. Ентерпрайз стоит дорого 2) В акке есть возможность задешулить отсылание сообщение не через актора, а через системный шедулер самой акки. И в тестовом фреймворке там есть возможность проматывать время в любую сторону))) тайм машина чорт подери
Ayrat
F*?
Ну как пример. В DDD депенденси тайпы идеально зашли бы Сейчас сделать тип строк, длина которых меньше 50 элементов без небольшого гемороя никак и компилятор всё равно не отличит String50 от String
Éminence grise
Второй вариант - разделить отвественность на актор пинающий и совершающий действие.
Dr. Friedrich
В тайпскрипте можно так сделать, кстати!
Dr. Friedrich
Очень вафельно будет выглядеть, но сделать можно.
Éminence grise
В расте можно
Ayrat
Так сейчас даже Id<Entity> не делают хотя можно
ну во всяких туториалах к DDD делают, но это оверинжиниринг ядерный. Архитектурные астронавты делали эти туториалы. ХЗ как у них продакшн выглядит
Éminence grise
Да и в FSharp можно было бы при наличии поддержки компилера.
Bonart
ну во всяких туториалах к DDD делают, но это оверинжиниринг ядерный. Архитектурные астронавты делали эти туториалы. ХЗ как у них продакшн выглядит
Я делал - конкретно это - совсем не оверинжиниринг. Там структура и по памяти - обычный айдишник без оверхеда. Но с няшной типизацией, делающий код читаемым и лучше понятным компилятору
Éminence grise
Как то у нас erased type providers работают - можно было бы что типа этого и на депенденси тайпы намутить.
Bonart
Ayrat
Я делал - конкретно это - совсем не оверинжиниринг. Там структура и по памяти - обычный айдишник без оверхеда. Но с няшной типизацией, делающий код читаемым и лучше понятным компилятору
мне в этом плане F# гораздо больше нравится type UserId = UserId of Guid type ProjectId = ProjetId of Guid две строчки и вся семантика валуе тайпа с уникальным конструктором и строгой типизацией
Dr. Friedrich
лолшто, сириусли?
Хм, я надеялся, что сработает такое: interface SmallString { length: 0 | 1 | 2 | 3 | 4 | 5; [key: number]: string; } let x: SmallString = 'hell'; Но почему-то не работает. Видимо, у меня недостаточно маны сейчас для тайплевел магии на тайпскрипте.
Ayrat
Сделал глобальный мутабельный объект?
ну там актор для кеша и всё такое. Чтобы ООМ не отхватить после месяца работы, надо чиститься
Dr. Friedrich
Какие-то такие трюканы там точно можно проворачивать, хоть и выглядит обычно уродливо
Pavel
Так, говорите, надо воровать фичи с идрис?
Éminence grise
Уже были идеи и прототипы депендентТайпПровайдров
Идея же простая в принципе. Берем инт, делаем type MyInt = MyInt of int with value >= 0 && value <= 100 . Компилятор сам делает create и все операции с проверкой
Éminence grise
Но при компиляции уберает тип как не нужный, оставляет только проверки
Ayrat
ну в целом здесь erasure норм
Dr. Friedrich
Так, говорите, надо воровать фичи с идрис?
Для этого нам нужен какой-то эфшарповый Edwin Brady :(
Éminence grise
У нас Сайм есть. Офигенный спец. Но судя по всему, ему что то мешает развернуться по полной.
Ayrat
MS
Éminence grise
Хайлсбергу дали карт бланш. А Сайму нет
Ayrat
Сайм супер крут. Я его статью прочитал про Comp Expression Zoo - шарит как боженька
Pavel
Сайма отправили в ссылку в xamarin
Ayrat
Мёртвая тема
Éminence grise
Самое крутое у него - это статья по теоретическому внедрению генериков в рунтайм дот нет. Если честно, прочитасв ее я понял, НАСКОЛЬКО пока недотягиваю
Ayrat
Я не фротендер, но мне товарищи говорили что между платформами слишком большая разница и усреднённый фреймворк будет рисовать посредственный фронт и там, и там. Проще знать фичи iOS и андроид и юзать платформо зависимые формы и получать лучший UX
Éminence grise
Ага, особенно учитывая цену.
Ayrat
а замарин ещё и платный лол?
Éminence grise
У нас там 3 и там 3 . Подороже шарпистов. Мне работы одному на месяц на замарине. Вот и считайте.
Ayrat
мысль понятно что это дешевле и быстрее разрабатывать один раз под обе платформы сразу
Ayrat
вопрос был что люди хотят бОльшего чем может дать усреднённый фреймворк
Pavel
Ну и уже есть кросплатформа, которая изначально пошла более правильным путём
Éminence grise
Мягко выражаеясь. Особенно когда бек дот нетовский
Pavel
И не имеет фатальных недостатков xamarin, React Native
Éminence grise
Угу люди готовы уши отдать, только чтоб это сейчас работало, а не через пару месяцев
Bonart
И не имеет фатальных недостатков xamarin, React Native
Это который с треском попятили из крупных проектов? Правильный путь однако
Éminence grise
Много ли этих крупных проектов?
Pavel
А ты про airbnb и rn?
Éminence grise
А ты про airbnb и rn?
Это у кого то денег, как у airbnb? На работу не возьмете? Я прям ща и на свифте и на котлине зараз, двумя руками 😊
Pavel
Ну а airbnb соскачили с rn
Éminence grise
Угу - а ты на беке?
Vladislav
@angmarr тут должен игорь ворвать и пояснить за мобилки
Pavel
Угу - а ты на беке?
Не, я андроид обезьянка)
Igor
@angmarr тут должен игорь ворвать и пояснить за мобилки
Я не в контексте, да и Павел шарит за все это
Éminence grise
Мое личное мнение, ВСЕ, что сейчас делается на вебе и мобилках, это попытка хоть как то дотянутся до возможностей, предоставленных десктопникам в процессе развития юзер-интерфейса. Нет НИ ОДНОЙ методики, нереализованной в десктопных библиотеках менее 10 лет назад, которые сейчас для них не чудо, которое надо с ТРУДОМ для мозга осваивать.
Pavel
Мое личное мнение, ВСЕ, что сейчас делается на вебе и мобилках, это попытка хоть как то дотянутся до возможностей, предоставленных десктопникам в процессе развития юзер-интерфейса. Нет НИ ОДНОЙ методики, нереализованной в десктопных библиотеках менее 10 лет назад, которые сейчас для них не чудо, которое надо с ТРУДОМ для мозга осваивать.
Ну как-то так, да. Только немного условия другие. В мобилах довольно жёсткие ограничения по ресурсам (cpu, память, сеть, хранилище) плюс не типичные для десктопа юзкейсы (нотификейшены, открыл-закрыл приложение десять раз за минуту, тесное взаимодействие с другими приложениями и прочее). Все это заставило пройти путь становления с самого начала
Vasily
Не о том спорите
Vasily
Я бы лично внёс в фшарп пропозал
Vasily
О добавлении нормальной актор модели
Ayrat
Сделать как в скале - интегрировать акку! (аклинг)
Ayrat
Хотя тут орлинс скорее интегрируют) мс продавит.
Ayrat
Поэтому лучше ничего не делать.
Vasily
Акку в том виде, какой есть, я бы не стал
Igor
Хотя тут орлинс скорее интегрируют) мс продавит.
Хм, в каком м месте акка интегрирована в скалу? Тут народ ее из джавы и котлина юзает, да и сами тайплевел ее отвязывают от скалы
Vasily
Мне кажется, имеет смысл на эрланг глянуть
Vasily
Как там сделано
Pavel
О добавлении нормальной актор модели
Звучит как сделать либу поверх мейлбоксов :_
Pavel
И даже такая была. Её вроде как Сергей Тихон делал
Pavel
Cricket называется
Igor
Akka's actor implementation is included as part of the Scala standard library.
Ты уверен? https://stackoverflow.com/a/39662528
Pavel
Да и вообще уже хватает. Даже на дотнет есть выбор
Pavel
Не говоря про эксперимент fez
Ayrat
Dr. Friedrich
Сделать как в скале - интегрировать акку! (аклинг)
В скалу разве интегрировали? Мне казалось, у них там почти как у нас — есть какие-то фуфельные встроенные акторы, а для серьёзных вещей всё равно надо брать стороннюю либу.