Size: a a a

2021 January 15

ch

central hardware in pro.jvm
Human Human
Вопрос просто был изначально про валидацию каких-то простых штук, с которыми справляется база. Как пример я привел валидацию по длине. Нам просто нужно обновить что-то и положить в эту ячейку текст
Вам же по моему уже более чем внятно ответили зачем надо валидироваиь такую простую штуку как длина https://t.me/oop_ru/159641
источник

VP

Vasili Pispanen in pro.jvm
Cargeh
а зачем скрипты базы генерить? хиба ж сама по описанию сгенерит таблички
Если вы про хибернейтовский ddl auto update - такое в прод пускать нельзя
источник

AM

Ahesan Muhid in pro.jvm
there just isn't enough interest
источник

AE

Alexandr Emelyanov in pro.jvm
central hardware
Вам же по моему уже более чем внятно ответили зачем надо валидироваиь такую простую штуку как длина https://t.me/oop_ru/159641
так он еще не в одном чате поднял вопрос
источник

AE

Alexandr Emelyanov in pro.jvm
Vasili Pispanen
Если вы про хибернейтовский ddl auto update - такое в прод пускать нельзя
это был наброс я считаю
источник

VP

Vasili Pispanen in pro.jvm
Alexandr Emelyanov
это был наброс я считаю
Аргументирую:
1. С помощью ddl auto вы не можете выполнять сложные миграции. Например у вас были колонки first_name и last_name и вам нужно слить данные в одну колонку name с конкатенацией через пробел.
2. Имя внешних ключей при генерации - это ад, сообщение в логе constraint FK_aB1sx64... failed не поможет вам сразу понять, где ошибка
3. Никогда нельзя быть уверенным, что оно поднимется на продакшене. Девелопер может закомитить что-то, что поднималось на его пустой базе локально, но на пррде будет выполнятся не create table а alter table и упадёт по какому-нибудь констрейну
4. С ddl auto у вас в какой-то момент может оказаться чуть-чуть разная структура базы на dev, staging и prod окружениях, видел такое вживую

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

AE

Alexandr Emelyanov in pro.jvm
Vasili Pispanen
Аргументирую:
1. С помощью ddl auto вы не можете выполнять сложные миграции. Например у вас были колонки first_name и last_name и вам нужно слить данные в одну колонку name с конкатенацией через пробел.
2. Имя внешних ключей при генерации - это ад, сообщение в логе constraint FK_aB1sx64... failed не поможет вам сразу понять, где ошибка
3. Никогда нельзя быть уверенным, что оно поднимется на продакшене. Девелопер может закомитить что-то, что поднималось на его пустой базе локально, но на пррде будет выполнятся не create table а alter table и упадёт по какому-нибудь констрейну
4. С ddl auto у вас в какой-то момент может оказаться чуть-чуть разная структура базы на dev, staging и prod окружениях, видел такое вживую

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

СН

Сергей Нелюбин... in pro.jvm
Всем привет!
Есть мультимодульный gradle проект
Необходимо добавить в проект модуль, который находится в директории с именем начинающимся с символа точки.
Сейчас градл ругается: The project name must not start or end with a '.'
Есть способ заэскейпить символ точки в имени модуля?
источник

ch

central hardware in pro.jvm
точка имеет вполне конкретное значение, вам для какой цели это надо?
источник

L

Loljeene in pro.jvm
Сергей Нелюбин
Всем привет!
Есть мультимодульный gradle проект
Необходимо добавить в проект модуль, который находится в директории с именем начинающимся с символа точки.
Сейчас градл ругается: The project name must not start or end with a '.'
Есть способ заэскейпить символ точки в имени модуля?
https://stackoverflow.com/questions/48375733/gradle-project-name-starting-with-a
А ответы с первой страницы гугла не подходят?
Я мимо проходил
источник

СН

Сергей Нелюбин... in pro.jvm
Loljeene
https://stackoverflow.com/questions/48375733/gradle-project-name-starting-with-a
А ответы с первой страницы гугла не подходят?
Я мимо проходил
не поверишь - все утро искал, не находил
благодарю!
источник

ch

central hardware in pro.jvm
зачем вам нужен модуль с точки? это скрытая папка в линуксе, поэтому и не дает gradle создать - это для .ssh .gradle .idea и тд и тп, а не для обычных файлов
источник

ch

central hardware in pro.jvm
вы еще папку в винде скройте, а потом пытайтесь добавить ее в gradle
источник

NG

