спринг - работает, джава-программисты - дешевые и их много
у меня вот никакого сопротивления этому нет 🧐
да по той же причине, почему венда это 80+% корпрынка, но не серверного)
есть работающая привычная услуга, рыночек всегда предпочтет ее прототипам
пока не упрется в ограничения и не захочет за них заплатить
интересно почему только 2% рынка? может что-то не то?) а может не спринг криво работает или что-то там неудобно?)
Читать полностью…без понятий что другого можно подумать, если увидеть как спринг работает с http или хотя бы просто со своими бинами
Читать полностью…обожаю скалистов
- java - костыль
- lombok - костыль
- mapstruct - костыль
- spring - костыль
- jpa - костыль
- продолжите сами
Ну это не макросы, да. В целом мапстракт это скорее костыль, в который вложили много времени, чимни это скорее нативное для скалы. Но в использовании мапстракт похоже выглядит
Читать полностью…ну ещё раз, кодогенерация - это проактивный таск, вы ему говорите, вот мои типы данных, сгенерируй мне код, так чтобы потом у меня был дополнительный функционал
а потом обычные методы пользуются этим дополнительным функционалом, как бы такой рефлекшен на стероидах
а макросы - это реактивная генерация, т.е компилятор говорит - вот типы аргументов, вот деревья аргументов, сгенерируй мне дерево результата, который мог бы замещать этот метод,
Он генериурет схему данных, билдеры и геттеры для того, чтобы в рантайме генерировать трансформации
Читать полностью…нет, просто автоматически по месту назначения трансформирует с учётом всех промежуточных коллекций, опшенов, вариантов
Читать полностью…примерный вид «какую задачу оно решает» понятен
сочетание «много источников, много апих и они все постоянно меняются + с ними нужно именно через код поработать» не то чтобы постоянно вылезало
обычно чего-то одного нет
Дай кейс какой-то менее на словах и более на примере из чего во что. Да чисто для шанса кого-то скалой покусать сделаю)
Читать полностью…Так пол мира катается на N машине ? Делает ли эту машину хорошую ? Или это говорит о доступности машины ?
Читать полностью…А почему это логика лишена смысла?
Все либы были придуманы, как исправление или дополнение чего-то в ванильным языке (то есть костыль) и зачастую те кто делают либы с JDK не связаны, потом это превращается в Чеховое ружье, когда йобнет
что инструмент рабочий, коммунити огромное и живое - так же ведь никто не возражает
скала вот навсегда про 2% рынка и больше никогда не станет, не с чего
Ну в целом, если у меня есть два типа, объявленных в разных местах, ни один из них не должен знать о другом, MapStruct мне поможет?
Читать полностью…В результате, вы в самом методе можете сообщить дополнительную информацию, т.е. вот здесь мне нужно вот такие значения подставить в поля, которые ты мог не найти, вот эти поля в этом месте нужно вот так будет обработать
Читать полностью…А чимни - это макрос, он в самом месте использования генерирует минималистичный код, который был бы написан руками
Читать полностью…байткод для jvm
кроме факта что такой байткод не всегда получится из джавы получить он полностью валидный
Оно бывает полезно при маппинге разнородных апи, генерируемых из схемы, на объекты приложения, при условиях: 1) долгосрочной поддержки приложения, 2) регулярной обновляемости этих апи, 3) большого числа полей, 4) использования аддона мапстракта (удобнее чем из консоли подсвечивает конфликты и пропуски). Чтобы это давало бенефиты, надо настроить полиси
В принципе чимни потенциально может это всё обеспечить, но там просто чуть меньше из коробки чем в мапстракте (всякие полиси, конфиги для соап и т.д). Ну и потенциально кажется, что на скале сделать аналогичный тул было бы сильно проще
повторю тезис со вчера: точно такого же 1-в-1 мапстракта в скале нет, потому что нет этой проблемы и вокруг много другого + есть много возможностей вокруг типов
7+ лет на бихдате, ETL и маппингах всякого во всякое сижу, ни разу не болело дальше кейсклассов в 2.11 (магическое число 22 для тех кто помнит)