#value_object — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #value_object, aggregated by home.social.
-
DDD в Go без красивых схем: как один платеж получил три курса валют
В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью
https://habr.com/ru/articles/1025226/
#ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal
-
DDD в Go без красивых схем: как один платеж получил три курса валют
В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью
https://habr.com/ru/articles/1025226/
#ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal
-
DDD в Go без красивых схем: как один платеж получил три курса валют
В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью
https://habr.com/ru/articles/1025226/
#ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal
-
DDD в Go без красивых схем: как один платеж получил три курса валют
В какой-то момент у нас один платеж начал жить с тремя курсами валют: checkout показывал сумму из Redis, payment-service ходил в API, а ledger писал проводку по снапшоту из Postgres. Расхождения были 2-5 тенге, иногда до 180. Разбираю, как это дебажили, какие костыли ставили и где DDD реально помог, без красивых схем. Читать статью
https://habr.com/ru/articles/1025226/
#ddd #domaindriven_design #go #golang #архитектура #value_object #aggregate_root #платежи #курсывалют #decimal
-
Records в C#: Классы, которые пишут код за вас
Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.
https://habr.com/ru/companies/otus/articles/1016500/
#c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность
-
Records в C#: Классы, которые пишут код за вас
Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.
https://habr.com/ru/companies/otus/articles/1016500/
#c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность
-
Records в C#: Классы, которые пишут код за вас
Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.
https://habr.com/ru/companies/otus/articles/1016500/
#c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность
-
Records в C#: Классы, которые пишут код за вас
Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению. В этой статье мы разберем, как records меняют подход к написанию кода, и почему они должны стать вашим стандартным выбором для представления данных.
https://habr.com/ru/companies/otus/articles/1016500/
#c# #net #dto #value_object #c#_9 #c#_100 #иммутабельность
-
Value Object: как победить примитивную одержимость без DDD
Кажется, что оборачивать BigDecimal и String в отдельные классы — это overengineering и преждевременный DDD. Но именно из-за этих «лишних» типов в прод не пролезают посылки в ПВЗ, проценты внезапно превращаются из 0.8 в 80, а деньги теряют валюту и смысл. В статье на реальном примере логистики разбираем, как один небольшой record Weight и несколько аккуратных Value Object’ов наводят порядок в бизнес-логике: инварианты перестают жить в комментариях, проверки перестают дублироваться, а код начинает читаться как текст предметной области. Без внедрения полного DDD, без религиозного фанатизма — только практические шаги. Как избавиться от одержимости примитивами
-
Value object и DTO в PHP (DDD)
В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).
-
Value object и DTO в PHP (DDD)
В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).
-
Value object и DTO в PHP (DDD)
В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).
-
Value object и DTO в PHP (DDD)
В чем разница и когда что использовать? Это был один из вопросов, на которые я пытался получить ответ. Попытаюсь тут описать ту практику, которую считаю не плохой. С примерами на PHP . Постараюсь описывать на простом языке - без использования сложной терминологии . Лучше всего это два подхода понимаются в слоистой архитектуре(слой презентации , доменный , инфраструктура , приложение - те, которые на текущий момент я использую в итоговом примере).
-
Как защитить бизнес-логику от мутаций в DTO: коротко
Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.
https://habr.com/ru/companies/otus/articles/914418/
#teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации
-
Как защитить бизнес-логику от мутаций в DTO: коротко
Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.
https://habr.com/ru/companies/otus/articles/914418/
#teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации
-
Как защитить бизнес-логику от мутаций в DTO: коротко
Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.
https://habr.com/ru/companies/otus/articles/914418/
#teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации
-
Как защитить бизнес-логику от мутаций в DTO: коротко
Привет, Хабр! Сегодня рассмотрим как обезопасить бизнес-логику от случайного (или злонамеренного) изменения DTO, чем опасна мутабельность моделей и какие инструменты дают C#, Java, Python и Go, чтобы вы больше никогда не ловили эти баги.
https://habr.com/ru/companies/otus/articles/914418/
#teamlead #DTO #Безопасность_бизнеслогики #Value_Object #Иммутабельность_DTO #антимутабельность_моделей #ошибки_авторизации