Nikita Gryzlov in pro.jvm
Spring AOP. есть класс, на который натравлен аспект. В классе объявлено два метода:
  public MyClass getThis() {
   return this;
 }

 public List<MyClass> getThat() {
   return List.of(this);
 }


В отладчике вызываю эти методы. getThis возвращает cglib-enhanced обертку, getThat - лист с оригинальным классом.

1) Это нормально?
2) Есть ли возможность заставить getThat возвращать лист с cglib-enhanced оберткой?
источник

L

Loljeene in pro.jvm
Nikita Gryzlov
Spring AOP. есть класс, на который натравлен аспект. В классе объявлено два метода:
  public MyClass getThis() {
   return this;
 }

 public List<MyClass> getThat() {
   return List.of(this);
 }


В отладчике вызываю эти методы. getThis возвращает cglib-enhanced обертку, getThat - лист с оригинальным классом.

1) Это нормально?
2) Есть ли возможность заставить getThat возвращать лист с cglib-enhanced оберткой?
а где вы вызываете оба метода?
источник

NG

Nikita Gryzlov in pro.jvm
Loljeene
а где вы вызываете оба метода?
в стороннем классе, который получает MyClass как бин. ставлю точку останова и в watches отладчика гляжу. плюс есть тест, который проверяет эту же ситуацию уже кодом
источник

AE

Alexandr Emelyanov in pro.jvm
Nikita Gryzlov
Spring AOP. есть класс, на который натравлен аспект. В классе объявлено два метода:
  public MyClass getThis() {
   return this;
 }

 public List<MyClass> getThat() {
   return List.of(this);
 }


В отладчике вызываю эти методы. getThis возвращает cglib-enhanced обертку, getThat - лист с оригинальным классом.

1) Это нормально?
2) Есть ли возможность заставить getThat возвращать лист с cglib-enhanced оберткой?
ни один из методов не вернет обертку. делайте инжект бина самого в себя и используйте в этих методах
источник

1

180 in pro.jvm
Напишите программу под названием Random50, которая заполняет массив пятьюдесятью случайными значениями от 1 до
999. Однако перед вводом числа в массив программа должна проверить, что
число еще не в массиве. Если он уже присутствует, новое случайное число должно
быть произведены и аналогичным образом проверены перед входом. Этот процесс повторяется до подходящего
номер был создан.
Для создания случайных чисел вам не разрешается использовать уже существующие методы библиотеки Array.
для заполнения массива, хотя вам разрешено использовать библиотечные методы из класса Random
для генерации случайных целых чисел. Генерация случайных целых чисел не рассматривалась в
лекции, но вы должны уметь исследовать эту проблему и найти
подходящий инструмент для этого упражнения.
Отобразите содержимое массива в следующем формате таблицы (т.е. десять строк по пять чисел):
123 045 436 785 876
456 003. . .
Ваше решение должно соответствовать следующим общим требованиям:
• Внешний цикл - это цикл while
• Есть внутренний цикл для проверки дубликатов
• Не повторяющиеся значения следует распечатывать по мере их обнаружения.
Первоначально, чтобы немного упростить процесс разработки программы, вы можете пожелать
распечатайте числа в формате таблицы во втором цикле, который следует за первым циклом while.
Однако вы должны в конечном итоге поместить операторы печати в основной внешний цикл, чтобы
программа отображает значения по мере их принятия. Такой подход позволяет избежать пересечения
массив во второй раз. Обратите внимание, что вам не разрешено использовать методы поиска из класса
Массивы. Обратите особое внимание на следующее ограничение: не используйте более одной петли.
вложен в другой цикл.
Вы также должны предоставить псевдокодовое представление вашего алгоритма. Наконец вы должны найти
какой-то способ тестирования вашего алгоритма, в частности, обеспечение того, чтобы ваша программа не размещала
повторяющиеся значения в массиве. Простой однократный запуск вашей программы не означает
адекватная стратегия тестирования.


кто может простым языком обяснить это?
источник

V

Vlad in pro.jvm
источник

СН

Сергей Нелюбин... in pro.jvm
central hardware
зачем вам нужен модуль с точки? это скрытая папка в линуксе, поэтому и не дает gradle создать - это для .ssh .gradle .idea и тд и тп, а не для обычных файлов
TeamCity держит скрипт пайплайна в .teamcity
Но по дефолту создает pom.xml
В мавене с таким именем директории модуля проблем нет
А у меня проект gradle и хочется чтоб скрипты пайпа JIdea распарсила корректно, зависимости подтянула и тд
источник