Size: a a a

2020 October 25

АВ

Андрей Вилинский... in F# Chat
Ilya L Che
А у UMX есть какие-то преимущества в сравнении с теми же single case DU? Разве что короче запись: % "id" против  CustomerId "id".
все проще - measure types в стоковом шарпе можно использовать только с числовыми типами, как выше отметил Вагиф. А UMX это маленький набор SRTP магии, который расширяет возможность на несколько других типов, таких как Guid или string. Ну и %-оператор вдогонку, который кастит просто.
там из исходников всего один файл, почитай и все поймешь (но это не точно)
https://github.com/fsprojects/FSharp.UMX/blob/master/src/FSharp.UMX.fs
и да, DU это дополнительный референс класс, со всеми вытекающими типа ненужной аллокации
А межуртипы это просто те же типы, только с фантомным генерик параметром, которого в рантайме нет
источник

АВ

Андрей Вилинский... in F# Chat
вообще жаль, что у нас нет хашкельного newtype, который можно примерно так вот заимплементить, и не парить моск начинающим какими-то тип-параметрами
источник

АВ

Андрей Вилинский... in F# Chat
кто-нибудь уже настраивал fsdocs ?
https://fsprojects.github.io/FSharp.Formatting/commandline.html
Хочу попробовать генерировать reveal.js слайды как в FsReveal.
источник

VZ

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

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

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

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

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

Спасибо заранее.
источник

RM

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

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

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

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

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

Спасибо заранее.
Quartz.net для шедулинга был
источник

RM

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

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

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

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

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

Спасибо заранее.
Topshelf
источник

((

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

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

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

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

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

Спасибо заранее.
HostedService
источник

R

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

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

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

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

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

Спасибо заранее.
Мы в ажуре в функциях много чего делаем. Когда понадобился stateful, добавили durable functions. Но там надо аккуратно настроить сериализацию, и есть подводные камни для компонентов, чьим жизненным циклом управляет сама ажура, например, http client или cosmos db client
источник

SN

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

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

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

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

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

Спасибо заранее.
У нас 90% на Кафке и немножко ASP.NET для REST API. Но недавно наша платформ-команда решила исследовать прорывное направление в архитектуре, при котором взаимодействие между двумя сервисами происходит по HTTP (sic!), поэтому есть шансы, что пропорция будет 50/50. Ну я лично хочу добавить новизны в отношения путем затаскивания актор-фреймворка партизанскими методами.
источник

SN

Shub Niggurath in F# Chat
Раньше сидели на собственных библиотеках, сейчас тенденция использовать ванильные SDK и опенсорсные библиотеки, потому что свои библиотеки мы не тянем.
источник

SN

Shub Niggurath in F# Chat
Все крутится в k8s, используем ажуровские хранилища (разные), очереди, аутентификацию.
источник

SN

Shub Niggurath in F# Chat
А, ну вот вспомнил - мне пришлось самому написать враппер для CosmosDB SDK v4, в основном из-за особенностей работы сериализатора с фшарповскими структурами. Но код настолько тривиальный, что суммарно я потратил на него часов ну может 4 за несколько недель.
источник

AH

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

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

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

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

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

Спасибо заранее.
я делал фшарп в 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 и перешли на трижды ебаный конфлуенс). Ну и стандартные сдк космоса, редиса, чот ещё.
источник

VZ

Vlad Zaa in F# Chat
Спасибо больше за инфо всем
источник

AH

Ayrat Hudaygulov in F# Chat
Roman
Мы в ажуре в функциях много чего делаем. Когда понадобился stateful, добавили durable functions. Но там надо аккуратно настроить сериализацию, и есть подводные камни для компонентов, чьим жизненным циклом управляет сама ажура, например, http client или cosmos db client
О, а расскажи как httpClient завести в дурабл функциях нормально
источник

VA

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

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

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

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

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

Спасибо заранее.
Akka.NET (Akkling), свои акторы для RabbitMQ, своя обёртка для Http Client.
источник

SN

Shub Niggurath 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 и перешли на трижды ебаный конфлуенс). Ну и стандартные сдк космоса, редиса, чот ещё.
Так у нас тоже фп не было так-то. У нас была (есть) помоечка с лозунгом «потому что гладиолус функционально». Никакого отношения к фп в прямом понимании этого слова по большому счету там нет, максимум - это валидация на аппликативах, скопипащенная из влашинского блога чуть меньше, чем полностью, и стрелки с мотивацией «скучно че-то тут». Все остальное старый добрый лапшекод, секрет которого был унесен с собою в новую компанию.
источник

SN

Shub Niggurath in F# Chat
Стрелки кстати выпилили
источник

AH

Ayrat Hudaygulov in F# Chat
Shub Niggurath
Стрелки кстати выпилили
Ничоси! Поздравляю
источник

SN

Shub Niggurath in F# Chat
Ayrat Hudaygulov
Ничоси! Поздравляю
Та я в другом репозитории уже почти как год.
источник