powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Начал знакомство со spring. Поругайте код
25 сообщений из 75, страница 3 из 3
Начал знакомство со spring. Поругайте код
    #39964015
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
Spring-boot приложение от немецких чиновников.

Удивил checkstyle, code civerage и sonar cloud.

https://github.com/corona-warn-app/cwa-server

Хорошего вам дня!

Да все там в порядке. Просто Сонар посчитал слабое тестовое покрытие.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964216
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 2020 да и в последние года 3-4 уже смешно видеть чистый pom.xml.

Каменный век.

Я согласен что у Грэдла есть недостатки (даже я бы сказал он не очень качественно сделан в плане работы с ним), но по функционалу альтернатив нет.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964224
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
в 2020 да и в последние года 3-4 уже смешно видеть чистый pom.xml.

Каменный век.

Я согласен что у Грэдла есть недостатки (даже я бы сказал он не очень качественно сделан в плане работы с ним), но по функционалу альтернатив нет.

Сильно удивишся но есть Java-проекты которые ant-ом собирают.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964227
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
dakeiras
в 2020 да и в последние года 3-4 уже смешно видеть чистый pom.xml.

Каменный век.

Я согласен что у Грэдла есть недостатки (даже я бы сказал он не очень качественно сделан в плане работы с ним), но по функционалу альтернатив нет.

Сильно удивишся но есть Java-проекты которые ant-ом собирают.


Я недавно скачал нетбинс, так он предлагал собирать каким-то своим сборщиком.
Да таже Идея только пару лет назад наконец осознала смерть iml.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964422
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот. Одна из лучших библиотек для построения текстовых индексов по документам.
Где только не используется. И в Elastic-Search. И в различных коробочных веб-приложениях.

https://github.com/apache/lucene-solr

Собирается ant-ом.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964426
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но наверное было-бы некрасиво просто поругать gradle. Надо и похвалить.
Так вот. Он быстро собирает. За счет запуска (в среднем) 4х демонов сборщиков.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964569
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Но наверное было-бы некрасиво просто поругать gradle. Надо и похвалить.
Так вот. Он быстро собирает. За счет запуска (в среднем) 4х демонов сборщиков.

это под 1 проект? А зачем 4 демона под сборку 1 проекта?
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964571
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

В maven тоже есть распараллеливание.

Команда mvn -T 1C -B clean package

Хорошего вам дня!
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964579
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
dakeiras,

В maven тоже есть распараллеливание.

Команда mvn -T 1C -B clean package

Хорошего вам дня!


Так я и спрашиваю - зачем? Что конкретно оно распараллеливает?
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964584
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
в 2020 да и в последние года 3-4 уже смешно видеть чистый pom.xml.

Каменный век.

Я согласен что у Грэдла есть недостатки (даже я бы сказал он не очень качественно сделан в плане работы с ним), но по функционалу альтернатив нет.
Если maven - это каменный век, то gradle - это леденящий душу пи####, он условно "прост" ровно до того момента, как приходится делать что-то сложное, после чего все его косяки вылезают наружу.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964586
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
Но наверное было-бы некрасиво просто поругать gradle. Надо и похвалить.
Так вот. Он быстро собирает. За счет запуска (в среднем) 4х демонов сборщиков.

это под 1 проект? А зачем 4 демона под сборку 1 проекта?

Ну.... если процесс компилляции можно разбить на изолированные фазы (возможно modules)
то эти фазы могут исполняться на отдельных java-процессах-демонах).

Конфигурируется это где-то здесь.

Код: java
1.
/.gradle/gradle.properties



Или можно просто в свойствах проекта. Кажется. Не уверен. Вобщем сами проверье.

У меня обычно поднят 1 этот демон сразу после любого вызова gradle build. И потом все время висит.

Возможно наличие 1 демона в памяти позволяет быстро-быстро прогреть следующий пуск
коспилляции за счет ClassDataSharing, но здесь я не готов утверждать. Надо проверять.
И тут еще важно что если у вас на борту стоит Java8, Java11 одновременно то и эти кеши
будут разными.

Вообще тут надо бенчмаркать. Запустить компилляцию крупного проекта и посмотреть как оказывает
влияние.

Вот как выглядит список процессов во время компилляции Кафки у меня. Видно что 5 os processes чем-то заняты.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
mayton@ryzen-ssd:~$ jps -l
11026 worker.org.gradle.process.internal.worker.GradleWorkerMain
10964 worker.org.gradle.process.internal.worker.GradleWorkerMain
10932 worker.org.gradle.process.internal.worker.GradleWorkerMain
10068 worker.org.gradle.process.internal.worker.GradleWorkerMain
13017 jdk.jcmd/sun.tools.jps.Jps
8731 org.gradle.launcher.daemon.bootstrap.GradleDaemon
8699 org.gradle.launcher.GradleMain
10317 worker.org.gradle.process.internal.worker.GradleWorkerMain



