Поспорили вчера с Сашей Шушуновым — нужно ли проращивать типы насквозь от базы данных до фронта? Саша говорит, что нужно. Кент Доддс говорит, что нужно. А я за маппинг в DTO. И дядя Боб за DTO (кто бы сомневался). Да, удобно, когда имена полей гарантированно совпадают, но как же часто я вижу, как по системе гуляет модель со всеми её optional полями и реляциями. И на месте использования люди давят опциональность через ! чтобы TS не ругался (а что, я точно знаю, что здесь поле не пустое). Так если поле не пустое, то пусть структура DTO это и описывает. Если подтянули данные через реляцию — пусть DTO это описывает.



За пределами Data Access Layer я не хочу знать о структуре базы данных. Я хочу работать с чистыми данными, я не хочу видеть здесь модель, обвешанную методами. Представление данных на клиенте вообще может не совпадать с представлением в БД (как минимум, мы любим в UI работать с денормальзованными данными). А уж идея средствами ORM менять структуру БД под схемы вводит меня в ступор. Да, DX будет шикарный, но данные — это самое ценное, что у нас есть. И я хочу пересекать границу между данными и представлением максимально аккуратно.



Старый я. И вредный.