Size: a a a

2020 June 15

AE

Alexandr Emelyanov in pro.jvm
Roman Ushakov
Зло, кодогенерация зло, если это не Rust, Micronaut, особое зло это jaxb

У раста под капотом идёт очистка памяти.
У микро di, etc
По возможности не юзать кодогенерацию потому что поддержка может скатиться в адуху, если напрямую эти классы используются.
Логика такая:
Поменялись члены класса, меняй весь код завязанный на этот класс.
не обобщай. тебе не нравится - не значит что плохо.

тот же jaxb нужен под свои задачи и справляется более чем замечательно
источник

M

Melodeiro in pro.jvm
Можно как-то в идее при подключении дебагом к процессу отобразить его stdout и stderr в консоли?
источник

DZ

Dmitry Zvorygin in pro.jvm
думаю что никак - это фишка не идеи а операционной системы
источник

DZ

Dmitry Zvorygin in pro.jvm
хороший повод настроить логгирование получше
источник

M

Melodeiro in pro.jvm
Dmitry Zvorygin
хороший повод настроить логгирование получше
А как-то можно логи в идее отобразить с удаленной машины?
источник

DZ

Dmitry Zvorygin in pro.jvm
ну обычно если ты туда можешь отладчиком залезть, то у тебя и ssh должен быть
источник

DZ

Dmitry Zvorygin in pro.jvm
или у тебя только порт для отладки открыт?
источник

M

Melodeiro in pro.jvm
По ssh тоже работаю, но не понимаю, как это можно использовать
источник

DZ

Dmitry Zvorygin in pro.jvm
эээ - берёшь и открываешь логи в консоли
источник

M

Melodeiro in pro.jvm
Dmitry Zvorygin
эээ - берёшь и открываешь логи в консоли
Так мне в идее нужно, чтобы в случае чего по стектрейсу погулять
источник

DZ

Dmitry Zvorygin in pro.jvm
берёшь стактрейс из логов, копируешь его, в идее берешь "Analyze Stack Trace" пастишь туда, и гуляешь по нему
источник

M

Melodeiro in pro.jvm
Не самое удобное, конечно, ну хоть так, спс
источник

DZ

Dmitry Zvorygin in pro.jvm
если в идее ты на брейкпойнте стоишь и у тебя есть exception, то идея позволяет по нему тоже удобно походить
источник

A

Anton in pro.jvm
Roman Ushakov
Зло, кодогенерация зло, если это не Rust, Micronaut, особое зло это jaxb

У раста под капотом идёт очистка памяти.
У микро di, etc
По возможности не юзать кодогенерацию потому что поддержка может скатиться в адуху, если напрямую эти классы используются.
Логика такая:
Поменялись члены класса, меняй весь код завязанный на этот класс.
про замену использований - да, есть такое, сейчас приходится юзать ctrl shift f. Но если купить спец плагин к фреимворку, то он будет делать это автоматически(типа поменял в описании класса, а поменялось везде). Но плагин стоит космоденег, 100$ в год для себя или 200$ если как компания
источник

C

Cargeh in pro.jvm
Anton
про замену использований - да, есть такое, сейчас приходится юзать ctrl shift f. Но если купить спец плагин к фреимворку, то он будет делать это автоматически(типа поменял в описании класса, а поменялось везде). Но плагин стоит космоденег, 100$ в год для себя или 200$ если как компания
что за плагин?
источник

A

Anton in pro.jvm
Cargeh
что за плагин?
hybris integration
источник

RU

Roman Ushakov in pro.jvm
Alexandr Emelyanov
не обобщай. тебе не нравится - не значит что плохо.

тот же jaxb нужен под свои задачи и справляется более чем замечательно
Но я не писал, что мне не нравится.
Я написал, что поддерживать это будет сложно, или даже очень сложно, и время можно потратить с пользой на что-то другое.

В любом случае, когда кодогенерация где-то с боку (Аля dagger, и ему подобные) или, когда результат кодогенерация напрямую где-то используется.

Последнее и приносит столько проблем.
Ладно он там дата классы нагенерил, а, если что-то сложнее?

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

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

Другое дело, если ты кодогенерацию для грааля используешь, вместо рефлексии например
источник

I

Igor in pro.jvm
Roman Ushakov
Зло, кодогенерация зло, если это не Rust, Micronaut, особое зло это jaxb

У раста под капотом идёт очистка памяти.
У микро di, etc
По возможности не юзать кодогенерацию потому что поддержка может скатиться в адуху, если напрямую эти классы используются.
Логика такая:
Поменялись члены класса, меняй весь код завязанный на этот класс.
а как насчет jooq + mapstruct?
источник

AC

Andrei Chugunov in pro.jvm
Туда же openapi generator.
источник

ch

central hardware in pro.jvm
А делать все через рефлексию как будто хорошо?
источник