jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5916

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

спринг - работает, джава-программисты - дешевые и их много

у меня вот никакого сопротивления этому нет 🧐

Читать полностью…

pro.jvm

да по той же причине, почему венда это 80+% корпрынка, но не серверного)

есть работающая привычная услуга, рыночек всегда предпочтет ее прототипам

пока не упрется в ограничения и не захочет за них заплатить

Читать полностью…

pro.jvm

интересно почему только 2% рынка? может что-то не то?) а может не спринг криво работает или что-то там неудобно?)

Читать полностью…

pro.jvm

без понятий что другого можно подумать, если увидеть как спринг работает с http или хотя бы просто со своими бинами

Читать полностью…

pro.jvm

возражения по существу есть?
на правду странно обижаться

Читать полностью…

pro.jvm

обожаю скалистов
- java - костыль
- lombok - костыль
- mapstruct - костыль
- spring - костыль
- jpa - костыль
- продолжите сами

Читать полностью…

pro.jvm

Ну это не макросы, да. В целом мапстракт это скорее костыль, в который вложили много времени, чимни это скорее нативное для скалы. Но в использовании мапстракт похоже выглядит

Читать полностью…

pro.jvm

В итоге это выглядит просто как вызов метода

Читать полностью…

pro.jvm

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


а макросы - это реактивная генерация, т.е компилятор говорит - вот типы аргументов, вот деревья аргументов, сгенерируй мне дерево результата, который мог бы замещать этот метод,

Читать полностью…

pro.jvm

Ну грубо говоря всё же в компайлтайме (то есть жава код)

Читать полностью…

pro.jvm

Он генериурет схему данных, билдеры и геттеры для того, чтобы в рантайме генерировать трансформации

Читать полностью…

pro.jvm

нет, просто автоматически по месту назначения трансформирует с учётом всех промежуточных коллекций, опшенов, вариантов

Читать полностью…

pro.jvm

примерный вид «какую задачу оно решает» понятен

сочетание «много источников, много апих и они все постоянно меняются + с ними нужно именно через код поработать» не то чтобы постоянно вылезало

обычно чего-то одного нет

Читать полностью…

pro.jvm

ну помощнее мапстракта, получается

Читать полностью…

pro.jvm

Дай кейс какой-то менее на словах и более на примере из чего во что. Да чисто для шанса кого-то скалой покусать сделаю)

Читать полностью…

pro.jvm

Так пол мира катается на N машине ? Делает ли эту машину хорошую ? Или это говорит о доступности машины ?

Читать полностью…

pro.jvm

А почему это логика лишена смысла?

Все либы были придуманы, как исправление или дополнение чего-то в ванильным языке (то есть костыль) и зачастую те кто делают либы с JDK не связаны, потом это превращается в Чеховое ружье, когда йобнет

Читать полностью…

pro.jvm

что инструмент рабочий, коммунити огромное и живое - так же ведь никто не возражает

скала вот навсегда про 2% рынка и больше никогда не станет, не с чего

Читать полностью…

pro.jvm

Дак можно их просто в истории посмотреть

Читать полностью…

pro.jvm

этой фразой можно большую половину джава-мира описать 🫠

Читать полностью…

pro.jvm

Ну в целом, если у меня есть два типа, объявленных в разных местах, ни один из них не должен знать о другом, MapStruct мне поможет?

Читать полностью…

pro.jvm

Но в реальности это генерация точечная по месту использования

Читать полностью…

pro.jvm

В результате, вы в самом методе можете сообщить дополнительную информацию, т.е. вот здесь мне нужно вот такие значения подставить в поля, которые ты мог не найти, вот эти поля в этом месте нужно вот так будет обработать

Читать полностью…

pro.jvm

У тебя в генерированных исходниках есть все после сборки, открывай и смотри

Читать полностью…

pro.jvm

А чимни - это макрос, он в самом месте использования генерирует минималистичный код, который был бы написан руками

Читать полностью…

pro.jvm

МапСтракт же не генерирует код самих трансформаций, как я понимаю

Читать полностью…

pro.jvm

байткод для jvm

кроме факта что такой байткод не всегда получится из джавы получить он полностью валидный

Читать полностью…

pro.jvm

что скала код генерит?

Читать полностью…

pro.jvm

Оно бывает полезно при маппинге разнородных апи, генерируемых из схемы, на объекты приложения, при условиях: 1) долгосрочной поддержки приложения, 2) регулярной обновляемости этих апи, 3) большого числа полей, 4) использования аддона мапстракта (удобнее чем из консоли подсвечивает конфликты и пропуски). Чтобы это давало бенефиты, надо настроить полиси

В принципе чимни потенциально может это всё обеспечить, но там просто чуть меньше из коробки чем в мапстракте (всякие полиси, конфиги для соап и т.д). Ну и потенциально кажется, что на скале сделать аналогичный тул было бы сильно проще

Читать полностью…

pro.jvm

повторю тезис со вчера: точно такого же 1-в-1 мапстракта в скале нет, потому что нет этой проблемы и вокруг много другого + есть много возможностей вокруг типов

7+ лет на бихдате, ETL и маппингах всякого во всякое сижу, ни разу не болело дальше кейсклассов в 2.11 (магическое число 22 для тех кто помнит)

Читать полностью…
Subscribe to a channel