Size: a a a

2020 October 25

RM

Roman Melnikov in F# Chat
Ayrat Hudaygulov
я делал фшарп в 3х компаниях

1) акка.нет + sql server + rabbit MQ. F# позволил выкинуть бойлерпрейт иммутабельных классов сишарпа и ввести нормальный паттерн матчинг сообщений акторов. Это был мой первый опыт с фшарпом, код был говно, но всё лучше сишарпа.
Ныне код уже не существует, т.к. с моим уходом инициатива загнулась =(

Либы - акка.нет (без акклинга, я про него знал, но и щас бы не взял). Нужны акторы, да

2) Azure Functions + Azure DataLake + Azure DataFactory + Hopac Streams (дада, много их!). Делал ETL для Arkadium. Код в каждой функции был завязан на E(xtract), T(ransform), L(oad). Всё асинхронно, параллельно. Гопак стримы топчик. Потом @neftedollar переписал на не знаю что, но тоже на фшарпе!

Из либ - нутонсофт активно (единственная либа на дотнете с JPath), гопак (очень нужны стримы, асинкСек не вытягивает)

3) Almighty Jet. Ну почти как еглиф описал, но меньше фп, больше прагматизма в конкретно нашей команде было
Kafka, Redis, CosmosDB. Юзали очень активно евентсорсинг. ЛогЕка на фшарпе была типизирована в том числе с помощью UMX, что позволяло не ебаться с Single Case DU и получать отличный рефакторинг в компайл тайме.
В начале активно юзался Kafunk (реализация протокола кафки на фшарпе. Отличная либа, но всех заебало её поддерживать в условиях постояно ломающихся релизов до кафки 1.0.0 и перешли на трижды ебаный конфлуенс). Ну и стандартные сдк космоса, редиса, чот ещё.
На орлинс переписал.
источник

AH

Ayrat Hudaygulov in F# Chat
Shub Niggurath
Та я в другом репозитории уже почти как год.
Резервация?
источник

SN

Shub Niggurath in F# Chat
Белки со стрелками мейнтейнятся последними из могикан
источник

SN

Shub Niggurath in F# Chat
Ayrat Hudaygulov
Резервация?
Ага
источник

SN

Shub Niggurath in F# Chat
Кстати твои бывшие коллеги тоже забили на это все и использовали только эквинокс. Причем сказали, что для следующих версий и его брать не будут. Частично из-за особенностей эквинокса сотоварищи, частично из-за парадигмы ивент-сорсинга.
источник

R

Roman in F# Chat
Ayrat Hudaygulov
О, а расскажи как httpClient завести в дурабл функциях нормально
а что значит нормально?
источник

AH

Ayrat Hudaygulov in F# Chat
Roman
а что значит нормально?
Ну вот ты сказал про подводные камни
источник

R

Roman in F# Chat
а, ну на подводные камни именно с хттп мы не наткнулись. На космос натыкались, пушто там настройки сериализации совершенно ебанутые, и где-то в атрибуте мы забывали проставить UseDefaultSerializationSettings=true, и уже в другую функцию, где в атрибуте все нормально, залетал клиент с другими настройками
источник

R

Roman in F# Chat
Просто хттп клиент тоже может так попасть, возможно.
источник

SN

Shub Niggurath in F# Chat
Roman
а, ну на подводные камни именно с хттп мы не наткнулись. На космос натыкались, пушто там настройки сериализации совершенно ебанутые, и где-то в атрибуте мы забывали проставить UseDefaultSerializationSettings=true, и уже в другую функцию, где в атрибуте все нормально, залетал клиент с другими настройками
Я свой сериализатор просто вставил и забыл про все проблемы
источник

R

Roman in F# Chat
Shub Niggurath
Я свой сериализатор просто вставил и забыл про все проблемы
в какой сдк? Там их ебаный миллион, и только 1 из них (2й кажется) имеет байндиги для функций
источник

R

Roman in F# Chat
хотя, можно и через DI залупу его вставить
источник

SN

Shub Niggurath in F# Chat
Roman
в какой сдк? Там их ебаный миллион, и только 1 из них (2й кажется) имеет байндиги для функций
В v4. Пришлось порыться по сорсам, да, информация секретная
источник

R

Roman in F# Chat
сниппет можешь скинуть?
источник
2020 October 26

SN

Shub Niggurath in F# Chat
В рабочий день
источник

SN

Shub Niggurath in F# Chat
Если мы конечно об одном и том же говорим
источник

VS

Vladimir Shchur in F# Chat
Vlad Zaa
Господа, поделитесь, пожалуйста, опытом - кто что использует для бэкграунд сервисов на ФШ?

Какие архитектуры/подходы?
Либы/фреймворки?

Что-то своё, или уже готовое?

Пример - стейтлесс сервис, который крутится на вм/контейнере/в функции, и что-то делает «конкурентно» (например - ходит на кучу сайтов и их статус складывает в бд и ТГ чатик, раз в Н минут).

Хочу немного юзкейсов собрать и библиотек.

Спасибо заранее.
с либой на пульсаре я всем прожужжал, там все на асинхронно на десятке мейлбоксов, на работе на амазоне лямбды запускаю, параллелизм регулируется в основном количеством лямбд. Кстати в либе вместо асинксека пришлось кастомные стримы на тасках запилить чтобы их динамически мержить
источник

VS

Vasily Shapenko in F# Chat
Vlad Zaa
Господа, поделитесь, пожалуйста, опытом - кто что использует для бэкграунд сервисов на ФШ?

Какие архитектуры/подходы?
Либы/фреймворки?

Что-то своё, или уже готовое?

Пример - стейтлесс сервис, который крутится на вм/контейнере/в функции, и что-то делает «конкурентно» (например - ходит на кучу сайтов и их статус складывает в бд и ТГ чатик, раз в Н минут).

Хочу немного юзкейсов собрать и библиотек.

Спасибо заранее.
Мобилка, из бэкграунда некоторое количество мейлбоксов плюс стримы на базе эвентов
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Vlad Zaa
Там либо кто-то из коммьюнити начинает делать и забрасывает
Тут есть проблема: если кто-то из комьюнити берётся делать какую-то такую фичу, то для того, чтоб не решили, что он её забросил, ему надо потом много лет подмерживать к себе мастер.

С моей стороны кажется, что именно вот этот аспект убивает фичи.
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Vlad Zaa
Господа, поделитесь, пожалуйста, опытом - кто что использует для бэкграунд сервисов на ФШ?

Какие архитектуры/подходы?
Либы/фреймворки?

Что-то своё, или уже готовое?

Пример - стейтлесс сервис, который крутится на вм/контейнере/в функции, и что-то делает «конкурентно» (например - ходит на кучу сайтов и их статус складывает в бд и ТГ чатик, раз в Н минут).

Хочу немного юзкейсов собрать и библиотек.

Спасибо заранее.
Я использую старый добрый Quartz.
источник