jokerconf Joker 2013 (15.10.2013 — 15.10.2013)

Java mapping for pragmatic programmers

img

Коллеги Java-программисты, кто и за что нам платит зарплату? Если почитать популярные интернет-ресурсы и послушать выступления на тематических конференциях, то создается такое такое ощущение, что все Java-разработчики только и делают, что обеспечивают high-load 24/7 и 100% загрузку процессора, «тьюнят» GC или эффективно борются с хитрозамороченными многопоточностями. Ну на худой конец, пересаживают данные в очередную модную NoSQL базу.

При этом, похоже, что код самой обычной бизнесс-логики никто не пишет. И не читает. И не поддерживает. Тот самый бесхитростный код, благодаря которому Ваш клиент может автоматизировать значительный кусок своей рутинной повседневной работы и распустить отдел бухгалтерии, сократить штат в филиале своего банка или ещё более успешно зарабатывать на Forex и платить разработчикам хорошую зарплату.

Я пишу код именно для таких клиентов и предметные области, которые мы автоматизируем, сами по себе непростые. А когда дело доходит до кода преобразования одних объектов в другие, то цикломатическая сложность таких «мапингов» на Java стремится к неприлично высоким значениям.

В своём докладе «Java mapping для прагматичных программистов» я расскажу про технологический зоопарк «мапингов» на своем текущем проекте и проведу обзор современных подходов и инструментов, как прагматичных, так и не очень. Transmorph, Dozer, Nomin, ModeMapper — вот только некоторые примеры библиотек, которые предлагают свою оригинальную методологию по организации кода “мапинга” одних объектов на другие. Я поделюсь с Вами нашим опытом и расскажу как можно организовать хорошо структурированный код маппинга, который легко сопоставить со спецификацией и протестировать, который не страшно читать, рефакторить и поддерживать, который позволит прагматичному программисту спокойно спать по ночам.