🇷🇺 За пол года работы с Entity Framework Core я понял, что AutoInclude - это зло.
AutoInclude - это метод, конфигурирующий автоматическую загрузку связанных сущностей из базы данных. По-умолчанию, такие сущности не загружаются, т.к., очевидно, что это негативно сказывается на произвольности.
Да, у любого функционала есть своё назначение и при грамотном использовании он будет работать так, как надо, но именно только при грамотном использовании.
С большой долей вероятности, вы забудете, что в DbContext сконфигурирован AutoInclude для какой-то сущности и в какой-то момент производительность запросов начнёт стремительно падать. А когда решите отключить AutoInclude, то заметите, что существующий функционал выбрасывает ошибки, т.к. в нём ожидаются какие-то связанные данные.
Решение всех этих проблем: не ленится писать Include для каждого конкретного запроса, включая только те связанные сущности, которые нужны для этого запроса.
🇬🇧 After half a year I realized that AutoInclude is evil.
AutoInclude is a method that configures an automatic loading of related entities from the database. It's obvious, that these entities are not downloaded by default, because it affects on querying performance.
Yes, any functionality has its own purpose and with properly using, it will serve as designed, but only if using is proper.
I'm pretty sure, that you will forget, that AutoInclude was configured for some entity in DbContext and in some day the performance of the requests will slow down rapidly. And when you decide to remove AutoInclude, you'll face a bunch of errors, that were thrown by some functions, because they expect related data.
The solution for all these problems is to use Include for each query and include only those entities that are necessary for the specific request.
AutoInclude - это метод, конфигурирующий автоматическую загрузку связанных сущностей из базы данных. По-умолчанию, такие сущности не загружаются, т.к., очевидно, что это негативно сказывается на произвольности.
Да, у любого функционала есть своё назначение и при грамотном использовании он будет работать так, как надо, но именно только при грамотном использовании.
С большой долей вероятности, вы забудете, что в DbContext сконфигурирован AutoInclude для какой-то сущности и в какой-то момент производительность запросов начнёт стремительно падать. А когда решите отключить AutoInclude, то заметите, что существующий функционал выбрасывает ошибки, т.к. в нём ожидаются какие-то связанные данные.
Решение всех этих проблем: не ленится писать Include для каждого конкретного запроса, включая только те связанные сущности, которые нужны для этого запроса.
🇬🇧 After half a year I realized that AutoInclude is evil.
AutoInclude is a method that configures an automatic loading of related entities from the database. It's obvious, that these entities are not downloaded by default, because it affects on querying performance.
Yes, any functionality has its own purpose and with properly using, it will serve as designed, but only if using is proper.
I'm pretty sure, that you will forget, that AutoInclude was configured for some entity in DbContext and in some day the performance of the requests will slow down rapidly. And when you decide to remove AutoInclude, you'll face a bunch of errors, that were thrown by some functions, because they expect related data.
The solution for all these problems is to use Include for each query and include only those entities that are necessary for the specific request.
✍3
🇷🇺 Первая статья из серии про Domain-Driven Design (DDD). Начнём с простого рефакторинга кода с anemic domain model и перепишем используя паттерны DDD и rich domain model.
🇬🇧 The first article in the series about Domain-Driven Design (DDD). We'll start from simple refactoring of a code with anemic domain model and rewrite it using DDD patterns and rich domain model.
🇬🇧 The first article in the series about Domain-Driven Design (DDD). We'll start from simple refactoring of a code with anemic domain model and rewrite it using DDD patterns and rich domain model.
👍3❤1
Немного о сербском 🇷🇸
Поскольку сербский - это тоже славянский язык, то его, конечно, легче выучить, чем английский. Тут много похожих слов и фраз:
- числительные: jедан, два, три, десят, два десят, сто петдесят...
- дни недели, месяцы: понедельак, уторак, jануар, фебруар...
- здраво, довидженья
- добро jутро, добар дан
- местоимения: ja, ти, он, она, они...
Но во многом это совершенно другой язык, непохожий на русский. Слов, которые имеют абсолютно другое значение, тоже достаточно, например:
- "прямо" по-сербски будет "право", а "право" - "дЕсна", но "право" в значении "право на адвоката" будет также "право"
- "пОнос" - это не диарея, а гордость
- "сутра" значит завтра, а не "утром"
- "куча" - это "дом"
- "деда мраз" не ругательство, а дед мороз.
- "ужин" - это всего лишь перекус, а русский "ужин" - это "вечера".
- "бели лук" - это "чеснок", а привычный репчатый лук - "црни/црвени лук"
Ещё есть аналог глагола to be (бити, т.е. быть), который в русском редуцирован, а в сербском остался. Например:
- Jа сам из Руcиjе - Я из России (сам редуцирован)
- Ти си из Русиje - Ты из России (си редуцирован)
- Она je радила у IT компаниjи - Она работала в IT компании (je редуцирован).
Есть ещё много приколов с окончаниями и родом слов, но об этом как-нибудь в другой раз.
Поскольку сербский - это тоже славянский язык, то его, конечно, легче выучить, чем английский. Тут много похожих слов и фраз:
- числительные: jедан, два, три, десят, два десят, сто петдесят...
- дни недели, месяцы: понедельак, уторак, jануар, фебруар...
- здраво, довидженья
- добро jутро, добар дан
- местоимения: ja, ти, он, она, они...
Но во многом это совершенно другой язык, непохожий на русский. Слов, которые имеют абсолютно другое значение, тоже достаточно, например:
- "прямо" по-сербски будет "право", а "право" - "дЕсна", но "право" в значении "право на адвоката" будет также "право"
- "пОнос" - это не диарея, а гордость
- "сутра" значит завтра, а не "утром"
- "куча" - это "дом"
- "деда мраз" не ругательство, а дед мороз.
- "ужин" - это всего лишь перекус, а русский "ужин" - это "вечера".
- "бели лук" - это "чеснок", а привычный репчатый лук - "црни/црвени лук"
Ещё есть аналог глагола to be (бити, т.е. быть), который в русском редуцирован, а в сербском остался. Например:
- Jа сам из Руcиjе - Я из России (сам редуцирован)
- Ти си из Русиje - Ты из России (си редуцирован)
- Она je радила у IT компаниjи - Она работала в IT компании (je редуцирован).
Есть ещё много приколов с окончаниями и родом слов, но об этом как-нибудь в другой раз.
👍5👌1
❤🔥3❤2
Налоги в России и Сербии
Если сравнивать просто НДФЛ, то можно подумать, что работники в Сербии получают зарплату на руки больше, чем в России, т.к. НДФЛ в Сербии 10%, против 13% (15%) в России. На деле, сербская система налогообложения сложнее, чем российская. Ниже пояснения с расчётами для зарплаты в 1000€.
👨💻 Удержания с зарплаты работника
В России удерживают только НДФЛ по ставке 13% (15%).
На руки работник получит:
1000€ - 1000€ * 0.13 =
870€ (налог 130€)
В Сербии удерживают:
1. Налог на зарплату (порез на зараду) со ставкой 10%. Аналог нашего НДФЛ. Особенность сербского НДФЛ в том, что ставка применяется к зарплате за вычетом необлагаемой суммы. В 2023 году она составляет 21 712 динар (примерно 184.78€).
2. Взносы на пенсионное страхование и страхование по инвалидности (доприноса за пензиjско и инвалидско осигуранье) со ставкой 14%. Аналог взносов в ПФР.
3. Взнос по безработице (доприноса за незапосленост) со ставкой 0,75%. Прямого аналога в России нет.
4. Взносы на медицинское страхование (доприноса за здравствено осигуранье) со ставкой 5.15%. Аналог взносов в ФОМС.
На руки работник получит:
1000€
- (1000€ - 184.78€) * 0.1
- 1000€ * 0.14
- 1000€ * 0.0075
- 1000€ * 0.0515 =
719.48€ (налог 280.52€)
💼 Взносы от работодателя
Работодатель в России обязан ещё уплатить:
1. 22% в ПФР.
2. 2.9% в ФСС.
3. 5.1% в ФОМС.
1. 1000€ * 0.22 = 220€
2. 1000€ * 0.029 = 29€
3. 1000€ * 0.051 = 51€
Суммарно: 300€
В Сербии работодатель обязан уплатить:
1. 10% на пенсионное страхование.
2. 5.15 на обязательное медицинское страхование.
1. 1000€ * 0.1 = 100€
2. 1000€ * 0.0515 = 51.5€
Суммарно: 151.5€
☝️Итог
Несмотря на отличия в налогообложении, поступления в государственный бюджет примерно одинаковые: в России будет уплачено 430€, а в Сербии - 432.02€.
При этом, в Сербии 65% этих налогов заплатит работник, а в России всего 30%. Сербские работники получают около 72% от своих зарплат, когда как в России 87%.
При прочих равных, получается, что в России работником быть выгоднее.
Если сравнивать просто НДФЛ, то можно подумать, что работники в Сербии получают зарплату на руки больше, чем в России, т.к. НДФЛ в Сербии 10%, против 13% (15%) в России. На деле, сербская система налогообложения сложнее, чем российская. Ниже пояснения с расчётами для зарплаты в 1000€.
👨💻 Удержания с зарплаты работника
В России удерживают только НДФЛ по ставке 13% (15%).
На руки работник получит:
1000€ - 1000€ * 0.13 =
870€ (налог 130€)
В Сербии удерживают:
1. Налог на зарплату (порез на зараду) со ставкой 10%. Аналог нашего НДФЛ. Особенность сербского НДФЛ в том, что ставка применяется к зарплате за вычетом необлагаемой суммы. В 2023 году она составляет 21 712 динар (примерно 184.78€).
2. Взносы на пенсионное страхование и страхование по инвалидности (доприноса за пензиjско и инвалидско осигуранье) со ставкой 14%. Аналог взносов в ПФР.
3. Взнос по безработице (доприноса за незапосленост) со ставкой 0,75%. Прямого аналога в России нет.
4. Взносы на медицинское страхование (доприноса за здравствено осигуранье) со ставкой 5.15%. Аналог взносов в ФОМС.
На руки работник получит:
1000€
- (1000€ - 184.78€) * 0.1
- 1000€ * 0.14
- 1000€ * 0.0075
- 1000€ * 0.0515 =
719.48€ (налог 280.52€)
💼 Взносы от работодателя
Работодатель в России обязан ещё уплатить:
1. 22% в ПФР.
2. 2.9% в ФСС.
3. 5.1% в ФОМС.
1. 1000€ * 0.22 = 220€
2. 1000€ * 0.029 = 29€
3. 1000€ * 0.051 = 51€
Суммарно: 300€
В Сербии работодатель обязан уплатить:
1. 10% на пенсионное страхование.
2. 5.15 на обязательное медицинское страхование.
1. 1000€ * 0.1 = 100€
2. 1000€ * 0.0515 = 51.5€
Суммарно: 151.5€
☝️Итог
Несмотря на отличия в налогообложении, поступления в государственный бюджет примерно одинаковые: в России будет уплачено 430€, а в Сербии - 432.02€.
При этом, в Сербии 65% этих налогов заплатит работник, а в России всего 30%. Сербские работники получают около 72% от своих зарплат, когда как в России 87%.
При прочих равных, получается, что в России работником быть выгоднее.
❤5✍3
Технические статьи неспеша пишутся и пока не готовы, потому вот вам немного воскресных фоток из крепости Голубац, что в 140 км от Белграда.
🔥4
Топ 5 фотографий с прошедшего отпуска. За 10 дней проехали 2000 км по Сербии и много чего посмотрели. Было много гор и хайкинга. Немного городского отдыха. На фотках лишь малая часть. Вердикт: кросевое и интересное.
После России было необычно осознавать, что можно проехать от восточной до западной границы за 5 - 6 часов. В России самая долгая поездка на машине была 24 часа. Ехали без остановок в гостиницах, периодически меняясь с отцом (один отдыхает, другой рулит). За это время доехали только до Краснодара (там, кстати, тоже кросевое, но наверняка вы и так знаете). Широка и необъятна наша Родина 😄.
После России было необычно осознавать, что можно проехать от восточной до западной границы за 5 - 6 часов. В России самая долгая поездка на машине была 24 часа. Ехали без остановок в гостиницах, периодически меняясь с отцом (один отдыхает, другой рулит). За это время доехали только до Краснодара (там, кстати, тоже кросевое, но наверняка вы и так знаете). Широка и необъятна наша Родина 😄.
❤4❤🔥2