|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
questioner mayton Вот будет такой input: Код: jscript 1. 2. 3. 4. 5. 6. 7.
Вот считай его MD5 и тут всё учтено что связано с сигнатурами. а родитель родителя? Мы ходим по кругу. Твой вопрос в чем? Можно ли принципиально, используя рефлексию извлечь родителей? Я думаю - да. Можно. Тебе придется хранить не только поля. Но и всю цепочку родителей. И все композитные классы если они были в полях. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 17:29 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
mayton, Не только композит. Полиморфные методы, абстрактные, наследование, интерфейсы,... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 17:33 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
mayton questioner пропущено... а родитель родителя? Мы ходим по кругу. Твой вопрос в чем? Можно ли принципиально, используя рефлексию извлечь родителей? Я думаю - да. Можно. Тебе придется хранить не только поля. Но и всю цепочку родителей. И все композитные классы если они были в полях. Как сделать руками через рефлексию я уж как-нить разберусь) Был вопрос нет ли готовой тулы для этого, чтобы не писать свой велоспед ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 17:37 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
С практической точки зрения это был-бы рандомный шум. Я - как раз за то чтобы не анализировать сигнатуры, а смотреть с точки зрения бизнеса - какие были сделаны ФАКТИЧЕСКИ изменения. А то что-же получается. Система стартанула. Сказала - ойойой - тут около 500 классов изменились. И дальше что? Какая нам с этого польза? Мне вот как разработчику эта тема - не интересна. Бизнесу - 500 классов тоже никакой инфы не несет. Ему надо другое. С какого числа в "маркетинг акции" появилось свойство - "привел друга". Вот это - интересно. Это - экспертный вопрос. И мета-информацию по нем я-бы искал в release-notes.txt а не в рандомных изменениях классов которые разраб каждый день делает по 100 штук. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 17:39 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
mayton, По бизнесу делается "версионирование".... Разными методами. Но ТС наверно не слышал такого. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 17:46 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
questioner Задача - при старте приложение ответить на вопрос менял ли кто-то что-то в структуре жава объектов начиная с определенного рута с момента прошлого старта. JsonSchema это другое А в чем проблема генерить схему и проверять поменялась ли они? Или на каком уровне ты это хочешь делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 17:56 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
mayton С практической точки зрения это был-бы рандомный шум. Я - как раз за то чтобы не анализировать сигнатуры, а смотреть с точки зрения бизнеса - какие были сделаны ФАКТИЧЕСКИ изменения. А то что-же получается. Система стартанула. Сказала - ойойой - тут около 500 классов изменились. И дальше что? Какая нам с этого польза? Мне вот как разработчику эта тема - не интересна. Бизнесу - 500 классов тоже никакой инфы не несет. Ему надо другое. С какого числа в "маркетинг акции" появилось свойство - "привел друга". Вот это - интересно. Это - экспертный вопрос. И мета-информацию по нем я-бы искал в release-notes.txt а не в рандомных изменениях классов которые разраб каждый день делает по 100 штук. В нашем случае будет достаточно свалиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 18:16 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
(разводя руками) Это странно. Комплекс падает при старте. Ну ладно. Вам виднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 18:39 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
mayton (разводя руками) Это странно. Комплекс падает при старте. Ну ладно. Вам виднее. Да, это expected result. Также как приложение не стартует если не все миграции накатились. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 18:44 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
Ни один чел топике не одобрил постановку. Но ТС упрямо - всё хорошо, прекрасная маркиза... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 19:19 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
Я-бы послушал как эту задачу озвучивает бизнес. Не в терминах классов. А в общих словах. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 19:21 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
questioner Додумываешь слова. Про рантайм от меня вообще речи не было >Не райнайм >Рефлексия Яснопонятно. Чтобы за тебя не додумывали попробуй делать избыточное описание своих хотелок. Никто не обязан и не в состоянии знать, какой у тебя там контекст. Сохранишь кучу времени себе и людям. questioner Это всё мне известно... у нас вообще всё это в монге хранится и объект в Жысон сохраняется, поэтому не совсем релевантно. Да и трейдингом мы не занимаемся, поэтому доли секунды не критичны. Нужен просто ответ на вопрос поменялось ли что что-то в структуре объектов или нет. Если да, то метод должен вернуть другой хэш, чем в прошлый раз. Ты не мог сразу написать, что у тебя там жсон из монги с проекцией на pojo? У тебя два варианта - или парсить код, или рефлексия в рандайме и падать при запуске/работе/тестах. Я бы выбрал первый вариант, если тебе надо трекать изменения в коде и долбить разрабов по башке. А лучше вообще сделал бы код для json'а генерируемым/частично генерируемым и трекал всё где-то отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 09:50 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
crutchmaster, Он хотел одного - готовую либу. А сам он фиг напишет и тему топика достойно не закроет. Уже видно по его поведению. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 10:09 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Он хотел одного - готовую либу. Вряд ли он найдёт что-то готовое под такой специфичный изврат. Типа в стат. типизированном яп компилятор и так должен бить по рукам за всякие изменения структуры. PetroNotC Sharp А сам он фиг напишет и тему топика достойно не закроет. И хорошо. Он что-то хочет там с рефлексей, чтобы проект подло падал после недели траходрома с его сборкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 17:46 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
crutchmaster, )) +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2021, 18:02 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
questioner SpringMan Есть такое (всяко есть куча аналогов) - никогда не использовал, но по идее можно генерить, сохранять и сравнивать с предыдущим. А какая вообще постановка от бизнеса? - вроде задача ясна, но возможно решение не с той стороны Задача - при старте приложение ответить на вопрос менял ли кто-то что-то в структуре жава объектов начиная с определенного рута с момента прошлого старта. JsonSchema это другое а если создать свою статическую мапу <неизмененный Class<?>, хеш> а потом переделать класслоадер, чтобы он при загрузке классов сверялся с этой хеш мапой, изменился ли хеш класса? хеш класса считать как то по полям http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.4/apidocs/index.html ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 11:18 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
questioner Это всё мне известно... у нас вообще всё это в монге хранится и объект в Жысон сохраняется, поэтому не совсем релевантно. Да и трейдингом мы не занимаемся, поэтому доли секунды не критичны. Нужен просто ответ на вопрос поменялось ли что что-то в структуре объектов или нет. Если да, то метод должен вернуть другой хэш, чем в прошлый раз. Да и вызываться это будет один раз при старте аппликейшена. То бишь грешить на перформанс тут не надо. Какой-то велосипед изобретаете. Сохраняйте в монго/JSON номер версии. При считывании сравниваете. Если отличается - ошибка. Ровно так в родной сериализации и сделано Если процесс разработки поставлен и есть build server, то Subversion при коммитах может в код приложения сам номер версии вписывать. Если нужно более толлирантный вариант, то достаточно только проверять набор полей. Очень странно, что процедура считывания этого не делает. Если поля в объекте нет, то куда оно его считывать будет? Т.е. эта проверка (на отсутвие полей) уже должна быть реализована. Остается проверка, что не появилось новых полей. Точнее, что после операции считывания не осталось не проиницыализированных полей. Служебные поля, внутренние для объекта и инициализирующиеся кодом, ясное дело операции записи/чтения никак не мешают. Важны только внешние поля (которые сохраняются/загружаются). Проход по иерархии и цепочки классов так же не нужен. Т.к. операция считывания объекта и так должна такой проход делать неавно (рекурсивно). IMHO & AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 16:29 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Про версии вы правы и ему говорилось. Не реагирует. Если нет версии, то считывающий класс не сможет проверить тот набор полей или нет. Райзе будет. Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 17:09 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Если нет версии, то считывающий класс не сможет проверить тот набор полей или нет. Райзе будет. Код: java 1. 2. 3. 4.
почему не сможет? Если код чтения постороен исходя из полей в классе, то Вариант поле добавилось в класс - его не будет в JSON - ошибка Вариант поле удалили в классе - ну нужно дописать обработку ситуации, что остались необработанные поля из JSON. Задача вроде попроще, чем бином Ньютона ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 17:41 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Это если json. Я говорил про байтовый поток в блоб поле бд. Там только данные полей. Без имён и типов. А если json то конечно,... Там и типы и названия полей и данные и точность и схема и...)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:10 |
|
Как посчитать хеш класса ?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Пусть хранит прямо файлы исходников MyClass.java)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2021, 19:11 |
|
|
start [/forum/topic.php?fid=59&msg=40049099&tid=2120515]: |
0ms |
get settings: |
19ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
372ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 786ms |
0 / 0 |