home.social

#value_object — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #value_object, aggregated by home.social.

  1. DDD в Go без красивых схем: как один платеж получил три курса валют

    В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью

    habr.com/ru/articles/1025226/

    #ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal

  2. DDD в Go без красивых схем: как один платеж получил три курса валют

    В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью

    habr.com/ru/articles/1025226/

    #ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal

  3. DDD в Go без красивых схем: как один платеж получил три курса валют

    В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью

    habr.com/ru/articles/1025226/

    #ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal

  4. DDD в Go без красивых схем: как один платеж получил три курса валют

    В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью

    habr.com/ru/articles/1025226/

    #ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal

  5. Records в C#: Классы, которые пишут код за вас

    Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.

    habr.com/ru/companies/otus/art

    #c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность

  6. Records в C#: Классы, которые пишут код за вас

    Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.

    habr.com/ru/companies/otus/art

    #c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность

  7. Records в C#: Классы, которые пишут код за вас

    Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.

    habr.com/ru/companies/otus/art

    #c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность

  8. Records в C#: Классы, которые пишут код за вас

    Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.

    habr.com/ru/companies/otus/art

    #c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность

  9. Value Object: как победить примитивную одержимость без DDD

    Кажется, что оборачивать BigDecimal и String в отдельные классы — это overengineering и преждевременный DDD. Но именно из-за этих «лишних» типов в прод не пролезают посылки в ПВЗ, проценты внезапно превращаются из 0.8 в 80, а деньги теряют валюту и смысл. В статье на реальном примере логистики разбираем, как один небольшой record Weight и несколько аккуратных Value Object’ов наводят порядок в бизнес-логике: инварианты перестают жить в комментариях, проверки перестают дублироваться, а код начинает читаться как текст предметной области. Без внедрения полного DDD, без религиозного фанатизма — только практические шаги. Как избавиться от одержимости примитивами

    habr.com/ru/companies/cdek_blo

    #java #value_object #ddd #kotlin #backend

  10. Value object и DTO в PHP (DDD)

    В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).

    habr.com/ru/articles/916590/

    #ddd #solid #clean_architecture #php #value_object #dto

  11. Value object и DTO в PHP (DDD)

    В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).

    habr.com/ru/articles/916590/

    #ddd #solid #clean_architecture #php #value_object #dto

  12. Value object и DTO в PHP (DDD)

    В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).

    habr.com/ru/articles/916590/

    #ddd #solid #clean_architecture #php #value_object #dto

  13. Value object и DTO в PHP (DDD)

    В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).

    habr.com/ru/articles/916590/

    #ddd #solid #clean_architecture #php #value_object #dto

  14. Как защитить бизнес-логику от мутаций в DTO: коротко

    Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.

    habr.com/ru/companies/otus/art

    #teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации

  15. Как защитить бизнес-логику от мутаций в DTO: коротко

    Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.

    habr.com/ru/companies/otus/art

    #teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации

  16. Как защитить бизнес-логику от мутаций в DTO: коротко

    Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.

    habr.com/ru/companies/otus/art

    #teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации

  17. Как защитить бизнес-логику от мутаций в DTO: коротко

    Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.

    habr.com/ru/companies/otus/art

    #teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации