В те далёкие времена, когда декатлон ещё не был деспортом, в нем была практика отправлять разработчиков на день или на неделю работатьв торговые залы.
В целом, "один популярный ретейлер" тоже может такое попрактиковать на части команды разработки, тем более последнее время у них все меньше велокурьеров и все больше автокурьеров)
К сожалению, вернулся с котлина на джаву, не слежу за обновлениями.
Не подскажите, а зачем ввели эти multi value class? Ну то есть я понимаю зачем такой класс с одним значением, а с несколькими - уже никакого особого отличия от дата классов (или просто классов) нет)
Иди там под капотом есть набор крутых встроенных функций?
Яндек гпт пока не справляется с главной задачей программиста - придумать название переменной или функции. На промт - "придумай название метода, который удаляет старые значения и сохраняет новые" - выдаёт несусветную чушь)
И самая главная боль - выдача абсолютно неверных ответов - пока не решена. Тот же яндекс гпт мне отдавал абсолютно не рабочий код.
ID может меняться при создании. Когда с условного фронта приходит набор полей для сохранения в БД (в виде объекта Task), то никаким ид (читай первичный ключ из БД) там не пахнет. И этот ID генерируется в БД, а затем присваивается в поле Task.id.
Ну и если посмотреть, как работает JPA и Hibernate под капотом, то там генерация запроса и основывается на наличии\отсутствии id поля. Если поля нет - то генерируется insert, иначе генерируется update.
А насколько хорошо data class работает в качестве entity? Есть подозрение, что неизменяемый id поломает вам работу при createTask, если конечно Вы не генерируете id на вызывающей стороне.
Но с общей мыслью согласен - котлин очень сахарный относительно джавы, да и со спрингом дружит отлично, так что всех агитирую новые проекты начинать на котлине)
Я понимаю, что это перевод, но для конторы, которая пытается обучать людей программированию, не указать про новый формат switch и как его использовать с enum, ну такое себе
Да, Вы все верно пишите. Но что файл с дефолтным конфигом, что определение значений по умолчанию, все равно находится в коде стартера. И разработчику все равно придётся копаться в исходниках.
Самый лучший вариант - внести описание настроек и значений по умолчанию в документацию)
Вот Вы, как HR, сможете привести пример качественного или количественного достижения, которое Вы бы включили в резюме на должность линейного работника HR отдела?
Советую помимо обязанностей указать конкретные достижения, которые принесли пользу бизнесу, и хорошо бы — подкрепленные цифрами.
Не первый раз встречаю такую фразу в советах по составлению резюме. И хоть бы кто объяснил, где бы взять такие достижения)
Вот я программист, сижу себе и программирую те задачи, которые бизнес сказал. Даже если я в процессе пойму, что условный клиентский путь можно улучшить, и смогу убедить в этом бизнес, то что потом? Прийти к руководителю и сказать - я тут резюме обновляю, расскажи сколько денег сэкономили вот на этом улучшении?
Честно говоря сложно понять, в чем проблема, когда нет результатов вывода набора println.
Использовать data class для JPA сущности ... избыточно ... так как придётся переопределять методы equals и hashcode.
Не совсем верно. В котлине дата классы придумали для создания неизменяемых классов (что видно в приведенном Вами декомпилированном коде - финальное поле и отсутствие сеттера).
В первом случае (генерации id на стороне приложения) - поля экземпляра инициализируются в момент создания класса и больше не изменяются. Во втором случае - поле id заполняется в только в момент сохранения в БД, и это уже другой экземпляр, у него даже ссылка будет другая.
Таким образом основная проблема в Вашем случае - не необходимость переопределять equals и hashCode, а наличие неконтролируемого числа экземпляров дата класса, что может привести к утечкам памяти.
Фильтры по значению также содержат кнопку "Edit as query DSL". Позволяет вставить Json запрос в формате эластика, и даёт возможность, например, осуществлять фильтрацию по regexp.
В те далёкие времена, когда декатлон ещё не был деспортом, в нем была практика отправлять разработчиков на день или на неделю работатьв торговые залы.
В целом, "один популярный ретейлер" тоже может такое попрактиковать на части команды разработки, тем более последнее время у них все меньше велокурьеров и все больше автокурьеров)
Спасибо)
К сожалению, вернулся с котлина на джаву, не слежу за обновлениями.
Не подскажите, а зачем ввели эти multi value class? Ну то есть я понимаю зачем такой класс с одним значением, а с несколькими - уже никакого особого отличия от дата классов (или просто классов) нет)
Иди там под капотом есть набор крутых встроенных функций?
Яндек гпт пока не справляется с главной задачей программиста - придумать название переменной или функции. На промт - "придумай название метода, который удаляет старые значения и сохраняет новые" - выдаёт несусветную чушь)
И самая главная боль - выдача абсолютно неверных ответов - пока не решена. Тот же яндекс гпт мне отдавал абсолютно не рабочий код.
Ещё круто, что новый свитч это по сути оператор, а не выражение. И его можно использовать в return (тут котлин передаёт привет)
Ой, да ладно вам. Это же копирайтер от отуса рекламирует школу)
Но обозвать запечатанные классы секционными это конечно за гранью )
ID может меняться при создании. Когда с условного фронта приходит набор полей для сохранения в БД (в виде объекта Task), то никаким ид (читай первичный ключ из БД) там не пахнет. И этот ID генерируется в БД, а затем присваивается в поле Task.id.
Ну и если посмотреть, как работает JPA и Hibernate под капотом, то там генерация запроса и основывается на наличии\отсутствии id поля. Если поля нет - то генерируется insert, иначе генерируется update.
А насколько хорошо data class работает в качестве entity? Есть подозрение, что неизменяемый id поломает вам работу при createTask, если конечно Вы не генерируете id на вызывающей стороне.
Но с общей мыслью согласен - котлин очень сахарный относительно джавы, да и со спрингом дружит отлично, так что всех агитирую новые проекты начинать на котлине)
Я понимаю, что это перевод, но для конторы, которая пытается обучать людей программированию, не указать про новый формат switch и как его использовать с enum, ну такое себе
Да, Вы все верно пишите. Но что файл с дефолтным конфигом, что определение значений по умолчанию, все равно находится в коде стартера. И разработчику все равно придётся копаться в исходниках.
Самый лучший вариант - внести описание настроек и значений по умолчанию в документацию)
Можно объявить значения по умолчанию в файле OpenWeatherMapProperties, чтобы не городить огород с PostProcessor.
А я наоборот думал- зачем же бекэнд на делфи, его же в линуксе не поднять)
Или сейчас делфи уже научилось в кросплатформенность?
Да, все верно, упустил этот момент. Об этом уже писал @zacisco в своей публикации.
Добавил информацию о включении настройки в статью.
Если пишешь статью, которая рассказывает как написать Hello world, то примеры кода лучше делать текстом, а не скриншотами.
А то придёт такой же начинающий, и сразу уйдёт)
Вот Вы, как HR, сможете привести пример качественного или количественного достижения, которое Вы бы включили в резюме на должность линейного работника HR отдела?
Не первый раз встречаю такую фразу в советах по составлению резюме. И хоть бы кто объяснил, где бы взять такие достижения)
Вот я программист, сижу себе и программирую те задачи, которые бизнес сказал. Даже если я в процессе пойму, что условный клиентский путь можно улучшить, и смогу убедить в этом бизнес, то что потом? Прийти к руководителю и сказать - я тут резюме обновляю, расскажи сколько денег сэкономили вот на этом улучшении?
Или эта фраза только к PO и PM относится?
Честно говоря сложно понять, в чем проблема, когда нет результатов вывода набора println.
Не совсем верно. В котлине дата классы придумали для создания неизменяемых классов (что видно в приведенном Вами декомпилированном коде - финальное поле и отсутствие сеттера).
В первом случае (генерации id на стороне приложения) - поля экземпляра инициализируются в момент создания класса и больше не изменяются. Во втором случае - поле id заполняется в только в момент сохранения в БД, и это уже другой экземпляр, у него даже ссылка будет другая.
Таким образом основная проблема в Вашем случае - не необходимость переопределять equals и hashCode, а наличие неконтролируемого числа экземпляров дата класса, что может привести к утечкам памяти.
Конечно, добавляйте. Вот Тут в документации подробнее описано
Фильтры по значению также содержат кнопку "Edit as query DSL". Позволяет вставить Json запрос в формате эластика, и даёт возможность, например, осуществлять фильтрацию по regexp.
Перечитал статью два раза. Но все равно не понял смысл хака. Какая задача здесь решается?
Правильно ли я понимаю, что NestedModelConsumer внутри себя делает что то с NestedModel, а потом забывает про неё (за счёт чего и экономим память)?
А если мне понадобится дальше в коде работать с массивом NestedModel, то решение уже не подходит?