Ужасно! все... ужасно все это напоминает комиксы про Сову и эффективных менеджеров
Григорий Остер более вредных советов не придумал бы...
Создай себе комфортные условия сам - ну с таким вот... может и зарплату себе самому платить ? а... удаленка.... ну теперь это же не обязанность работодателя, конечно конечно...
Будь эффективным на каждом собрании, участвуй в обсуждениях. Постарайся аргументированно пропустить собрание, если сомневаешься, что тема нуждается в твоей экспертизе.
ало! а чья это задача определять важность собрания, организовывать людей.. модерировать диалог... ... а ну да ... работника, совам напрягаться только собрать... а кто не пришол то спросить почему... а важность пусть сам догадается... прикольно.
Бесконечные чаты, собрания и чаепития не дают работать в потоке. Следи за потраченным временем, оптимизируй его
по русски это переводиться просто: "Работай раб! Солнце еще не село!"
Постоянно учиться, быть в курсе новых технологий и поддерживать знания на высоком уровне — это обязанность профессионала.
конечно, профессионал же должен знать 100500 технологий, зачем ему спать... на курсы захотел ??? а кто работать будет!!! ночью читай учебники
Найди методику обучения, которая подойдет именно тебе. Можешь каждый день читать книгу минимум 20 минут, можешь писать статьи, читать блоги, отвечать на стековерфлоу, да что угодно. Найди способ развиваться как эксперт. Тимлид может лишь указать на проблему, узнать твой план и дать ресурс. Найти способ и мотивацию учиться — твоя задача
Перевожу на русский:
Да мне пофиг как ты получишь знания по технологии XYZ( которая завтра умрет, когда хайп пройдет)
«Ты выгораешь. У тебя есть план что с этим делать?»
Тут даже постановка вопроса крива, термин выгорание не определен, а работник за..... замучен, а мы типа не причем... это же он сам замучился, вот пусть сам и выпутывается
Как тимлид я могу акцентировать внимание человека на проблеме и задать вопрос: «Ты выгораешь. У тебя есть план что с этим делать?» — и дать необходимый ресурс для реализации плана. Решить эту проблему — задача профессионала
А ничего... что профессионала, но не в IT, а минимум психотерапевта ? что бы психотерапевт (а еще и юрист) должен объяснить, что такую компанию надо слать лесом
Ответственно подходить к работе и быть отдельным самостоятельным крепким винтиком, на которого всегда может положиться тимлид — тяжелый труд.
Это показательно: отдельным самостоятельным крепким винтиком программисты, вы винтики в глазах... не люди... а просто винтики с резьбой
Вот интересно мнение профсоюза, который тут публикует статьи
Work Work money money work Work money money Work work funny money funny money work work Work work hurry hurry work work worry worry Work work hurry hurry worry hurry work work Morning morning morning Morning Jill, morning Jack Can't complain keep coming back Morning morning morning Morning Jim, morning Fred Work all day until your dead Money is the root of evil Money is the fruit of sin Money is the root of everything Wear a suit, they'll let you in Morning Morning morning What's the point and whats the use Work and earn and reproduce Boring boring boring work all day Earn your bread Till you finally drop down dead Money is the root of evil Money is the fruit of sin Money money money can drive you mad End up in the looney bin Work Work money money work Work money money Work work funny money funny money work work Work work hurry hurry work work worry worry Work work hurry hurry worry hurry work work Money is the root of evil Money is the fruit of sin Money is the root of everything Pay up or we'll do you in Work hard every single day Work work work you'll life away Don't question what don't question why Just keep working till you die Money is the root of evil Money is the fruit of sin Money is the root of everything The grim reaper's coming in Life is a silly walk in the park And knife in your throat held after dark Life is a terrible joke a lark A spoken word and then it all goes dark Money is the fruit of evil Money is the root of sin Funny money loot will make you rich Life's a bitch and you can't win Money is the root of evil Never never question why Money is the fruit of evil Work all day until you die urrgh
Скрытый текст
Вы же профи.... разберитесь.... А задача Лида дать мотивацию
Дополню к сказанному GroovShell - это класс который позволяет запускать groovy внутрии JVM, и он может гибко настриваться, так, что ограничить вплоть до конструкций языка, убрав циклы и ветвления или, что не нравится... - т.е. настраивается часть валидации AST перед ее компиляцией - т.е. можно получить (узкоспециализированный язык для выражений)
На счет менее безопасен, в этом случае надо бы сравнивать... тут как-то громко, но не стоит, можно вспомнить про gradle, jenkins - оба используют groovy
Хм... на счет гарантий производительности в контексте JVM - вообще... как понимаю CEL не может быть быстрее JVM, Groovy, Java, Kotlin..., Если только CEL напрямую ходит в asm, минуя JVM... что, как-то сомневаюсь
Строгая типизация больше всего интересует, под пользовательским типом надо бы глянуть что подразумевается,
Не то, что я против google или автора, кому то зайдет, а кому нет, имеет смысл посмотреть на эти вопросы
1) Хм... а чем принципиально оно отличается от SPeL Spring ? Groovy Shell ? JSR 223 (Scripting languages for java)
Пока принципиального преимущества не увидел
2) Что там с типами данных, и рефлексией и циклами, есть ли compile time проверки по типам, до момента выполнения или о ошибке или зависании узнаем только run time / unit test ?
Большинство скриптовых языков ломаются на этапе их использования, с одной стороны они должны в гибкость... Но обычно о том, что пользователь/админ/etc... забыл переменную или указал не существующую функцию - узнаем уже постфактум
Ну и потенциально, если те же дыры в безопасности, если специально не готовили ScriptEngine
Третье, типичная задача - это редактирование и подсветка синтаксиса, а так же всякие подсказки в редакторе кода
Если for fun - то, ок
А если prod - то, я бы на эти проблемы глянул.
Свой нишевый интерпретатор пишется обычно за месяц в одного, а то и быстрее
А на счет теории... мне кажется, что просто не знают как спрашивать, может автор и знает, но все как обычно... коммуникация, один называет термин так, другой сяк... а объяснить значение, четко и по делу... времени не хватает.
А вот практика.. тут уже по делу можно судить, и вопросы задавать
первое что бросается в глаза - классы, которые выводят сообщения, не случайные сообщения, а строго определенные..
ну вот как бы я не любил котов, но проблема в объяснениях, зачем такое упрощение ? я конечно понимаю что бы доступно было, но не в ущерб же здравому смыслу, ну то есть, тот кто будет читать, он как то, должен извлечь для себя практическую пользу, sorry за резкость
Просто, тут вот... ключевое... это например напишите программу FizzBuss (тут не к вам.. просто для демонстрации здравости или отсутствия) ... так, как бы всем результат известен, зачем писать программу если результат известен, он прям в условии повторяется (FizzBuss), ну вот хоть немного прагматики, например, каких цифр больше в первых 10000 цифр числа Пи - тут, уже есть... хоть смысл написать программу, по скольку считать долго вручную
1) Первое что в голову прилетает, зачем вообще этот код, он, ничего не делает. достаточно txt файла..
2) А зачем классы в первом примере ? зачем они вообще, когда все это же достаточно функций или просто txt
ну хорошо, захотелось про ООП, ну давай те классы будут хоть, что-то содержать... например окраску #RGB... длину усов, лап, качество зрения, и еще 10 параметров...
и вот... у нас бы были бы данные, с которыми работала программа, а так, просто txt
потом объяснение того же single...
например, в примере есть разделение по времени суток, чем кормить, как кормить.... данные о коте из базы, а его поведение или кормежка зависит от времени суток - вот другой источник данных, который вне базы... а вот чем кормить, зависит от болезней желудка, а вот длина усов ни как не влияет, вот третий фактор... и есть метод... кормить, что бы ответить чем кормить и когда кормить - для этого нужно несколько разных видов информации... время, состояние желудка кота, и меню..., а вот другой вид информации, как то, окрас или длина усов не влияет....
Принципиальное разделение информации, по области ее применения, вот никогда не слышу в этих упрощенных объяснениях... это все время отдается на откуп читателю... пусть мол сам догадается, что хотел сказать автор и как это применять на практике, в коде
извиняюсь... не смог удержаться, котики понравились, я на оборот рад, что есть статья и возможно я не так читаю и не так понимаю, было бы время, я может по другому описал бы пример с котиками и solid
Вариант с библиотекой - все же требует библиотеки, есть вариант более доступный, я надеюсь адресат/реципиент сообщения живет в доме где есть окна и если он находиться на первом этаже, то в целом достаточно вашего дыхания из рта и указательного пальца.
Подышав на стекло, так, что бы оно запотело, напишите послание указательным пальцем. Влага испариться, но след от пальца оставляет еще жирные прозрачные участки, которые могут так быть обнаружены если подышать на них или посыпать например пудрой
Этот вариант подходит как для внешних помещений, так и для внутренних - например ванна.
Варианты отпечатки пальцев, борозды и кислоты лимонной можно сочетать на одной поверхности - так вы увеличите плотность передачи данных
Это были перечислены методы шифрования данных, если сообщение хорошо зашифровано, то его доставку можно осуществлять по открытым каналам передачи данных и при том по несколько обозначенным выше путям передачи, можно например начать с двора, детвора часто обменивается игрушками например, вполне одна из таких игрушек может содержать послание, можно поучаствовать в песочнице и обменяться пластиковыми лопатками или ведерками.
Самое главное это завести сообщников, где первое правило будет никогда не говорить о клубе, второе правило никогда не говорить о клубе, третье - если при передачи подмигнули, то собирать вещи, ну и четвертое - при передачи сообщения участвуют только двое.
Еще можно же через общественную библиотеку, берем книгу, делаем записки с молоком в место чернил, вкладываем записку и сдаем книгу, а потом при встрече или там общении на работе, вот... мол брал на днях книжку в библиотеке, такой хороший рассказ прочел..
Если нет молока, то думаю лимонный сок подойдет, там кислота и при высыхании станет прозрачной, а при нагревании даст оттенок отличимый от листа бумаги
Третий вариант, если у вас нет молока или лимона, возьмите иголку и тупой стороной надавите текст послания на бумаге, важно что бы не проколоть и глубина борозды не была с разбегу заметна при фронтальном взгляде
Для дешифровки нужен обычный карандаш - например Конструктор, возьмите его в руку и движением всей кисти и размашистыми движениями начните черкать грифелем по бумаге, слегка прикасаясь. Там где есть борозда, будет происходить микро удар о борт борозды, что отразиться в свою очередь как более темное пятно, по последовательности пятен вы сможете легко воспроизвести изначальный текст или рисунок послания
class * {
@ru.ok.android.commons.os.AutoTraceCompat
* *(***) {
before void TraceCompat.beginTraceSection(trace);
after void TraceCompat.endSection();
}
}
Тут указанна аннотация и способ ее интерпретации
В целом аннотация на ура переноситься в что-то типа такого
class MyFeature123 {
@Wrap(ru.ok.android.commons.os.AutoTraceCompat.class)
void wrapImpl1234(){
method.before(traceData.get());
method.after(resultData.get());
}
}
В первом случае - синтаксис ByteWaever, во втором Java
Просто это напоминает грабли с AspectJ ранних версий или кто там... у них был/есть свой язык для аспектов ajc как то так было расширение.
Язык, если не ошибаюсь, буквально 1-2 ide поддерживался каких то версий
А если синтаксис ByteWeaver синтаксис умещается 10-20 грамматических правил, без типов (ну типов для корректности компиляции ByteWeaver), то в целом то...
Байт код можно в json, а с ним значительно легче работать, поменял его как надо, и сохранил обратно class
А тут у вас и свой язык еще... это как-то over попахивает, вы прикрутили langaue server к своему языку ?
Не знаю на сколько надо было свой язык придумывать, но вроде бы хватило и обычной Java с аннотациями, и из коробки с ide вы получаете поддержку написания трансформаций байткода
Можно дополнить либу, я бы так делал: либа - отдельный maven - jar плагин для бд - другой maven jar связка lib - plugin через ServiceLoader (https://habr.com/ru/articles/118488/)
выбор какой плагин активировать через либо jdbc url (https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getURL--) , либо jdbc driver class (instance of)
Собственно не обязательно лочить всю таблицу, достаточно лочить только один объект, например какую ни будь спец запись в таблице, которая будет содержать maxId
А вообще можно положиться на UUID или hash значения - и выполнять upsert/merge - только, тогда возникает в случае hash - ситуация как race condition, а uuid - по сути не связан с полезными данными
оба варианта, так себе... без lock не обойтись
вопрос, а вот действительно ли нужно выносить такую важную штуку как id/Fk/Pk в java ? если только для читабельности ошибок, так вроде кол-во субд у нас в мире не бесконечно, основных/mainstream 4, если считать еще всяких недавно появишся, так не более 20-30 штук, маппинг ошибки конкретной бд в свою ошибку приложения сделать вроде не сложно, да и в модели можно комментарий на русском/англиском/ оставить - что вот это поле(я) являются unique
Ужасно! все... ужасно все это напоминает комиксы про Сову и эффективных менеджеров
Григорий Остер более вредных советов не придумал бы...
Создай себе комфортные условия сам - ну с таким вот... может и зарплату себе самому платить ? а... удаленка.... ну теперь это же не обязанность работодателя, конечно конечно...
ало! а чья это задача определять важность собрания, организовывать людей.. модерировать диалог... ... а ну да ... работника, совам напрягаться только собрать... а кто не пришол то спросить почему... а важность пусть сам догадается... прикольно.
по русски это переводиться просто: "Работай раб! Солнце еще не село!"
конечно, профессионал же должен знать 100500 технологий, зачем ему спать... на курсы захотел ??? а кто работать будет!!! ночью читай учебники
Перевожу на русский:
Да мне пофиг как ты получишь знания по технологии XYZ( которая завтра умрет, когда хайп пройдет)
Тут даже постановка вопроса крива, термин выгорание не определен, а работник за..... замучен, а мы типа не причем... это же он сам замучился, вот пусть сам и выпутывается
А ничего... что профессионала, но не в IT, а минимум психотерапевта ? что бы психотерапевт (а еще и юрист) должен объяснить, что такую компанию надо слать лесом
Это показательно:
отдельным самостоятельным крепким винтиком
программисты, вы винтики в глазах... не люди... а просто винтики с резьбой
Вот интересно мнение профсоюза, который тут публикует статьи
Чет.. я по горячился, вспомнилось это
https://www.youtube.com/watch?v=SvpsoEOJ0_E
Скрытый текст
Work Work money money work Work money money
Work work funny money funny money work work
Work work hurry hurry work work worry worry
Work work hurry hurry worry hurry work work
Morning morning morning
Morning Jill, morning Jack
Can't complain keep coming back
Morning morning morning
Morning Jim, morning Fred
Work all day until your dead
Money is the root of evil
Money is the fruit of sin
Money is the root of everything
Wear a suit, they'll let you in
Morning Morning morning
What's the point and whats the use
Work and earn and reproduce
Boring boring boring work all day
Earn your bread
Till you finally drop down dead
Money is the root of evil
Money is the fruit of sin
Money money money can drive you mad
End up in the looney bin
Work Work money money work Work money money
Work work funny money funny money work work
Work work hurry hurry work work worry worry
Work work hurry hurry worry hurry work work
Money is the root of evil
Money is the fruit of sin
Money is the root of everything
Pay up or we'll do you in
Work hard every single day
Work work work you'll life away
Don't question what don't question why
Just keep working till you die
Money is the root of evil
Money is the fruit of sin
Money is the root of everything
The grim reaper's coming in
Life is a silly walk in the park
And knife in your throat held after dark
Life is a terrible joke a lark
A spoken word and then it all goes dark
Money is the fruit of evil
Money is the root of sin
Funny money loot will make you rich
Life's a bitch and you can't win
Money is the root of evil
Never never question why
Money is the fruit of evil
Work all day until you die urrgh
Скрытый текст
Вы же профи.... разберитесь.... А задача Лида дать мотивацию
Если глянуть сюда https://github.com/google/cel-spec и https://github.com/google/cel-spec/blob/master/doc/langdef.md
то видно следующее
1) null safetty +- есть, но не явно https://github.com/google/cel-spec/blob/master/doc/langdef.md#booleans-and-null
2) Про строгую типизацию тут, такое сказано https://github.com/google/cel-spec/blob/master/doc/langdef.md#gradual-type-checking
что у них есть модель и для static only и static + dynamic type checking
3) Про синтаксис - тут https://github.com/google/cel-spec вот четко сказано
CEL evaluates in linear time, is mutation free, and not Turing-complete.
А если глянуть на синтаксис, сразу становится понятно https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax
Что это это язык выражений и чем он ограничен... да, все так, как и сказано в статье, и противоречий нет
Чучуть прояснилось,
Дополню к сказанному GroovShell - это класс который позволяет запускать groovy внутрии JVM, и он может гибко настриваться, так, что ограничить вплоть до конструкций языка, убрав циклы и ветвления или, что не нравится... - т.е. настраивается часть валидации AST перед ее компиляцией - т.е. можно получить (узкоспециализированный язык для выражений)
На счет менее безопасен, в этом случае надо бы сравнивать... тут как-то громко, но не стоит, можно вспомнить про gradle, jenkins - оба используют groovy
Хм... на счет гарантий производительности в контексте JVM - вообще... как понимаю CEL не может быть быстрее JVM, Groovy, Java, Kotlin..., Если только CEL напрямую ходит в asm, минуя JVM... что, как-то сомневаюсь
Строгая типизация больше всего интересует, под пользовательским типом надо бы глянуть что подразумевается,
Не то, что я против google или автора, кому то зайдет, а кому нет, имеет смысл посмотреть на эти вопросы
1) Хм... а чем принципиально оно отличается от SPeL Spring ? Groovy Shell ? JSR 223 (Scripting languages for java)
Пока принципиального преимущества не увидел2) Что там с типами данных, и рефлексией и циклами, есть ли compile time проверки по типам, до момента выполнения или о ошибке или зависании узнаем только run time / unit test ?
Большинство скриптовых языков ломаются на этапе их использования, с одной стороны они должны в гибкость... Но обычно о том, что пользователь/админ/etc... забыл переменную или указал не существующую функцию - узнаем уже постфактум
Ну и потенциально, если те же дыры в безопасности, если специально не готовили ScriptEngine
Третье, типичная задача - это редактирование и подсветка синтаксиса, а так же всякие подсказки в редакторе кода
Если for fun - то, ок
А если prod - то, я бы на эти проблемы глянул.
Свой нишевый интерпретатор пишется обычно за месяц в одного, а то и быстрее
При условии, если команда видит в тебе человека - то ... может быть.... эти совету сработают
А на счет теории... мне кажется, что просто не знают как спрашивать, может автор и знает, но все как обычно... коммуникация, один называет термин так, другой сяк... а объяснить значение, четко и по делу... времени не хватает.
А вот практика.. тут уже по делу можно судить, и вопросы задавать
Извиняюсь, но я по душню...
первое что бросается в глаза - классы, которые выводят сообщения, не случайные сообщения, а строго определенные..
ну вот как бы я не любил котов, но проблема в объяснениях, зачем такое упрощение ? я конечно понимаю что бы доступно было, но не в ущерб же здравому смыслу, ну то есть, тот кто будет читать, он как то, должен извлечь для себя практическую пользу, sorry за резкость
Просто, тут вот... ключевое... это например напишите программу FizzBuss (тут не к вам.. просто для демонстрации здравости или отсутствия) ... так, как бы всем результат известен, зачем писать программу если результат известен, он прям в условии повторяется (FizzBuss), ну вот хоть немного прагматики, например, каких цифр больше в первых 10000 цифр числа Пи - тут, уже есть... хоть смысл написать программу, по скольку считать долго вручную
1) Первое что в голову прилетает, зачем вообще этот код, он, ничего не делает. достаточно txt файла..
2) А зачем классы в первом примере ? зачем они вообще, когда все это же достаточно функций или просто txt
ну хорошо, захотелось про ООП, ну давай те классы будут хоть, что-то содержать... например окраску #RGB... длину усов, лап, качество зрения, и еще 10 параметров...
и вот... у нас бы были бы данные, с которыми работала программа, а так, просто txt
потом объяснение того же single...
например, в примере есть разделение по времени суток, чем кормить, как кормить.... данные о коте из базы, а его поведение или кормежка зависит от времени суток - вот другой источник данных, который вне базы... а вот чем кормить, зависит от болезней желудка, а вот длина усов ни как не влияет, вот третий фактор... и есть метод... кормить, что бы ответить чем кормить и когда кормить - для этого нужно несколько разных видов информации... время, состояние желудка кота, и меню..., а вот другой вид информации, как то, окрас или длина усов не влияет....
Принципиальное разделение информации, по области ее применения, вот никогда не слышу в этих упрощенных объяснениях... это все время отдается на откуп читателю... пусть мол сам догадается, что хотел сказать автор и как это применять на практике, в коде
извиняюсь... не смог удержаться, котики понравились, я на оборот рад, что есть статья и возможно я не так читаю и не так понимаю, было бы время, я может по другому описал бы пример с котиками и solid
Как согласуеться чистый код и скорость? Чем закончился спор?
А правда ли статиеская типизаций не нужна, когда есть unit тесты?
Все ничего только ссылок не хватает, а в частности
1) https://habr.com/ru/articles/739808/ [HTTP API & REST] Терминология. Мифология REST. Составляющие HTTP-запроса
2) Стандартизации REST как таковой нет, ну вот с разбегу RFCnnnn которое прямо описывало понятие таковое, не двусмысленно и четко - я не нашел
А соответственно, REST каждый волен понимать по своему, хотя есть разные трактовки на вкус и цвет
а) https://standards.rest/
б) https://restfulapi.net/
Вариант с библиотекой - все же требует библиотеки, есть вариант более доступный, я надеюсь адресат/реципиент сообщения живет в доме где есть окна и если он находиться на первом этаже, то в целом достаточно вашего дыхания из рта и указательного пальца.
Подышав на стекло, так, что бы оно запотело, напишите послание указательным пальцем. Влага испариться, но след от пальца оставляет еще жирные прозрачные участки, которые могут так быть обнаружены если подышать на них или посыпать например пудрой
Этот вариант подходит как для внешних помещений, так и для внутренних - например ванна.
Варианты отпечатки пальцев, борозды и кислоты лимонной можно сочетать на одной поверхности - так вы увеличите плотность передачи данных
Это были перечислены методы шифрования данных, если сообщение хорошо зашифровано, то его доставку можно осуществлять по открытым каналам передачи данных и при том по несколько обозначенным выше путям передачи, можно например начать с двора, детвора часто обменивается игрушками например, вполне одна из таких игрушек может содержать послание, можно поучаствовать в песочнице и обменяться пластиковыми лопатками или ведерками.
Самое главное это завести сообщников, где первое правило будет никогда не говорить о клубе, второе правило никогда не говорить о клубе, третье - если при передачи подмигнули, то собирать вещи, ну и четвертое - при передачи сообщения участвуют только двое.
Еще можно же через общественную библиотеку, берем книгу, делаем записки с молоком в место чернил, вкладываем записку и сдаем книгу, а потом при встрече или там общении на работе, вот... мол брал на днях книжку в библиотеке, такой хороший рассказ прочел..
Если нет молока, то думаю лимонный сок подойдет, там кислота и при высыхании станет прозрачной, а при нагревании даст оттенок отличимый от листа бумаги
Третий вариант, если у вас нет молока или лимона, возьмите иголку и тупой стороной надавите текст послания на бумаге, важно что бы не проколоть и глубина борозды не была с разбегу заметна при фронтальном взгляде
Для дешифровки нужен обычный карандаш - например Конструктор, возьмите его в руку и движением всей кисти и размашистыми движениями начните черкать грифелем по бумаге, слегка прикасаясь. Там где есть борозда, будет происходить микро удар о борт борозды, что отразиться в свою очередь как более темное пятно, по последовательности пятен вы сможете легко воспроизвести изначальный текст или рисунок послания
Как понимаю парсер на antlr 4/3 ?
коль знаком, тогда меняет дело
Я имел ввиду примерно такое
есть такой синтаксис
Тут указанна аннотация и способ ее интерпретации
В целом аннотация на ура переноситься в что-то типа такого
В первом случае - синтаксис ByteWaever, во втором Java
Аналогично строиться логика для
В такое на java
Просто это напоминает грабли с AspectJ ранних версий или кто там... у них был/есть свой язык для аспектов ajc как то так было расширение.
Язык, если не ошибаюсь, буквально 1-2 ide поддерживался каких то версий
А если синтаксис ByteWeaver синтаксис умещается 10-20 грамматических правил, без типов (ну типов для корректности компиляции ByteWeaver), то в целом то...
Я уж думал не ответят, дока да... must have
aspectJ - вот точно перегружен не нужной терминологией, да и функциональность у него все же узкая, по сравнению с asm
Вы не зависимо от asm разрабатываете или поверх asm ?
Дальше что собираетесь с библиотекой делать ?
Все это интересно, но вот тут https://github.com/gochaorg/jvmbc/tree/main/jvmbc-score3/jvmbc-score3 ради интереса писал компилятор/декомпилятор из/в class <-> json (цель немного другая была, а это побочка, пот тому никаких комментов prod ready нет)
Байт код можно в json, а с ним значительно легче работать, поменял его как надо, и сохранил обратно class
А тут у вас и свой язык еще... это как-то over попахивает, вы прикрутили langaue server к своему языку ?
Не знаю на сколько надо было свой язык придумывать, но вроде бы хватило и обычной Java с аннотациями, и из коробки с ide вы получаете поддержку написания трансформаций байткода
Можно дополнить либу, я бы так делал:
либа - отдельный maven - jar
плагин для бд - другой maven jar
связка lib - plugin через ServiceLoader (https://habr.com/ru/articles/118488/)
выбор какой плагин активировать через либо jdbc url (https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getURL--) , либо jdbc driver class (instance of)
Собственно не обязательно лочить всю таблицу, достаточно лочить только один объект, например какую ни будь спец запись в таблице, которая будет содержать maxId
А вообще можно положиться на UUID или hash значения - и выполнять upsert/merge - только, тогда возникает в случае hash - ситуация как race condition, а uuid - по сути не связан с полезными данными
оба варианта, так себе... без lock не обойтись
вопрос, а вот действительно ли нужно выносить такую важную штуку как id/Fk/Pk в java ? если только для читабельности ошибок, так вроде кол-во субд у нас в мире не бесконечно, основных/mainstream 4, если считать еще всяких недавно появишся, так не более 20-30 штук, маппинг ошибки конкретной бд в свою ошибку приложения сделать вроде не сложно, да и в модели можно комментарий на русском/англиском/ оставить - что вот это поле(я) являются unique
А оно только в код gnu asm компилируется или на прямую в exe ?