И вот мой конфиг.
Код: java
1.
2.
3.
mayton@ryzen-ssd:~$ cat ~/.gradle/gradle.properties 
org.gradle.daemon=true
org.gradle.parallel=true



На Windows10 машине я однако эту конфигурацию выключал.
Код: java
1.
org.gradle.daemon=false


Т.к. были странные артефакты. После подвисания какого-то gradle-plugin
часть файлов в директории /build проекта оказывались заблокированными
и следующий clear не проходил успешно. И поскольку мне важна была не скорость
а скорее надежность автоматизации я демонов в Windows-10 всегда выключал.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964588
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и я говорю, не нужно это распараллеливание. По крайней мере на машинах разработчиков. Только оперативу отжирает. (это одна из раздражающих черт gradle - висячие демоны даже когда ничего не компилируется).
На CI может и нужно.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964590
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну.. если у тебя очень сильная и долгоиграющая система модульных и интеграционных тестов
то сам бох велел тебе включать параллелизм.

Насчет там память отжирает? Ну не знаю. Мы живем уже в 21 веке и кажется уже на все дев-станции ставят по 8-16 Гигабайт
памяти и глупо тебе этот ресурс не задействовать. Или тебе память зачем-то другим нужна?

В "Контру" шпилишся? Или в танки параллельно?
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964598
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну.. если у тебя очень сильная и долгоиграющая система модульных и интеграционных тестов
то сам бох велел тебе включать параллелизм.

Насчет там память отжирает? Ну не знаю. Мы живем уже в 21 веке и кажется уже на все дев-станции ставят по 8-16 Гигабайт
памяти и глупо тебе этот ресурс не задействовать. Или тебе память зачем-то другим нужна?

В "Контру" шпилишся? Или в танки параллельно?

а, понял насчёт тестов. Тогда понятно согласен, но Гредл мог бы всё равно сделать чтобы эти демоны не висели.
8 это нереально сейчас, 16 маловато, 32 стандарт сейчас для разработчиков должен быть.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964629
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну.. если у тебя очень сильная и долгоиграющая система модульных и интеграционных тестов
то сам бох велел тебе включать параллелизм.
в "сильной и долгоиграющей системе модульных и интеграционных тестов" помимо того, что появляются зависимости между тестами, что в свою очередь сводит на нет все попытки что-то распараллелить автоматически, так еще и длительность тестовых сценариев разнится от сценария к сценарию, что тоже мешает их параллелить оптимально - приходится делать все руками, поэтому какие-либо возможности системы сборки тут совершенно не в кассу.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964632
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

а, понял насчёт тестов. Тогда понятно согласен, но Гредл мог бы всё равно сделать чтобы эти демоны не висели.

Я же объяснил зачем они висят. Для быстрого старта компилляции. Даже на малых проектах это может быть полезно.

Проблема Windows-10 это особенность файловой системы. Файловые дескрипторы - блокируются. В Linux - нет.
Линукс позволяет удалить символическое имя при том что дескриптор открыт и используется.

Поэтому не нужно переносить этот артефакт как недостаток gradle, тем более что если у вас нормальный
CI - проесс - то на сереверах непрерывной интеграции у вас будет стоять Linux.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964636
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
mayton
Ну.. если у тебя очень сильная и долгоиграющая система модульных и интеграционных тестов
то сам бох велел тебе включать параллелизм.
в "сильной и долгоиграющей системе модульных и интеграционных тестов" помимо того, что появляются зависимости между тестами, что в свою очередь сводит на нет все попытки что-то распараллелить автоматически, так еще и длительность тестовых сценариев разнится от сценария к сценарию, что тоже мешает их параллелить оптимально - приходится делать все руками, поэтому какие-либо возможности системы сборки тут совершенно не в кассу.

Я считаю что зависимости между тестами - это зло. И их надо устранять. Хотя конечно для e2e тестов
у вас будет некий flow иммитирующий реальную работу вашей системы и здесь уже низкая скорость
тестинга - это не НЕДОСТАТОК gradle там или jupiter. Это именно недостаток вашей разрабатываемой
системы. Она - медленно процессит (к примеру) JMS сообщения. И соотв. ожидание финала тестирования
у вас затягивается в бесконечность.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964637
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
gradle - висячие демоны даже когда ничего не компилируется).
он кеширует изменения в коде...после ввода любой твоей буквы по изменению оного.
Кеширует в собственном удобном формате для компиляции.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

