Size: a a a

2020 July 23

VS

Vladimir Shchur in F# Chat
оо, как раз свежий твит в тему)
https://twitter.com/Zimareff/status/1285573649127399424
источник

VL

Vladimir Lozhnikov in F# Chat
Vladimir Shchur
лучшим с какой точки зрения?
с практической. самый простой пример, когда перед выборкой нужно проверить токен логина на его валидность. из ЕФ нужно сделать два условных запроса, чтобы сначала проверить токен логина, а потом уже сделать саму выборку. если логика выборки усложняется, то количество таких запросов соответственно увеличивается. каждый запрос - это время, потраченное на передачу данных по сети + их анализ. внутри хранимки это делается и компактнее и в несколько раз быстрее.
источник

VS

Vladimir Shchur in F# Chat
я имел ввиду по сравнению с даппером) по скорости разницы быть не должно, думал мб какие-то еще были соображения
источник

VL

Vladimir Lozhnikov in F# Chat
про даппер я тогда не слышал, потому прошел мимо его. но если поискать плюсы, то мой десериализатор - это три файла исходного кода. даппер думаю будет больше. следовательно, скорее всего самоделка работает быстрее, хотя утверждать не буду
источник

ДБ

Дмитрий Башинский... in F# Chat
Я конечно тоже не очень люблю EF, но это же прекрасно отмазаться от SQL.
Везде где я работал ипользовался EF либо Nhibernate
я работал в банке(Alfa bank), в криптовалютном кошельке (Wirex), в страховании (ТАС), сейчас в микрозаймах (MoneyVeo)

Где работаете вы что выбираете работать с бд почти на прямую и писать sql
источник

VK

Vladislav Khapin in F# Chat
Там где оверхед и абстракции стоят времени которого нет
источник

ДБ

Дмитрий Башинский... in F# Chat
1) код в комманд хендлера\контроллерах или где он так у вас
он работает с бд? то-есть знает схему бд и меняется вместе с ней?
2) вы не создаете доменные классы потому что выгоднее работать сразу с таблицами?
источник

VL

Vladimir Lozhnikov in F# Chat
еф и нхибернейт тяжелые, в этом и проблема. при стресс-тестах они жрут все ресурсы сервера.
источник

ДБ

Дмитрий Башинский... in F# Chat
Vladislav Khapin
Там где оверхед и абстракции стоят времени которого нет
пока я бы писал SQL я бы на это отдельный день выделял, а щас я взял EF и написал всю бизнес логику и работу с бд за 1 день
источник

ДБ

Дмитрий Башинский... in F# Chat
в теории жрут, на практике я был на разных проектах с разной нагрузкой
источник

ДБ

Дмитрий Башинский... in F# Chat
везде или то или другое
источник

ДБ

Дмитрий Башинский... in F# Chat
вопроса взять даппер даже не стояло
источник

VK

Vladislav Khapin in F# Chat
Дмитрий Башинский
пока я бы писал SQL я бы на это отдельный день выделял, а щас я взял EF и написал всю бизнес логику и работу с бд за 1 день
Хорошо что у нас люди скл знают и пишут его быстро как ты свой еф
источник

VL

Vladimir Lozhnikov in F# Chat
и на практике жрут. я тестировал на локальном компе, сделал несколько десятков запросов в секунду и сожрало все.
источник

VS

Vladimir Shchur in F# Chat
Дмитрий Башинский
1) код в комманд хендлера\контроллерах или где он так у вас
он работает с бд? то-есть знает схему бд и меняется вместе с ней?
2) вы не создаете доменные классы потому что выгоднее работать сразу с таблицами?
1) код там же где у тебя код ef
2) выгоднее писать сразу sql, кроме инсерта, там проще юзать dapper.contrib, но если балк инсерт, то опять же sql в зависимости от базы
источник

Н

Николай in F# Chat
Vladimir Lozhnikov
про даппер я тогда не слышал, потому прошел мимо его. но если поискать плюсы, то мой десериализатор - это три файла исходного кода. даппер думаю будет больше. следовательно, скорее всего самоделка работает быстрее, хотя утверждать не буду
Тоже IL эмитишь в своём десериализаторе?
источник

VL

Vladimir Lozhnikov in F# Chat
C# + рефлексия.
источник

ДБ

Дмитрий Башинский... in F# Chat
можете описать как вы решаете одну фичу?
вот нужно взять двух юзеров и перевести деньги с одного другому
поменять балансы, и добавить по 1 записи транзации (перевод от, перевод кому)

На EF я бы достал юзеров, поменял бы их, вызовом пары методов на них, и нажал бы SaveChanges

На каком-то даппере я бы сделал бы
update where и insert

меня смущает только то, что домена приложения теперь нет, зашел запрос - поменяли табличку, по мне это тот же CRUD Только оптимизированее
источник

VS

Vasily Shapenko in F# Chat
Так это не делается
источник

VS

Vasily Shapenko in F# Chat
У тебя транзакция на самом деле цепочка записей
источник