Обновить

Комментарии 12

Избавляюсь во всех проектах от автомаппера.
Перехожу на Riok.Mapperly. Функционал послабее, но для простых перекладываний значений из одной DTO в другую, более чем достаточно. А благодаря кодогенерации сразу видно что где и как используется.

Последние годы руками маппинг пишу, помнится что автомаппер умел ругаться, если в одном из участников есть поле, а в другом - нет (т.е. либо в дто либо в сущности завели поле и забыли продублировать).

Есть что-то похожее у Mapperly?

Да, ругается варнингами при компиляции, если с одной стороны есть лишние поля. Можно поднять до еррора. Можно настроить не ругаться, если с одной стороны лишние поля. Достаточно гибко сделано.

У меня какие то проблемы с ним были, то тип коллекции ему не нравился, то после добавления нового поля слетали старые маппинги, не знаю как это можно использовать всерьёз где то

Полностью согласен, что source‑generator мапперы (Mapperly и т.п.) куда приятнее AutoMapper — явный код, нормальная навигация, никакой рефлексии.

Этот плагин как раз для "тёмной реальности", где AutoMapper уже живёт в большом легаси и выкинуть его за неделю невозможно. Пока проект постепенно мигрирует (на Mapperly или что угодно ещё), разработчикам всё равно приходится отвечать на вопрос "откуда это значение взялось?" - и тут FindUsage по маппингам спасает нервы.

Я бы сказал что automapper позволяет условно экономить время для простых моделек. Как только модельки становятся сложнее, с условными маппингами и конвертациями, кода приходится писать больше.

Мы в итоге где это возможно избавлялись от него полностью, благо есть source generators.

Рад тому, что в рабочем проекте удалили это почти везде.

Сам пишу методы расширения для мапинга вместо автоматической ерунды. Максимальная скорость и прозрачность использования. Ещё и без лишней зависимости. Результат выглядит так: var result = repository.Create(dto.ToEntity()).

Тот же путь и сам проходил и других к такому подталкивал.

Реклама своей тулзы а не статья.

Automapper это швейцарский нож в мире мапперов, что он только не умеет но платим производительностью

Удобнее и проще чем Mapster не встречал, хотя не без нюансов

Да, это осознанно "опыт + инструмент": я описываю конкретную проблему, в которую сам много раз упирался (да и мои коллеги тоже), и показываю путь, который прошёл до решения.

Понятно, что ради этого плагина нет смыслы заносить в проект AutoMapper. Но раз он уже есть, то можно попытаться облегчить себе жизнь.

Статья о том, когда этот швейцарский нож уже воткнули вам в проект и теперь как-то надо с ним жить. Mapster/Mapperly/ещё кто‑то действительно комфортнее по DX и производительности. Но там, где AutoMapper уже накопил сотни CreateMap, может быть проще сначала научиться хотя бы нормально по ним ходить, а потом уже планировать миграцию на что‑то более современное.

Приходишь на собес, там как защита докторской: солид, ооп, все паттерны банды четырех нужно рассказать наизусть. А потом реальность - в проекте MediatR и AutoMapper (это все один автор), половина от cqrs и одна база на три микросервиса. Приехали. Тьфу, плять.

Не могу не плюсануть статью, где рифмуются слова automapper и ненависть.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
tech.kontur.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Диана