8 это нереально сейчас, 16 маловато, 32 стандарт сейчас для разработчиков должен быть.

Давайте не будем также нежными и чувствительными. Нужно 32Gb?
Должно быть обоснование. Я-бы поинтересовался что находится внутри этих 32Гб
во время разработки. Ведь эта ситуация может шаблоном переносится на прод
и вам придется заказывать у Амазона EC2 инстанции с 32 Гб оперативы... почему?

Потому что нежный разрабочик так захотел? Среда занимает? Выйди из среды.
Прогони тесты в консоли.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964649
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я считаю что зависимости между тестами - это зло. И их надо устранять. Хотя конечно для e2e тестов
у вас будет некий flow иммитирующий реальную работу вашей системы и здесь уже низкая скорость
тестинга - это не НЕДОСТАТОК gradle там или jupiter. Это именно недостаток вашей разрабатываемой
системы. Она - медленно процессит (к примеру) JMS сообщения. И соотв. ожидание финала тестирования
у вас затягивается в бесконечность.
Чтобы пользователь смог войти в систему кто-то информацию об этом пользователе должен добавить - это предусловия тестового сценария, т.е. bottom line здесь к примеру такой: должен войти администратор и добавить пользователя (назначить полномочия и т.п.), если мы начинаем говорить, что между тестовыми сценариями зависимостей быть не должно, то мы еще глубже залезаем в кроличью нору: теперь в тестовых сценариях нужно делать ветвления в духе: зайти, посмотреть есть ли пользователь или нет, если есть, то проверить полномочия, если нет, то создать. Вот ветвления в тестовых сценариях - это куда большее зло, чем зависимости между ними (Test NG, кстати, с зависимостями прекрасно справляется ).
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964652
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ммм.. не знаю с testNG не работал.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964700
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ммм.. не знаю с testNG не работал.
Ну вот вы говорите про параллельность, интеграционные тесты... а "народ" считает что для интеграционных тестов TestNG предпочтительнее, типа: для unit-тестов пусть разработчики со своим JUnit (5) копошатся, а действительно "полезные" тесты мы будем делать на TestNG.

В целом же выглядит как-будто ваше мнение о gradle зашорено какими-то второстепенными фичами: инкрементальные сборки и параллельность - это фичи не то что не первой необходимости, так они даже и в первую десятку не входят, у меня, к примеру, среда разработки тупит на гредловских проектах сильнее чем на мавеновских, в итоге негативный импакт от использования гредла превышает все его второстепенные фичи. Кто-то там топит за его псевдодекларативный DSL, в духе а слабо вот такое в maven сделать:

Код: java
1.
2.
3.
task MyTask {
    subprojects.each { dependsOn("${it.name}:AnotherTask") }
}


? А по факту такой креатив в сценарии сборки нафиг не нужен - если что-то поменяется (что происходит крайне редко) можно и руками поправить, однако вот из-за таких мисфич сценарий сборки более-менее крупного проекта ни человек прочесть не может нормально, ни среда разработки (у них же в самом начале были какие-то попытки разбор build.gradle в IDE затащить, а потом остановились на том, что с gradle среда разработки должна работать только через демон). При этом действительно нужных возможностей в gradle толком нет, ну вот пример: есть какой-то срез кода из СКВ, как программно понять какой он версии? В maven это делается универсально через help:effective-pom, а в gradle каждый лепит кто во что горазд. Точно также с релизным воркфлоу: в maven release plugin - это часть экосистемы, а в gradle - какая-то сторонняя поделка, которой пользуются два инвалида (здесь больше похоже релизы в проектах на gradle не принято делать). В maven вообще есть киллер-фича: можно плагины дергать без прописывания их в pom.xml, ее полезность просто зашкаливает, гредлу до нее еще расти и расти.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964717
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не топлю за gradle если что.
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39964997
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Valentin Kolesnikov
dakeiras,

В maven тоже есть распараллеливание.

Команда mvn -T 1C -B clean package

Хорошего вам дня!


Так я и спрашиваю - зачем? Что конкретно оно распараллеливает?


Компиляцию, сборку, запуск unit тестов.

Я у себя использую эту настройку.

Хорошего вам дня!
...
Рейтинг: 0 / 0
Начал знакомство со spring. Поругайте код
    #39965090
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
dakeiras
пропущено...


Так я и спрашиваю - зачем? Что конкретно оно распараллеливает?


Компиляцию, сборку, запуск unit тестов.

Я у себя использую эту настройку.

Хорошего вам дня!

Да, уже выше понял. Спасибо.
...
Рейтинг: 0 / 0
25 сообщений из 75, страница 3 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Начал знакомство со spring. Поругайте код
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]