Size: a a a

2020 July 10

МП

Миша Проказин... in F# Chat
В чём отличие от даппера?
источник

АВ

Андрей Вилинский... in F# Chat
даппер немного больше умеет, например объекты сам маппит из резалта. А FsSql и Donald это просто легкая обертка для запросов и параметров. Много фич в них нет, я уже и сам такие писал в несколько строк
источник

VK

Vladislav Khapin in F# Chat
Андрей Вилинский
для просто sql есть Дональд https://github.com/pimbrouwers/Donald
Умеют имена выбирать для либ
источник

R

Roman in F# Chat
Anton Iliyn
а юзать автомаппер - это сильно не идиоматично?
Да. Автомаппер это зло даже в сишарпе, а в фарше в нем просто нет смысла. Если у тебя доменные модели полностью совпадают с дата слоем или Вью слоем даже на старте, ты что-то делаешь не так
источник

G

George in F# Chat
Вопрос не столько конкретно по f#, но всё же: допустим, у меня есть приложение-сервер, в нём цикл, внутри которого я через Async.Start запускаю Socket.Send для передачи данных приложению-клиенту. Могут ли данные, которые я посылаю на цикле N, на деле быть отосланы после данных, которые я посылаю на цикле N+1? Иными словами, если я посылаю A в цикле 1 и B в цикле 2, может ли клиент получить эти данные в обратном порядке (BA), или об этом можно не волноваться?
источник

SB

S B in F# Chat
Roman
Да. Автомаппер это зло даже в сишарпе, а в фарше в нем просто нет смысла. Если у тебя доменные модели полностью совпадают с дата слоем или Вью слоем даже на старте, ты что-то делаешь не так
Он же не только 1 к 1 покрывает случаи, чего уж сразу так топором. Но мне тоже не нравится. Но разные же проекты бывают.
источник

SB

S B in F# Chat
Наверняка есть проекты, где Автомаппер как бальзам на душу.
источник

SB

S B in F# Chat
George
Вопрос не столько конкретно по f#, но всё же: допустим, у меня есть приложение-сервер, в нём цикл, внутри которого я через Async.Start запускаю Socket.Send для передачи данных приложению-клиенту. Могут ли данные, которые я посылаю на цикле N, на деле быть отосланы после данных, которые я посылаю на цикле N+1? Иными словами, если я посылаю A в цикле 1 и B в цикле 2, может ли клиент получить эти данные в обратном порядке (BA), или об этом можно не волноваться?
Если запись асинхронная, то можешь получить неверный порядок. В таком случае лучше использовать очередь и один отдельный IO поток.
источник

SB

S B in F# Chat
Если синхронная, но это то же самое что выше, только очередь в неявном виде.
источник

G

George in F# Chat
Я так понимаю, мне нужна ConcurrentQueue, в которую из цикла будут добавляться элементы, а в отдельном IO-треде - параллельно выниматься, верно?
источник

В

Вячеслав in F# Chat
George
Я так понимаю, мне нужна ConcurrentQueue, в которую из цикла будут добавляться элементы, а в отдельном IO-треде - параллельно выниматься, верно?
Так ты в асник.старт запусти таску которая будет массив обрабатывать
источник

В

Вячеслав in F# Chat
Ну или юзай channel
источник

VS

Vladimir Shchur in F# Chat
George
Вопрос не столько конкретно по f#, но всё же: допустим, у меня есть приложение-сервер, в нём цикл, внутри которого я через Async.Start запускаю Socket.Send для передачи данных приложению-клиенту. Могут ли данные, которые я посылаю на цикле N, на деле быть отосланы после данных, которые я посылаю на цикле N+1? Иными словами, если я посылаю A в цикле 1 и B в цикле 2, может ли клиент получить эти данные в обратном порядке (BA), или об этом можно не волноваться?
мейлбокс решит все проблемы)
источник

G

George in F# Chat
Почитаю, спасибо)
источник

VS

Vladimir Shchur in F# Chat
источник

R

Roman in F# Chat
S B
Он же не только 1 к 1 покрывает случаи, чего уж сразу так топором. Но мне тоже не нравится. Но разные же проекты бывают.
да, и это еще хуже. Работал на проекте, где были развесистые маппинги для случаев, когда не 1 к 1 (которых было примерно 100% даже на сишарпе). В итоге нахуя такое счастье — непонятно, потому что неявности добавляет только в путь, но да, позволяет сэкономить несколько строчек в духе model.UserId = dto.UserId. Ведь напечатать код, как известно, это же самая сложная часть работы погромиста
источник

Н

Николай in F# Chat
Roman
да, и это еще хуже. Работал на проекте, где были развесистые маппинги для случаев, когда не 1 к 1 (которых было примерно 100% даже на сишарпе). В итоге нахуя такое счастье — непонятно, потому что неявности добавляет только в путь, но да, позволяет сэкономить несколько строчек в духе model.UserId = dto.UserId. Ведь напечатать код, как известно, это же самая сложная часть работы погромиста
Так это не проблема инструмента. Как показывает практика, автомаппер очень часто суют и используют там, для чего он не предназначался
источник

R

Roman in F# Chat
Николай
Так это не проблема инструмента. Как показывает практика, автомаппер очень часто суют и используют там, для чего он не предназначался
почему же — это как раз то самое предназначение: автоматический маппинг моделей с возможностью кастомизации, что мы и наблюдаем. А неявность зашита в сам инструмент наглухо.
источник

Н

Николай in F# Chat
Он отлично подходит, когда надо из сложной доменной сущности или БД смапить с дто для вьюшки\апи, при чём может автоматически добавить экспрешены для селекта, если, например, использовать EF
источник

Н

Николай in F# Chat
Но раз он хорошо подходит для read, его начинают использовать в обратную сторону и маппят из дто в доменные объекты
источник