Как мы перенесли ответственность за поддержку мапперов моделей на KSP
Я Android-разработчик в компании Workmate, и сегодня хочу рассказать о том, как мы избавились от самой нудной части своей работы - ручной поддержки мапперов моделей - и как перенесли эту ответственность на KSP.
Каждый разработчик, работавший с проектом, где одни модели мапятся в другие, знает эту боль: добавил поле в модель и пошёл обновлять десятки мапперов вручную. Переименовал параметр - компилятор взрывается ошибками, и ты снова правишь код руками. Мапперы - это “мёртвая зона”: они пишутся механически, но при этом легко ломаются и не приносят никакой ценности бизнесу.
Мы решили избавиться от этой рутины раз и навсегда и сделали библиотеку - генератор кода маппинга на основе KSP. В этой статье я расскажу, как мы пришли к такому решению, как устроена библиотека изнутри и с какими подводными камнями столкнулись.
Статья: https://habr.com/ru/articles/1069866/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я Android-разработчик в компании Workmate, и сегодня хочу рассказать о том, как мы избавились от самой нудной части своей работы - ручной поддержки мапперов моделей - и как перенесли эту ответственность на KSP.
Каждый разработчик, работавший с проектом, где одни модели мапятся в другие, знает эту боль: добавил поле в модель и пошёл обновлять десятки мапперов вручную. Переименовал параметр - компилятор взрывается ошибками, и ты снова правишь код руками. Мапперы - это “мёртвая зона”: они пишутся механически, но при этом легко ломаются и не приносят никакой ценности бизнесу.
Мы решили избавиться от этой рутины раз и навсегда и сделали библиотеку - генератор кода маппинга на основе KSP. В этой статье я расскажу, как мы пришли к такому решению, как устроена библиотека изнутри и с какими подводными камнями столкнулись.
Статья: https://habr.com/ru/articles/1069866/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность