Этого треда уже нет.
Это копия, сохраненная 24 апреля 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
iih7wtrf4ywz.png121 Кб, 741x847
Java #105 thread /java/ 2159705 В конец треда | Веб
Актуальная шапка: https://github.com/EightM/JavaBackendStartGuide

Предыдущий: >>2116244 (OP)
2 2159707
И сразу вопрос

https://junit.org/junit5/docs/current/api/org.junit.platform.commons/org/junit/platform/commons/logging/Logger.html

Подключил этот хуев логгер, как теперь туда ложить?

Делаю logger.error("hui pizda djugurda")

Конпелятор говорит: incompatible types: java.lang.String cannot be converted to java.util.function.Supplier<java.lang.String>
3 2159708
ШАПКА НЕ НУЖНА
4 2159709
>>159705 (OP)
Мертвый тред мертвого языка. Напомню, что сишарп уже догнал джаву по вакансиям, желающим работать с ООП языками теперь нет смысла учить что-то кроме дотнета
5 2159727
В HelloWorld.java делаю import hui.pizda.djugurda

Собираю мавеном. Запускаю. Как понять какая версия hui.pizda.djugurda у меня подцепилась и в какой директории искать этот пекедж?
6 2159728
>>159707
Напиши () -> "hui pizda ..."
Там нету метода, который принимает строку. Только саплаер
7 2159732
>>159728
Говорит lambda expressions are not supported

Без бампа версии логгер теперь никак не подключить чтоле?
8 2159740
>>159732
java.util.logging то ещё говнище
Юзай log4j2
9 2159750
>>159740

>log4j2


А в реальных проектах что для логгирования используют кроме этого?
10 2159753
>>159750
Только logback.
11 2159755
>>159709
Всё так.
мимо джава господин
12 2159778
>>159732
Supplier появился в 8-ке, там же и лямбды появились. Ты что-то перемудрил с language level. Если билдишь Мавеном пропиши корректный language level. Если IDEA ругается, исправь в свойствах проекта.
13 2159800
Как сделать конвертер из дто в юзера и обратно, в юзере есть поле Set<Role> role; Role это два поля id и name.
sage 14 2159833
>>159800
roles.stream()
.map(RoleMapper::toDto)
.collect(toSet());

Ну и в маппере ролей просто перегонять одну роль в дтошную
15 2159874
>>159778
Версия JDK не принципиальная, просто начал с hello world отсюда

https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

Всё равно ложить через лямбду это дичь какая-то ящитаю

>>159740
Такс, какой выхлоп пошел, спс, но идет только на уровне error. Как теперь теперь ему ещё логлевел настроить, желательно через аргументы вызова мавена или его конфиг? Мне собственно нужно ложить из тестов, которые вызываются через mvn test
sage 16 2159876
>>159874

> Такс, какой выхлоп пошел, спс, но идет только на уровне error. Как теперь теперь ему ещё логлевел настроить, желательно через аргументы вызова мавена или его конфиг? Мне собственно нужно ложить из тестов, которые вызываются через mvn test


Скорее всего тебе нужно сделать конфиг, который будет подтягиваться для тестов. Тут тебе нужно будет самому поискать
17 2159879
>>159876
Ок и на том спасибо
18 2159891
мм, спасибо нахуй, идея отказывается запускать мавен проект на 16 версии жабы, пишет что ей нужна 9
куча результатов в гугле и нихуя не работает
19 2159899
>>159874

>Всё равно ложить через лямбду это дичь какая-то ящитаю


Так это и не для тебя писалось, ты в JavaDoc видел что написано:

>@API(status=INTERNAL, since="1.0")



Возьми нормальный логгер и используй его.
20 2159941
>>159891
Ну а что ты хотел, либо используешь вымирающие технологии, либо переходишь на гредл.
21 2159973
>>159941
Градл еще сырой пруф ми вронг
22 2159993
>>159973
По мавену новости какие то были после анонса 4,0? Лет 10 еще будут делать?
23 2160004
>>159973
Что именно в нем сырое?
24 2160006
Язык программирования, который контролирует мировые финансы: 240 миллиардов строк кода на JAVA
https://habr.com/ru/company/itelma/blog/577736/
25 2160014
>>159993
Да, там 3.х.х версии херачат как из пулемета.
26 2160027
>>160006
Новый КОБОЛ, лол
27 2160061
>>160006

> 240 миллиардов строк кода на JAVA


100 миллиардов сеттеров и 100 миллиардов геттеров?
28 2160203
>>160006
Мне страшно это читать.
29 2160213
Пытался тут изучить котлин, но не смог осилить ебучие говносистемы сборки для яваговна. Это же пиздец. Как вы это говно жрете? Импортирование либ в CMake проект на с++ по сравнению с этим посто как два пальца.
В итоге, роутер сообщений из c++ в Рабит написал на дотнете за 30 минут, где все из коробки работает и все пакеты доступны в пару кликов
30 2160214
>>160203
Как в свое время ты кекал с кобол девелоперов, так сейчас студенты говноеды гоферы кекают с тебя
31 2160220
>>160213

>пррр пук среньк

32 2160251
Всё так. Чтобы писать в джава мире, нужно обладать нехилыми интеллектуальными способностями.
33 2160262
>>160214
Не хочу огорчать, но

> обмазываюсь последней джавой и ботинком на новом проекте


> кекают


Студент говноед на связи.
Я еще ни одного xml не написал на галере и не создал ни одну абстрактную фабрику другой фабрикой. хотя, нет, одну, вроде, создавал


Да и java это не питон, чтобы вечно сидеть на чем-то древнем, мне кажется.

> студенты говноеды гоферы кекают с тебя


У нас в вузе учат Qt, да и думаю, по сравнению с плюсами ява перспективнее.

С кого не кекают, я просто не в теме и интересно
34 2160279
kek.png123 Кб, 1123x325
35 2160303
Ява топ-3 язык по фронтенду, а вы ноете, обогнала даже сисишарп.
36 2160435
Приветствую уважаемых джавистов. Как у вас с гринтредами? Слышал что-то про project loom, так и не завезли?
37 2160439
>>160435
не шарю в канкуренси. Вот что нашел

>рассмотрение потоков с их моделей исполнения:



>1:1 (потоки исполнения на уровне ядра)


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



>В Java модель исполнения 1:1, соответственно потоки могут исполняться на разных ядрах процессора параллельно, что является большим плюсом, из минусов — создание, удаление, переключения контекста и блокировки стоят сравнительно дорого. В итоге приложение будет тратить больше времени на создание и удаление потоков, чем на обработку непосредственного запроса. Потоки занимают значительное количество памяти, соответственно при создании большого количества потоков JVM может начать пробуксовывать.



>N:1 (потоки исполнения уровня пользователя)


>В этом случае потоки должны быть реализованы в пространстве пользователя и должны управляться некой виртуальной машиной.


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


>Плюс в том что переключения контекста очень быстрые, потому как не требуют соответствующих системных вызовов.



>M:N (смешанная потоковость)


>Самая сложная модель, в ней некоторое количество потоков на уровне пользователя отображаются на некоторое количество потоков ядра.


>Плюс — быстрые переключения контекста


>Минус — возможна неоптимальная работа из за дорогой координации между планировщиком виртуальной машины и планировщиком ядра



>Для легковесных потоков так же возможна реализация, когда потоки уступают выполнение друг другу, это так называемая кооперативная многозадачность.


>В этом случае планировщик отвечает лишь за создание и уничтожение потоков.



Зеленые потоки это N:1? А лум?
38 2160495
>>160439
N:1 частный случай M:N. В луме это M:N со всеми вытекающими ограничениями и отсутствием нормального синтаксиса и апи чтобы их решать. По сути говно без задач.
39 2160536
Есть какой-нибудь ресурс, типо codewars, чтобы набить руку именно на stream API?
42 2160554
>>160542
>>160544
Владыкинский курс у меня пройден пару лет назад как, вторая какая-то простоватая на первый взгляд.
43 2160580
>>160554
а на кодварсах типа сложное что-то на работу стандартных либ бывает? Там сложное, если только алгосы изъебистые.
44 2160623
Caused by: java.lang.IncompatibleClassChangeError: class converter.UserMapperImpl can not implement converter.UserMapper, because it is not an interface (UserMapper is in unnamed module of loader org.springframework.boot.devtools.restart.classloade

Что это значит? Класса/интерфейса UserMapperImpl у меня нет, снесен очень давно. Если рефактор->переименовать UserMapper будет ошибка UserMapper не найден. Чё он хочет?
45 2160641
>>160214

>студенты говноеды гоферы кекают


Кекают, а потом идут учить пхп, жс, 1с, сишарп и жаву, так как на Го для студентов работы в принципе нет.
46 2160697
>>160623
Попробуй mvn/gradle clean и удалить кэш идеи в проекте
47 2160784
Хочу стопать @KafkaListener по определенному событию (в спринге), а потом по другому событию запускать, и чтобы консюмер продолжал считывать сообщения с последнего прочитанного. Это сложно сделать? Это нужно делать или это оверинжениринг?
48 2160796
Field error in object 'userDto' on field 'roles': rejected value [USER]; codes [typeMismatch.userDto.roles,typeMismatch.roles,typeMismatch.java.util.Set,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [userDto.roles,roles]; arguments []; default message [roles]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Set' for property 'roles'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'com.amr.project.model.dto.RoleDto' for property 'roles[0]': no matching editors or conversion strategy found]

Как пояснить фронту, что я хочу получить Set<Role> у себя в контроллере? Как приводить типы? Я так понимаю на фронте есть какой-то json, а че с ним дальше делать? Как перегнать одно в другое и наооборот? Может у таймлифа есть какие-то возможности ?
49 2160839
Почему Future в жабе такие убоги, что на них нельзя даже повесить коллбек? Почему AsynchronousFileChannel в методах write и read возвращает Future, а не CompletableFuture? Почему нет нормального синтаксиса async-await как в C#?
50 2160844
Такое чувство, что разработчики джавы специально делают так, чтобы мы использовали потоки вместо асинхронности. Почему они так делают? Даже те же сервлеты до сих пор, в 2021 году, для каждого запроса выделяют отдельный системный поток. Такой подход уже давным давно безнадежно устарел. Тогда почему его до сих пор используют. Та же нода с ее одним потоком, но с сильно продвинутой асинхронной моделью не сильно уступает обычному томкату в производительности.
51 2160849
Я понимаю, что Loom, возможно, решит разом все проблемы, но мне начинает казаться, что он либо никогда не выйдет, либо только к концу этого десятилетия, когда на жабе уже мало кто будет писать новые проекты.
52 2160858
чел лум уже готов скачай до посмотри
я вот не пойму нахуя нужны рекорды когда скоро будут вэлью типы
53 2160868
>>160858

>чел лум уже готов


И в какой LTS он будет? Вон, леха шипилев обещает лум только через одну LTS, а это какой год будет? 2025? В итоге только к концу десятитлетия дай бог увидим лум на проде.
54 2160911
А ведь в самых древних версиях жабы, примерно во времена 1.1 были green threads. Правда от них потом отказались в пользу системных потоков. А ведь если бы тогда гении из sun microsystems сделали верный шаг и, вместе с поддержкой системных потоков и впоследствии обновленной JMM, оставили бы грин треды, то как бы сильно изменился жабий мир? Только представьте, аналог современных горутин и корутин в конце 90-х - начале 2000-х...
55 2161020
Джавы не существует
56 2161031
посадили на груви кодить, то еще говнище, с переменными творится то о чем билли не фантазировал
я читаю из yml файла:
HUITA:
-a1:b1
c1:d1
-e1:f1
g1:h1
оно выдает
print(HUITA)

>"[{a1=b1, c1=d1}, {e1=f1, g1=h1}]"


print(HUITA.getClass())

>java.lang.String


как из этой хуиты теперь достать значения без пердолинга с говнокодом, за который меня уволят нахуй
image.png29 Кб, 706x267
57 2161039
Почему так, то, блять?
allMatch должен просмотреть все элементы стрима и сказать, соответствуют ли они предикату, как он понимает, что стрим бесконечен ?
Если "матчи" умеют определять бесконечен ли стрим, то почему anyMatch этого не понимает и продолжает бесконечно искать элемент соответствующий предикату?
58 2161042
>>160839
Котлин.
59 2161045
>>160849
Всё так. После десятилетия разработки вымученно выдреснут в прод как и jpms, и это станет последим гвоздем в крышку гроба жабы позорной. Мир вздохнет с облегчением.
60 2161048
>>161039
потому что двоичная логика, allmatch завершается после первого false, потому что от дальнейших значений результат не зависит. anymatch ждет первого true
61 2161051
>>161045
Я бы ушел в дотнет, но там нет нормальной работы - одни стремные предприятия с CRM, серверами, экселями от мелкомягких. А Го просто васянство из прошлого века
62 2161157
>>161051
Ну и на чем писать бекенд-то, ептыть?

Java как-то медленно развивается. Ну и разработчики JDK хуесосы еще те, надо же было надрачивать на обратную совместимость в тот момент, когда ее нужно было сломать (дженерики), а потом сломать эту же совместимость позже, но уже в другом месте, лол. Работы всякой полно, но как правило везде унылый энтепрайз, где нужно грузить джейсоны в офисе с утра до вечера.

Сишарп - язык хорош, но тулинг хуета, опенсорс решений не от MS нет, нормальной работы нет, везде какой-то кал уровня винформочек, wpf, .net framework 4, MSSQL, Sharepoint, юнити, etc.

Голанг - вроде перспективно и молодежно, а вроде и хуйня на деле. Есть горутины, рейс детектор, в целом выглядит заебись при первом знакомстве, но в деталях понимаешь, какой же кал сотворил роб пайк. А тут еще дженерики завезут, наверняка получится кал уровня жабы, и оставят возможность писать interface{} там где не нужно. Хотя похуй. Надеюсь хотя бы дженерики у них стираться не будут.

Раст - ну вроде интересно, но работы нет от слова совсем. Какие-то мутные блокчейн стартапы. IDE для раста тоже нет. В общем мутная хуета, но может лет через 5-10 взлетит.

С++ - есть интересная работа, но сам язык просто ужасный. Помимо интересных вакансий с линуксом, сетью и хайлоадом, куча всякого говна на Qt, WinAPI, MFC.

JS - вроде есть огромный рынок, но для бекенда вроде только нода и экспресс. Честно не уверен, что они популярны у нас.

Пыха - в целом заебись выбор для простого бека, но опять же куча 1С, битриксов, мутных мелких работодателей.

Питухон - вроде как подох в бекенде. Хотя фласк и фастапи до сих пор живы. Но больше популярен у аналитиков.
sage 63 2161162
>>161157
Котлин/жс/го, если хочешь молодежно
64 2161170
>>161162
А в чем преимущества молодеждных языков по сравнению с древней жабой? На жабе работы больше имхо (если не считать жс фронтенд)
65 2161181
>>161157

>Голанг


Он заебись в плане многопоточности и производительности, у нас пишут микросервисы которые работаю с видео/аудио стримами и все шустро и стабильно. Но блядь сам язык и то что его окружает это отдельная история, хуй с ним с синтаксисом и отсутствием чего либо +/- привыкнуть можно я даже одну апишку за вечер накидал почти без боли, изучая язык с нуля, но то что там нет никаких практик написания приложений, каких нибудь фреймворков и ОРМ которые устоялись бы, наоборот там все стараются писать код на голом языке и сука каждый пишет как душа ляжет, объемы говнокода на гитхабе просто зашкаливают, в итоге получается стиль написания как в пхп в начале нулевых еще щепотку говна и будет битрикс

>Раст


Он пока только взлетает, даже более менее рабочий для бекенда фреймфорк пока еще 0.5 версии https://rocket.rs/ и активно пилится, но в целом потыкался, прикольный язык лучше плюсов на мой взгляд Короче да, тут пока только ждать

>IDE для раста тоже нет


Для любой иде жыдбрейнса можно установить плагин и будет работать

>JS - вроде есть огромный рынок, но для бекенда вроде только нода и экспресс. Честно не уверен, что они популярны у нас.


Там много чего есть для бэка и typescript можно прикрутить, но там подход другой, на каждый чих ставится библиотека, куча всякой хуйни в зависимостях, если проекту больше года, то запуск npm i споряжен с еблей с зависимостями, все живет максимум пару лет имел "удовольствие" поебаться, не понравилось и плюс часто нужны фулстеки. А так если нужно поднять быстро мелкую апишку экспресс.жс идеальный вариант. А так работы дохуя.

>Пыха


Попробуй symfony наблюдаю как джависты на него перекатываются и вроде довольны. А так пыха уверенным шагами идет в сторону жабы, сейчас еще активно развивается https://www.swoole.co.uk/ и мне кажется со временем заменит php-fpm который каждый реквест запускает запрос и умирает
Остальное смотреть не советую, поскольку:

>но опять же куча 1С, битриксов, мутных мелких работодателей


Сам из-за этой причины съебался в рельсы, смотришь на вакансии и большая часть это студии ебучие пусть студенты там работают за 30к

>Питухон


Попробуй джангу, авось зайдет
65 2161181
>>161157

>Голанг


Он заебись в плане многопоточности и производительности, у нас пишут микросервисы которые работаю с видео/аудио стримами и все шустро и стабильно. Но блядь сам язык и то что его окружает это отдельная история, хуй с ним с синтаксисом и отсутствием чего либо +/- привыкнуть можно я даже одну апишку за вечер накидал почти без боли, изучая язык с нуля, но то что там нет никаких практик написания приложений, каких нибудь фреймворков и ОРМ которые устоялись бы, наоборот там все стараются писать код на голом языке и сука каждый пишет как душа ляжет, объемы говнокода на гитхабе просто зашкаливают, в итоге получается стиль написания как в пхп в начале нулевых еще щепотку говна и будет битрикс

>Раст


Он пока только взлетает, даже более менее рабочий для бекенда фреймфорк пока еще 0.5 версии https://rocket.rs/ и активно пилится, но в целом потыкался, прикольный язык лучше плюсов на мой взгляд Короче да, тут пока только ждать

>IDE для раста тоже нет


Для любой иде жыдбрейнса можно установить плагин и будет работать

>JS - вроде есть огромный рынок, но для бекенда вроде только нода и экспресс. Честно не уверен, что они популярны у нас.


Там много чего есть для бэка и typescript можно прикрутить, но там подход другой, на каждый чих ставится библиотека, куча всякой хуйни в зависимостях, если проекту больше года, то запуск npm i споряжен с еблей с зависимостями, все живет максимум пару лет имел "удовольствие" поебаться, не понравилось и плюс часто нужны фулстеки. А так если нужно поднять быстро мелкую апишку экспресс.жс идеальный вариант. А так работы дохуя.

>Пыха


Попробуй symfony наблюдаю как джависты на него перекатываются и вроде довольны. А так пыха уверенным шагами идет в сторону жабы, сейчас еще активно развивается https://www.swoole.co.uk/ и мне кажется со временем заменит php-fpm который каждый реквест запускает запрос и умирает
Остальное смотреть не советую, поскольку:

>но опять же куча 1С, битриксов, мутных мелких работодателей


Сам из-за этой причины съебался в рельсы, смотришь на вакансии и большая часть это студии ебучие пусть студенты там работают за 30к

>Питухон


Попробуй джангу, авось зайдет
sage 66 2161201
>>161170
Так ты же сам сказал, что жава - хуета. Я кинул альтернативы.
За жс/го не скажу, но в котле просто много сахарочка. Ну, про него ты сам почитаешь.
Преимущество молодежный языков в том, что они быстрее развиваются, так как не обременены миллиардами строк легаси говна. Втф решения старых языков пересматриваются и создаются новый втф решения
67 2161717
>>161181
А что на счет elixir?
68 2161720
>>161157

>Java как-то медленно развивается


вершина развития - смерть. Что есть "развитие"? Количество фишечек и сахарочка?
69 2161747
>>161717
Я как русбист в нем разочаровался, там синтаксис похож, но пропал весь шарм ООП который есть в руби, но есть те кому нравится. Феникс мне показался какой-то хуитой многословной после рельс.
А так это функциональный язык для виртуальной машины эрланга, который мегаотказоустойчивый за это его и полюбили где-то видел статью в кторой написано что на нем добивались девять девяток 99.9999999%
70 2161758
>>160006

> «Вы могли подбирать людей на улице», — говорит Джон Пайк, британский программист, изучавший COBOL в 1960-х годах, — «и в целом учить их, как это делается».



Каждый раз в голос с этой фразы. После создания Java вы могли подбирать индусов с улицы обозначенной для сранья, и в целом учить их как это делается.
71 2161806
>>161747
Ну вот как раз отказоустойчивость его основная фишка.
Давно рассматриваю его в качестве языка для реализации микросервисов на нем внутри моего рабочего проекта.
Что там на счет разнообразия либ?
72 2161814
>>161747

>который мегаотказоустойчивый за это его и полюбили


Это все пока у тебя можно без последствий дропать реквесты. А вот если у тебя запросы которые нельзя дропать например финансовые транзакции, то ты заебешься на нем делать рековери после каждого let it crash.
73 2161991
>>161806

>Что там на счет разнообразия либ?


хз, я на нем поплевался пару дней и забил, спроси лучше в элексиротреде
16280840179450.jpg41 Кб, 500x500
74 2162145
>>161181

>Попробуй symfony наблюдаю как джависты на него перекатываются и вроде довольны.

75 2162249
Как из джаваскрипта передать Set<Role> на контроллер? Сейчас Bad Request 400. Failed to convert property value of type 'java.lang.String' to required type 'java.util.Set'. Это ошибка клиента, я эту хуйню даже продебажить не могу.
76 2162251
>>162249
У меня есть диалоговое окно, в нем бутстрап селект, для выбора роли, он как я понимаю отдает String
sage 77 2162252
>>162249
Кидай тело запроса + свою дтоху
78 2162255
>>162252

>тело запроса


А где его взять? Как посмотреть?
sage 79 2162258
>>162255
Пусть фронт скажет. Либо в браузере, если сам фронт пишешь
80 2162263
>>162255
в браузере "инспект элемент", или как там на русском. И там вкладка "нетворк". Вот там смотришь свой запрос
83 2162274
>>162272
в браузере это работает?
85 2162281
>>162274
работает до момента сейв
86 2162292
>>162281
нажми на красную строку. Появится инфо, вкладка Preview будет с текстом запроса
88 2162320
>>162308
ты html можешь редактировать? Попробуй сделать в селекте name="roles[0]"
14.jpg310 Кб, 1361x622
89 2162323
>>162320

>="roles[0]"

15.jpg226 Кб, 1366x768
90 2162328
>>162320
Вот тут двумя алертами я выкидываю данные о роли и они вроде выскакивают те которые есть. Птом в закомнеченом пытаюсь их вот так засунуть в форму, но в этом случае модалка не открывается.
91 2162343
>>162328

>модалка не открывается.


т.е. откывается когда поменял на let role={}; но при save все то же>>162323
92 2162344
>>162343
Ошибка теперь серверная, а дебажить я ее все равно не могу, все падает до метода save.
sage 93 2162351
>>162308
У тебя на фронте roles - стринга. А на бэке ты ожидаешь set<RoleDto>
94 2162353
>>162351
и как это исправить?
sage 95 2162354
>>162353
а) отдавать с фронта сет дтошек
б) принимать стрингу на бэке
96 2162355
>>162354

>а) отдавать с фронта сет дтошек


КАК??????
97 2162362
>>162355
ХУЯК!!!!!
1632170466987.jpg11 Кб, 591x243
sage 98 2162366
99 2162371
>>162272
А зачем нужен таймлиф и жс одновременно?
image.png38 Кб, 610x398
100 2162387
Почему у ArrayList большой оверхед по памяти? Вот, например, пытаюсь записать 100 миллионов интов в лист. Казалось бы, 100_000_000 x 4 / 1024 / 1024 = 382 мегабайта. Но лист сжирает чуть ли не в 10 раз больше, примерно 4 гигабайта! Даже если передать аргументом в конструктор эти 100 миллионов, ничего не происходит, лист не резервирует внутри себя место.
Хотя если использовать обычный массив интов вместо листа оверхед становится совсем небольшим - примерно 630 мегабайт против 382, всего лишь почти в 2 раза!
Может кто объяснить, куда сжирается столько памяти? Ладно хуй с ними, с массивами, там оверхед небольшой, но сука куда делись три с половиной гигабайта? Я даже ума не могу приложить, что может хранится в этой памяти. Такое чувство, что взяли огромный кусок памяти и заполнили его нулями или другой рандомной информацией.
101 2162391
>>162387
Сейчас запускал с ключом -Xmx. Массивы действительно работают как нужно. -Xmx390m хватило сполна. А вот лист работает только если ему дать минимум 2гб памяти. Все что меньше - валится с OutOfMemoryError.
102 2162395
>>162371
Я не специалист по фронту, хуярю как умею, всеми технологиями. Огонь из всех орудий. Посмотри требования в вакансиях, надо знать всё. Бутерброд технологий, кайф же
103 2162397
>>162395
Так зачем одновременно то? Один пет напиши на шаблонах. второй на жс.
104 2162398
>>162391
Сейчас в голову пришла мысль, что большой оверхед не в листе (ведь внутри него по сути обычный массив сидит), а в классе Integer. Например, 100 миллионов Byte спокойно умещаются в 400 мегабайт памяти, а Integer'ам нужно чуть более чем в 4 раза больше, что в целом ожидаемо.
Вопрос, какова хуя эти классы обертки так много жрут?

UPD. Протеститровал Integer[] и понял, что все-таки виноваты обертки. Хули им нужно так много памяти. Это какое-то наебалово от разработчиков джавы? Примитивы в коллекциях использовать нельзя, значит нужно идти покупать оперативную память? Че за хуйня?
105 2162400
>>162397
Пет не про фронт. У меня конкретная проблема и конкретный вопрос, на который хер кто ответил. Как с фронта бросить сет ролей в бэк, хоть таймлифом, хоть жэсом, хоть чем.
106 2162403
>>162391
Во первых Integer обертки занимают раза в 3 больше, чем int.
Во вторых у листа есть capacity. То есть там по сути там массив под крышкой. И его размер выше, чем размер до конца массива.
Только засчет этого может быть разница в 3-5 раз.
Может еще какие то причины, просто самые очевидные
image.png161 Кб, 461x304
107 2162404

>an object with one int field (including a boxed Integer) will also take up 16 bytes

108 2162405
>>162403
Да уже разобрался, спасибо.
Вопрос, когда наконец выйдет вальхалла, то вместо List<Integer> я смогу написать List<int>, чтобы создать списко, который будет под капотом держать не массив жирных 16 байтовых оберток, а массив 4 байтовых примитивов?
109 2162406
>>162400
Жсом берешь и создаешь объект с массивом объектов, идентичным содержанию твоего енума, потом сериализуешь и отдаешь. Шаблонами - я хз.
110 2162408
>>162406

>создаешь объект с массивом объектов


let set = {{}};
let role = {id:1, name:"admin"};
set.add...??
Так?
А зачем нужен js-овский сет?
let set = new Set();
sage 111 2162410
>>162408
Сет нужен, чтобы были уникальные элементы. Для жсона достаточно массива
112 2162411
>>162408
Хз. Потыкай в свой контроллер хттп клиетом идеи/постманом Наугад подбери нужный ему формат запроса. Потом в таком же виде делай фронт.
Я тоже не шарю в спринге особо, особенно на шаблонизаторах. Но делал бы так.
113 2162416
>>162398

>Это какое-то наебалово от разработчиков джавы?


Именно так. Ну а хули ты хотел? Хочешь производительность - используй массивы.
114 2162418
>>162398
>>162416
https://habr.com/ru/post/134102/

>Итак, давайте попробуем подсчитать сколько же будет занимать объект класса Integer в нашей 32-х разрядной HotSpot JVM. Для этого нужно будет заглянуть в сам класс, нам интересны все поля, которые не объявлены как static. Из таких видим только одно — int value. Теперь исходя из информации выше получаем:



Заголовок: 8 байт
Поле int: 4 байта
Выравнивание для кратности 8 : 4 байта
Итого: 16 байт

Разница в 4 раза,на 64-битной и побольше может быть.
115 2162648
>>162398
>>162416
>>162418
Зуммеры, для вас JOL сделали https://github.com/openjdk/jol

Берете и получаете результат с точностью до байта, хоть на 32, хоть на 64, хоть со сжатыми указателями, хоть без. Можно вообще сложный DTO засунуть и получить объем всего дерева объектов.
116 2162703
У меня в удаленном репозитории есть мастер ветка, которую обновляю не я. Моя задача на моей ветке. Как обновить мастер ветку, только лишь? Я ее залил к себе, а как дальше мердж делать? Тогда получиться что две ветки у меня сольються в одну? Или нужен ребейз? Или что нужно?
117 2162711
>>162703
Нужно съебаться из джава треда с такими вопросами, и побыстрее.
sage 118 2162719
>>162703
Спуливаешь мастер к себе.
Мержишь изменения из мастера себе в ветку.
Мержишь свою ветку в мастер.
119 2162794
Как с фронта передать Set<Roles> на мой UserDto? Метод контроллера ожидает public User toEntity(UserDto userDto). В json-e нет типа Set. В самом дто поле выглядет так private Set<RoleDto> roles;
120 2162801
>>162794
метод контроллера такой public String save(UserDto dto) .там метод маппера.
121 2162811
>>162794
Как ты заебал, даун.
122 2162831
>>162811
ну ответь, макака, и я свалю
sage 123 2162841
>>162811
Джвачая

>>162831 -> >>162354
124 2162849
>>162841
мне кажется ты не понимаешь меня
125 2162855
>>162841
и отвечаешь хуй знает зачем
sage 126 2162885
>>162855
Пока тесты гонятся, чому нет
127 2162886
>>162885
иди хуй дрочи, или соси
sage 128 2162934
>>162886
Злой ты какой-то. На жаву 7 закинули что-ли?
129 2162945
>>162934
Тон дискуссии задан двумя участниками сверху, я спросил вопрос. Получил два ответа >>162811
>>162362
130 2162949
>>162945
А нахуй ты его спросил? Заставляет задуматься...
131 2162964
>>162949
Кого его? Вопрос без ссылки на другие посты. Или его это этот тред?
132 2163030
>>162366
Java 18?
sage 133 2163092
134 2163181
А есть на ютабе каналы на которых что-то интересное на спринге делают с разбором, если есть поделитесь.
135 2163185
>>163181
На спринге делают только скучное, поэтому за него и плотят.
136 2163217
>>163181
Никто не будет заморачиваться с спрингом на ютабе, нужно угодить подпивасным зрителям и высрать КЛОН ТВИТТЕРА НА РЕАКТ НОДА ЗА ЧАС (дольше никто смотреть не будет)
137 2163241
>>163217
Ну вот клот твиттера на 5 табличек это не про спринг и упрощение.
Опиши в паре абзацев, какой проект был бы адекватен настоящему спринговому стеку.
138 2163289
Господа ананасы, помогите.

Как мне в контроллере через @RequestBody передать enum таким образом, чтобы он сериализовался как объект:

{
"status": "ACCEPTED"
}

Сам enum выглядит следующим образом

@Getter
@RequiredArgsConstructor
public enum Status {

IN_PROGRESS("В работе"),
SUBMITTED("Отправлена"),
ACCEPTED("Принята"),
COMPLETED("Выполнено"),
NOT_ACCEPTED("Не принята"),
DELETED("Удалена");

private final String value;

}

Если запихнуть прямо @RequestBody Status status, нихуя не пашет, сваггер говорит (и говорит правильно), что нужно отправлять просто один из вариантов статуса, без кавычек, без нихуя, не объектом.
sage 139 2163304
>>163289
class SomeDto {
Status status;
}
140 2163414
Котлин прям копия питон по синтаксису
dbconfigs.PNG133 Кб, 860x841
141 2163417
Короче ебаный спринг, ебаная шлюха козьмина. Прохожу книжку prospring5. И там глава по jdbc. И код из книги выдает ошибку.
Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Cannot create PoolableConnectionFactory (Access denied for user 'Karasik'@'localhost' (using password: YES))
Какой нахуй карасик? Это имя пользователя на моей винде, а имя пользователя mysql prospring5. Оказывается эта мразь каким то образом держит в переменной пропертей username(пик) имя моего пользователя. И никак его не меняет. И нужно было изменить имя переменной.
И я тыкался 3 дня. У этой ошибки миллион причин. Пока на третий день не дошел до второй страницы выдачи гугла, где это описано про эту книгу.
Как это говно работает? @Value берет pathvariable винды? Нахуя?
Только без виндосрача, пожалуйста, джава же ран евривере.
142 2163418
>>163414
Даа, а нахуя ты это в джава треде пишешь, ебланоид?
143 2163421
>>163417

>@Value берет pathvariable винды? Нахуя?


Не только винды. Куда ты лезишь в спринг нахуй, если не можешь прочитать, как аннотация работает?
144 2163423
>>163418
Чтобы ты в свой рот принял информацию конечно же, мань.
145 2163426
>>163421
да ладно, понятно зачем, я просто не сталкивался с явным использованием переменных среды из джавы.
Но козьмина могла догадаться так переменную в пропертях не называть. Еще книги пишет, сука.
146 2163429
>>163426
А нахуй ты книжки читаешь? Толку ноль все равно. Читать надо мурзилки.
147 2163441
>>163429
Я прочитал одну и еще несколько до половины. Но чувство, что я знаю фрагментарно очень меня очень гнетет. Может микрзилки были говно конечно.
А тут охват, в одном контексте, да и по нашему еще пишут.
Я как главу про jdbc прочту пойду читать Java Persistence API и Hibernate.
А че ты из мурзилок посоветуешь такому бестолковому? Баелдунг? Я читал штук 7 статей, когда писал кое-что.
Думал тупо доку почитать. Но я насчитал в нужных кусках доки 3.5 ляма символов. То есть 1500 страниц. Но на ингише(скорость чтения у меня в 5 раз медленее) и с только кусочками кода, без полных программ. И язык потяжелее баелдунга.
148 2163515
>>159705 (OP)
Про Шилдта
У него есть 2 книги
"Шилдт Г. - Java. Руководство для начинающих" и "Шилдт Г. - Java. Руководство для начинающих" и "Шилдт Г. - Java. Полное руководство". Это книги которые следует учить друг за другом? Или первая это для тех, кто хочет освоить быстро основные положения Java core а вторая для тех, кто хочет освоить Java более углубленно?
???
149 2163519
>>159709
Полноценно с linux на C# не поработаешь
150 2163530
Привет, аноны.
Пытаюсь запустить сервлет Java 8 с JBDC на tomcat 9.
В pom.xml подключил зависимость на mysql-connector-java. Стартую сервер, при отправке запроса на сервлет выдаёт ошибку:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mydb...
Заметил, после добавления драйвера в зависимость, в консоли томкэта появился варнинг:
INFO [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Не очень понимаю, что это означает. В war-файл драйвер упаковался.
В чём может быть проблема?
ОС: macOS Catalina 10.15.7
Tomcat 9.0.53
151 2163533
>>163530
Короче, убрал зависимость в мавене и положил вручную джарник с драйвером в tomcat/libs. Заработало. Само собой, не самое лучшее решение. Хотелось бы, чтобы подтягивался драйвер из war-ника.
152 2163562
>>163519
Полноценно это как?
153 2163602
>>163530
>>163533
Ты как Datasource инициализируешь? В своем приложении какой нибудь Hikari стартуешь или в Tomcat JNDI Datasource поднимаешь?
image25 Кб, 326x499
154 2163630
"...covers Java 1.4 and contains 193 complete, practical examples: over 21,900 lines of densely commented, professionally written Java code, covering 20 distinct client-side and server-side APIs."
Есть ли какая-нибудь более свежая альтернатива этой книге? Нужно для обучения. Хочется почитать примеры, но не из 2004 года.
155 2163633
>>163630
Когда у орейли кончатся животные?
156 2163920
Приветствую. Работаю java-программистом чуть менее полутора лет. Одна из особенностей работы в моей компании заключается в том, что на большинстве проектов не используется Spring и Hibernate. Соответственно, знаний по тому и другому у меня почти нет, что будет являться проблемой, если я захочу уйти в другую компанию. Так что вот пытаюсь освоить это сам. Попытаюсь потом еще конечно менеджера попросить, чтобы параллельно с текущими проектами закинули меня на какой-то проект, где Spring и Hibernate, но не факт, что получится.
Собственно, вопрос. Когда я буду пытаться куда-то еще устроиться, будет ли проблемой, что у меня не будет именно продакшн опыта на этих технологиях, а только какие-то пет-проекты (планирую запилить 2-3 штуки для практики)?
157 2163943
>>163920
А что использовал за полтора года?
158 2163996
>>163943
Я не тот анон, но у нас тоже нет ни хибера ни спринга. Вместо них Guice, jOOQ, gRPC, Apollo.
159 2164017
>>163633
Красная Книга становится всё толще, так что с этим проблем не будет.
160 2164343
>>163530

>Пытаюсь запустить сервлет Java 8 с JBDC на tomcat 9.


Ты ебанутый?
161 2164347
>>163996

>Вместо них Guice, jOOQ, gRPC, Apollo.


Ну вы и ебанутые, небось еще и на го пишете.
162 2164362
>>164347
Микросервисы да, а что?
163 2164429
>>163602

>Ты как Datasource инициализируешь?


А вот про это вообще не знал, спасибо. Думал, и так заработает. Просто только изучаю J2EE.

>>164343

>Ты ебанутый?


>изучаю J2EE

164 2164431
>>159705 (OP)
Короче, хочу себе JRE на андроид. Эксперименты в этой области были и весьма успешные:
https://github.com/PojavLauncherTeam/PojavLauncher - позволяет запускать Minecraft Java Edition причем актуальных версий. Также, позволяет запускать установщики модов, тоже на джаве. Но, как вы поняли, он заточен чисто под кубач, а я хочу запускать вообще любые программы на жаве с гуем. Ну например Open Rockets, Xmind.
https://github.com/MasterDevX/Termux-Java это ставит джаву из под термукса ну и тут ограничиваемся консольными приложениями
Гуглится вообще сложно тема, поэтому спрашиваю тут, может есть уже готовые приложения, которые могут запускать жары на ведре?
165 2164456
>>164429

>>изучаю J2EE


Ну, то есть да.
166 2164546
>>164456
Я не виноват, что это требуют работодатели. Да и вроде для понимания работы спринга полезно знать будет.
167 2164577
>>164546
Лучше для понимания работы спринга читай доки спринга
168 2164586
Подскажите, пожалуйста, чем лучше отсылать параллельные get/post запросы на локалхост? Может есть какая тулза, хорошо подходящая для этих нужд. Хочу протестировать работу логики под многопоток.
sage 169 2164618
>>164586
Есть jmeter. Но это больше по нагрузочное тестирование
170 2164686
>>164347

>Ну вы и ебанутые, небось еще и на го пишете.


Нормальный стек, легче, более шустрый и без магии, чем дефолтный спринговый.
171 2164833
Сап, программач.

Как в гибернейте смапить поле типа BLOB у ебучей DB2?

Пробовал
@Column(name = "DATA")
private byte[] data;

и
@Column(name = "DATA")
private Blob data;

в результате при попытке достать сущность из базы выходит одна и та же ошибка:
Exception in thread "main" org.hibernate.UnknownEntityTypeException: Unable to locate persister: ru.huita.db.entity.ProcessInstanceData
172 2164857
>>164833
@Lob

А потом эти любители магических аннотаций критикуют jOOQ и Guice
173 2164858
>>164833

>DB2?


Ебануться! Ее кто-то использует! В ЦБ что ли работаешь?
174 2164862
>>164857
C @Lob ситуация аналогичная.
175 2164865
>>164858
Нет, в телекоме.
Понапокупают хуйни, потом ебись с ней.
176 2164869
>>164862
А если колонку вообще убрать ошибка исчезнет?
sage 177 2164875
>>164865
Ебать у вас там веселье творится

мимо руты искали
178 2164892
>>164869
Ебать я затупил, элементарно же проверить можно было.
Убрал поле, снова получил ошибку, понял где накосячил - не добавил класс сущности в конфигурацию.

Добрй тебе, анон.
image25 Кб, 901x435
179 2164993
Если создать булеан-массив, заполнить его false, потом под случайным индексом менять false на true, пока все элементы не станут true. От чего будет зависеть, сколько понадобится итераций на каждый элемент массива? У меня получается count/arr.length == ~15, но непонятно откуда эта цифра и зависит ли она от чего-нибудь.
180 2165099
>>164618
Спасибо, посмотрю
181 2165115
>>164993

>От чего будет зависеть, сколько понадобится итераций на каждый элемент массива?


От генератора случайных чисел. В принципе для генератора с нормальным распределением можно рассчитать матожидание.
182 2165270
Суп. Хочю вкатиться в блокчейн на джаве. Подводные?
183 2165356
>>163996
У тебя еще норм стек. Я вот каким-то хуем устроился в инфобез 2 года назад писать разные хуевины на ANTLR, так до сих пор и сижу там. Куда перекатываться хуй знает, так как я вообще бекендом никогда в своей жизни не занимался. А в джетбрейнсе меня нахуй шлют.
184 2165383
бля, аноны, помогите, бога ради, третий день мучаюсь
Добавил hibernate validator 6.2.0.Final, добавил валидацию - проект работает, валидации не было. Решил добавить еще validation-api, и все, пиздец, кидает
java.lang.AbstractMethodError: Receiver class org.hibernate.validator.engine.ConfigurationImpl does not define or inherit an implementation of the resolved method 'abstract javax.validation.ParameterNameProvider getDefaultParameterNameProvider()' of interface javax.validation.Configuration.

И ни в какую обратно вернуть ничего не могу, локальную историю поднимал, удалял .м2, убрал всю валидацию и ничего, все та же ошибка. Насколько я понял, что проблема с javax и jakarta, но я в душе не ебу, как это можно пофиксить
185 2165393
>>165383
ебать, пофиксил. Внукам: сделал mvn clean в 1000 раз, сменил на hibernate validator 6.1.6 - заработало.
186 2165431
>>165270
Такое существует?
187 2165453
В комментах много где встречал мнение, что спринг бут медленный.
Это бут медленный или спринг? И почему?
188 2165674
>>165453
медленный по сравнение с чем?с питоном или с? или с джавой?
189 2165709
>>165356

>писать разные хуевины на ANTLR


Мне кстати нравилось с ANTLR работать. В разы приятней чем DLS на котлине, грувях или XML.
190 2165739
>>165674
Я не до конца понял из контекста. Думаю и с другими стеками джавы сравнивали и с шарпом/го.
191 2166025
>>165453
Бут долго стартует в дефолтной конфигурации. Чтобы его ускорить надо отключать автосканы и ненужные компоненты.
192 2166033
>>166025
а в рантайме не медленный?
sage 193 2166034
>>166033
Нет. Больше всего времени кушают запросы в базу + другие сервисы
194 2166719
>>166033
Если не злоупотреблять спринговой магией, нет.
195 2166721
>>166719
можно примеры магии.
sage 196 2166755
>>166721
Аспекты
197 2166761
>>166755
А где они применяются, кроме логирования? И в чем там магия?
sage 198 2166775
>>166761
Они работают долго. В основном логирование, аудит и тд, да
199 2167098
>>166721
Транзакции, особенно всякие пре/пост коммит хуки. Йоба валидаторы. Всякие автоматические конверторы. Хибернейт если злоупотреблять связями. Всякие аутентификаторы хитрые, которые под капотом в базу могут писать.
200 2167311
Может кто проходил собесы на middle/senior в последние годы? Что спрашивают, какие подводные есть?
Сам 3+ года опыта, уволился, в октябре предстоит прохождение собесов. Что там сейчас на повестке у интервьюеров?
201 2167329
Вот я пишу маленький нубо-бэк на спрингбуте. И мне нужно, чтобы после каждого изменения кода приложение пересобиралось, перезапускалось (в докер-контейнере) и для апи гонялись тесты. Всё это должно происходить локально. Как такое принято реализовывать? Может, даже где-то уже гайд есть?
sage 202 2167334
>>167329
Можешь ручками sh файл написать.
Мб в градле какие-то плагины есть
203 2167339
>>167329
integration test
204 2167419
На сколько хорошо жабист должен знать js, ajax, jQuery, bootstrap-ы верстку, всю хуйню. Надо ли изучать angular, react, vue, node, и зачем они вообще нужны? И что такое знание sql? Есть те, кто базы не хибернетом делает?
sage 205 2167423
>>167419
Жс нинужон. Только чтобы самому понимать, что там наверху творится.
Базы хибером никто не делает. Все миграции пишутся ручками. Ну и кроме знания самого sql надо хоть немного понимать, что происходит в базе
206 2167430
>>167423
Т.е. хибер тоже нинужон? И как получить знания sql, читать книги? Выдумывать самому незнамо чё? В моем пете 4 операции криейт, райт, апдейт, делит. Что я ещё должен сделать?
207 2167499
>>167419

>>js, ajax, jQuery, bootstrap-ы верстку, всю хуйню


Хуйня без задач.

>>angular


Будет плюсом, если на галеру идешь, Джон Боров оценит 2 по цене одного.

>>react, vue


Для интерпрайза не особо популярно.

>>И что такое знание sql?


Умение написать запрос в @Query и прочитать его. Там дальше агрегации обычно не заходит. Оптимизация запросов через индексы практикуется не так часто. Тебя скорее выебут за n+1.

>>Есть те, кто базы не хибернетом делает?


Миграции пишут всегда.
>>167430

>>Т.е. хибер тоже нинужон? И как получить знания sql, читать книги?


Сейчас везде либо хибер, либо ждбцТемплейт. В первом надо писать query либо уметь применять спецификации, во втором - чистый сиквель.

>>В моем пете 4 операции криейт, райт, апдейт, делит. Что я ещё должен сделать?


Для этого стандартные методы подойдут. А когда тебе надо будет найти всех анонов старше 30лет, имя которых начинается на С или В, мать - шлюха, упорядочить список по степени шлюховатости матери по мнению Ашота, потом по возрасту анона то придется или писать супердлиный метод или писать @Query с hql/sql или таки освоить Specification
sage 208 2167626
>>167430
Хибер нужон. Но его используют как орм, а не как тулу для миграций
209 2167646
>>167626

>Хибер нужон. Но его используют как орм, а не как тулу для миграций


Двачеры совсем ебанулись, использовать хибер как тулу для миграции базы.
Для вас, мудаков, ликвибейз и флайвей завезли. А вы пидоры все хибером ебашите.
210 2167682
В тред призываются опытные сериализаторы и десериализаторы xml и json
Братцы, есть ли какие-нибудь альтернативы аннотации @XmlAnyElement(lax =true) в библиотеке json?
Я не очень опытный програмутор, в гугле ничего не нашёл.
Суть дела такова. На проекте есть готовый фреймворк, который был создан для десериализации XML. Но теперь вместо XML ответов мы начали получать абсолютно аналогичные ответы на JSON. Мне поручили переписать готовый фреймворк так, чтобы он одновременно мог обрабатывать и старые XMLки и новые Jsonы
И вот хз, какой аналог может быть @XmlAnyElemet? Мб кто-нибудь знает?
4ые сутки мучаюсь, работа стоит
211 2167683
Как мигрировать NoSQL?
212 2167684
>>167682
Скажи, что они ебаные пидорасы и перепиши все на Jackson.
213 2167687
>>167684
Соблазн велик, но тогда я буду уволен, очевидно)
214 2167691
>>167687
Наоборот же, проявишь себя самостоятельным и независимым работником, умеющим решать сложные задачи.
В jackson то, что тебе нужно, как раз есть https://www.baeldung.com/jackson-annotations#3-jsonanysetter
215 2167694
>>167691
Спасибо, буду пробовать
Если получится - наконец то перестану работать в выходные и рубану в дьяблу
216 2167711
>>167694

>наконец то перестану работать в выходны


Хртьфу блядь, чтоб я еще раз помогал кому-то в этом треде. Не дай бог окажется таким же чмошником как и ты.
217 2167733
>>167711
Жесть чел, а ты не подумал, что я не за бесплатно в выходные работаю?
Если твой совет мне поможет - то мне заплатят 300к/наносек просто за то что я задал вопрос на дваче.
Так что я не чмошник
218 2167736
>>167733
Тем более блядь.
219 2167737
>>167733

>я вот сосу хуй НО НЕ ЗА БЕСПЛАТНО ЖЕ

220 2167746
>>167737
ууу, абстрактные, ни на чём не завязанные примеры. Ни одного аргумента.
Ты слит маня, съебал с треда
221 2167767
>>167311

>Что там сейчас на повестке у интервьюеров?


Многопоточка, асинхронщина и распределенные системы.
Должен знать на зубок как работают внутри конкурентные коллекции, уметь написать свою Lock-Free очередь, досконально знать JMM и как работает GC. Понимать, как работает под капотом NIO и NIO.2 (epoll, kqueue) и всякие каналы, селекторы.
По распределенкам тут уже сложнее, но базу вроде paxos и raft нужно знать. Микросервисная архитектура туда же.
Всякий спринг и хибер раньше спрашивали плотно, сейчас уже не так часто, так как сейчас идет тренд чтобы по максимуму отказаться от них в будущих проектах.
222 2167771
>>167746

>я не за бесплатно в выходные работаю


Твои слова.
223 2167773
>>167767

>>по максимуму отказаться от них в будущих проектах.


И писать свои велосипеды вместо проверенных технологий? Зачем в такое говно идти вообще?
224 2167776
>>167773

>И писать свои велосипеды вместо проверенных технологий?


Да, причем на го.
225 2167778
>>167773
Да, потому что это faang-style разработка.
sage 226 2167780
>>167646
А меня за что?
227 2167834
>>167778
Для этого нужны faang-style программисты с faang-style зарплатой, который будет непеша пилить и поддерживать велосипеды для тысяч программистов, а не чинить баги на проде под вопли "мы обещали, Сычев".
228 2167852
Что спросят у джуна на собесе?
229 2167858
>>167778

>faang-style разработка.


Для этого нужны и ресурсы как у FAANG. А то будет как ебучем Революте, когда разрабы перегружены раскраской кнопочек, решением проблем клиентов и прочей бизнес хуетой, а по вечерам должны сапортить самописные велосипеды Влада.
230 2167867
>>167858
Че за револют?
231 2167928
>>167852
Погугли вопросы для джуна, на ютуте есть тестовые собесы, вопросы почти всегда одни и те же для ждуна.
232 2168025
А можно параллельно изучению языка пытаться на основе теории, на основе каждой пройденой темы писать свою маленькую программу? Или этого недостаточно для усвоения материала и надо дрочить задачки и гуглить их?
233 2168033
>>166034
Сейчас вот заканчиваю с тутором по jdbc и перехожу к хиберу. Читаю статью по пулу соединений. Ну и везде краеугольная тема, это то, что подключение к базе это дорогой ресурс, это медленно, ресурсозатратно и т.п.
Но нигде не написано почему.
Тот кто шарит на более низком уроне может рассказать вкратце в чем суть тяжести соединений к базе?
234 2168375
Подскажите, кто нибудь делал конфигурацию scheduler в Camel через классы а не через строку в .from()?
235 2168386
Двач помоги.Почему я не могу вивести окна?????
sage 236 2168389
>>168386
Скорее всего у тебя Window из java.awt тянется
237 2168666
Скажите в чем может быть проблема, при запуске проекта все зависает минут на 10 вот на этой строке INFO org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect. Я каждую минуту правлю и запускаю, и это просто пиздец с такими интервалами.
238 2168678
>>168666
Запусти под профайлером и смотри что там. Ну или ходя бы dump stacktrace.
239 2168682
>>168678
Я не знаю что такое профайлер dump stacktrace.
240 2168684
>>168666
Дебаг логи включи, дурачок
241 2168686
>>168682

>Я не знаю что такое профайлер dump stacktrace.


https://hh.ru/employer/49357
242 2168687
>>168684
Я не знаю что такое дебаг логи и где их включать. Мне надо над самим проджектом думать, а не незнамо че гуглить сейчас.
243 2168689
>>168687
Посмотри ссылку, которую анон выше скинул, там то, что тебе надо.
244 2168691
>>168684
>>168686
Ну и идите нахуй
245 2168692
>>168689
мвахахахахахахаххахахахаахаха
246 2168801
Есть ли в CRUDRepository готовый метод для обновления записи? У меня есть объект с айди 10 в базе, есть второй объект. Я хочу записать второй объект в базу с айди 10.
Я могу перезаписать поля геттерами и сеттерами у имеющегося объекта, могу JPQL запрос написать. Но CRUD же должен простой метод для обновления уже сам иметь, разве нет?
247 2168864
>>168801
save()
С тебя логика апдейта - с него только сохранение.
248 2168894
>>168033
если в двух словах и не выебываться: чем больше абстракций над железом, тем медленнее это работает и больше ресурсов требуется.
249 2168910
В каком-то из прошлый тредов кто-то поднимал вопрос генерации однотипных контроллеров. Я не нашел эти сообщения, но может кто-то помнит, есть нормальное решение для этой задачи?
image.png121 Кб, 1548x268
250 2168956
Анон, не понимаю как решить проблему при сборке нативного кваркус-приложения.
Из требований - обязательно должна быть поддержка Consul через consul-client но про него пишут:

> Well, that’s a problem with the consul-client library. It probably does not support GraalVM since it uses proxies. You can as well replace it with your own code that just calls Consul REST API to work with the native image builds



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

>To define proxy classes use -H:DynamicProxyConfigurationFiles=<comma-separated-config-files> and -H:DynamicProxyConfigurationResources=<comma-separated-config-resources> options.



Собираю так:
mvn clean package -Pnative -DskipTests -Dquarkus.native.container-build=true -Dquarkus.native.additional-build-args=-H:EnableURLProtocols=http\\,https,--enable-all-security-services,--allow-incomplete-classpath,-H:DynamicProxyConfigurationResources=proxy-config.json

в proxy-config.json прописал интерфейсы consul-client и теперь на этапе сборки меня посылает нахуй

>com.oracle.svm.core.util.UserError$UserException: Class .... not found



Два дня уже ебусь с этим, пиздец просто. Что делать?
251 2168995
>>168956
Да там вообще пидарасы этим консулом занимаются, завел issue на гитхабе, а они месяц молчат уже.
252 2169011
>>168894
Типа потому что база это отдельный процесс(если она на той же машине)?
253 2169016
>>168692

А чем у них плохо работать то?
https://hh.ru/vacancy/45222933
https://hh.ru/vacancy/46706058
254 2169018
>>169016
даже для джунов есть.
https://hh.ru/vacancy/47862414
255 2169166
>>168666
Очевидно, не настроил доступ к базенке своей.
Подними в докере свой мускуль (гугли докер композ);
Потом настрой проперти файл со строками подключения;
Потом запускай свою программулину (не избирательную лул).
image.png181 Кб, 512x512
256 2169315
Собираюсь вкатываться в ойти, читая Шилдта в оригинале и попутно делая пет-проджект, какие подводные?
257 2169343
>>169315
Никаких, я так и вкатился, только на русском читал
258 2169384
>>169315
Шилдт не ок
259 2169395
>>169384
А кто ок, курсы от Нетологии или от Практикума?
260 2169401
>>169018

>>Знание Java SE (не ниже версии 7,


>>Знание технологии из стека Java EE (JMS, JAX-WS/RS, JTA).


>>умение писать bash скрипты.


>>Ты получишь уникальный опыт


Работа мечты прям. Жаль зп не указана.
2007.mp4292 Кб, mp4,
480x360, 0:06
261 2169421
>>169018

>Знание Apache Camel (routing).


>Знание Apache ActiveMQ (JMS).


>Знание языка запросов SQL Oracle. Владение языком pl/sql.

262 2169462
>>169395
Ok это книга Selikoff & Boyarsky OCA/OCP. Эта книжка, если ты не просто будешь ее читать, а экспериментировать, даст тебе больше, чем Шилдт .

OCA настроит мозги на нужный лад.
OCP даст крепкие знания и ты сможешь реализовать свои сервисы для портфолио и удовольствия ради. Я гарантирую это.
263 2169683
Что почитать, посмотреть, годного, по интеграционному и юнит тестированию?
264 2169687
>>169462
И плюс ко всему получим сертифицированного джависта на выходе, благородного жаба господина.
265 2169723
>>169687
Экзамен дорого стоит, а выхлопа от него мало. Зачем он вкатунцу?
266 2169752
>>169723
Спроси у того кто ему oca/ocp советует
267 2170059
Сап туч, хочу в строке находить определенный символ Х и начиная от него забирать все символы до других определенных символов У,Й. Есть какие библиотечные методы которыми можно это сделать? Или только в цикле по строке двигаться от символа Х до тех пор пока не наткнусь на один из символов У,Й?
268 2170065
У Microsoft сервера есть .mdf .ldf файлы. Есть что-нибудь подобное у постгреса? Я нахуячил курсач и теперь хуй знаю как преподу базу сдать
sage 269 2170104
>>170059
А чем тебе решение с циклом не устраивает?
270 2170172
Зачем gradle постоянно ломают обратную совместимость? Мне для новых туториалов пришлось ставить 7 версию, для книжки 2017 года 4ую. Сейчас опять начал тутор с сорцами, опять не пашет из-за версии. Такая фигня с jsными сборщиками была.
С мавеном такого не было.
271 2170173
>>170065
Сделай дамп бд и скриптецкий для создания базы. Гугли pg dump
272 2170178
>>170065
Ну и зачем ты тогда Postgres выбирал, тебе нужна встраиваемая БД.
Типа SQLite, Firebird, HSQLDB (последняя лучше заточена под JPA/Hibernate).
Postgres и MySQL должны быть установлены там, где будет запускаться приложение. А сама база на них создается с помощью миграций - см. Flyway и Liquibase.
273 2170185
>>170059
У String есть методы indexOf и substring, для твоей задачи их достаточно. Но с циклом будет работать быстрее.
274 2170189
>>169421
Хорошее время было, до б-гомерзких соцсетей и гейфонов. В IT были молчаливые бородатые сычи, а не женоподобные хипстеры.
А еще была куча вакансий на божественной Delphi.
275 2170190
>>169683
Бамп. Или в этом треде никто не сталкивался с такими понятиями?
276 2170192
>>170190
https://javarush.ru/groups/posts/605-junit
https://habr.com/ru/post/120101/
https://www.baeldung.com/junit-5
Это про JUnit. Интеграционным не занимался, это Selenium штоле?
sage 277 2170215
>>170192
Интеграционное = юнит с настоящей базой
278 2170260
>>170172
Потому что грейдл для пориджей, мавен для гречневых.
279 2170268
>>170178
Я вообще не задумывался о таких мелочах,когда начинал делать. Постгресс мне понравился из-за функционала,да и более опытные ребята посоветовали,типо мастхэв. О том что я столкнусь с невозможностью тупо скинуть файлики на флешку я не подозревал
280 2170281
>>170268
Бд можно создавать при запуске и накатывать все ликвибейсом
281 2170290
>>170268
А ты от MS SQL Server'a файлы собирался передавать?
Если да, то хорошенько подумай и никогда так не делай.
Передаются обычно бэкапы, желательно с предварительной проверкой их работоспособности.
282 2170293
>>170290
На лабах по бд я скидывал преподу .mdf .ldf файлы и ему хватало чтобы отъебаться от меня. Вот и подумал что в постгресе есть такая же возможность
283 2170318
>>170190
Если тебе поверхностно - посмотри на баелданге как написать простенький тест с junit5 + mockito. Можешь TestContainers попробовать. Для теста рест апи - Rest Assure. Для е2е - селениум. По каждой из этих тем дохуя инфы.
284 2170571
>>170190
Ты же не уточнил, что тебе надо: как писать тесты библиотеки инструменты, подход к тестированию в целом какие тесты надо писать, сколько из должно быть, что надо тестировать, а что нет и т.д.
Для второго читай книги по теории тестирования что-то типа https://temofeev.ru/info/articles/fundamentalnaya-teoriya-testirovaniya/
285 2170598
Читаю гайд по хиберу, чтобы потом перейти к spring data jpa. Нужно больше времени уделить управлению хибером через jpa или через его собственное апи? Чем дальше читаю, тем там больше разницы вижу.
sage 286 2170706
>>168956
Решил проблему: нахуй нужен этот consul-client от orbitz, накатил поделку от vertx, у него нет этих ебучих мозг проксей.
Хотя можно было бы и просто put-реквестами самому разрулить
287 2170805
>>170598
Хибер это реализация ЖПА. На практике надо знать JDBC и JPA. Остальное можно прям по ходу дела изучить.

Если любишь pure sql, зацени jacoco
sage 288 2170810
>>170805
Jacoco - это же плагин для покрытия тестами
289 2170932
Анон, а как обычно хранят картинки в базе? Я вот подумал и придумал, что в таблице надо хранить записи с полями: путь, контрольная сумма и размер. А на самом деле как?
sage 290 2170935
>>170932
Чексумму с размером можно не хранить. Только если для верификации какой-нибудь
291 2170986
>>170932

>>в таблице надо хранить записи с полями:


Обычно это массив байтов + инфа о самом файле - название, размер, ссылка на владельца и тп.
292 2170987
>>170986
Нахуя хранить файлы как записи?
293 2170991
>>169421
Есть на работе один проект на кэмэле и jms, шо, сильно неактуальное говно?
295 2171018
>>170987
Чтоб можно было этот блоб в базу впихнуть, забэкапить, шардить и реплицировать? Да и тестировать такое проще.
296 2171022
>>171018
Чел, с файлами все, что ты описал, делается гораздо проще.
297 2171077
>>170810
Опечатался. Мозги уже набекрень. Jooq жи
298 2171109
>>171017
Так можно и год появления спринга или самой джавы вспомнить. Проблема кэмэла даже не в том, что он старый, а в том, что он говно без задач.
299 2171140
>>171022
Проще не встречал - всегда был массив байтов.
300 2171141
3 недели с лтса прошло. Кто-то уже поигрался?
301 2171143
>>171141
Через год спринг 6 выйдет - вот там и поиграемся.
302 2171153
>>171143
А спринг6 ты прям сразу будешь играть, как 6.0.0.RELEASE выйдет, в тот же день?
Даже какая нибудь 13 версия, которую никто не собирался тащить в прод выходила с большим интересом.
303 2171213
>>171153
У него требования жава17, поэтому только что играться в петах. Со спрингом я напрямую взаимодействую - поэтому интересно. Опять же спринг не побоится сломать обратную совместимость ради новых фич. А в самой джаве там опять что то оптимизировали/ускорили в жвм, добавили немного плюшек - ничего особенного.
304 2171239
>>171213
А что годного появилось в спринге из самого последнего?
Внутри пятерки были новые фичи?
Что ожидается?
305 2171435
>>170991

> Camel


Не то, чтобы прям говно говна, но сам подход к проблеме это энтрепрайз из начала 2000х. Со всеми этими EJB, ESB, MQ и прочим SOAP. Сейчас предпочитают или написать микросервис для интреграции двух систем или через очереди работать. А от подхода универсальный интегратор всех сервисов - отказываются.

>JMS


Идея универсального адаптера к мессенджигу себе изжила. В том виде в котором API JMS сейчас - он не дает нормально использовать все возможности Kafka или RabbitMQ или еще кого современного. А идея, что ты можешь легко заменить реализацию, если работаешь через универсальное API - миф.
Если у вас нет и не предвидится больших нагрузок, но при этом персистентность очень важна и есть надежная СУБД с репликацией и бекапами, то какой нибудь ActiveMQ не самый плохой выбор. Все необходимое на месте и настраивать проще чем Kafka или RabbitMQ.
306 2171436
>>171140
Просто пиздец.
307 2171779
>>171436
Либо база, либо на диск, других путей нет.
sage 308 2171788
>>171779
Цдн ещё есть
309 2171803
>>171788

>>Цдн ещё есть


Как это работает, если я хочу допустим сохранять картинки, который пользователь заливает?
sage 310 2171835
>>171803
Заливать все картинки, которые тебе приходят, в сидиэнку. Из нее же и раздавать
311 2171893
>>171835
Как ты будешь хранить картинки внутри сдн?
sage 312 2171917
>>171893
Меня это не волнует. Это забота цдн. Все, что я храню - ссылку на пикчу + метаданные
313 2171936
>>171917
Так ты не решаешь вопрос хранения данных, ты просто отдаешь его на аутсорс. Для сайта пицерии - норм решения, для корпоративной энтерпрайз поебени (которую часто и пишут на джаве), спрятанной за впнами - не всегда приемлемо.
sage 314 2171964
>>171936
Ceph есть. Если ты про это
315 2171981
Что лучше возвращать в методе Spring REST-контроллера, если мне нужно установить только Http-статус, без body? Сейчас отдаю ResponseEntity<Void>, это нормальная идея? Или нужно использовать что-то другое, например, протягивать какую-то сущность из сервлета?
316 2172080
>>171981
@ResponseStatus(HttpStatus.I_AM_A_TEAPOT)
public void teaPot() {
}
317 2172088
>>171981
@PostMapping("dvach/huemoe")
public ResponseEntity<Object> huemoe(){
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
sage 318 2172089
>>171981

> Сейчас отдаю ResponseEntity<Void>, это нормальная идея?


Да
319 2172375
>>172089
Спасибо

>>172088
А зачем пустой object передавать?

>>172080
Вот тоже о чём-то таком думал. В чём преимущества, перед ResponseEntity? По идее, на создании объекта может быть экономия.
320 2172381
>>172375

> преимущества, перед ResponseEntity?


Ну, само собой, в тех редких случаях, когда метод всегда один статус отдаёт, допустим если это ExceptionHandler какой-нибудь
321 2172508
>>171435
спасибо за ответ
322 2172535
К нам в IT отдел пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные шарпогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Начальник из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал:
- Это же Абстрактная фабрика! На чём ты кодил до этого?
- На Джаве.
- Жабапидор! - в один голос заорали все 20 человек.
- Жабапидор! Жабапидор! Жабапидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать джавапидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Жабапидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох джавапидор даже дело заводить не стали.
322 2172535
К нам в IT отдел пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные шарпогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Начальник из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал:
- Это же Абстрактная фабрика! На чём ты кодил до этого?
- На Джаве.
- Жабапидор! - в один голос заорали все 20 человек.
- Жабапидор! Жабапидор! Жабапидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать джавапидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Жабапидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох джавапидор даже дело заводить не стали.
sage 323 2172538
>>172535
Вот поэтому в тред стоит писать с сажей
324 2172704
>>172535
К нам в IT отдел пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные жабогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Начальник из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал:
- Это же линкью! На чём ты кодил до этого?
- На Шарпе.
- Шарпопидор! - в один голос заорали все 20 человек.
- Шарпопидор! Шарпопидор! Шарпопидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать шарпопидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Шарпопидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох шарпопидор даже дело заводить не стали.
324 2172704
>>172535
К нам в IT отдел пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные жабогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Начальник из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал:
- Это же линкью! На чём ты кодил до этого?
- На Шарпе.
- Шарпопидор! - в один голос заорали все 20 человек.
- Шарпопидор! Шарпопидор! Шарпопидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать шарпопидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Шарпопидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох шарпопидор даже дело заводить не стали.
sage 325 2173118
Там котлин тред утонул
326 2173130
Я хз как сформулировать. Поясните, как делать дто, когда в дтоОбъекте много слоев вложенности, например, есть поле Адрес, внутри него есть поле Кантри, в кантри есть лист ситей. Я не могу понять как реализовать такое, примеры которые я вижу в них, например, два стринг поля и всё отлично гоняется в обе стороны мапстрактом.
sage 327 2173199
>>173130
Просто берешь и делаешь. Маппишь ручками
328 2173227
Подскажите, пожалуйста, как правильнее формировать JSON для тела ответа в @RestController, если я хочу вернуть одиночное значение?
Я сейчас делаю примерно вот так:

@GetMapping("/path")
public ResponseEntity<?> get(){
return new ResponseEntity<>(Collections.singletonMap("Varable", Value), HttpStatus.OK);

Нормальный ли вариант со складываем в singleton-мапу? Или лучше как-то руками сформировать json-строку?
}
sage 329 2173276
>>173227
ResponseEntity<Smth>
...
return new ResponseEntity (smth, OK);
return ResponseEntity.ok(smth);
sage 330 2173584
>>173118
То, что мертво, умереть не может.
sage 331 2173627
>>173584
А я бы на нем хотел бек пописать. Вроде как много прикольного сахара
332 2173659
>>173627

>А я бы на нем хотел бек пописать


Что мешает?
sage 333 2173711
>>173659
То, что я не отец на проекте. А котлин пока что только в далёких планах
334 2173719
>>159705 (OP)
Сап харкач у меня есть два платиновых вопроса с подвопросами на которые гугл выдает херню с хабра и т.п., где в комментах срач и батхерт, что автор не прав и ничего не понимает. Но вы то тут гении)0
1.1) Как писать микросервисы
1.2) Является ли обычный сервер на спринге, допустим, выдающий хэлоу ворлд и не передающий ничего другим серверам микросервисом.
1.3) Как могут обмениваться микросервисы между собой информацией без кафки и прочих рабитмкью?
2.1) Как засунуть микросервис в докер
2.2) Зачем кубернейтс, если есть докер композ?
sage 335 2173728
>>173719

> 1.1) Как писать микросервисы


Руками. У каждой тимы есть своя пачка сервисов, над которыми они работают

> 1.2) Является ли обычный сервер на спринге, допустим, выдающий хэлоу ворлд и не передающий ничего другим серверам микросервисом.


Если он крутится рядом с другими микрухами, да

> 1.3) Как могут обмениваться микросервисы между собой информацией без кафки и прочих рабитмкью?


Рест, gRPC, брокеры, кеши, база, файлы

> 2.1) Как засунуть микросервис в докер


Написать докерфайл

> 2.2) Зачем кубернейтс, если есть докер композ?


Кубер позволяет разворачиваться на нескольких нодах и не ебать себе мозги + куча всего остального, о чем я не знаю

Вот почитать: https://microservices.io/book
336 2173768
>>173728
Спасибо, а по лямбда выражениям книженции не посоветуешь?
sage 337 2173774
>>173768
Авс лямбды? Не, не шарю в них

Жавовские? Там учить нечего. Гуглишь и пишешь
338 2173848
Сап, джавач.
Такой вопрос: пишу запросы к базе данных, которые традиционно имеют километровую длину. Собственно, есть необходимость некоторую заранее вставленную в запрос метку заменять на действительное значение. Вроде как
SELECT....FROM....WHERE SOME_VAL = #mark#
Я вижу два пути. Самое простое это тупо запихнуть запрос в String, а потом вызвать у него replaceAll с заменой метки на Value. Смущает в этом всем то, что запрос большой, точек замены может быть много, а строка финальная, соотвтетственно довольно сильно будет засираться память.
Второй подход в том, чтобы создать StringBuilder, приаппендить к нему запрос, найти индекс метки, вызвать replase, передав ему индекс начала метки, индекс конца (начало + длина метки), и само значение Value. СтрингБилдер вроде мутабельный, и все эти упражнения вроде как не должны перерасходовать ресурсы, но зато реализация чуть сложнее (индексы нужно получать сначала).
Как вообще лучше делать в этой ситуации?
339 2173866
>>173848
А ты не можешь на строне базы сделать шаблон?
По-моему, такое можно сделать через Prepared Statements.
sage 340 2173867
>>173848
Почитай про sql injection и юзай PreparedStatement
341 2173869
>>173848
куда скармливаешь запросы? Там наверняка есть prepared statement - специально для этого придуманная штука
342 2173886
>>173866
>>173867
>>173869
Я долбоеб-самоучка. Что первое нашел рабочее, то и юзаю. Сейчас почитаю про препаред стейтмент. Всем спасибо.
343 2173909
>>173869
MS SQL и Firebird, через JDBC с драйверами
81PibBGcRg.png57 Кб, 1052x557
344 2173922
1434035730496.gif569 Кб, 640x636
345 2173934
Сап. Решал намедни задачу по обновлению статусов в режиме реального времени (типа last seen в телеге). Зацените решение:

1) В базе данных создаётся таблица user_activity (user_id, status, last_seen);
2) Для этой таблицы создаётся функция-триггер, которая рассылает уведомления об изменениях в этой таблице;
3) В коде создаётся слушатель этих самых уведомлений (событий);
4) Каждый клиент во время подключения к веб-сокету передаёт свой id/username на веб-сокет контролер;
5) Каждый раз, когда приходит обновление из соответствующей таблицы (users_activity), мы делаем:
— достаём у каждого подключённого клиента список его контактов;
— смотрим у кого в контактах есть пользователь, по которому пришло обновление с базы данных, и отправляем клиенту по веб-сокету соответствующий JSON, например

{
"username" : "username",
"status" : "online",
"last_seen" : 1152359098263742
}

Полная хуйня, или может быть?

Java 11, Spring 5, PostgreSQL
346 2173939
>>173934
я бы делал всё в коде. В базу такую таблицу как дублирование только на случай ребута - чтобы приложуха при старте читала из этой таблицы состояние. Ещё флаг "обработано" не забудь
347 2173948
>>173939

> В базу такую таблицу как дублирование


> флаг "обработано" не забудь



Детальнее можно, пожалуйста, что ты имеешь ввиду?
sage 348 2173964
>>173934
Двачую этого анона >>173939 .
Я бы в фильтре доставал SecurityContext и обновлял бы user_activity.
Если производительность страдает, то можно было бы забить на вебсокеты, и просто с фронта спрашивать инфу о user_activity раз в 10 секунд, например
sage 349 2173968
>>173934
>>173964
Я бы ещё не хранил status.
Просто ласт сеен, а уже фронт сам решал бы, это онлайн, или нет.
И тогда это замечательно уходит в кеш, скорость возрастает до небес, база говорит спасибо
350 2173969
>>173948
всё это делаешь в коде. Возникает проблема - что при рестарте приложухи ты потеряешь текущее состояние. Для ликвидации дублируй изменения в таблицу в базу. И при старте приложухи читай состояние из этой таблицы

Флаг "обработано" - прочитал ты из базы состояние. Как узнать, ты уже оповещал по этой записи или ещё нет? Вот добавляешь флаг. Отослал все оповещалки - поставил флаг в true.
351 2173970
>>173934
разве такую хуиту не лучше в редиске хранить, вместо реляционки?
352 2173971
>>173964

> SecurityContext и обновлял бы user_activity.


Вот это хороший совет, спасибо.

> Если производительность страдает


Вот тут тоже есть вопрос, ну будем тестить.
>>173968
Тоже хорошая идея.
>>173969
Ну сейчас в базе всегда актуальное состояние хранится, типа записи не копятся. Один юзер = одно поле в user activity.
353 2173974
>>173964

> Я бы в фильтре доставал SecurityContext и обновлял бы user_activity


А нельзя просто при подключении/отдключении к вебсокету обновлять запись?
sage 354 2173975
>>173971
Пожалуйста :3
sage 355 2173976
>>173974
Наверное, можно. Почти не работал с вебсокетами. Поэтому и не советовал. Но идея очень годная. Вроде как с помощью вот этого реализуется: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/messaging/support/ChannelInterceptor.html
356 2173994
Как под капотом работает volatile и что обеспечивает видимость актуального значения во всех потоках?
JVM тупо дает понять процессору, что мол "не кэшируй значения, а доставай их постоянно из памяти"? Или задействуется механизм синхронизации кэша (https://ru.wikipedia.org/wiki/Когерентность_кэша), который щас вроде как везде встроен в проецссоры? Или ключевое слово не дает JIT компилятору провести оптимизации, а-ля расчет некоего значения в регситрах?

Есть тут хардкорные джависты, которые знают как под капотом hotspot работает?
357 2174000
>>173994
а разве "под капотом" не меняется в каждой версии? И нет смысла заучивать конкретные реализации в конкретной версии
358 2174003
>>174000
Ну по идее да, java-разработчиком нужно абстрагироваться от конкретной реализации jvm и пользоваться только тем, что говорит JMM. Но все же интересно какие механизмы используются для обеспечения volatile, хоть для любой реализации (хотя мне кажется везде +-одинаково, по крайне мере для linux-x86)
359 2174045
>>173994

>Как под капотом работает volatile и что обеспечивает видимость актуального значения во всех потоках?


По разному, в зависимости от хардвары. Но если кратко то:
1. JIT не делает оптимизации по изменению порядка кода или пропуск записи в память.
2. После записи и перед чтением ставит рид врайт барьеры специальная команда процессора.
360 2174049
>>174045
Ну тоесть по факту получается доступ к некоему куску памяти блокируется, при этом не важно где он находится - в кэше или в оперативе (уже тонкости на уровне процессора, не видимые jvm)?
изображение.png100 Кб, 1333x632
361 2174147
Ребята,почему вылезает исключение,почему я не могу создать контекст,но не использовать его.Когда удаляю xml контекст все работает четко
362 2174150
Анон с сажей вносит много импакта итт, но все-равно почему-то пишет с сажей.
maxresdefault.jpg54 Кб, 1280x720
sage 363 2174158
>>174147

>>xml контекст


Переходи на спринг бут.
364 2174202
>>173276
То есть, лучше использовать свой кастомный DTO-контейнер на каждый ответ, для маппинга на json? В чём преимущество?
Просто если мы отдаём какой-нибудь "something" String, например, то его просто размапит в одиночную строку, а не вложенный объект, а в body будет просто ответ вида "somestring", а не
{
"field": "somestring"
}

Как предполгагет гайдлайн JSON.
sage 365 2174299
>>174150
Я не один с сажей. Про сажу в предыдущем тебе почитай
sage 366 2174301
>>174202
Вообще насрать. Как вам с фронтом удобнее. Просто так более понятно, что "something" - это "field", а не что-то рандомное
sage 367 2174302
>>174147
У тебя musicPlayer не может создаться. С ним разбирайся
368 2174369
>>174049
Блокировки нет, там на уровне кешей решается. Ядру надо просто кеш линию с этими данными перевести в эксклюзивный режим. После чего все остальные ядра должны будут инвалидировать свои копии если есть и прочитать новую версию у владельца эксклюзивных прав.
https://en.wikipedia.org/wiki/Cache_coherency_protocols_(examples)#MESI_protocol
369 2174378
>>174049

>(уже тонкости на уровне процессора, не видимые jvm)?


Не совсем не видимые. У JVM есть модель памяти JMM которая дает гарантии видимости данных. И у процессора есть модель памяти, причем у разных процессоров разные модели. А дальше JIT при генерации нативного кода, вставляет нужные инструкции для конкретной платформы чтобы выполнить требования JMM.
370 2174458
Поясните, что такое: вторая линия поддержки различных серверов приложений (в основном на Java с базами данных Oracle) .
разработка (SQL запросы для отчетов по запросам, процессы Talend, печатные формы и проверки на Drools) – не более 30%
Там будет программирование или слово JAVA там просто байт и нужно будет составлять отчетики по данным из БД? Из этой вакансии реально стать джуном или ну её, куда вообще из неё карьерный рост?
371 2174465
>>174458
сама вакансия https://hh.ru/vacancy/47886958
Мне просто интересно, я не первый раз вижу вакансии 1,2 линия поддержки всегда их скипаю, в моем понимании это чел на телефоне который записвает проблему и передает программистам, не?
Ещё интересно узнать про всякие Pega, Low-Code это типа программирование с помощью картинок кек? Стрелоку перенес, цикл сам написался и т.п.
372 2174504
>>174465
Вака не оч. Программеры на такую не откликнутся. Уровень подай/принеси отчет для белых господ, а затем пошел нахуй.

Лучше сразу идти в разрабы, пускай джуном, пускай даже интерном. Вокруг тебя будут квалифицированные коллеги и если не будешь лениться, за год- полтора выстрелишь до мидла. Через еще год крепкий мидл. Актуально для дотнет/жаба.
373 2174539
>>174369
>>174378
Спасибо
374 2174541
>>174458

>Поясните, что такое: вторая линия поддержки различных серверов приложений (в основном на Java с базами данных Oracle) .


Каждая контора понимает это по своему, но обычно это: человек который отвечает на саппорт тикеты, которые не смогла решить девочка на телефоне. Тут надо знать как система работает какие там есть внутренние сущности, как и где они хранятся, как части системы взаимодействуют, базовые знания программирования чтобы читать логи и хорошие SQL чтобы чекать базу.
Это позиция не предполагает программирование, но если ты сможешь посмотреть код и понять как он работает это будет плюсом.
375 2174566
Поясните как правильно парсить массивы из джейсона? Вот у меня поле в дто List<User>. В рест контроллере метод для приема объектаДто с таким полем внутри, как должен выглядеть код js, чтобы упаковать всё это на клиенте?
sage 376 2174567
>>174566
Массив из жсона парсится в массив, лист, сет
377 2174584
>>174567
У меня не парситься, как бы я его не написал на скрипте, всегда ошибки. Может пример приведешь?
378 2174591
>>174465

>>Стажер департамента IT


>>возможности профессионального роста


Рост до мануального тестировщика?

>>2 линия поддержки


Видимо несущественные баги решать(серьезные дев команда решит), отчеты джаспера править (отступ слева 3 пикселя поправить на оступ в 2 пикселя).

>>преимущества работы в РН Банке.


Кек, это ж частный корпоративный банк не работающий с физиками, какие преимущества то?

Хуйня вакансия, если совсем никуда не берут - можешь попробовать - стаж набивать, но лучше выучи спринг бут и иди в джуны на галеру.
379 2174605
А какие задачи будут поставлены джуну в первый рабочий день?
380 2174618
>>174301
Спасибо за ответ!
sage 381 2174693
>>174584
[{"id":1,"username":"1"},{"id":2,"username":"2"}]
sage 382 2174695
>>174605
Сидеть, хер пинать. Заполнить какие-нибудь бумажки. Занять рабочее место
383 2174701
>>174695
Я имею ввиду не конкретно первый день, а первые задачи, рабочие, которые дадут жуну?
384 2174703
>>174701
Переписать apache druid с джавы на скалу.
385 2174704
>>174693
И во что это сконвертиться в таком методе - public void getUsers(@RequestBody List<User> list) {? Или как это надо получать, какая будет сигнатура у рест метода?
386 2174706
>>174703
Нихуясе, у тебя руководство неадекватное
sage 387 2174711
>>174704
Здесь он принимает список юзеров и ничего тебе не отдает. Остальной твой пост не понял
388 2174718
>>174711
Есть дто. UserDto, поля - Long id, String name, List<Item> list. Как отправить такой объект из фронта в рест контроллер, например аяксом? Как сделать такой объект жаваскриптом, чтобы он спарсился рест контроллером?
389 2174763
Анонче помоги, нужна тема для диплома. Проблема в том, что преподавателю ненужно очередное web-app, необходимо что-то исследовать, а точнее разработать своё, какой-то алгоритм кекус или какую-то систему построенную на матане. Мне естественно охота набить руку и на бут спринге crud, со всякими liquibase и rabbitMQ, но препод ни в какую. Чего делать? Чего можно такого придумать?
390 2174851
Сап двач, вопрос, насколько хуево отсутствие код ревью практики в компаниях по вашему мнению?
sage 391 2174865
>>174851
Очень хуево. Никто не укажет на твои ошибки + все будут на +- похуй срать в репу.
392 2174886
>>174851
нормально. Никто не доёбывается по названию переменных и точек в комментариях
393 2174957
>>174851
Хуево - люди плохо знают, кто над чем работает и что конкретно накодил. Такие как >>174886 ебошат говнокод с именами переменных a, b, c, форматируют его на отъебись и некому дать таким говнокодерам по щщам..
394 2175010
>>174851
Зависит от адекватности ревьювера. Если он норм, то значительно ускоряется адаптация новичков, если долбоёб с имитацией деятельности, то задача на пару дней растягивается на неделю из-за неубранного лишнего импорта и лишней пустой строки с пропущенными при этом критическими багами.
395 2175023
Хочу воспользоваться классом StringUtils из библиотеки Apache Commons Lang. Как подключить эту библиотеку в IntellijIdea? Проект на Maven.
396 2175026
>>175010

>долбоёб с имитацией деятельности


Как бороться с таким? Если ниже в иерархии находишься.
397 2175069
>>175023
Добавляешь запись в файл pom.xml.
398 2175098
>>175023
>>175069
Решил проблему. Надо зайти в Project Structure -> Project Settings -> Libraries, затем добавить Maven-репозиторий и ввести там org.apache.commons:commons-lang3:3.3.2.
(Но это версия 14-го года, выше просто не ищутся. Странно...)
399 2175150
>>175098
неправильно. Надо >>175069
Яутебянепервый.png57 Кб, 985x723
400 2175336
>>174504

>Лучше сразу идти в разрабы, пускай джуном, пускай даже интерном.


Я пытаюсь и к моему большому сожалению не я один. Может в сопроводительном писать "Готов работать полгода бесплатно и платить Вам каждый месяц по 30к"?
401 2175341
>>175336
Мне кажется в какой-то момент там может быть и 100. Вот вам и дефицит IT кадров, вкатунов столько, сколько нет уже ни в одной специальности, наверное.
402 2175351
>>175341
А мог бы учить не мертвую оверрейтед джаву, а няшный шарфик где разрабов в два раза меньше даже с учетом индии
403 2175360
>>175351
Я его знаю хуже, у меня в резюме есть и он, как и .net crud mvc в репе. По вакансия с C# я сразу отказы получаю, возможно из-за того что у меня был небольшой опытом java тестировщиком, видно это оскорбляет С# господ. Пока 0 приглашений, ищу с сентября, держу в курсе.
despair++;
404 2175472
upd Предлагают работу автотестировщиком, но я хочу программистом щито делать? Это проклятие и теперь поработав тестировщиком >>175360 мне будут предлагать только тестировщика?
405 2175490
>>175472
Да, это зашквар.
406 2175491
>>175490
Я в отчаянии, может поработав год автотестировщиком меня возьмут джава джуном?
407 2175493
>>175491
После такого ты уже никогда не отмоешься.
408 2175504
>>175491
В нормальных компаниях - если придти к начальнику и сказать о своем желании, тебе пойдут навстречу и дадут шанс.
409 2175511
Как в идее отсоединить файл от проекта, чтобы он в гит не коммитился? Нужно срочно, я не могу сейчас гуглить спасите помогите!
410 2175513
>>175504
Тогда вопрос тебе и другим анонам, как более опытным. У меня есть приглашения от IT галеры, двух банков и продуктовой компании(продукт веб приложение). Куда перспективнее? Сразу скажу, не хочу бегать от компании в компанию, хочу засесть лет на 5 в одном месте и расти до джава мидла во влажных синьора
411 2175515
>>175150
То есть неправильно, у меня всё заработало
412 2175531
>>175511
Надо удалить папку .git и заново закоммитить что надо.
413 2175550
>>175511
файл .gitignore
Гугли
414 2175552
>>175513
расти лучше в галере
415 2175560
>>175513
Какие где деньги дают? И какие проекты? Что за галера?
416 2175574
>>175513

>>Куда перспективнее?


>>расти


галера

>>хочу засесть лет на 5


продукт
417 2175595
>>175513
На галере у тебя будет больше возможностей пощупать разные технологии и разные проекты. И в целом переход на другой проект проще. конечно если это крупная галера, а не Вебстулия Сокол.
sage 418 2175612
>>175595
На вебстул Сокол можно посадить целую команду разработки
419 2175621
>>175560
Деньги практически одинаковые. Галера тоже отправит грести в банк. Не топовая, короче не епам и не люксофт.
>>175595
Мне вот тоже кажется на галере будет больше технологий, из минусов только что это будут технологии тестировщика, типа какой-нибудь селеноид, апачи-хуячи и прочи жметры. Надеюсь это не сильно повлияет на свободное время, так как по моей страте после работы я буду тренить пет проекты на джава джуна в этой же компании.
420 2175624
>>175621
На крупной галере, если ты сильно захочешь и попросишь, тебе почти со 100% вероятностью дадут себя попробовать в разработке. У них проектов и людей много, они постоянно их туда-сюда двигают.

А вот в продуктовой - тебе могут сказать, что разработчики сейчас не нужны, а как раз нехватает QA. Подожди пока еще 2-х QA наймем, тогда и поговорим.
421 2175640
>>175624
А галеры работают удаленно, сейчас? И если да, то какое может быть развитие? Ведь спросить ничего нельзя, только если приебаться к кому-то в скайпе, это мне кажется наглым надо быть.
422 2175649
>>175640
Галеры разные бывают, кто-то работает удаленно, кто-то в офисе. Опять же тебе могут дать проект где команда не в твоем городе, так что все равно надо будет по слаку спрашивать.
423 2175684
Как в идее сделать мердж реквест в гитлаб?
424 2175688
>>175684
коммитишь в свою ветку, и в гитлабе мышкой нажимаешь на создание пул реквеста
425 2175689
>>175684
$ git push feature-branch-name
426 2175699
>>175688
Я не вижу такого, там есть new merge request, но нет моей ветки
427 2175708
>>175699
Чел, в меню git > push если ты коконсоли боишься
428 2175711
>>175708
Я хочу не пушить, а именно сделать мердж реквест своей ветки. Пуш, я так понимаю заливает всё на гит без предпросмотра
429 2175715
>>175711
Не тупи. У тебя будет ссылка для создания реквеста после пуша.
430 2175720
>>175715
После пуша своей локальной ветки, естественно.
431 2175724
>>175711
Ты наверное непонимаешь, что реквесты это фича не гита, а гитлаба/гитхаба
432 2175736
Сбер смотрит мои резюме и молчит. Подумал, что он как тяночка стесняется и с ним нужно заговорить первым, скинул резюме, а он прислал отказ. И опять смотрит мои резюме...
433 2175739
>>175724
Я первый раз этим всем пользуюсь и далек от полного понимания гита
434 2175740
>>175736
У меня тоже так, забей. Видимо, они их автоматически обходят кандидатов по ключевым словам, когда новую вакансию публикуют.
435 2175742
>>175736
>>175740
Ваши судьбы в руках курицы-эйчарки
436 2175856
Что лучше трогать во время изучения хибера для дальнейшего изучения spring data jpa Session или EntityManager?
sage 437 2175877
>>175856
Session - чисто хибернейтовская абстракция. Разбирайся лучше с EntityManager
438 2175961
>>175739
Оно и видно, дебил.
439 2175963
>>175856
Хибер лучше не трогать в принципе.
440 2176042
>>175877
А дополнительные функции которые в Session есть по сравнению с EntityManager не очень нужны?
sage 441 2176217
>>176042
Если будет нужно что-то хиберовское, ты сделаешь entityManager.unwrap(Session.class)
442 2176224
Как указывать относительный путь до файлов, развёртывая приложение на Tomcat? Файлы деплоятся томкатом, и путь берётся из него. Как сделать, чтобы такого не было?
443 2176454
>>176217
пасиба.
444 2176527
>>176217
критерию трогать или только jpql?
sage 445 2176557
>>176527
Критерия - круто, но используется редко. Сначала jpql, потом можешь критерию
446 2176614
До какого кю нужно дойти в Codewars, чтобы взяли на галеру?
447 2176653
>>175098
Чел ты
448 2176709
>>176614
110 айкю хватит, если код писать умеешь.
449 2176753
>>176709
Ты не понял, я про кю, а не про IQ
450 2176756
>>176653
Что я? (
451 2176848
>>175856

Рекомедую вот это - https://en.wikibooks.org/wiki/Java_Persistence

В свое время помогло сильно обновить знания перед собесом
452 2176916
>>176848
кстати вообще относительно джава/джакарта ее стандартов.

>What is new in JPA 2.1?


>JPA 2.1 was approved as final on 22 May 2013.


между тем

>The JPA was renamed as Jakarta Persistence in 2019 and version 3.0 was released in 2020.


последние джава ее - первые джакартовские стандарты вообще кого то волнуют? Тот же хибер вроде соответствует последнему стандарту, но в статьях о джакартовских стандартах почти не пишут. Че там в других стандартах? Я даже с сервлетами не понял.
453 2176931
>>176916

Жаба ЕЕ сейчас мягко говоря слабо востребована, не ебал бы ею голову. Если ты конечно не желаешь поработать в мохровых ытнырпрайзах в банках и прочей еботене. Но это мазохизм.

А так я думаю что основа jpa актуальна, в 2.2 они едва ли там все ПЕРЕДЕЛАЛИ.
454 2176953
Может кто делает опен сорс проект и кому-то нужен помощник, вкатываюсь в джаву и хочется практического опыта на каком-нибудь проекте, было бы круто так сказать работать с ментором, помогать буду в чём смогу по мере возможностей
455 2176962
>>176953
Опенсорс на джаве, лол, завтра оракл очередной раз поменяет лицензию и сдерет с тебя бабки
456 2176988
>>176962

>Опенсорс на джаве, лол, завтра оракл очередной раз поменяет лицензию и сдерет с тебя бабки


Шарпидор, иди нахуй! OpenJDK уже давно под GPL2.
457 2176995
Как в Java парсить строки?
Есть простая строка типа "(3 4)(5 8)" и из неё я хочу получить четыре числа. Но морочиться с split, substring и так далее я не хочу - это кажется мне некрасивым. Есть ли такой метод, типа:
YobaUtils.parse(str, "(%d %d)(%d %d)"),
который вернёт int[] или какой-нибудь YobaParseObject?
458 2177013
>>176995
Регулярки
Pattern pattern = Pattern.compile("\\((\\d+)\\s(\\d+)\\)\\((\\d+)\\s(\\d+)\\)");
Matcher matcher = pattern.matcher("(3 4)(5 8)");
if(matcher.find()){
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
System.out.println(matcher.group(3));
System.out.println(matcher.group(4));
}
459 2177032
>>177013
Спасибо, но блин, это же некрасиво. В Java даже сырых строк нет
460 2177036
>>177032
В 17 версии есть.
461 2177040
>>177036
У меня 17-я, но raw string не ставятся
462 2177047
В чем может быть проблема, стою на мастер ветке, хочу спулить к себе ремоут мастер ветку, идея пишет All files are up-to-date, но в самом гитхабе всё другое, всё изменено.
463 2177053
>>177040
Извращенец? Зачем тебе бета-версия джавы?
464 2177056
>>177053
Все выше 8 для пориджей и хипстеров
465 2177058
>>177053
Разве 17я версия пока только бета? Вроде она релизнулась
466 2177066
>>177040
Language level проверь.
467 2177072
468 2177078
>>177058
Действительно ошибся. 17 еще и LTS, но использовать её, на мой взгляд, рановато.
469 2177080
>>176953
Я не знаю что за долбоеб тебе сказал, что в опен сорс берут вкатунов. Опенсорс это обычно инструменты для разработчиков. Сделать удобный молоток сложнее, чем забить гвоздь.
Напиши пару крудов, подучи теорию и вкатывайся на галеру. Ментором станет тимлмд, который будет режектить твои пулреквесты. Просто так тебе объяснять никто ничего не будет, это сложно и за это не платят (или ты готов платить по ставке 50 баксов в час?).

>>помогать буду в чём смогу по мере возможностей


Это еще надо найти подходящую задачу чтоб ты смог принести пользу и ничего не сломать. Мне проще было бы самому такую таску выполнить, чем объяснять ее тебе. Особенно если ты даже не джун, а стажер, за которым еще все переделывать.
470 2177082
>>177078
Вообще у меня тут в системе Java 11, но в идее поставил 17. Зато узнал, что switch expression есть в 17, но нет в 11
471 2177086
>>177058
>>177078

>>Действительно ошибся


Я то думал ты как настоящий джавист считаешь бетой все чему меньше 5 лет.
472 2177092
>>176916
В JPA 3.0 только переименование пакетов, изменений по существу не было
473 2177093
>>176953
Ой ты хетрец, это как бы типа "готов работать за бесплатно" завуалировал под опенсорс, типа ты такой идейный, зачет, возьму на вооружение.
мимо предлагавший лиду половину зп, если возьмет джуном
474 2177103
>>176995
Чел ты... это ведь только ввод входных данных в тестовом, а ты уже застрял, может ну его и лучше почитать про substring и indexof? Они все равно не возьмут, там будет кукарек, что надо было делать в хэшмапе или дереве, что не по солиду и это только вершина айсберга
475 2177113
Помогите понять. Что делает кнопка гит->апдейт в идее? У меня две ветки мастер и фича_бренч, что будет если я в одной из веток сделаю мердж инто куррент? Какое будет состояние у обеих веток после этого? Если я в мастер мерджу, фича ветка исчезнет? Или наооборот если мерджить в фича ветку, что будет с мастером? Если ч хуево смерджил, например, и делаю фичу в мастере, как в этом случае пушить на гитхаб? Или можно, например из мастера ещё сделать один бренч, и так запушить, на гитхабе тогда изменения с какого момента будут видны. Я смотрел на Ютубе хуйню какую-то, но не понял, я не собираюсь использовать консоль и линуксы, совсем другим хотелось бы заниматься. Может внятное какое-то описание есть?
476 2177131
what do you mean galleys?
477 2177138
>>177093

>>предлагавший лиду половину зп, если возьмет джуном


Потом кабан об этом узнает и лид идет искать сотыги в другом месте. 20-30к стоит того как думаешь? Взятка должна быть большая, чтоб ее размер перебивал риск наказания.
478 2177140
>>177131
outsource/outstaff
479 2177146
>>177140
and why go to such a thing in Moscow? or do they take everyone there?
480 2177149
>>177086
Я ещё смешарик
481 2177150
>>177103
Чел, это не задача с собеса )
482 2177157
Какие паттерны и алгоритмы должен знать джун?
483 2177159
>>177146
there are offices all over the country, many employees work remotely (including me)
изображение.png7 Кб, 373x223
484 2177178
Почему мой код по нахохдению числа в обратном порядке не работает? Он даже не завершается
485 2177179
>>177178
Потому что твой код - говно.
486 2177187
>>177178
Значение inputNumber никогда не меняется
487 2177188
>>177179
>>177178
Кстати да. Нельзя было число перевести в строку и уже её реверсировать?
488 2177426
>>177072
Ну хрен его знает, в 17 raw strings уже даже не в превью. Должны работать без танцев с бубном.
489 2177428
>>177188
Он не хочет мусорить.
490 2177433
В чем разница между антматчерз и мвсматчерз? И что делает аннотация @Secured?
491 2177595
>>177428
Но с другой стороны, алгоритм с реверсом строки проще и очевиднее
492 2177633
>>177426
При поиске в интернете по запросам "java raw string" и т.д. не выдаются статьи по типу "Виды строковых литералов в Джава" или ссылки на документацию. Выдаются только вопросы на форумах, типа "Есть ли в Джава сырые строки", "Как красиво составить регексп" и т.д., а также JEP 326: Raw String Literals (Preview), имеющий статус Closed / Withdrawn.
493 2177682
>>177633

>Please note: This was intended to be a preview language feature in JDK 12, but it was withdrawn and did not appear in JDK 12. It was superseded by Text Blocks (JEP 355) in JDK 13.


Ну ошибся с названием фичи, не Raw String Literals а Text Blocks.
494 2177853
Всем привет. Пробую учить Java по курсу со stepik, вроде интересно, несложные задачки в конце тем, но когда время доходит до следующего выходного, когда снова можно продолжать, забываю многое. На работе нет возможности учить, максимум раз в день полстатьи прочесть какой нибудь без возможности практики. Вопрос следующий: имеет ли смысл искать ментора/репетитора(доверия к объявлениям на авито нет почему-то), и сколько это может стоить? Я рассуждаю так: хороший кодер может здорово помочь новичку, особенно если есть затуп в каких то базовых вещах, который мешает идти дальше. Но зачем хорошему кодеру продавать себя на авито за гроши(по меркам средних зп, которые этот кодер мог бы получать), и тратить кучу времени на тупых вкатунов?
sage 495 2177863
>>177853

> Но зачем хорошему кодеру продавать себя на авито за гроши(по меркам средних зп, которые этот кодер мог бы получать), и тратить кучу времени на тупых вкатунов?


Максимум - статью/доклад на широкую публику написать
496 2177921
>>177682
Но увы, блоки не помогут писать регекспы красиво (
PXL20211009050044118~2.jpg3,2 Мб, 4032x3024
497 2177947
Приветствую. Появился у меня вот такой нетбук. Я конечно понимаю что он слаб, но всё же потянет ли он Intellij IDEA? Оперативкa съёмная, могу свапнуть на 8Gb, поставлю SSD вместо винта. Проц распаян: Амуде 2 ядра, 2 потока, макс частота 1.33Ghz. Я только учу джаву и большие проекты конечно не пишу. Так что с учётом апгрейда пойдёт ли он для Intellij?
498 2177992
>>177947
На учебные проекты хватит. Только оперативку увеличить и SSD поставить.
499 2178003
>>177863
Получается, хороших менторов не найти?
500 2178006
>>177853

>хороший кодер может здорово помочь новичку


Сколько ты репетиторам не заплати, пока ты не сядешь и не начнешь учить, как английский язык, теорию, практику, ничего не выйдет. Без преувеличений, тебе понадобится минимум 6 месяцев по 8 часов ежедневно разбирать только базовые библиотеки, core, lambda, concurrency, ты даже не коснешься спринг бута. Еще пол года ты потратишь после того как узнаешь, что помимо этого тебе надо знать не мало вещей из девопса и тебе придется в этом разбираться. Потом ты узнаешь, что знаний бэка недостаточно, тебе в любом случае придется разбираться в верстке, жс и т.д. Я уже молчу про БД, SQL, NoSQL про всякие хранимые процедуры, индексы, нормализацию и т.д. Если ты не поридж до 22 лвл, то никто тебя не возьмет с минимум знаний. А бумеру 30+, даже зная всё это, нужно быть готовым, что его резюме не просмотрит 70% работодателей, они даже не откроют его просто посмотреть на позицию джуна. Но ты можешь мне не верить, думать, что тут тебя отговаривают конкуренты, пожалуйста, твое право. Можешь открыть эксель и протянуть 120 строчек (10 лет) свой текущий оклад, с учетом прибавки зп, при карьерном росте, и рядом колонку твоего вкатунства, где ты скорее всего 2 года будешь сидеть без зп, а потом полгода получать 60к, потом год 80-120к, потом го 120-160 к. Проссумируй всё и сравни, ещё не забудь вспомнить как ты 2 годы будешь превозмогать и готовься что придется часто читать про новые фичи, а потом уже принимай решение.

>Пробую учить Java по курсу со stepik


А степик это просто чушь. Ты проанализируй, как я тебе посоветовал выше, может какой-то сертификат по текущей работе тебе принесет больше профита.
501 2178021
>>178006
По текущей точно нет. Почему stepik чушь? Вроде отзывались многие неплохо, по крайней мере лучше цыган из скилбоксов. Да, я понимаю, что учить очень и очень много, но это единственный путь развития, который вижу, из того, что вообще интересует. Про репетитора спросил не для того, чтобы за месяц куда то вкатиться, а чтобы в идеале более качественно понимать, а не зубрить.
502 2178132
>>177992
А по процу он вытянет?
503 2178194
>>178132
Я думаю нет. Чтобы изучать джава-стек тебе же надо кроме идеи еще браузер запускать и базу держать запущенной.
А этот проц хуже самого слабого десктопного интеловского селерона 10-тилетней давности.
Если все запустится, то будет боль.
Этот проц разве что с голой джавой без иде играться. А для этого тебе память не обязательно покупать.
504 2178212
>>178194
разве что найти идею 7-летней давности(какую-нибудь самую первую с поддержкой джава 8), но все равно будет боль.
sage 505 2178218
>>178194
Может попробуй вс код. Он вроде как меньше всего кушает
либо эклипс, упаси б-г
sage 506 2178221
507 2178318
>>178218
да с этим процом ему только нотпад++
508 2178430
>>178132
я начинал изучать жабу на АМД Duron 850 МГц. Идея не тянула, поставил какую-то легкую редактировалку, которая могла запускать жабу. Ну норм
509 2178507
>>176756
Вкратце: лучше делать проекты ide- независимыми и не полагаться на "магию". Возможно твои действия как раз и делают запись в pom.xml, но лучше понимать наверняка что ты делаешь
510 2178511
Короче когда шел по jdbc сделал схему, как на пик1. Табличка аккаунтов и табличка переводов, ссылающаяся на аккаунты в 2 своих полях. Объединялось это вместе в аккаунты с историей переводов(дтошкой, а не классом сущности), как справа на 1 пике + экстрактор.
Ну и мне надо на хибер это перевести(только пока лист не дтошек, а самих сущностей) и я даже хз где я проебался. Он вместо списка сохраняет в только первый перевод.
То ли @OneToMany не так прописал, то ли что-то еще, то ли там что-то нужно типа joincolumn вместо mapped by. Прочитал. Еще одно-направленные, двунаправленные связи. Я чем дальше мурзилки читаю, тем дальше запутываюсь.
511 2178769
>>178132
IDE вытянет спокойно. Запуск будет немнго притормаживать, но можно и потерпеть
У тебя нет постоянной высокой нагрузки. Есть маленькая, эпизодическая нагрузка. Хеловорды вытащит спокойно.
512 2178822
Как думаете, о чём конкретно идёт речь, когда java-приложение описывается как:

>Standalone, то есть состоящее из одного выполняемого компонента верхнего уровня


Хотелось бы услышать вашу интерпретацию данного определения.
513 2178880
Нужны инсайды. На носу собес, приглос пришел на понедельник, какие могут дать задачи на нем джуну? FizzBuzz, что еще? Где смотреть? В гугле их слишком много. Обосраться не имею права.
514 2178895
>>178880
Накидать, например, парсер css на лайвкодинге.
515 2178907
>>178895
Сложно.
516 2178922
>>178507
Спасибо, буду знать
517 2178949
>>178895
И как это делать? Регулярками через pattern/matcher?
518 2178952
>>178949
Нет. Регулярки в джаве довольно медленные.
519 2178977
>>178952
А как?
520 2178990
>>178511
бамп вопросу.
521 2179631
>>178822
Райффайзен? Имеют в виду, что нужен не war для деплоя в томкат, не библиотечный jar и т.п., а исполняемый файл. Обычный исполняемый jar, который cобирается спрингбутом.
522 2179675
>>178511
Не до конца может понял, что ты хочешь, но ты что ли надеешься на то, что по mappedBy="transfer_id" (схуяли вообще transfer_id?) хибер сам догадается про джойн и по "from" и по "to"? Не будет такого, но можешь сделать две отдельный связи. И не ставь никогда FetchType.EAGER на подобные коллекции.
523 2179681
>>178511
В mappedBy должна быть колонка владеющая отношением. В твоём случае, либо fromAccount, либо toAccount. Вместо transferHistory, тебе нужно два поля, каждый из которых связан с from и to соответственно. А при необходимости объединять списки на уровне самой джавы.
twoLists.PNG105 Кб, 1329x768
524 2179762
>>179675
>>179675
Ну это понятно, что не ставить, а только когда нужен объект с вложенным списком. И в jdbc-ишном проекте в репозитории у меня было 2 метода:
Optional<Account> findById(Long id) с простым запросом. Optional<Account> findByIdWithTransfers(Long id) с экстрактором.
А как сделать второй с jpa?

>>179681
Я просто достаточно бездумно копипастнул код с мурзилки. Так пока и не разобрался в этих ваших связях.
Спасибо за совет. Сам думал о двух листах. Получилось вот так. Все работает. Но нельзя как то поизящнее с одним листом?
525 2179781
>>179762

>а только когда нужен объект с вложенным списком


Вот именно, а с EAGER он у тебя будет всегда со списком, а не только когда он нужен.

>Получилось вот так. Все работает. Но нельзя как то поизящнее с одним листом


Ты не показал, что именно у тебя получилось, но ты подумай о том, что тебе не обязательно совершенно идти от account и доставать transfer как его связь. Можешь сделать запрос к transfer, где from_account или to_account равны тому, что тебе нужны. В реальной жизни как раз может оказаться так, что никакого смысле в такой коллекции у account нет, потому что тебе никогда не понадобятся сразу все transfer одного account, только с какими-то еще условиями, допустим с датой в определенном диапазоне.
526 2179827
>>179781
Ну когда я себе этот проектик придумывал еще для изучения jdbc(сперва rawjdbc, потом jdbctemplate) там весь функционал -
первая страничка: список акков, потом создать аккаунт,
вторая сразу отображает всю инфу с сущности одного аккаунта, всю историю переводов, удалить аккаунт, перевести сумму.
И хотелось бы фронт и контроллеры вообще не менять.
Есть общий интерфейс репозиториев и 4 реализаций, хотел только имплементации репозиториев менять. Вот теперь еще два вида доменных моделей - jdbc-шная и хиберовская(по сути раньше у переводов были поля типа Long from_account_id, теперь Account from_account ).

>потому что тебе никогда не понадобятся сразу все transfer одного account, только с какими-то еще условиями


Мне нужен аккаунт с List<TransferDto> transferHistory(тот же transfer, но без айдишников). И раньше я аккаунт с листом дтошек прямо из базы дергал и ничего не меняя джейсоном отдавал на фронт. Теперь наверно два лист из настоящих трансферов придется в один лист дтошек где-нибудь в репозитории(по уму наверно в сервисе надо, но я уже написал себе контракт с интерфейсами AccountRepo и TransferRepo).
527 2179848
>>179827
Для учебных задач, кажется мне, довольно глупый подход - "уже написал себе контракт", теперь вынужден с ним ебаться, но дело твое.

Вариант с двумя EAGER листами не очень хорош еще тем, что в результате получится такой селект с джойнами, у которого будет сильно раздутое, избыточное количество строк на выходе. Лучше либо делай два селекта - самого счета и его переводов - либо делай селект по переводам, от которых уже будет джойн к счетам. Счет будет заведомого один и тот же у всех, так что вытащишь нужный из любого перевода.
528 2179882
Как подключить OpenFeign к проекту на спринге? У меня не видит GsonDecoder, хочу запустить пример с гитхаба. Помогите плиз
529 2179902
>>179848
да я не хотел EAGER делать, мне он и не подходит. У меня будет запрос к аккаунту без листа переводов и потом с ним. Просто пока не понял, как с LAZY работать. Не увидел этого в мурзилке/не дочитал.
530 2179906
>>179631

>Райффайзен?


Да, он самый :)
Тоже кинул заявку?

>Обычный исполняемый jar, который cобирается спрингбутом


В целом, я примерно о том же самом и подумал, спасибо за ответ. Только откуда инфа про спрингбут?
Было бы странно собирать стендалон jar'ник в именно в буте, вроде же вся его идея как раз в том, что он инкапсулирует в себе компоненты, в том числе контейнер/сервер embedded tomcat, и сам представляет собой некий верхнеуровневый "standalone", грубо говоря.
531 2179909
>>179906

>Тоже кинул заявку


Нет, самому мне туда не надо (уже есть свои 600кк/нсек), но попадались на глаза эти их носки.

> откуда инфа про спрингбут


Ну а какие еще варианты, если это самый дефолт и мейнстрим, и если они сами пишут в задании, что желателен Spring(Boot) Framework.

>он инкапсулирует в себе компоненты


И вот именно поэтому результирующий джар и можно назвать standalone, все сходится
532 2179912
>>179909

>Нет, самому мне туда не надо


Обознался, извиняюсь

>и если они сами пишут в задании, что желателен Spring(Boot) Framework.


А что за задание? Просто я довольно внимательно всё изучил, и нигде не увидел упоминания спринга, кроме стека команд хотя да, логично, что он будет. Если поделишься какой-то инфой по заданию - буду очень благодарен самому интересно быстрее глянуть, что там

>И вот именно поэтому результирующий джар и можно назвать standalone, все сходится


Действительно, ну я и херню сморозил, хотя выше сам себе ответил. В момент затупа почему-то подумал, что компоненты бута будут не в одном джарнике уже спать пора, походу
533 2179913
>>179912

>А что за задание?


То, из которого ты взял эту формулировку про standalone. Если не из задания, значит, штош, я ошибся.
534 2179914
>>179913
Я её взял из FAQ их телеграмм бота, пару дней назад.
Ну ладно, если у тебя какие-то конфиденциальные данные - то обойдусь.
535 2179915
>>179914
Вбей эту фразу в поисковик
536 2179917
>>179915
Тысячи тон нефти тебе, анон. Я это, само собой, делал, но поисковик попался протухший.
537 2179968
Ребята, как javax validation опеределяет локаль (язык, на котором пишет ошибки валидации)?

Хочу чтобы писал
"bar.foo must be greater than or equal to 1"
А получаю
"bar.foo должно быть не меньше 1"
538 2180052
Сап, программач.
Есть энтерпрайзное говно на джаве. В рантайме энтерпрайзное говно сериализует объекты и складывает их в БД. Мне нужно из этих сериализованных объектов достать определенные атрибуты.
В либах энтерпрайзного говна мне удалось найти нужный объект и десериализовать его, но один атрибут достать не могу - геттер там хитровыебанный и выплевывает ошибку хотя сам атрибут инициализирован и в нем есть данные, это видно в дебаге - localSymbolTable.data

Подскажи, программач, могу я как-то достать нужный атрибут?
539 2180087
>>180052
Либо рефлексией вытащить либо ручками разобрать сериализованый формат. Что там за формат кстати, джавовская сериализация или что-то еще?
des.png133 Кб, 1446x514
540 2180111
>>180087
В джаве я хуй простой, поэтому слабо понимаю о чем ты.

> Либо рефлексией вытащить


Это как-то так - https://stackoverflow.com/questions/1196192/how-to-read-the-value-of-a-private-field-from-a-different-class-in-java ?

> либо ручками разобрать сериализованый формат. Что там за формат кстати, джавовская сериализация или что-то еще?


В БД лежит byte array сжатый gzip.
На всякий десериализация в прикрепленном пике.
541 2180180
>>180111

>Это как-то так


Да.

>В БД лежит byte array сжатый gzip.


>На всякий десериализация в прикрепленном пике.


Да, это джавовская дефолтная сериализация.
542 2180378
Помогите.Есть кто работал с vaadin?
Есть ссылка на элемен(страницу) она работает если проходишь по пути,обнавляешь(ф5), она пустая.
В чем может быть проблема? Как решить.
543 2180410
В чем может быть проблема? Есть проект, делал не я. В нем есть интеграционные тесты, которые не запускаются. Вылетает туча эскуэль эксепшенов. Failed to load application context. Я не очень понимаю в тестировании. Что ему можнт не хватать? Последнее сообщение Access denied for user 'root'@'localhost' (using password: YES). Сами тесты вроде простые, просто на каждый метод контроллера проверка всякой хуйни.
master piece.PNG22 Кб, 684x338
544 2180436
Я смог в клин-код?
sage 545 2180451
>>180410
К базе подключиться не может
546 2180464
>>180451
А как тест должен подключаться к базе?
sage 547 2180465
>>180464
В тестовом Datasource конфиге, если спринг. С помощью ApplicationContextInitializer в спринг Буте. Ну и база в тестконтейнерах
548 2180466
>>180465
А где всё это искать, в буте?
sage 549 2180468
>>180466
Не понял вопроса
550 2180470
>>180468
Если тест не может подключиться к базе, значит ему не хватает каких-то настроек бд? Для обычной бд есть класс applicatio.properties. Где искать аналог этих проперти для тестовой базы?
sage 551 2180483
>>180470
Зависит от того, как на проекте заведено.
Я их загоняю вместе со стартом тестконтейнера в ApplicationContextInitializer
552 2180492
>>180483
Я нашел, просто не смог сообразить что приложение работает с двумя базами. А как обычно бывает на производстве? Вот закончил ты пилить логику проекта, и начинаешь хуярить тесты, сам их придумывая, и делая объем работы равный или больший нахуяренной логики?
sage 553 2180505
>>180492
Если повезет, и на проекте так заведено, то да. Лично я накидываю кучу работающего говна, покрываю тестами, а потом рефакторю это же говно с их помощью
554 2180534
>>180052
в постгре можно хранить json и в запросах манипулировать атрибутами
555 2180537
>>180505
Это TDD?
sage 556 2180545
>>180537
Что-то типа того
557 2180568
public Address toEntity(AddressDto addressDto) {
City city = cityService.findByName(addressDto.getCity());
city.setCountry(countryDao.findByName(addressDto.getCountry()));
return Address.builder()
.id(addressDto.getId())
.city(city)
.index(addressDto.getIndex())
.street(addressDto.getStreet())
.house(addressDto.getHouse())
.build();
}

Как такую логику реализовать в мапстракте?
558 2180570
Вообще думать в концепции хибера сложно или просто я такой тупой? С голым сикулем на jdbc у меня таких затупов не было.
559 2180572
>>180570
Сейчас тебе расскажут, что хибер говно и выкини его вообще
560 2180573
>>180572
Может они такие же тупые, как я просто?
562 2180578
>>180573
если инструмент приносит только проблемы и головную боль, то зачем кушать этот кактус?
563 2180591
>>180573

>Может они такие же тупые


Вполне может быть. На самом деле инструмент действительно непростой, им нужно учиться пользоваться, понимать ограничения и подводные, затупы вполне естественны. И уже только когда хорошо разобрался и освоился, тогда и начинается какой-то от него профит.
564 2180599
>>180591
когда научился скакать мимо расставленных граблей. Но всё-равно бывает наступаешь. Ради сомнительной выгодны
565 2180608
>>180578
Я не знаю, я только начал. Может дело во мне.
Но же популярный. Почти все вакансии на спринговом стеке его требуют. Да и во всех мурзилках тоже про него.
>>180591
Может еще от размера схемы зависит? Вот я читаю мурзилку, переделываю ее. И тамошний пример на 3-4 табличке с jdbc сильно понятнее. Ну а сам я базы больше 15 табличек не видел никогда пока(из какого-то учебника по sql уже не начального, а среднего уровня) и мне уже было тяжеловато. А реальная база на джава-стеке это наверно от 50 и до нескольких сотен(я так предпологаю). Может там профиты?
566 2180619
>>180608
причина - хибер делает ощущение магии и ненужности sql (ложное ощущение)
567 2180629
>>180619
ощущения ненужности sql не почувствовал. Вроде многое делается через jpql, который абстракция поверх sql.
Думаешь реально плохо знать sql и хорошо знать хибер?
568 2180633
>>180608

> Может еще от размера схемы зависит


Зависит, да. Хелловорды с тремя таблицами вообще без разницы на чем писать. Профит от хибера ощущается на больших проектах, где много сущностей (таблиц) и много логики, которая ими манипулирует, и соответственно много простых и однотипных crud-запросов. Хибер позволяет не тратить свою жизнь на то, чтобы писать и поддерживать их руками. Но сначала нужно один раз вложиться в то, чтобы научиться обходить его грабли.
569 2180638
>>180629
по-умолчанию везде Eager. С ним всё будет работать. Но медленно

>Вроде многое делается через jpql


круды можно без запросов лепить, через все эти merge, save
image.png329 Кб, 513x513
570 2180688
>>180633

>Но сначала нужно один раз вложиться в то, чтобы научиться обходить его грабли.


Проблема в том, что грабли хибера обширны, а разработчики приходят и уходят. Причем проблема может вылезти в совершенно другом месте. Добавил в одном месте ленивое поле, а в другом пошла по бороде производительность из-за ломбоковского toString().

С чистым SQL ты хотя бы видишь запрос и что он грузит из базы. Никто лениво ничего не тянет. Если не делать select * то новые поля старые запросы не замедлят. SQL это хорошо, SQL это надежно.
571 2180698
>>180688
как боженька расписал
572 2180770
Подскажите, пожалуйста, по JDBC Template:
Если в Java JDBC я сам получаю Connection'ы из DriverManager, которые потом могу засунуть в свой ConncetionPool, то как быть с DataSource в Spring JDBCTemplate? Темплейт сам принимает DataSource и делает у него getConnection.
1) Как тогда реализовать свой пул коннекшенов в JDBC Template? Тупо сделать пул DataSource'ов? Но ведь тогда все-равно каждый раз будут выполнятся новый getConnection у датасурса, что ломает всю идею предназначения пула, с постоянно открытыми конекшенами.
2) Нужно ли закрывать какие-то ресурсы за собой? Если да, то как? У DataSource и JDBCTemplate нет никаких методов close() и имплементации Autocloseable, судя по докам. Где происходит закрытие стейтментов и конекшенов в темплейтах?
573 2180773
@SdelatZaebis
574 2180783
>>180770
https://easyjava.ru/data/pool/nastrojka-hikaricp/
все популярные пулы дают реализацию DataSource, ну и ты тоже наверно инкапсулируй все в свою реализацию.
575 2180792
>>180783
Ну я понял, типа принято реализовать свой DataSource, связанный с пулом и который будет отдавать пул. Это понял.
Остался только вопрос с пониманием механизма закрытия ресурсов.
576 2181105
Если мне нужен какой-нибудь функционал, какого-нибудь фреймворка. Буквально пару строчек надо. Что мне надо я в этот момент не знаю. Мне говорят читай документацию. Вопрос насколько это правильный ответ? Документация обычно очень большая. Правильно ли тратить время на чтение её всей? Запомнить при этом хоть что-то определенно не получится. Или отвечающий как бы говорит отъебись от меня, и больше это ничего, кроме этого не значит?
577 2181128
>>181105
Документация, как и большая часть людской писанины, чаще всего содержит вводную часть - от 1 абзаца до пары страниц - объясняющую вкратце что это за велосипед. Полезно в том числе чтобы быстро дропнуть то, что тебе не нужно и идти дальше. Так что совет вполне дельный.
578 2181143
>>181105
А если речь про конкретный функционал конкретного фреймворка, то вбиваешь в гугол фреймворкнейм и суть вопроса. Тебя выкинет на документацию к фреймворку напрямую или через со, я гарантирую это. Читать документацию целиком полезно, но при наличии норм ревью кода необязательно. А частоиспользуемые фичи сами запомнятся.
579 2181432
Аноны мне для лаб нужно сделать пользовательский интерфейс. Одна лаба обычное консольное приложение на текущий момент, другая веб сервер к которому надо прикрутить поля и кнопку. Что использовать, чтобы опыт использование потом пригодился (жс не осилю, я дибил)
580 2181478
Какие практики написания thread-safe DAO используют для Spring JDBC template?
Сами template, как я понял, потокобезопасны из коробки.

Принято ли реализовать свои read/writeнапример, с помощью ReentrantReadWriteLock блокировки? Либо, для операций на запись, всё делают на транзакциях, с выставлением нужного Isolation level?

В случаях с использованием одних лишь транзакций на запись, по идее, можно получить сайд-эффекты в виде неактуальных селектов, до тех пор, пока не пройдёт транзакция на запись. Такое вообще допустимо?
581 2181487
Ананасы, столкнулся с диллемой – каким уровнем логировать бизнесовые ошибки, WARN или ERROR?

Прилетело мне, например, сообщение с Кафки с ошибочным полем, сообщение в БД не записали и залогировали ошибку о том, что такое-то поле не удовлетворяет каким-то там условиям. По логике же это WARN, я правильно понимаю?

В мою пользу еще сентри, например, ругается на error – говорит, что это ошибка и ее надо исправлять как-то.
582 2181489
Кому тоже интересен вопрос >>181478 , нашёл такую статью: https://easyjava.ru/spring/spring-data-access/izolyaciya-i-rasprostranenie-tranzakcij-v-spring/
В последних абзацах есть немного о практиках построения. Коротко говоря, транзакции разумнее размещать в слое логики.
Насчёт блокировок и сайд-эффектов - вопрос ещё открытый.
583 2181501
>>181432

>другая веб сервер к которому надо прикрутить поля и кнопку. Что использовать, чтобы опыт использование потом пригодился (жс не осилю, я дибил)


Eсли это EE на сервлетах, то можешь в через request/response передавать и принимать атрибуты на JSP-страницах. Для спринга, можно дописать контроллер, который будет мапить модель на JSP-страницу.
Правда, вряд ли тебе сейчас где-то опыт работы с JSP пригодиться. Но это самый простой и легкий вариант.
Консольное приложение я бы тоже разобрал веб-контроллерами обмазал тупо, а дальше по схеме выше.
584 2181655
>>181432
Самый простой способ - использовать на спринге шаблонизатор типа thymeleaf. Его освоить за пару часов можно, но опыт не пригодится.
Пригодится ангуляр, но это не пару часов, а пару дней (для твоей задачи) и вообще дикий оверхед для одной кнопки. Вью тоже не намного проще.
585 2181737
>>181432
Осиль голый жс. Он простой(мне показался проще фримаркера/таймлифа), для кнопки его достаточно и может много где пригодиться.
Можешь просто погуглить, как сделать таблицу на жс и кнопку с рест запросами через fetch. Думаю за вечер прочитав один-два примера разберешься.
586 2181917
У меня из дто с фронта прилетает массив айдишников ролей. Потом я хочу в конверторе в цикле переберать эти роли, создавая по одной, а потом сложить всё это в сет ролей, и этот сет сбилдить вместе с остальной частью дто в юзер объект. Как это реализовать в мапстракте?
sage 587 2181935
>>181917
Никак. Мапстракт - калл
в 99% случаев
588 2181968
>>181917

>>создавая по одной


Ты создаешь новую роль? зачем тебе айди из дто тогда? Или ты достаешь роль по айди из базы, а не создаешь?

В общем в мапере юзера добавь аннотацию @Mapper(uses = {MapperUtil.class})

над методом toEntity(user, roles) поставь аннотацию
@Mapping(target = "roles", source = "roles", qualifiedByName = {"getRolesFromDto"})

MapperUtil.class - это класс где есть метод getRolesFromDto() который принимает дто, возвращает роли (как он их создает/достает - тебе виднее)

Но я бы просто в мапер передавал готовые роли, которые предварительно достал/создал, тогда все эти аннотации ни к чему.

List <Role> roles = dto.getIds.stream().map(id -> this.createRole(id)).collect(Collectors.toSet);

createRole(Long id) - это например приватный метод в этом же классе который создает/достает роль по айди.
589 2182016
>>177853
цель просто жаву изучить или работу найти?
590 2182053
>>182016
Я другой анон и хочу перестать просто изучать и нацелиться на работу. Раньше учил так(учебники, онлайн-тренажеры, ютуб, видеокурсы с торрентов), для развлечения скорее.
Вот думаю может денег занять и ментора нанять. Что ты думаешь по этому поводу анон? И сколько это может стоить?
Открываю какую-то биржу менторов из гугла и там 2.5-4к за час. Биржи эти адекватные и адекватна ли цена? Ну часов 20-30 мне нужно наверно.
Ну вот я бы у него попросил проинтервьюировать меня, найти слабое в джавакоре и дать направление, как и что учить из фреймворков, а то в них конца и края не видно, даже в основных. Ну и проектик помочь наметить и проверить потом раза 2.
Ну это 100к надо.
591 2182060
>>162387
В ArrayList ты не можешь записать int, только Integer, думаю тут ещё оверхедиков добавилось.
Потом когда ты его наполняешь - он каждый раз создаёт новый с размером ~1.5 когда заполняется до края, соответственно старый в мусор.
592 2182118
>>181968
Я не создаю роль, она в базе. Можно подробнее про , qualifiedByName = {"getRolesFromDto"})
и
MapperUtil.class?
Я этот класс должен сам написать? Может есть пример какой?
593 2182163
>>182118

>Я не создаю роль, она в базе


Вот и доставай ее из базы по id, нахуй тебе тут mapstruct
594 2182185
>>182118

>>MapperUtil.class?


>>Я этот класс должен сам написать?


Да это самый обычный класс, ты его в маппере указываешь, чтоб к его методам можно было обращаться. Назвать можешь как угодно.

Но конкретно под твою задачу - проще все же достать из базы роли в сервисе и добавить их к уже преобразованному юзеру, а не пытаться воткнуть логику в мапер.
Маппер должен выполнять одну роль - преобразование энтити в дто и обратно.
1297836541143.jpg162 Кб, 699x771
595 2182190
>>180180
Вариант с reflection api не сработал - при попытке сделать
Field f = rootBPDExecutionTreeNode.getClass().getDeclaredField("localSymbolTable");
получаю исключение:
java.lang.NoSuchFieldException: localSymbolTable
Хотя поле в классе есть.
ЧЯДНТ, анон?
596 2182222
>>182190
Скорее всего это поле объявлено не в этом классе, а в его предке.
https://pastebin.com/iUwMVViL
597 2182308
>>181487
Error - что-то явно работает неправильно, нужно заводить тикет и исправлять. Warn допустимо, но требует повышенного внимания к событию.
598 2182364
Можно ли стримами конвертировать строку типа "1 0 X\n0 1 ?\n0 0 0"
в char[][] {{'1', '0', 'X'},{'0', '1', '?'},{'0', '0', '0'}} ?
У меня ничиво не получаицца, я чет путаюсь в трех соснах
599 2182571
>>182364
Stream.of("1 0 X\n0 1 ?\n0 0 0".split("\\n")).map(String::toCharArray).toArray(char[][]::new);
600 2182606
>>182571
но ведь надо еще split(" ") а потом String[] преобразовать в char
вот моя нерабочая версия
String[] rows=board.split("\n");
return Arrays.stream(rows)
.map(i->Arrays.stream(i.split(" ")).map(t->t.charAt(0)).toArray())
.toArray(s->new char[rows.length][s/ rows.length]);
601 2182638
>>182606
так, ну вот с Chatacter[][] получилось, как char[][] сделать
String[] rows = board.split("\n");
return Arrays.stream(rows)
.map(i -> Stream.of(i.split(" ")).map(t -> t.charAt(0)).toArray(Character[]::new))
.toArray(s -> new Character[rows.length][]);
602 2182674
>>182606
>>182638
Непонятно что делать если будет больше одного символа подряд, но можно сделать так:
Stream.of("1 0 X\n0 1 ?\n0 0 0".split("\\n"))
.map(s -> s.replaceAll("\\s+", "").toCharArray())
.toArray(char[][]::new);
603 2182699
>>182674
спс, промапать в char легким путем получается нельзя.
604 2182805
Есть два целочисленных стрима {a, b, c, ...} и {x, y, z, ...}, нужно из них получить стрим {(a, x), (b, y), (c, z), ...}, где (a1, a2) - пара двух чисел из библиотеки Apache Commons Lang 3.
605 2182836
А транзакции jdbc и транзакции внутри базы это одно и тоже? setAutoCommit(false) вызывает begin tranaction у postgres? Или оно как то ещё работает?
606 2182839
>>182699
Можно сконкатенировать все и перегнать в char[]
Stream.of("1 0 X\n0 1 ?\n0 0 0".split("\\n"))
.map(s -> String.join("", s.split("\\s+")).toCharArray())
.toArray(char[][]::new);
608 2182844
>>182836
Да.
Нет, это отключает автоматический коммит после выполнения любого DML.
609 2182897
>>182844
Не понял. А разве на уровне интерфейса базы данных есть какой то отдельный синтаксис для транзакций кроме:

BEGIN;
INSERT INTO accounts(name,balance)
VALUES('Alice',10000);
COMMIT;
Или он начинает транзакции на уровне базы но не через интерфейс бд, такие команды как BEGIN?
610 2182931
>>182897

>разве на уровне интерфейса базы данных есть какой то отдельный синтаксис


Да, на уровне jdbc вообще есть много всякого, чего ты не увидишь в "синтаксисе" текстового терминала. PreparedStatement, батчи...
611 2182935
>>182931
Но я был уверен, что при препейред стейтмент на уровне джавы выполняется и подставляет там значения с проверкой. А базе отдает уже готовые строчки запросов.
612 2182940
>>182935

>Но я был уверен


А реальность оказалась куда более жестокой
613 2182941
>>182940
Короче я ещё сильнее нихуя не понимаю, чем до того, как задал вопрос.
614 2183269
>>182897

>А разве на уровне интерфейса базы данных есть какой то отдельный синтаксис для транзакций кроме:


Все сильно зависит от базы. Обычно если ты выполняешь некий DML у тебя автоматом начинается транзакция её не нужно явно стартовать. Можно начать явно START TRANSACTION. В некоторых базах есть READONLY TRANSACTIONS, которые стартуют на любой SELECT. А еще есть savepoint, если произойдет ошибка, то транзакция откатится только до savepoint.

>>182935

>Но я был уверен, что при препейред стейтмент на уровне джавы выполняется и подставляет там значения с проверкой. А базе отдает уже готовые строчки запросов.


Зависит от драйвера и СУБД, но обычно в современных СУБД он отдает выражение с подстановочными параметрами и сами параметры отдельно. Это нужно для улучшения перформанса.
615 2183633
Создал обычный проект на Java в IDEA, в качестве сборщика проекта выбрал Maven. Решил добавить стороннюю библиотеку в проект. Создал файл pom.xml в корне проекта, нашёл на сайте mvnrepository.com библиотеку, скопировал и вставил в pom.xml какую то фигню. Но библиотека по прежнему не доступна, она не импортируется. Что делать?
616 2183656
Простейший ХеллоВорлд Тест, не запускается. Что он хочет?

java.lang.NullPointerException: Cannot invoke "org.springframework.test.web.servlet.MockMvc.perform(org.springframework.test.web.servlet.RequestBuilder)" because "this.mockMvc" is null

Само тело теста, что в нем не правильно?

this.mockMvc.perform(post("/page/add")
.content(objectMapper.writeValueAsString(category))
.contentType(MediaType.APPLICATION_JSON))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
617 2183660
>>183633
рефреш мавена, там круглешок выскакивает справа вверху
618 2183664
>>183633
Или правой кнопкой Run Maven -> Reimport
619 2183670
>>183660
>>183664
Не помогает. У меня во вкладке файла pom.xml написано, что он Unknown, может быть в этом проблема?
620 2183706
>>183633
попробуй создать maven проект
sage 621 2183707
>>183656
Тебе надо mockMvc собрать.
@AutoconfigureMockMvc либо MockMvcBuilders
622 2183710
>>183706
Не помогло
623 2183734
>>183707
Вроде есть я наследуюсь от абстрактного класса вот с такими аннотациями.

@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
classes = ProjectApplication.class)
@ExtendWith(SpringExtension.class)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@AutoConfigureTestEntityManager
@AutoConfigureMockMvc
@DBRider
@DBUnit(caseSensitiveTableNames = true, allowEmptyFields = true, schema = "test_base")

Плюс в своем Автоварю MockMvc
sage 624 2183860
>>183734
Ну вроде как должно работать. Может быть DEFINED_PORT не работает с автоконфигурацией мок мвс. Попробуй ручками собрать
625 2184018
>>183633
Проблема, кажется, решена. В поиске по Maven-репозиториям в окне Project Structure->Project Settings->Libraries можно добавлять в проект библиотеки из этих репозиториев. Моя проблема была в том, что там не высвечивались новые версии библиотек. Но я решил её так: File->Settings->Build, Execution, Deployment->Compiler->Java Compiler->Per-module bytecode version сменить на последний (у меня вообще стоял 1.5, и я этого не замечал)
626 2184584
>>178006
Бля нахуй ты сочиняешь эти пол года по 8 часов, это не нормально и так никто не учится. Да и главным все равно будет качество а не кол-во.
627 2184800
Помогите пожалуйста , 2й день бьюсь не могу заставить thymeleaf подружить с css файлом. Приложуха на spring mvc , репозиторий для вьющек настроил брать из web-inf, все отображается. Но стилей нет.
628 2184808
>>184800
Похоже что стили он ищет в /views/styles. Попробуй поменять путь на ../styles/style.css
629 2184818
>>184808
Пустая страница выдается , просто белый фон.
630 2184833
>>184818
у тебя тут на первом скрине есть окошко с браузерами что бы открыть вью, по ней тоже белое открывается? попробуй полный путь прописать.
631 2184834
>>184818
<link rel="stylesheet" type="text/css" th:href="@{/css/main.css}"/>
так делал?
image.png18 Кб, 756x136
632 2184835
>>184833
Тоже , уже наверное все попробовал. Пытаюсь этот метод переопределить , но тоже бестолку. Не понимаю относительно чего этот метод определяет директорию ресурсов. Кто то пишет что все должно лежать в папке resources , кто пишет что эта папка должна быть в webapp.
633 2184836
>>184835
когда я делал без бута, все лежало в вебапп и через мавен можно было дерикторию менять, если не выбирать web при иницилизации проекта. а буте все лежит в ресурсах да.
634 2184842
>>184836
дак я не юзаю бут. Но при инициализации веб выбрал , при том что thymleafe все формы сука обрабатывает , а конкретно стили не хочет подтягивать.
635 2184864
Кароче , спустя 5 часов гугла я залез в документацию для пятого спринга и нашел это решениехз почему я этого не сделал ранее. Оно правда не использует thymeleaf. Если кто знает как через него это реализовать просьба все же подсказать. Решение было просто перенести папку ресурсов в webapp с таким конфигом.
636 2184875
>>184864

>Оно правда не использует thymeleaf


Только не говори, что тебе кажется, будто thymeleaf отвечает за применение стилей к странице
637 2185030
Объясните, нахуя каждая вторая контора требует знание докера и умение деплоя в нем? Я, блять, сколько книжек по жаве не читал, все в один голос говорят что это такое неебаться преимущество что написано один раз - запускается везде, просто блять божья роса эта жава машина. Какой нахуй от нее смысл, если деплоят также в докере, как и на других языках? Сука, этот вопрос не дает мне покоя уже месяца полтора.
638 2185035
>>185030
У нас базы на докере
639 2185182
>>185030

>написано один раз - запускается везде, просто блять божья роса эта жава машина


Пиздежь. Вот докер это точно обеспечивает.
sage 640 2185187
>>185030
В конце 20го века докеров не было + маркетинговый ход: наша жава везде крутится, в отличие от вашего ЯЗЫК_НЕЙМ.
А докер - вещь хорошая. Тебе даже не надо жвм ставить. Собрал контейнер, и все работает
641 2185206
>>185030

>>что написано один раз - запускается везде


Там имеют ввиду, что код на джаве в принципе можно и на винде и на маке запустить, в отличие от плюсов. Это не значит, что в процессе не придется ебаться с установкой жвм, мавена, БД.
642 2185236
>>185030
JVM и Docker решают разные проблемы.

JVM решает проблему переносимости кода между разными ОС и процессорами. Ты можешь разрабатывать приложение на MacOS ARM, а запускать на Linux x64.

Docker решает проблему единого окружения для запуска приложения. И плюс виртуализация.
643 2185260
Сап гайс. Есть кто нормально волокущий в JDBC?
Вопрос такой: можно ли ResultSet, как-то разобрать на массивы сразу поатрибутно, а не дрочиться с пойнтером? Например, мне приходит набор из десяти записей, у каждой из которых пусть три атрибута. Я вызываю что-то вроде getIntAttrArray(1) и получаю сразу готовый массив int[], в котором 10 элементов. А еще лучше массив массивов сразу со всеми ячейками.
Впрочем, можете нахуй послать, потому что написать такое самому раз плюнуть, но может есть че готовое.
644 2185285
>>185260
JdbcUtils
645 2185294
>>177178
Потому что ты ебонавт.
Ему дали дебаггер, но нет, он лучше будет жрать говно на двачах
Твое условие никогда не станет false, ты забываешь обновлять inputNumber и оно у тебя всегда заходит в проверку одинаковым.
646 2185324
Энтерпрайз-гении, подскажите какие-нибудь логгеры которые используются в серьезных проектах? Не писать же в файл ручками все
647 2185327
648 2185331
>>185324
logback, все остальное залупа
sage 649 2185339
>>185331
Двачую
650 2185382
>>184875
мне так не кажется, но в примерах откуда я инфу смотрел работало с ним. У меня ток без него, не выкупаю почему
651 2185423
У меня есть контроллер. Есть метод delete, который по айди из сервиса тянет юзера. Если юзер null то ResponseEntity.notfound().build(); потом без условия его удаляю и return ResponseEntity.noContent().build(). Всё работает, всё ок. Теперь я хочу протестировать эту хуйню. this.mockMvc.perform(delete("delete?id="+id)).and(print).andExpect(status().isNoContent()); или .isNotFound(); Но прилетает 405 и хуй пойми что с стектрейсе. Может я не правильно понимаю смысл тестирования? Контроллер должен отдать noContent, ведь юзер удаляется, значит и ретурн контроллрр делает.
652 2185426
>>185331
а у него только хмл-конфиг бывает?
653 2185428
>>185423
Я просто сижу гадаю, чё там должно прилететь. И подставляю всё подряд что есть в этом перформе - isForbidden, isBadGateway, isBadRequest... Это и есть тестирование? Я должен угадать?
sage 654 2185438
>>185423
Не пиши параметры в урле.
.delete("delete").param("id", id)

И эндпоинт кривой какой-то. Лучше будет DELETE /users/{id}
655 2185452
>>185426
Еще груви конфиг есть.
656 2185455
>>185438

>.delete("delete").param("id", id)


Это, что-то неправильное. Можешь полностью написать?
657 2185457
>>185438
>>185438
Хотя вот такая штука this mockMvc.perform(get("/get_one?id=" + user.getId())) работает как надо, не в этом дело кмк.
sage 658 2185520
>>185457
Потому что при get параметры запроса в урле, с делит так не работает
>>185455
https://stackoverflow.com/questions/17972428/mock-mvc-add-request-parameter-to-test
659 2185524
Сука, блядский грейдл, локально все компилится, на гитхабе мразь не находит дефолтный метод у интерфейса, хотя версия jdk правильная. Как же заебало.
660 2185536
>>185452
ну хмл, так хмл
661 2185635
>>185520
А что такое sessionAttr? И где брать userClientObject? Я ничего подобного в контроллере не использую. У меня return ResponseEntity.ok().build(). А без этого не работает, всё подчеркнуто красным.
662 2185642
>>185520
post метод тоже работает.
this.mockMvc.perform(post("/add_user")).
sage 663 2185651
>>185635
>>185642
Погугли/почитай доки
664 2185751
>>159705 (OP)
Посоны, такой вопрос. Есть жабовый бэк (аутентификация, роле бэйсед доступ, логирование, вся хуйня). Хочу прикрутить к нему фронтецкий.

Что взять? Я не хочу изучать ни JS дрысню, ни ios/android. Помимо vaadin есть что годное?
665 2185774
>>185751
Переписывай на .net + blazor (cutting edge стек бтв)
666 2185794
>>185751
Swing/AWT
667 2185970
Почему не стоит читать bullschildt?
668 2185991
>>185970
Потому что читать надо мурзилки.
669 2186055
>>185991
После мурзилок ощущение что знаю только малую толику инструмента и шаг вправо-влево можно наткнуться не просто на новые классы и методы, а на какие-то новые концепции, о которых после мурзилки не подозревал.
670 2186073
>>185751
Если фронта мало - тимлиф, если много - учи жс.
671 2186116
>>185794
Насколько сложно будет замутить рестуху на свинге?
672 2186118
>>185970
кто тебе такое сказал? шилдт прекрасен
673 2186214
>>175336
>>175341

В Москве не имеет смысла искать работу джава джуна или стажера на хх. Тем более, что на хх очень часто встречаются фейковые вакансии, которые не закрываются годами.

Нужно заходить на сайты энтерпрайзных контор (сбер, телекомы, всякие галеры вроде нетсракера, ебама, ланита, крока, и прочей параши) отправлять им резюме и ждать результата. Хедхантер уже морально устарел. Спецы с минимальным опытом на линкедине находятся, джунам нужно искать вакансии вручную.
674 2186220
И да, вкатиться в джаву, как показала практика, довольно просто, особенно если ты студент вуза на старших курсах или только что выпустился. Остальным посложнее, но в целом не сильно сложно.
В сбер часто берут любых дегенератов, чем вам не айти? Правда потом тяжело будет на другую работу перекатиться.
675 2186228
>>185751

>Что взять?


HTML + tymeleaf + CSS (опционально).
Но JS так или иначе на минимальном уровне придется выучить для фронта рано или поздно.
676 2186293
>>186228
Двачую.
Лично я полгода назад задавался тем же вопросом.
Неделю сидел над таймоифом, потом еще дня три над фримаркером, что-то не пошло. Потом решился и чуть больше чем за месяц прошел основную часть жс (сам жс, дом, работа с аджаксом) и даже кое-что лишнее. Без лишнего за 2 недели часов по 15 в неделю реально весь нужный жс пройти.
677 2186393
>>186118
Пацаны говорят, что он просто копипастит официальное руководство разбавляя его графоманией и говнокодом.
678 2186397
>>186393
А про Хорстмана че пацаныс раена говорят?
679 2186399
>>185991
Что такое мурзилки?
680 2186404
>>186397
Говорял, что Хорстман чоткий пацан. Нечётким пацанам "Чемпиона по Java" не дают.
681 2186405
>>186404
он типа отпиздил предыдущего чемпиона?
priklucheniyamurzilki199002[1].jpg417 Кб, 1359x916
682 2186412
изображение.png235 Кб, 300x450
683 2186413
684 2186417
>>186404
https://blogs.oracle.com/java/post/new-java-champions-holly-cummins-aleksey-shipilev-and-david-heffelfinger

>Java Champions: Holly Cummins, Aleksey Shipilev, and David Heffelfinger


Типа сан-оракл дают медальки за заслуги известным членам сообщества?
685 2186442
Вопрос по Spring JDBC:
Чтобы у меня получилось корректная thread-safe конфигурация, я должен шарить один экземпляр DataSource между всеми темплейтами? Или лучше сделать его статическим бином?
686 2186497
Я что-то не понял? В хибере можно удалить сущность по ид только через hql? Но тогда это удаление проебывается в кеше. А если удалять, как пишут везде нужно сперва лишний селект делать.
Зачем так сделано?
687 2186499
>>186214
А на галеру без вышки берут?
688 2186540
>>186497

>Но тогда это удаление проебывается в кеше


Ты про кэш сессии? Если в нем что-то проебывается, значит, сущность в нем уже есть, значит, можно ее удалять, не опасаясь лишнего селекта.
689 2186565
>>186540
Про кеш фабрики сессий, т.е. второго уровня. Или он по другому взаимодействует с hql ?
Ну и вообще почему нет метода у сессии с удалением по ид? Там какой то сакральный смысл?
690 2186609
>>186565

>второго уровня


Ничего в нем не проебывается при удалениях/апдейтах через hql

>почему нет метода у сессии с удалением по ид


Вот такой дизайн. Если хочешь кидать как бы запросы напрямую в бд, подобно голому sql, пишешь запросы. Не хочешь - работаешь с сущностями, где применяется все это отслеживание состояний, кэш сессии и прочее. Удаление по id не является каким-то особым важным случаем, чтобы для него делать исключение.
691 2186637
>>186497

>В хибере можно удалить сущность по ид только через hql?


> void delete(Object object) throws HibernateException


> Remove a persistent instance from the datastore. The argument may be an instance associated with the receiving Session or a transient instance with an identifier associated with existing persistent state.


Создаешь пустой энтити, сетишь айди и удаляешь.
692 2186713
Сколько примерно займет времени вкатиться в java spring backend не с нуля? До этого изучил фронтенд на неплохом уровне
693 2186728
Есть абстрактный класс Person,в нем два поля,его наследуют два класса. При переопределении хэш кода должен ли я плюсовать туда хэш родительских полей или нет? Я думаю в абстрактном классе переопределить хэш,потом переопределить по полям в ребенке и тупо приплюсовать + туда хэш код родителя. Это будет правильно?
694 2186738
>>186713

>>времени вкатиться


Тебе в МВП тред, все эксперты там.
sage 695 2186743
Это можно как-то адекватно реализовать?
Кроме изменения сигнатуры на doSmth(A a) + апкаста внутри метода
696 2186939
>>186743

>Это можно как-то адекватно реализовать?


Нет, потому что ты пытаешься сделать нелегальную операцию. Вот пример, ты в B2 пытаешься передать не A2 который он поддерживает, а A1.
https://pastebin.com/srQ1wVJW

Более того, если у тебя есть метод с параметром <T> и в объявлении T указан как <? extends ...> то ты такой метод вообще ни с каким аргументов вызвать не сможешь.
sage 697 2186944
>>186939
Да, я это прекрасно понимаю. Вопрос был в том, чтобы сделать это красиво. Сейчас я проверяю класс и кащу до нужного. Появляется простыня из ифок/свитч. Хотелось бы автовайрить List<? extends B>, и строить мапу: класс А - объект B, но так не работает из-за того, что у меня "? extends"
image68 Кб, 1195x733
698 2186953
Читаю про Safe publication в Java concurrency in practice 16.2.4.
Про пикрил Брайан Гоец пишет, что это антипаттерн, потому что "possible for a thread to see a partially constructed Resource".
Как получить этот partially constructed Resource? Как я ни ебался, так у меня ничего и не вышло. new Resource() блокирует, пока объект не будет до конца создан.
К тому же Гоец сам потом добавляет, что если добавить volatile к resource, то всё становится ок. Каким образом изменение переменной на волатильную предотвратило бы partially constructed Resource?
Шипилёв тоже пишет, что с DCL всё в порядке, если переменная volatile (https://shipilev.net/blog/2014/safe-public-construction/).
Так как же получить не до конца построенный объект, которым пугает Гоец?
deleteByIdJpaRepository.PNG44 Кб, 1072x288
699 2186970
>>186609

>Удаление по id не является каким-то особым важным случаем


удаление по ид достаточно частый случай, как мне кажется. Или чаще с фронта приходит сущность с одним айдишником?
>>186637
жесткое костыление. В реализации spring crudRepository делают таки через селект + делит. Им не жалко селекта.
700 2186974
>>186944

>Появляется простыня из ифок/свитч. Хотелось бы автовайрить List<? extends B>, и строить мапу: класс А - объект B, но так не работает из-за того, что у меня "? extends"


Засунь это все внутрь базового класса. https://pastebin.com/1uHyY3gq
sage 701 2186979
>>186974
Да, все замечательно. Странно, что не смог до этого додуматься. Спасибо :3
702 2186985
>>186970

>удаление по ид достаточно частый случай, как мне кажется


Такое, чтобы откуда-то извне прилетел id, и ты, не глядя, кидаешь в бд для него delete, это только в простом случае прокатит. А довольно часто, действительно сначала нужно посмотреть на запись, которую удаляешь. Например, чтобы проверить, имеет ли право юзер удалять именно вот эту вещь. Или чтобы записать в лог/аудит, что удаляем вот такую херню, у которой были вот такие параметры. И тогда получается, что нет смысла плакать о "лишнем" селекте.
А если все же нужен именно строго один delete, не такая большая проблема написать пару строк с hql.
703 2186989
>>186970

>Им не жалко селекта.


Им надо ошибку выбросить.
704 2187228
Пацаны,как из коллекции сделать стрим и засунуть в новуюмтолько тех,у кого зарплата выше среднего значения?
sage 705 2187229
>>187228
За 2 прохода устроит?
706 2187239
>>187228
А нахуя тебе стрим делать?
707 2187246
>>187239
Задание такое.
Я сделал просто вывод среднего. list.stream
.mapToDouble(emp–> emp.getSalary())
А как это в сравнение засунуть я хз
708 2187248
>>187229
Мне бы хоть как сделать
709 2187252
>>187246
Ну вообще тот анон прав, в два прохода только можно.
sage 710 2187255
>>187248
var averageSalary = people.stream().mapToDouble(Person::getSalary).average().orElseThrow();
var middleClass = people.stream().filter(person -> person.getSalary() > averageSalary).collect(toList());
711 2187260
>>187255
Спасибо,тоже так хотел,но подумал,что в один получится
712 2187266
>>187260
В один тоже можно, через NavigableMap. Но не нужно.
713 2187300
Хочу хоть немного подтянуть английский на слух.
Можете посоветовать видосы по spring/hibernate с условиями:
1. Хорошее произношение. Индусы не подойдут.
2. Компетентные. Не инфоцигане.
3. Свежие видосы по свежим версиям технологий.
Опционально, но желательны неавтогенерируемые субтитры на английском.
Пока вроде одного нашел, подходящего по 1 и 3 пунктам.
https://www.youtube.com/watch?v=8SGI_XS5OPw
Но насчет компетентности не уверен пока. Он норм?
714 2187412
>>187266

>В один тоже можно, через NavigableMap.


Там сложность O(n*log(n)) + память O(n), уж лучше 2 прохода.
sage 715 2187437
>>187266
Так это же мы возьмем всех, кто выше медианной, а не средней. Или я неправильно понял, что ты хочешь сделать?
716 2187440
>>187437
За один проход считаем среднее и складываем в мапу. А затем берем из мапы все, что выше среднего.
sage 717 2187465
>>187440
Можешь написать код?
718 2187470
>>187465
Могу, а можешь заплатить?
1634641109821.png129 Кб, 401x440
sage 719 2187503
>>187470
Авансом
sage 721 2187587
>>187582
Так тут тоже 2 прохода. Отдавай фантик
722 2187593
>>187587
Где ты там два прохода увидел, показывай.
sage 723 2187600
>>187593
for + tailMap
724 2187604
>>187440

>За один проход считаем среднее и складываем в мапу.


>один проход


>складываем в мапу


>в мапу


Проиграл с этого computer scientist-а.
У тебя поди и поиск медианы через Arrays.sort() + array[mid] будет константной.
725 2187605
>>187600

>tailMap


Где там второй проход, показывай.
726 2187606
>>187604

>пук

727 2187614
>>187605
>>187606
Кретин, ты даже не понимаешь как под капотом работает TreeMap.

Хватит позориться, иди лучше почитай про красно-черные деревья и поиск в сбалансированном дереве.
sage 728 2187616
>>187605
Ты берешь values() и складываешь в лист
729 2187757
>>187300

>>Он норм?


Разве можети нигга мусульманин научить плохому?

2 и 3
Индус с хорошим звуком и почти нормальным произношением (единственный на весь ютюб) https://www.youtube.com/watch?v=I0poT4UxFxE

1 и 3
Инфоцыган с юдеми, но объясняет просто и понятно, с картинками. На торрентах его очень много.
https://www.youtube.com/watch?v=pTFZFxd4hOI

Ну а вообще смотри в сторону юдеми - там полно курсов хорошего качества на английском. Лучшие выложены на торрентах. Сабы там тоже у многих есть.
.png31 Кб, 620x395
730 2187939
Привет, джавач! Время для очередного графика в экселе по постам в день за последние 5 (пять) тредов.
sage 731 2187953
>>187939
inb4: жава мертва
.png28 Кб, 624x404
732 2187965
>>187953
Ок. Выводы делайте сами, моё дело построить.
sage 733 2187981
>>187965
У тебя по всем языкам есть стата?
image.png33 Кб, 934x694
734 2187991
>>187965
мертвый язык
735 2188022
>>187981
Нет, но я могу за несколько минут её выгрузить, прогнать через скрипт и загрузить в эксель.
736 2188056
Аноны, приветствую! Надеюсь сюда по теме пишу.
В общем, имеется сайт с паролем, для чека пароля используется проверка в виде правила регулярного выражения :

/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/

Можно ли исходя из этого выражения самостоятельно генерировать пароли ? Если да, то как ? Спасибо заранее за ответ!
737 2188059
>>188056

>/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/


Жесть, почему вместо явных диапазонов не стоят буквы, типа \d для цифр?
И что значит >для чека пароля ?
738 2188106
>>187614
Ну и как же он работает? Вот залезь в исходники и покажи мне второй проход там внутри.
739 2188206
Почему одна таска грейдла использует неправильную версию ждк?
740 2188261
>>187991

>visual basic +1.27%


>classic visual basic +1.06%


>go +0.13%


Да и почему питухон в топе, а жса/пхп втрое меньше чем плюсов?
741 2188449
>>188106

>Ну и как же он работает?


>Inserting a value in Red Black tree takes O(log N) time complexity and O(N) space complexity.


> https://iq.opengenus.org/red-black-tree-insertion/


А поскольку вставок N, то будет O(N log N).

Ты дурачок думаешь, что если ты сам проитерировался один раз, то у тебя однопроходный алгоритм. И не понимаешь, что под капотом дерево дает тебе большую сложность, чем 2 раза пройтись по массиву.
742 2188480
>>188449
Внутри tailMap дополнительных проходов нет, твердо и четко.
743 2188584
Что аноны скажут за книгу "Core Java" Сау S. Horstmann("Java Библиотека профессионала" Кей Хорстманн).
744 2188655
>>188480

>Внутри tailMap дополнительных проходов нет, твердо и четко.


В глаза порешься?
>>188449

>>Inserting a value in Red Black tree takes O(log N) time complexity and O(N) space complexity.


>А поскольку вставок N, то будет O(N log N).


Где тут про tailMap? Тут про map.compute() в цикле.

Да и tailMap имеет сложность совсем не константную, но на фону map.compute() это уже мелочи.
745 2188673
>>188261
Питухон сейчас на первом месте по запросам. Студенты, школьники,
хайп датасайнса и етц делают своё дело. Бейсик - мб ретро вейв(соскучились люди по говну).
746 2188697
Я новичок в джава, может кто поможет... Если я могу найти какие-то сторонние либы, которые нужны моему проекту, только в виде ссылок на мавен репозиторий, то как мне их получить себе в проект в идее? У меня нет никакой специально подключенной системы сборки, все собирается средствами самой Intellij Idea. Как-то можно не подключая мавен скачать все что нужно и чтобы идея добавила это в classpath проекта?
747 2188708
>>188655
>>187600
Вот тут про tailMap.
image.png26 Кб, 794x258
748 2188758
>>188708
Я не писал про tailMap(), я тебе про заполнения мапы пишу.
sage 749 2188803
>>188697
Да. Нужно скачивать жарку с либой и подключать ее ручками. но проще притянуть мавен/градл
750 2188823
>>188758
Похуй, все равно никто такой хуйней заниматься не будет.
751 2188840
>>188584
классика
752 2188842
>>188697
почитай про мавен, возьми шаблонный пустой мавен проект. В идее есть интеграция с мавеном, оно будет подтягивать все либы
753 2188855
>>188803

>Нужно скачивать жарку с либой и подключать руками


Но я не знаю где взять ее просто в виде жарки. Есть только ссылка мавен.

>В идее есть интеграция с мавеном, оно будет подтягивать все либы


Конечно будет, только у меня сугубо плохой опыт пытаться навернуть мавен на уже готовый большой рабочий проект. Из-за моей рукожопости и слабого знания темы, конечно, а не из-за самого мавена. Но все же рисковать не хочу.
754 2188857
>>188842
Возможно, ты имел ввиду создать пустой проект, выкачать туда нужные либы, и потом найти их физически на диске и спереть в целевой проект. Если так, то звучит довольно реализуемо, спасибо.
1634745357776.jpg434 Кб, 1080x2160
sage 755 2188867
>>188855
На mvnrepository можно скачать жарку
756 2188883
Всем привет!
У меня проблема, есть строка, типа:
"""00000000: 1d c4 15 25 91 e6 09 59 04 99 15 29 0a 45 21 29 ...%...Y...).E!)
00000010: 26 8e 74 a0 1a be 75 68 06 dd 70 33 a4 77 7a 5d &.t...uh..p3.wz]
00000020: b1 ba 22 a7 cf cc f7 ef b1 e3 13 ed f1 89 ad ad .."............."""
И нужно перевести двузначные шестнадцатеричные числа в byte[]. Я составил регулярку, которой соответствует каждое число: " ([0-9a-f]{2})" Есть ли такой метод в классе String или Matсher, чтобы в него передать такую регулярку, и она выдаст {"1d", "c4", "15", ..., "89", "ad", "ad"}? Типа, найти первую пос-ть символов, соответствующую регулярке: " 1d". Сохранить группу: "1d". И так далее.
757 2188902
>>188883
В Котлине - есть, а в Яве ебись с while(matcher.find())

И в регулярке замени пробел на \b
758 2188904
>>188883
Может я конечно дебил, но почему просто не сплитануть это все с использованием пробела, и не отсеять мусор по принципу if(arr.length != 2){мусор}?
759 2188924
>>188904
Отличная идея, спасиба! ^-^
Вот не зря же говорят, что одна голова хорошо, а две лучше)))
Всё же свежий взгляд на проблему важен :D
760 2188926
>>188883
А ты уверен, что тебе на вход должна приходить строка?
761 2188927
>>188926
Уверен, там строка, в которой много строк. Многострочная строка
762 2188932
>>188927
А вот я уверен, что это вывод рандомного hex-редактора и можно скармливать проге на джава не вывод, а ввод этого редактора.
763 2188935
>>188932
Это задачка из codewars, там нужно реализовать две функции: массив байтов -> такой текст и наоборот.
764 2188938
>>188935
Ясно, хуйней страдают.
765 2188940
>>188857
нет. Пустой проект, где в корне есть pom.xml файл. Открываешь проект в идее, открываешь вкладку с интеграцией с мавеном, нажимаешь кнопку "обновить", и оно выкачивает все либы автоматически
766 2188942
>>188938
Зато со стримами сочно поебался
767 2188949
>>188584
Единственный минус это не очень нужный свинг(гл.11 т.1), но без понимания свинга будет сложно с примерами кода из других тем, например из многопоточки(гл.12 т.1), потому что там код с участием свинга.
Если совсем зеленый, как был я, когда начинал читать, то смело пропускай:
- жаба fx(гл.13 т.1)
- модули(гл.9 т.2)
- и еще свинг(гл. 13 т. 2)
Это это не нужно почти всем.
Опционально:
- знакомство со свингом(гл.11 т.1)
- работа с хмл из голой жабы(гл.3 т.2)
- интернационализация(гл.7 т.2)
- безопасность(гл.8 т.2)
- платформенно-ориентированные методы(гл.12 т.2).
Остальное мастхев, хотя в некоторых главах тоже не особо нужные подпункты.
768 2188975
>>188949

>Не очень нужный свинг


Я тоже так думал...
769 2189118
>>188975
А что нужен оказался? Ну можно попасть в те пару процентов мест, где он нужен. Тогда и доучить можно. Там вроде ничего сложного, просто объемно достаточно для необязательной темы и муторно.
770 2189159
>>188949

>Если совсем зеленый


Я после долгого переыва решил вернуться к своему проекту, который на самом деле как лоскутное одеяло состоит из спижженых кусков кода с разных сайтов. Как итог костыль на костыле и жором ОЗУ и ресурсов ЦП. Удивительно что вообще работает. Сейчас хочется системное понимание этой вашей жабы получить, чтобы переписать код в труъ рабочее состояние. Сам работаю прогером 1С, принимаю соболезнования.
Хз, считать меня зеленым или нет. Наверное буду читать всё.
771 2189175
>>189159
Там крутых советов по перфомансу нету все равно, про кишки тоже. Там основы.
Да и для префоманса, мне как челику тоже плохо разбирающемуся кажется нужно знать не язык, а комьютер саенс. Алгосы, архетиктура пк и операционки.
К тому же на основе хорстмана ты ничего особо не напишешь. Чтобы написать что-то дельное, нужно читать много отдельных книг и кучу статей и документации. Причем объемом, как 10 Хорстманов.
Голая джава мне кажется очень мало что умеет. Жс или питон из коробки сильно больше дают на мой взгляд.
Что за проект?
772 2189386
>>168386
что за редактор?
773 2189388
>>189386
Эклипс конечно.
774 2189392
>>189388
у меня там другой интерфейс
775 2189758
>>189386
>>189392
Это intellij idea
776 2190031
Заебался настраивать этот JPA через код. Знающие люди , подскажите плез что надо сделать что эта залупа заработала.
springJpaConfig.PNG128 Кб, 1087x842
777 2190064
>>190031
Тоже сегодня начал тему jpa уже со спрингом, до этого с хмлками играл без спринга. Тоже не сразу смог настроить.
Не вижу у тебя @ComponentScan
778 2190075
Посоветуйте, плиз, по части говнокодия новичку.
Задача:
Мне нужно сделать некоторое логирование работы класса. Поскольку опыта с логгерами у меня нет, пока что это будет простой FileWriter. Так вот, я его создаю в точке запуска программы, и мне надо как-то его связать с логируемым классом. Сам класс, само собой, написан до решения что-то логировать, и высирает просто эксепшены, и иногда что-то в конслоль.
Я вижу два решения:
1)Включить в логируемый класс объект FileWriter как дополнительный член, и передавать его туда конструктором или просто через public-доступность для внешнего кода. В этом меня смущает, что этот сраный Writer не имеет отношения к бизнес-логике, и выглядит там чужеродным мусором.
2) В запускаемый класс (держащий main) включить его как публичное static поле, тогда его можно будет легко дергать из любого места в коде. В таком подходе смущает, что нельзя будет создать несколько логгеров, да и вообще статик поля периодически подбрасывают проблем когда-то в неизвестном будущем.
Что из этого лучше? Как вообще делают нормальные люди?
779 2190124
>>190075

>Как вообще делают нормальные люди?


Аоп. Но для этого нужна какая-никакая инфраструктура в приложении, может тебе это будет оверкилл и проще действительно руками вкрутить.
780 2190162
>>190075

>Что из этого лучше? Как вообще делают нормальные люди?


@Slf4j над классом пишут.
781 2190165
>>190064
А для чего он нужен в конфиге JPA ? Ты так пометил где у тебя интерфейсы репозиторий лежат ? Просто я в гайдах встречал @EnableJpaRepositories , но с это аннотацией у меня конфиг вообще не запускается.
782 2190177
>>190162
Ломбокобляди - это не нормальные люди.
783 2190188
>>190064
Покажи еще зависисмости. Ты кроме хибернет-кор и data-jpa что-нибудь подключал ?
784 2190270
>>190188
>>190165
Ещё пару дней не буду у компа. Это я приколхозил с книги проспринг5, глава8. Только там h2. Скачай код, посмотри. Зависимости не помню, не свои, не там. Тоже крутил конфиги с разных мест, как дебил, с этим вроде заработало.
785 2190316
>>190165
Ну да. РЕПО Этож бины. Их же надо откуда то брать. Хотя если у тебя Бут с его классом main, то там над ним в одной из аннотаций есть автосканилка бинов. У меня просто модельки, репо, тестик и конфиг.
До Бута я и спрингдаты ещё не дошел. Но когда смотрел видосы с практикой, читал спрингинэкш там вообще как то без конфигов на самых простых крудах все работает. Пока выглядит, как магия.
786 2190340
>>190316
>>190270
У меня не спринг бут , я по хардкору спринг мвс учу. Бут насколько я понял сам все необходимые бины создает для настройки JPA , ему тока в проперти надо вписать параметры для DataSource
787 2190547
>>190177
Это ты поехавший дебил.
788 2190551
>>190547
Нет конечно, ведь я не ломбокоблядь.
789 2190569
Почему декларация import не работает, если в ней нет ни одного пакета? Пытаюсь импортировать внутренний класс:
import somefolder.Outer.Inner; - работает
import Outer.Inner; - не работает, "package Outer does not exist", хотя папки я соблюдаю.
Как импортировать внутренний класс, не помещая ради этого всё в пакет?
790 2190571
>>190569
Потому что нет относительных импортов, надо писать полный путь от корня.
791 2190636
>>190571
Так у меня там вообще нет пакетов, и ни в одном из классов нет строки package.
Попробуй сделать импорт внутреннего класса без использования пакетов, нихуя не выходит.
792 2190640
>>190270
В общем с учетом добавления аннотации @EnableJpaRepositories(basePackages = {"proj"}) твой конфиг рабочий. Только я не понимаю зачем у тебя написано factoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter()) , если ты уже создал бин который создает этот адаптер и логичнее было бы вписать jpaVendorAdapter(). или я чего то не понимаю
793 2190725
Сап, джаваны. Посмотрел вот эту серию из двух видео https://www.youtube.com/watch?v=BmBr5diz8WA про Спринг. Понравилось тем, что представляет из себя нечто, что пригодно для обучения с нуля, но при этом захватывает ещё и внутреннюю кухню, причём в адекватном объёме, без слишком уж мелких деталей. Есть ли ещё что-нибудь похожее про другие популярные технологии? Тот же Спринг МВЦ, Хибернейт, что-нибудь типа JAX-RS... Чтоб после просмотра оставалось не просто понимание, как делать, но и что при этом происходит.
794 2190830
>>190340
Ну в той книжке без бута большая часть. Единственный большой минус книжки, что там не просто градл, а древняя его версия 2017 года. В новых туториалах хеловордах более свежий градл поприятнее.
>>190640
Это опечатка книжки походу. Я потом убрал это.
Я погуглил. Твоя аннотация нужна для работы через интерфейсы наследуемые от crud repository, а я пока не дошел до спринг дата жпа. И пользуюсь синтаксисом обычного jpa. И там достаточно компонент скана.
795 2190834
>>190725
Раньше тоже смотрел. Типерь думаю зря. Все эти постбин аннотейшн процессоры ищ головы вылетели, ибо тоже нулевыц как и ты. Если зашло, что что мешает всего Борисова посмотреть? У него как минимум спринг Бут и спринг дата есть.
796 2190854
>>190830
Слушай , а поделись названием книжки пожалуйста.
797 2190863
>>190854
Pro Spring 5 я же писал. Первый автор Козьмина. Есть на русском.
798 2190896
Кстати я вам пару месяцев назад рассказывал, что собираюсь сделать учебный круд с 5 реализациями репозиториев(rawjdbc, jdbctemplate, springdatajdbc, rawjpa, springdatajpa). Ну по ходу изучения. А все остальное чтобы одинаковое.
Ну короче сегодня решил сдаться. Ну от springdatajdbc я отказался раньше, ибо меня тут убедили, что это ненужная технология.
А вот на реализации rawjpa я понял, что объектная модель jdbc и в jpa разная. В пером ссылка через лонг айдишников, во втором через экземпляр объекта на который ссылаются. Можно было сразу догадаться.
Попробовал короче сделать модели с наследованием от интерфейса, в котором реализация геттеров/сеттеров всего, кроме различающихся полей. Там поколхозил с явным даункастингом и тесты заработали.
А вот с сериализацией через jackson на фронт проблема хз насколько решаемая. Вроде можно настроить jackson на несколько реализаций (но я не уверен, что смогу), но выглядит уж совсем еботней ради еботни.
Буду мутить второй проект с raw jpa + springdatajpa. Но хотелось бы на той же базе. Как настроить jpa/hibernate на уже готовую базу, тем более, что хибер в тестовой базе мне генерирует в постгрессе не всегда такие же типы, что я себе сам написал? Или это очередная глупая идея?
799 2190930
Тест
800 2190959
>>190863
Там пиздец кривой перевод. мимокрокодил
801 2190982
А вы тоже ржете с местных окатышей, которые пытаются учить спринг без спринг бута?
802 2190991
>>190959
Да, это так. И еще слишком бездумно распечатывают листнинги, с повторениями, многое не нужно, причем все равно часть кода не распечатывают и без кода перед глазами не все ясно. Я думал там пиздец толмуд 1100 страниц, если вырезать листинги будет 500, если их грамотно редактануть и убрать лишние куски листингов будет страниц 900.
То есть по факту книга очень поверхностная оказалась для реального объема текста на 500 страниц и охвата тем.
sage 803 2191001
>>190982
Думаю, если бы я начинал с голого Спринга, то дропнул бы жаву
про ее молчу
6017432188[1].jpg228 Кб, 851x1142
804 2191009
>>190982
Ну а что смешного? Сперва чистый спринг, потом с бутом. Я и книжечку скачал на русском.
Круды свои ксати пишу с бутом.
Иногда подрубаю стартеры бутовские, а пишу с обычными спринговскими контекстами и конфигами.
Я так то смотрел несколько курсов с практикой на буте, спринг дате и прочитал половину spring in action. Магия какая то. В общих чертах ясно что и для чего. Переделать чужие программы под себя я могу. А если с нуля писать для меня магия. По баелдунгам тоже как то очень обрывочно все понимаешь. Там темы в кучу, их миллион и не ясно, какая базовая, а какая для специфических случаев.
805 2191011
>>191009
ХА ХА ХА ХА ХА ХА ХА ХА, ОКАТЫШ
806 2191079
>>191011
EE я бы тоже хотел подучить. Но ссыканул. Потом заточу какую-нибудь книжку. В одном ряду с Java Concurrency in Practice.
807 2191083
>>191079
Мне страшно за людей, которые тратят свою жизнь на всяякую бесполезную хуйню.
808 2191094
>>191083
Можно поподробнее? Типа мне надо написать круд в стиле стековерфлоу девелопмент, не зная что вообще творится под капотом, походу пройти баелдунгов по самым самым непонятным встречающимся темам, задрочить топ100 вопросов к собесам на джуна и через месяц идти по собесам?
809 2191103
810 2191113
>>191103
Бля, это стрессово очень. Хочу размеренно учиться. Работа она ведь в лес не убежит.
811 2191118
>>191113
Учишься такой, учишься, а потом тебе 30 лет и ты нахуй никому не нужен.
812 2191122
>>191118
Так мне и так 30 лет. Какая разница работодателю приду я к нему в 30 или в 32? Я и так в конце списка. Так хоть получше подучу.
813 2191124
>>191122

>Так мне и так 30 лет.


А, ну так с тобой уже все, делай что хочешь.
814 2191125
>>190896

>Ну от springdatajdbc я отказался раньше, ибо меня тут убедили, что это ненужная технология


Зря отказался. Напиздели.

>Или это очередная глупая идея?


Наоборот, в коммерческих задачах никто не генерирует скрипты для базы хибером. Вообще базу делает разработчики баз данных, а не бэкендеры, а ты получаешь готовую схему.
Поэтому учись настраивать хибер на уже готовой схеме.
815 2191127
>>190982

>которые пытаются учить спринг без спринг бута?


Сам в томкат задеплоить своё говно и пару бинов ручками прописать не можешь, что ли?
816 2191128
>>191125
Я понял, ты теперь надо мной издеваешься.
817 2191129
>>191128
С чего ты так решил?
818 2191135
>>191129
Ну я про springdatajdbc не только тут почитал, о ней везде неоче отзываются и вакухах ее нету.
819 2191140
>>191135
Ну хз, анон, как знаешь. Я обратную инфу в треде читал, от местных, когда такие вопросы заходили. Просто не уверен, что ORM-подход прям в 100% случаев используют. В вакухах я вообще редко видел, чтобы какие-то компоненты спринга перечисляли. Обычно просто обобщают в что-то типа "знание Spring".
820 2191142
>>191140
Так если ты не тролишь, расскажи чем эта спринговская недоорм, как я видел в нескольких местах ее называют хороша. Может ее чисто по кайфу поучу, а не ради вакух.
А про компоненты часто вижу boot, mvc, datajpa, иногда security. И это только в джуновских. В мидловских еще 3-4 подфреймворка могут упомянуть.
821 2191152
>>191142

>Так если ты не тролишь


Конкретно итт троллингом не занимаюсь, пишу серьёзно.

>расскажи чем эта спринговская недоорм, как я видел в нескольких местах ее называют


Я не могу назвать себя опытным в java-бэке, но мне кажется, если "её" Spring JDBC так называют, то, скорее всего, уже не совсем понимают, о чём речь идёт.
ORM - это объектно-реляционное отображение. Например, ты подключаешь хибер, и он сам тебе вычитывает из твоей реляционной базы данных сразу готовые объекты - часть работы делают за тебя.
Spring JDBC - это всего лишь удобная надстройка над Java JDBC. Грубо говоря, это стандартный API, который позволяет получать доступ к БД и производить взаимодействия с ней. Там ты вручную пишешь Statement'ы В Spring JDBC - темплейты, где прописываешь обычные SQL-запросы, и на них получаешь набор ответов, как бы указатели на строки и колонки таблицы - ResultSet в Spring JDBC можешь получать объекты через имплементацию RowMapper. То есть в случае с JDBC, ты просто прогаешь SQL-запросы и получаешь результаты их выполнения. А вот построение объектов из них - это уже твоя задача в DAO-слое.
То есть, этот подход как бы на один уровень абстракции ниже, чем ORM-подход. Их нельзя сравнивать между собой, на мой взгляд.
822 2191154
>>191152
чел, springjdbc это и есть jdbctemplate(точнее jdbctemplate это самое используемое из springjdbc). Это я уже прошел. Поиграл с роумапперами и экстракторами. Прикольно.
Я имел ввиду springdatajdbc.
https://docs.spring.io/spring-data/jdbc/docs/2.2.5/reference/html/#reference
https://habr.com/ru/post/423697/
Это новый подфреймворк подфреймворка по сути надстройка над jdbctemplate, чтобы апиха репо-слоя выглядела, как у springdata.
823 2191160
>>191154

>Я имел ввиду springdatajdbc


А, ну я проебался, когда читал вопрос и зря простыню катал. Тогда да, хз, где это используют.
otusSpringCourse.PNG49 Кб, 551x764
824 2191161
>>191160
Это еще одна проблема спринга, что он блядь просто бесконечный и многие даже работающие на нем не знают что в нем есть, кроме того, что они используют.
А уж как нам вкатунам отбросить зерна от плевел это хз. А еще ведь правда есть java ee. И куча сопутствующих технологий.
Вот курс полугодовой на 80 часов видосов за овер 200к для вкатунов. Все ли это нужно? Я очень хз.
Spring in action такой же +- по содержанию.
sage 825 2191205
>>191161
Просмотрел бегло. Вроде как все норм
826 2191256
>>191205
Webflux, integration, cloud нужны джуну?
sage 827 2191271
>>191256
Клауд точно нужен. Хотя бы знать, что это такое, и как это работает. Реактивщина - от проекта зависит
828 2191683
Решал задачку по проге и пришел к решению просто блять создать дохрена бинов , которые делают одно и то же , но с разными значениями у возвращаемого объекта. Вопрос в том , можно ли это как то сделать не создавая дофига однотипных бинов вручную ?
Код рисует из символов шахматные доски используя эти бины.
829 2191686
>>191683
Чего блядь? Кинь задание.
image.png18 Кб, 807x124
sage 830 2191689
>>191686
Ну держи задание
831 2191690
>>191689
Ты охуел сагать? Пошел нахуй, даже читать теперь не буду.
832 2191691
>>191690
Забыл я офнуть ее, че такой токсичный\.
image.png1,1 Мб, 1920x1541
833 2191808
>>159705 (OP)
Написал это чисто для проверки работы переменных в цикле.
Что блядь не так? Почему все вылетает?

Scanner input = new Scanner(System.in);
String a;
int b;
do {
a = input.nextLine();
b = input.nextInt();
} while (b!=6);
834 2191809
>>191808
Scanner input = new Scanner(System.in);
String a;
int b;
do {
a = input.nextLine();
b = input.nextInt();
} while (b!=6);
835 2192453
>>190834
Про Бут и Дату не знал, спасибо за наводку, добавил на посмотреть.
836 2192534
Бля, мужики, помогите. Пытаюсь добавить spring security, и он вообще не реагирует ни на какую конфигурацию, которую я ему задаю. А если его вызывать явно, через AbstractSecurityWebApplicationInitializer
То он отображается, и даже сравнивает креды, но, опять таки, форма логина не конфигурируется, выбивает при переходе по любому запросу, что .permitAll, что нет - все похую. А также не различает роли, то есть залогинившись даже с ролью юзер я все равно могу перейти на hasRole(ADMIN). Готов скинуть на пиво 150 рублей, только поясните, какого хера у меня ничего не выходит
837 2192555
>>192534
Зависимости показывай
838 2192557
>>192555
Знаю, много мусора, но по-идее там ничего не должно мешать. Пытался и бутом, один и тот же результат.
image.png5 Кб, 438x49
839 2192559
840 2192578
>>192557
>>192534
лог при попытке с пермишеном User зайти на hasRoleAdmin
org.springframework.security.web.context.HttpSessionSecurityContextRepository - Retrieved SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=peter, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=0677E115B7894183BC916F48070E9A60], Granted Authorities=[USER]]]
22:06:01.849 [http-nio-8080-exec-1] DEBUG org.springframework.security.web.context.SecurityContextPersistenceFilter - Set SecurityContextHolder to SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=peter, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=0677E115B7894183BC916F48070E9A60], Granted Authorities=[USER]]]
22:06:01.850 [http-nio-8080-exec-1] DEBUG org.springframework.security.web.access.intercept.FilterSecurityInterceptor - Authorized filter invocation [GET /proj/wheel] with attributes [authenticated]
841 2193008
Подскажите плиз, как можно в проект в идее добавить исходники другого проекта? Именно в виде исходников, а не откомпилированных классов. Можно ли просто прям в проводнике ОС запихать в каталог проекта каталог с исходным кодом, чтоб он стал пакетом, или как-то это надо делать изнутри идеи, чтоб ничего не наебнулось в проекте?
842 2193012
>>193008
Ответь на вопрос: ты используешь мавен/градл как нормальные люди или ебёшься со "встроенными" в идею проектами?
843 2193023
>>193012
Я ебусь с двумя собственными проектами, которые были запилены давно и независимо друг от друга, без всяких мавенов и градлов (во первых, они начинались как песочницы, во вторых я нуб в системах сборки). Один из проектов теперь превратился в рабочий (работает в реальной пользовательской среде как своего рода микросервис), но мне в нем нужна функциональность другого проекта. Я бы мог второй проект откомпилить и подключить как библиотеку, но вероятность того, что там будет кровавая адаптация, очень велика, и я хочу его иметь именно в составе исходников, чтоб иметь возможность все редактировать прям на месте, без перекомпиляции каждые 5 наносекунд.
844 2193283
Вопрос к флибустьерам. Как вы обходите ограничение правильной редакции версии 2021 года у самой популярной IDE для Java?
А то я вчера скачал саму свежую версию, пришлось аккаунт создавать.
845 2193288
>>193283
Поставил из AUR прошлую версию
846 2193301
>>193283
Не обновляюсь.
847 2193311
>>193283
Прохожу курсы на степике. Раз в 3 месяца абужу степик в курсах, где дают сертификат. За 3-7 дней дают ключик на 3 месяца.
848 2193373
>>191808
Нажимая enter, чтобы отправить число, ты отправляешь так же и символ пропуска строки. nextLine() поглощает этот символ, а nextInt() - нет, оставляя его потомкам (в твоём случае - следующему вызову nextLine).
849 2193634
>>193283
Там нужно просто кое-какие файлы и директории стереть, чтобы триал сбросить. В интернете куча готовых скриптов по первому же запросу. Не ленись и пойди загугли.
Скрипт на сброс триала всех продуктов жидбренса для macOS могу кинуть в тред, если кому надо
850 2193638
Вопрос по хиберу и Spring JPA, каким образом он понимает связи?
Допустим, у меня есть две таблицы: компании и сотрудники.
Сотрудники хранят внешний ключ на id компаний. Схему создаю сам, хибер выполняет только validate.
Соответсвенно, в самом классе "сотрудники" стоит аннотация на связь ManyToOne (без cascade) и JoinColumn на внешний ключ.
Так вот, я делаю компании и кладу их в void компанииДАО.
Потом создаю сотрудников, добавляю им компании и кладу в void сотрудникиДАО.
Для первичного ключа у меня GenerationType.IDENTITY.
Все методы дао работают в своих транзакциях, т.е. у EntityManager всегда разные сессии.
Так каким образом хибер понимает, что компании в новых объектах сотрудников, которых я положил ВНЕ его сессии (а сессия есть только в пределах транзакции, как я понимаю) - это те самые компании, которые и отослал в компанииДАО ранее??
По итогу, он отлично разруливает, что и куда я положил.
Но как он это делает? У него же нет никаких первичных ключей, потому что в МОИХ объектах, которые я создал руками, они тупо не заданы.
То есть в сотрудникиДАО уходят сотрудники со вложенными компаниями, у которых не заданы первичные ключи в объекте, но они уже были добавлены в базу ранее, через компанииДАО. Как он их связал?
JpaRepository имеет аналогичное поведение.
851 2193642
Всё, забейте, не читайте это >>193638
Последствия ночного затупа.
Все первичные ключи там на месте, их в объект неявно entityManager.persist возвращает, когда туда объект передаётся по ссылке. То же самое и репозиторий делает, по-видимому.
852 2193655
>>159705 (OP)
Набросал несколько примитивных проектов на спринге на гитхаб. Думаю, что для портфолио хватит. Осталась теория для собеседования. Что посоветуете почитать до конца выходной недели? У меня из теоретических знаний только поверхностный университетский курс по джаве.
853 2193666
>>159705 (OP)
Дали рабочий МАК, на котором нихуя не понятно. Как-то можно стартовать пробный период Ultimate версии без регистрации аккаунта? Если нельзя, то скрипты помогут обновить пробный период или данные о времени останутся на аккаунте?
854 2193695
>>193666
Хуй с ним, скачал старую версию.
>>193634
Поделись, пожалуйста, скриптами на macOS.
855 2193770
>>193655
https://github.com/enhorse/java-interview
За неделю реально прочесть. Тут текста на 200 страниц где-то.
856 2193771
>>193023
В Idea можно несколько проектов в одном открыть как модули. Как это делать не знаю, но коллега таким пользовалась.
Погугли intellij idea multiple projects
857 2193777
>>193771
Сделал гораздо проще. Просто скопировал каталог с исходниками внутрь проекта. Идея без проблем все это увидела и вкючила в проект. Единственное что пришлось сделать, это подправить в каждом классе package defenition в начале файла исходника. Пока что каких-то проблем с таким примитивным подходом не нашел. Если бы мне нужно было например интегрировать это вместе с историей git-репозитория, был бы геморрой, а так все вроде норм.
858 2193780
>>193777
Чел. За время пока ты задавал этот вопрос, щелкал наугад что иде съест, а что нет, ты уже бы с мавеном разобрался.
859 2193784
>>193780
Да я просто забил сюда 4 строчки, чтобы кто-то мне сказал насколько так делать можно и нет ли подводных камней, потом еще минут 10 потратил на то чтоб попробовать.
С мавеном мне бы пришлось разбираться на каком-нибудь песочном проекте, потом тащить этот опыт в рабочий с риском все наебнуть. Короче, куча времени бы ушло. Я понимаю что тут полно гениев которые изучают спринг за 2 дня и кор за 21 час, но я не из таких видимо.
860 2193794
>>193784
А что у тебя за проект? Сколько своих классов, сколько внешних библиотек подключено?
Если там 20 классов и нет внешних зависимостей, то что там можно мавеном то наебнуть?
Просто я до того как освоил мавен пилил хеловорды меньше 10 классов на стандартной либе и их даже проектами язык не поворачивается назвать.
861 2193949
>>193634
Я этим способом и пользовался до 2021 года . Теперь же они аккаунт требуют. Не может быть, что до сих пор можно сбросить удалив те же файлы и ветку в реестре.
862 2193981
>>193794
Ну, тот куда надо добавить, содержит в качестве внешних библиотек два драйвера баз данных, библиотеку связи с продуктами MS_Office, и мой собственный утилитный джарник. Сам состоит из штук 10 пакетов классов по 5 в среднем каждый.
А тот который надо докинуть - просто минипроект из 8 классов и без зависимостей.
863 2194099
Знает кто-то, можно ли как-то явно инициировать запись в файл через FileWriter до закрытия потока? По дефолту никакие обновления в файл не идут до вызова .close, а хотелось бы делать что-то вроде коммитов, ничего не закрывая на полпути.
864 2194113
>>194099
вроде сам нагуглил, надо тупо вызвать .flush.
тупая привычка сначала высираться на двачи, а потом что-то делать, сорян гайс
865 2194245
Короче позвали на вакансию. Написано джава 8 и вот это https://n2oapp.net/docs/
Что это за фигня?
866 2194311
Что такое неизменяемый ссылочный тип? Это final класс?
867 2194327
>>194311
Чтобы класс был иммутабельным, он должен соответствовать следующим требованиям:

Должен быть объявлен как final, чтобы от него нельзя было наследоваться. Иначе дочерние классы могут нарушить иммутабельность.

Все поля класса должны быть приватными в соответствии с принципами инкапсуляции.

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

Для исключения возможности изменения состояния после инстанцирования, в классе не должно быть сеттеров.

Для полей-коллекций необходимо делать глубокие копии, чтобы гарантировать их неизменность.
868 2194387
>>194245
Жесть какая то, типа фулстек фреймворк.
Типа реакт внутри проекта спрингбута. А поверх реакта собственный DSL, основанный на XML. И фронт пишется на на этом DSL-xml.
Что-то я сомневаюсь вообще идти ли на собес.
869 2194391
>>194387
>>194245
Напоминает GWT, JSF и подобное говно. Нахуй это.
870 2194397
>>194391
Только я не понимаю почему они тогда не пилят на нормальных старперских технологиях. Зачем нужен обрезок с ограниченным функционалом поверх рякта. Может они сами запилили эту шляпу?
Но на собес я схожу. Нужно тренировать собесы.
871 2194410
Освежите вашу JAVA: почему на язык 30-летней выдержки вдруг резко возник спрос?
https://habr.com/ru/post/585318/
872 2194412
>>194410
Хуябр.
873 2194433
>>194410
А спрос разве резко возник? Вроде был всегда последние лет 20.
874 2194440
>>193949
Только вчера триал скинул - всё работает.

>>193695
https://pastebin.com/MN7FqJgq
Сохрани в .sh, выстави права на исполнение и запусти из терминала.
875 2194547
Когда завезут подобие горутин из го или акторов из скалы (акка) / эликсира?
876 2194554
>>194547
пиздуй в шарп, там есть
877 2194561
>>194554
А у вас почему нет и когда будет?
878 2194566
>>194561
Никто не заинтересован в развитии языка
879 2194567
>>194440
Спасибо
880 2194568
>>194547
Существует project loom, поиграться можно уже сейчас, но хуй знает, когда в основную ждк подольют, много лет уже ждём.
881 2194571
>>194547
>>194568
Зачем нужны зеленые треды в джаве? Всякие пулы подключений к базе делать и хттп соединения?
То есть это минимум два года надо ждать это в лтс джавы, а потом еще ждать чтобы во всякие томкеты и хикари добавили?
882 2194596
>>194566
Я хз, думаю потому что нет необходимости. Не то, чтобы я охуеть энтерпрайзер, но ни разу не было нужно это при работе с джава. А в шарпе только когда прогал в Unity. Чем тебя не устраивают обыкновенные треды?
883 2195288
>>194571
>>194596
А зачем нужны горутины в го и акторы в акке и эликсире?
884 2195349
>>195288
А сам то как думаешь?
885 2195376
>>195349
А вы сами как думаете, раз задаёте вопросы типа

>Зачем нужны зеленые треды в джаве


>Чем тебя не устраивают обыкновенные треды

886 2195390
>>191161
Что за курс, откуда взял, поделись?
887 2195403
>>195390
Это похоже на отус, ищи на торрентах. Там просто двухчасовые лекции на каждую тему. Научить толком не научат - просто будешь знать что это и зачем.
888 2195425
>>195390
да, отус. На nnmclub лежит.
Пока первые 5 вебинаров отсмотрел, полет нормальный, неплохо системетизировал, что уже читал. В том же проспринг куча неактуальщины оказалось. И в многих других гайдах тоже.
Норм на самом деле. Единственные минус из-за того, что это вебинары - много воды. А некоторые лекторы не умеют разговаривать и там воды больше половины.
Думаю после этого курса прочитаю спринг ин экшон(бросил его после трети прочтения первый раз) и норм будет. Как раз новое издание выйдет через 2 месяца.
>>195403
А кто научит?
889 2195464
У кого-нибудь итт получилось сделать индексы на MySQL базе через ChangeLog'и liquibase?
Вчера почти 4 часа возился - и ни в какую. Выплевывает какой-то экспепшон непонятный на стадии верификации, якобы у меня не указаны имени колонок. Ошибка не гуглится. Все доки перерыл уже.
Даже sql-скрип инклюдил в файл - всё равно не работает.
Отпишитесь, пожалуйста, у кого оно работает.
890 2195638
>>195425

>>вебинары - много воды


Меня бесят все эти "меня видно? эммм ну вот, понятно?". Особенно после юдеми, где тебе столько же информации выдадут за 15-20 минут с картинками и схемами.

>>А кто научит?


Я через петы учился. Сначала пару раз почти прямо по гайдам (юдеми), потом свои проекты с гуглением отдельных моментов. Когда вкатился оказалось что мои петы были не так уж и далеки от реальности, кек. Масштаб меняется, а принципы те же самые.
891 2195688
Анонимус, скажи, за какую ЗП ваши фирым готовы брать джунов без опыта?
Если я все технологии, которые указаны в вакансии изучил?
Только город укажите, а то в этих ваших ДС'ах рейты повышены.
892 2195704
>>195688

>>за какую ЗП ваши фирым готовы


Я зп других разрабов то не знаю, откуда мне знать сколько кабан готов платить? В вакансиях на джунов и вилок то обычно нет. 20-120к в зависимости от упругости.
893 2195729
>>195688
Если прям вообще опыта нет, то на 30к рассчитывать можно на какой-нить сбер хуестажировке. Я на пет проектах посидел, без опыта в резюме встал на 80к. Это в Новосибе
894 2195912
>>195638
ну мне кажется будет норм этот отус + спринг ин экшон + 2-3 пета. А что ты хорошее на юдеми смотрел?
895 2195951
>>194245
>>194245
Короче сходил. Собеса не было.
40 минут директор с кучей ненужных подробностей рассказывал, что они поддерживают миллион говна для гос органов. И им отдали на поддержку говнолегаси монстра инф систему для медиков. Им нужен базист на оракле с plsql и джавист.
Джависту придется работать с ораклом, постгресом, джавой8, спрингом 4.2, но с бутом, миллионом интеграций другими гос системами и кучей баз, очередями и тем странным фреймворком для фронта. Во фронте тоже походу придется ковыряться джависту.
Дали тестовое. Какая-то несложная шляпа с базой, веб-мордой и небольшим парсингом регулярками. Думаю опытный челик за час сделал. Мне 3-7 дней придется копаться.
Думаю таки сделаю тестовое чисто для себя.
Если вдруг возьмут, насколько такой опыт плох?
896 2195986
>>195951

>Если вдруг возьмут, насколько такой опыт плох?


А у тебя на руках уже есть 5 офферов или с чего ты решил перебирать офферами?

Глубоко ничего не изучишь, но получишь представление о большом количестве разного говна, будет о чем в резюме написать. И в целом лучше год тут отработать, чем потратить его на поиск работы мечты.
897 2196012
>>195986
Двачую этого.

Более того, на первом этапе глубоко лучше вообще ничего не изучать. Лучше изучать широко, в смысле поверхностно, но побольше всякого разного, чтобы быть всесторонне развитым. Это в перспективе куда лучше и выгодней, чем задрочить какую-нибудь одну хуйню, а за её пределами и хелловорда не мочь.

Да и всякие около/госконторы обычно работают довольно размеренно (хотя с уебанским управлением часто всякие факапы будут случаться наверняка), а значит можно учиться всякой хуйне и в рабочее время.
898 2196017
>>195986
По описанию кабан-кабаныча(реально оказался очень подходящим под стеретип) это прям легаси в худшем его понимании. Это говно под которое они нанимают написали другие такие же рога и копыта из другого региона лет 7 назад и оно уже сменило 2-3 компании сопровождения.
И на одно слово про технологии десять, как он много работает с местными бюрократами, с федеральными, выигрывает тендеры и т.д., что по каким законам.
Ну и хоть частники, но так много рассказывал об этом, что на меня снова пахнуло запахом(неприятным) госслужбы.
899 2196038
>>196017
И? Ты хочешь услышать, что это не работа мечты? Да это херовая работа, но это все равно лучше чем ничего.

Тебя же никто к батарее пристегивать не будет, через год обновишь резюме и будешь неспешно искать новую работу уже в приличной компании имея и опыт и зарплату на текущем месте. Можешь неспешно выбирать интересное предложение.
900 2196050
>>196038
хз, может вы мне еще подводные камни таких шараг накидаете. Понятно, что я сам буду думать. У меня в этом из знакомых просто никто вообще не разбирается, есть только один фронтендер. Хочется с кем то обсудить.
Я кстати все еще жду начала курса епама, нацеленную на удаленный найм на джуна в питерский офис. Мне уже сказали, что курсы епама это хоть какой-то вариант, но далеко не 100%. И логично, что у сегодняшнего варианта шансов стать первой ступенькой для вката больше.
Короче вопрос: написать тестовое на spring-jdbc или на spring-data-jpa. У меня есть проект на spring-jdbc, но там велосипед по загрузке скриптов sql для создании базы(я не нагуглил как это правильно делается). А spring-data-jpa я почти не трогал еще, но выглядит, что там все чуть-ли само делается.
901 2196154
>>196050

>хз, может вы мне еще подводные камни таких шараг накидаете.


Нормальных процессов там не будет и ты привыкнешь делать так, как там "принято". Я реально работал с сеньорами которые не понимали зачем нужны пул реквесты, код ревью и прочий CI/CD. Так он еще и активно сопротивлялся внедрению всего этого - типа 15 лет кодил так и все норм было.
Работа может быть организована через жопу. В начале года пока бюджетов нет работы мало, а в конце года когда нужно освоить бюджет куча задач которые надо сделать вчера.
Ты офис то посмотрел? Прилично выглядит? Чай-кофе-печеньки есть?

>Короче вопрос: написать тестовое на spring-jdbc или на spring-data-jpa. У меня есть проект на spring-jdbc, но там велосипед по загрузке скриптов sql для создании базы(я не нагуглил как это правильно делается). А spring-data-jpa я почти не трогал еще, но выглядит, что там все чуть-ли само делается.


Иди по пути наименьшего сопротивления. Идешь https://start.spring.io и генерируешь себе проект с JPA, H2 и прочими необходимыми вещами. Дальше напихиваешь туда требуемые вещи. Я обычно в корень проекта добавляю README.md с коротеньким описанием как собрать и запустить.
902 2196178
>>195912

>>хорошее на юдеми смотрел?


Мне Mosh понравился, amigoscode. Батыршинов (JavaBegin) и Алишев тоже пойдет. Они и на ютюбе есть (но там не все само собой).
Книги читал только по патернам/архитектуре/алгоритмам. По фреймворкам - хуита. Устаревают быстро.
903 2196190
>>196178

>Книги читал только по патернам/архитектуре/алгоритмам


какие?
904 2196226
>>196154

>Ты офис то посмотрел? Прилично выглядит? Чай-кофе-печеньки есть?


там совок. 5-10 кабинетов по соседству с кучей других компаний, в советском административном здании, переделанном под офисы.
И подход очень совковый у всех, госслужбисткий.
Но просто это в моей мухосрани в 20 минутах ходьбы от сычевальни. У нас в мухосрани есть еще адовые местные галеры. в 2\3 из них вообще нет спринга, а в остальных вакансии бывают раз в год. Может самому написать им в соцсети?(Знакомый фронт начинал с одной из этих галер и перекатился в епам на удаленку и сказал по организации процессов земля и небо, плюс переработки прям сразу)

>Иди по пути наименьшего сопротивления.


да, уже энтити накидал, вроде сохраняется. Правда всегда боюсь с jpa что-то напутать в связях типа manyToMany. Сейчас сервис с регулярочкой буду пилить, а потом контроллер и фронт.
905 2196227
>>196190
По алгосам - для начала и грокаем алгоритмы пойдет, Седжвика понемногу читаю (у него курс на курсере есть) но пока времени маловато. Это больше на вырост, щас я джейсоны перекладываю.
Паттерны, архитектура - Фаулер + мельком про DDD (Миллет). GoF пишут сложно и непонятно, но внезапно есть Head First Design Patterns в котором все это пересказано человеческим языком с примерами (другие книги серии не рекомендую, но эта - ок).
Но паттерны/архитектуру со временем и так понимать начинаешь и книги лучше читать когда уже не нулевой и писать что то осмысленное умеешь.
906 2196288
>>196227
Ну грокаем это по сути просто перечисление общего смыла алгосов, после них деревья не покрутишь.
Блоха советуют уж очень многие и Чистый код. думаешь стоит читать?
907 2196324
>>196288
Так этого и так хватает. На собесе про О(n) ответить сможешь, а деревья крутить джуна не отправят.

>>Чистый код


Если нравится фантастика. Это работает до первого изменения требования перед дедлайном.

>>Блоха


Я читал местами перед самим вкатом, чтоб подтянуть то что слабовато знал. А так лучше время потратить на практику и спринг.
908 2196337
>>196226

>Может самому написать им в соцсети?


Напиши, хуже не будет ни в какие черные списки тебя не внесут, а так может что и выйдет.
1633374028110.png180 Кб, 917x871
909 2196379
7 месяцев уже работаю на удалёнке. И вот казалось бы мечта уже исполнилась, но откуда не возьмись появилась другая проблема: мне лень даже из дома выйти в последний месяц. Я тупо утром просыпаюсь, сажусь за комп, работаю, вечером закрываю рабочий ноут, сажусь за пека, играю, ложусь спать, и так дальше по кругу.

Сэймы есть?
910 2196390
>>196379
Сколько кило нажрал?
911 2196394
912 2196402
>>196390
Живу также как анон, за полгода не изменился вес. Все что нажираю теряю при очередном стрессе/депрессии.
913 2196406
>>196402
Как блять разбавить эту рутину ебаную? Вечером хотелось бы покодить что-то интересное, и вроде хочется, и сил нет.
914 2196508
>>196406
Всего-то надо иметь какую-то жизнь кроме кода
915 2196524
>>196226

>5-10 кабинетов по соседству с кучей других компаний


это ГОРАЗДО ЛУЧШЕ модного аквариума опенспейса. Уж поверь
916 2196564
>>196508
Как в нее вкатится то, в эта вашу жизнь кроме кода?
917 2196580
>>196564
купи машину, к ней гараж. Это для начала
918 2196584
>>196564
Мне тоже интересно
919 2196596
>>196564
Вернуться с удалёнки в офис, начать активно общаться с какой-нибудь тяночкой-QA.
920 2196689
Что прочитать небольшое по объему по гарбеж котлектарам, и загрузчикам классов, чтобы адекватно ответить на собесе на эти темы.
921 2196692
>>196689
Книги по кору.
922 2196693
>>196692
там нет
923 2196698
>>196693
Есть. Бля буду.
924 2196730
>>196698
все книги по кору, предлагаешь прочитать?
925 2196741
>>196730
Читай первую.
926 2196749
>>196741
первой как известно был Брюс Эккель Thinking in Java. там этого нет, ты ошибся.
927 2196750
>>196749
Нет, не Первую, а первую.
928 2196758
>>196750
"Первую".equalsIgnoreCase("первую");
true
Это одно и то же.
929 2196762
>>196758
ЖАБА ТЕПЕРЬ БЕЙСИК? РЕГИСТРРНЕЗАВИСИМАЯ?
930 2196767
>>196762
Да, ты слишком долго спал. В java 8 добавили регистронезависимость и лямбды. В семнашке ещё строгую типизацию вроде убрали.
931 2196770
>>196767
ЭТО ХОРОШО! ДОГНАТЬ И ПЕРЕГНАТЬ!
933 2196820
Как познавать хибернейт? Книга Java persistence api и hibernate — круто? И стоит ли его одновременно со спрингом изучать?
934 2196854
>>196596
Они же тупые все.
935 2196865
Объясните, плиз. Какой смысл делать поля private, если все равно через getter/setter можно значения получать/изменять?
936 2197020
>>196854
Тогда с тяночкой-аналитиком, они поумнее.
937 2197184
>>196865
На самомм деле в модификаторах доступа вообще смысла нет. Ведь к любому полю можно получить доступ через рефлексию.
Делать доступ к полю напрямую без геттеров\сеттеров это детские грабли.
Если сделать геттер и сеттер, то это оставит больше возможностей для изменений в будущем. Ты сможешь добавить логику для этих методов.
938 2197190
>>197184
Да, здорово потом ебаться с геттерами, которые лезут в базу своими селектами пару раз и апдейты видел
939 2197198
>>196820
круто, но ты в ней утонешь на несколько месяцев.
940 2197267
>>197198
Окей, спасибо. Как тогда не утонуть? Что вообще нужно знать из хибера джуну?
941 2197280
>>197267

> Как тогда не утонуть?


Читать мурзилки.

> Что вообще нужно знать из хибера джуну?


Знать инфу из пары туториалов и суметь написать круд на жпа.
942 2197284
У нас было я знаю джава кор, с большей частью стандартной либы (включая всякие типа "сложные" закоулки, вроде дженериков, стрим апи, рефлексию, етц) низкоуровневое коннективити к базам данных, sql конечно же, немного опытен в свинге (хотя это тоже по большому счету станд.либа), и очень хорошо умею абстрагировать предметную область в какую-то программную архитектуру. Я могу с таким багажом уже стать джуном, или смело могу пойти сразу нахуй доучиваться?
943 2197289
>>197284
Можешь.
944 2197297
>>197284

>я знаю джава кор, с большей частью стандартной либы (включая всякие типа "сложные" закоулки, вроде дженериков, стрим апи, рефлексию, етц) низкоуровневое коннективити к базам данных, sql конечно же, немного опытен в свинге (хотя это тоже по большому счету станд.либа), и очень хорошо умею абстрагировать предметную область в какую-то программную архитектуру.


Набор студента, перешедшего на второй курс. Пока сам не напишешь круд, покрытый тестами и упакованный в контейнер, шансы на вкат минимальны даже на стажировку
945 2197312
>>197297
Проигрываю с местных экспертов-крудошлепов, которые из мультипарадигмального языка общего назначения сделали средство шаблонного крудошлепия, и не только этим гордятся, но еще и других через это мерило оценивают. Кринж нахуй. Ни дать ни взять, макаки забивающие микроскопом гвозди.
мимо
946 2197317
>>197312
Проигрывай дальше

>из мультипарадигмального языка общего назначения сделали средство шаблонного крудошлепия, и не только этим гордятся, но еще и других через это мерило оценивают.


Абсолютно во всех прочих задачах c# лучше, а дополнительно мои хотелки закрывает rust. Я больше не пишу на джаве вне РАБоты
947 2197320
>>197312
Если 80% вакансий такие, а на джунов-джавистов, которых нанимают открыто по объявлениям за 90%, то остальное просто статистически незначимо.
Так что для вкатунца по факту джава и является

>средство шаблонного крудошлепия


Это сложившееся в сообществе мнение.
948 2197323
>>197317
В чем прикол раста в сравнении с Си например? Что он может такого особенного?
949 2197324
>>197284

>включая всякие типа "сложные" закоулки, вроде дженериков


Никто не знает дженерики.
Сделай Builde дженерик, так чтобы код компилировался https://pastebin.com/CnSRGQhY
950 2197329
>>197317
Согласен про шарп на 107%. Хотя с одним но: Intellij лично для меня лучше VS, кроме своего мегаублюдочного конструктора форм (которые в Java все равно не нужны) Хотя есть решарпер и райдер, конечно, но я не пробовал.
Почему ты тогда не найдешь работу на шарпе?
genify.jpg106 Кб, 1920x1030
951 2197382
>>197289
Благодарю за надежду :3
>>197297
Окей, буду пока учиться еще
>>197324
Легко. Ну что, берешь на работу, лол.
В классе Бэ там аналогичный прием, только
public <T extends B.Builder>T bar(String bar) {...}
jpaDtoElementCollection.PNG260 Кб, 1877x930
952 2197408
Знатки jpa, помогите. Есть документ, у него есть коллекция "кодов", коды я засунул в @ElementCollection(fetch = FetchType.EAGER), потому что они всегда нужны.
Но на фронт мне нужно отдавать лист дтошек, все без основного текста.
Долгим перебором и подбором я дошел до выделенного jpql запроса, но он все равно не работает и я не понимаю почему.
Screen Shot 2021-10-29 at 16.40.44.png349 Кб, 1936x1566
953 2197411
>>197382

>Легко. Ну что, берешь на работу, лол.


Мы вам перезвоним.
954 2197433
>>197284
В голосину с этих сложных закаулков, хотя если под знанием стримов ты подразумеваешь написание кастомных сплитераторов, тогда вопросов нет
955 2197441
>>197433
А знание спринга - это постпроцессоры бинов @ несколько контекстов.
956 2197455
>>197411
Ну, ты ж не сказал что надо именно класс билдера дженерезировать. Можно и так попробовать
>>197433
От чего тут в голосину? Так уж видимо сложилось, что все навыки 95% прогающих на джаве сводится в дженериках к List<String> list, в стримах к какому-нибудь Array.toStrim.max, а рефлекшен это что-то что лучше вообще не трогать потому что нарушает какую-то там безпасность и медленно. Ну либо у меня в окружении одни дебилы, я не уверен.
genify2.jpg61 Кб, 1272x902
957 2197472
>>197411
Ну хз, мусора всякого так побольше, чем если только целевые методы дженеризировать. Но для любителей кучи скобочек и брейнфакинга конечно лучше
https://pastebin.com/BTQAPYTX
958 2197476
Есть проект на буте,он запускается,но грейдл все равно мне подсовывает значок "load gradle changes". Когда я туда нажимаю в Build: Sync вылезает имя проекта:failed. Почему так и нахуя он так делает. Повторюсь, проект работает без нареканий
959 2197484
>>197476
Грейдл хуйня.
960 2197499
>>197484
Сыглы,а фиксить как?
961 2197501
>>197499
Используй мавен.
962 2197502
>>197499
Переделывать на мавен, где таких проблем нет.
963 2197518
>>197501
>>197502
Ага,прям сейчас побегу переписывать весь проект на мавен
964 2197521
>>197455

>Ну, ты ж не сказал что надо именно класс билдера дженерезировать. Можно и так попробовать


Очевидно же что: .<C.Builder>.bar() - это говно. Хорошо когда в API сами дженерики не отсвечивают вообще.
A a = A.builder().foo(1).build();
B b = B.builder().foo(1).bar("abc").build();
C c = C.builder().foo(1).bar("abc").baz(0.5).build();

>>197472
Much better! @SuppressWarnings("unchecked") только добавить, чтобы глаза не мозолило.
965 2197531
>>197521
Ну, ты прав, конечно.
В основном в том, что многословность самого внутреннего кода - всего один раз, а клиентские многословные вызовы - многократные.
Хотя интуитивность даже дженерик-методов хорошая, как по мне - сразу видно что дженерик значит.
Короче согласен во всем.
966 2197561
>>197518
Давай-давай.
967 2197565
Сап. Поясните, чем джава принципиально и нишево отличается от PHP? вроде и то и то - серверный бэкэнд.
968 2197574
>>197565
Принципиально - ничем, все языки программирования более-менее взаимозаменяемы, если опустить ряд особенностей вроде типизации или многопотока.
Нишево - сложилось так, что жабу в основном юзают в очень больших проектах, а пхп - в маленьких и средних. Из-за этого экосистема развивается по-разному, и заменить одно на другое сложно. Жабашарпы отдельно, питонопыхожиесы отдельно.
969 2197582
>>197574
А руби и нода это та же ниша, что питон с пыхой?
970 2197583
>>197574
Ну вообще странно. Это значит, джава умеет поддерживать бОльшую сложность, чем пхп. Почему тогда она не вытеснила его и из малых проектов?
971 2197586
>>197582
Да.
>>197583
Не всё так просто. Жаба может поддерживать сложность, а вот простоту не может. Попробуй без удобных пыхо-CMS и фрейморков сделать какой-нибудь интернет-магазин на жабе - ёбнешься. Пыхоплеяда тем хороша, что небольшие проекты на ней очень быстро пишутся.
972 2197603
>>197476
Пиздец, теперь эта долбоебина вообще не стартует. Все классы помечены красным значком j. При этом в Edit Configuration он мейн класс не видит,ебанат блять
973 2197604
>>197603
Мавен, мавен, мавен.
974 2197613
А можно как то в спринге в теле хттп-запроса передавать обычные стринги?
Вот мне нужно передать с фронта пост запросом 2 поля объекта и еще 4 сфомировать на беке. И сперва я 4 поля забивал нулями. Но это как то не очень. Я например не хочу, чтобы фронт знал все поля настоящего энтити.
Ну самый разумный ответ - дтошка с этими двумя полями.
Но нелья ли просто две строчки передать в теле (ну вот лень мне писать дтошку например) без обертки? Если нельзя, то почему?
975 2197623
>>197613
Можно аннотациями Jackson, но это ебучая магия.
https://stackoverflow.com/questions/16019834/ignoring-property-when-deserializing
976 2197639
>>197604
Уже перекопировал блять,спасибо дядь вов. А вообще,я посмотрел что изменилось и сраный грейдл тупо проебал все стартеры,хотя они записаны в файле конфигурации,и не хотел билдиться потому что не может найти файлы, которые он сам должен был скачать и внедрить. Долбоеб блять,хуй я больше когда к этой залупе притронусь
977 2197641
>>197639
Я ведь хотел сегодня блять день посвятить изучению спринга,постгрес в докер закинуть и подключить к проекту,а вот хуй там,с двух часов,а это уже блять 9 с половиной часов,9 сраных часов я пытался починить эту шайтан машину. Пошел нахуй дибил ебучий сука зла не хватает
978 2197657
>>197184

>>это оставит больше возможностей для изменений в будущем


А потом в каждый проект тащишь ломбок, пишешь @Getter @Setter и не видишь этих геттеров больше никогда.
979 2197662
Какая разница какой ждк использовать? В чем разница например между амазоновским,оракловским и либерикой?
980 2197665
>>197639

>Долбоеб блять,хуй я больше когда к этой залупе притронусь


Вот и правильно. Больше джаву не трогай.
981 2197667
>>197662
С либерикой ты можешь претендовать на включение в реестр отечественного ПО, а с ораклом нет
D4OyIsvW0AE0fZl.jpg43 Кб, 741x454
sage 982 2197670
983 2197689
>>197657
Ну а ты как хотел? Один костыль, чтобы замести следы за другим. Минус на минус дают плюс. А два костыля совершают работу, результирующая которой, стремится к нулю. Зато соломка подстелена. Все выиграли.
984 2197690
>>197689
Все выиграли, кроме шарпоблядей, у которых сделано нормально, но всем похуй, все юзают жабу позорную.
985 2197700
В идее во вкладке VCS среда видит гит и показывает версию,а когда пытаюсь использовать через терминал пишет что гит не является командой. Что делать?
986 2197703
>>197700
Ну так идея умная и знает, где искать гит, нашла его по стандартному пути в Program Files, а терминал тупой и сдаётся, если не нашёл чего-то в PATH.
987 2197767
>>197284
Вот примерно такое ты должен уметь написать для джуна:
https://github.com/Raiffeisen-DGTL/cib-interns-test-task
988 2197771
>>197613

>Если нельзя, то почему?


Можно, но все просто пишут DTO-шку для этих целей, потому что мапперы вполне себе хорошо их сериализуют.
Плюс объект DTO можно легко валидировать, расставив аннотации для Validation Api в нём, и он сразу отрыгнёт экспепшеном в контроллере, если фронт невалидного говна прислал.
989 2197777
>>197767
Если не считать того, что будет плюсом, то довольно простое задание для пары вечеров.
Только я не понял, что означает
standalone - состоять из одного выполняемого компонента верхнего уровня
и
Схему БД желательно хранить в репозитории в любом удобном виде.
Кто-нибудь может пояснить?
990 2197778
>>197771
Помоги по-братски сделать дтошку. Или разубеди ее делать.
Короче хотел деркать дто прямо из базы. Но у меня не получается:

>Есть сущность "документ", у него есть коллекция "кодов", коды я засунул в @ElementCollection(fetch = FetchType.EAGER), потому что они всегда нужны. Из сущности выделяется дто, все поля кроме текста.


Нужно сформировать метод для репозитория springDataJpa и запросом jpql, который возвращает лист с теми DTO, сет кодов которого содержат определенный код. https://pastebin.com/ztsB90Dp
Тут мне вместо сета в конструктор дтошки передается один лонг.
И еще вся проблема в том, что мне нужен не просто лист дто, а с пагинацией.
Так вот я разобрался, как забрать page сущностей, а потом их форматнуть в page dto на ходу. Но там будет грузиться каждый раз самое большое поле из базы. За это могут предъявить.
И мне еще по этим кодам потом фильтровать надо будет.
Сейчас уже думаю лучше бы на jdbc пилил тестовое это. Правда там с пагинацией еще больше проблем.
991 2197779
>>197703
Ебать даун внатуре,и на эту хуйню дрочат красноглазики
992 2197785
>>197777

>standalone - состоять из одного выполняемого компонента верхнего уровня


Грубо говоря - всё запаковано в один джарник. Без каких-нибудь томкатов рядом, в которые ещё нужно это всё задеплоить. Ну, в общем-то, это как раз джарник спрингбута и будет.

>Кто-нибудь может пояснить?


Обычное описание sql-запроса на создание схемы базы данных в файле.
993 2197786
>>197777

>standalone - состоять из одного выполняемого компонента верхнего уровня


Ожидают, что ты не будешь выебываться и твое приложение будет состоять из одного сервиса.

>Схему БД желательно хранить в репозитории в любом удобном виде.


Выложишь вместе с приложением дамп своей БД.
994 2197787
>>197778
Анон, я завтра отпишу тебе, если никто раньше не ответит бошка болит пиздец и шевелить мозгами сложно
995 2197830
>>197767
Хуёво. Я такое легко могу сделать, но не в вебе. Да ладно, я уже и так понял, да и раньше знал, что без веба практически некуда лезть
996 2197874
>>197586

>Попробуй без удобных пыхо-CMS


на жабе тоже есть cms
997 2197876
>>197583

>Почему тогда она не вытеснила его и из малых проектов?


потому-что пыхпыхеры тоже хотят кушать
998 2197891
>>197767
Мне тестовое в "рога и копыта" выдали посложнее. Через неделю(как выполню или сдамся окончательно) выложу суда.
999 2197917
>>197767
Посмотрел пул реквесты и почему-то все вкатыши напрочь игнорируют существование в этом мире составных ключей. Их вообще не смущает, что генерируемый id не используется фактически никак, а все выборки осуществляются фактически по двум колонкам, которые у них не ключевые, ещё и без индексов.
1000 2197926
>>197917
Чел, я с гитом пока на вы. А как удобнее их смотреть в гитбаше/идее? Склонировать проект, в идее есть еще git -> github -> view pull requests. И виден код. Как этот код запустить или скопировать себе этот код с пулреквеста? Я вообще это могу сделать, как не владелец репозитория?
Ну и раз смотрел вкатунские пулреквесты, скинь пожалуйста ссылку на лучшее из худшего, что видел.
1001 2197998
>>197787
короче с Interface-based Projections https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections все работает без jpql, чисто на методах спрингдаты.
А с обычными дто я ебался весь день вчера.
И пагинация, и само отделение дто(проекции) и фильтрация по элементам коллекции.
Это практически все задание и есть. Сейчас на постгрес вместо h2 только накину. И только контроллеры с фронтом останутся.
1002 2198000
>>197876
Хрень полная. Какие-нибудь паскалисты тоже хотят, однако все они сдохли, и считанные выжившие единицы сидят в петушином углу
image.png3 Кб, 879x25
1003 2198025
Сап тред. Есть вопрос. На прикреплённой пикче выдержка из документации к PostConstruct. Если исходить из написанного, то получается, что обработка Inject происходит перед PostConstruct.

Вопрос: почему так? Ведь тогда получается, что впрыскивание происходит раньше, чем запускается postInit у BPP. То есть при такой логике впрыскивается неактуальный бин (например, без прокси). Как понимать такое?
1004 2198031
>>198025
А зачем понимать такое?
1005 2198034
>>196798

>Описывают пермген, который выпилили в JDK 8.


>Свежатина!

1006 2198045
>>198031
Как я буду пользоваться Спрингом, если не знаю до конца, как происходит создание объекта и как я могу на это повлиять?
1007 2198048
>>198045
Это называется абстракция.
1008 2198051
>>198025

>почему так?


Потому что нахуя тебе на практике PostConstruct-метод, в котором ты не можешь использовать зависимости бина.

>Ведь тогда получается, что впрыскивание происходит раньше, чем запускается


Действительно так, на этапе вызова PostConstruct не вся инициализация из BPP уже отработала, и что-то может быть еще "неауктуальным". На практике чаще всего этот эффект заметен в виде неработающих @Transactional.
1009 2198055
>>198025
Я надеюсь ты не из тех вкатывальщиков, кто решил сначала досконально изучить теорию спринга, прежде чем попытаться на нем что-то написать.
1010 2198061
>>198055
Так это правильный подход. Сначала учишь C, потом C++, потому джаву, причём задрачиваешь сокеты, свинг, треды и прочее, потом сервлеты с ЕЕ, потом спринг, потом спринг бут. По каждому читаешь минимум одну книгу на 1000 страниц.
1011 2198073
>>198061

>начинать с высокоуровневого языка


Лоускилльный вкатыш, плз
1012 2198076
>>198073
Так ассемблеры - это БАЗА, туда же вышмат, информатика и прочее. Это изучается само собой, но началом вката ещё не является.
1013 2198078
>>198045
Ну ты же не понимаешь досконально как работают процы от интела и амд, изготовленные за последние 5 лет, на которых и будут работать твои серверные программы под спрингом. И ничего.
1014 2198102
>>198061
Ну си и ассемблер куда ни шло. Но зачем тут плюсы? И си с ассемблером учится во время изучения архитектуры эвм, операционок и сетей. Там талмуды типа Таненбаума и после каждого талмуда горы спецификаций последних версий железа/операционок/сетевых протоколов. Ведь талмуды пишутся с задержкой 5-20 лет.
Ну и куда после синтаксиса джавы в сервлеты сразу? А спецификация jvm как же? Там тоже гора абстракций, которую абстракционист-перфекционист должен задрочить.
1015 2198105
>>198102
C++ - это мост в промышленные языки из C.
Ассемблер учится параллельно с архитектурой, но не C.
Спецификации надо читать сеньорам, для вката достаточно учебных талмудов по EE.
1016 2198108
>>198048
>>198055
Ну всё равно же полезно знать, как оно работает, хотя бы в общих чертах.

>>198051
Спасибо, понял. А как тогда быть, если нужно впрыснуть проксированный объект? Свой костыль городить как-то через Listener?
1017 2198121
>>198108
Хотя прокси ведь в поле для обычного класса и не впрыснешь... Ладно, отложу пока этот вопрос.
1018 2198128
Посоветуйте схему вката в спринг, плиз. С чего начать и по каким материалам, желательно не курсы а книги/видеоролики в свободном доступе или на торрентах
1019 2198135
>>198128
Мурзилки по спрингу в свободном доступе.
1020 2198140
Перекат будет когда Loom вольют в LTS версию языка. Иначе перекатывать разрешается только с аниме тяночкой в оп-посте.
.png160 Кб, 1000x1000
1023 2198150
1024 2198151
>>198149

>3


Это эклипсоуебище не ставить
1025 2198152
>>198148
>>198149
Не канон, ни на одной нет обвеса из 10 аннотаций
1026 2198158
>>198128

Отус
>>195425
вот другой чел советовал. Я только алишева смотрел. Основы наверно лучше ди популярнее всего разжеваны
>>196178
Еще prospring5 читал. С нуля подойдет, но много неактуального в примерах. Почти все примеры без бута и на хсл кофнигах. И самое уебищное это градл, причем древний, у которого нет обратной совместимости с нынешним.
Ну и по примерам - книга spring in action и на ютубе letscode два плейлиста хороших.
1027 2198257
>>197917

>составных ключей


огромное зло. Ты реально такое применяешь в проде?
1028 2198259
>>198000
пхп позволяет делать веб-приложухи, а паскаль нет
1029 2198276
>>198259
Паскаль позволяет делать и веб-приложухи, и десктоп, и многое другое, а пхп только веб.
1030 2198283
Грузить все реализации какого-либо интерфейса через ServiceProvider в одном и том же приложении норм идея?
1031 2198289
>>198259
Паскаль общего назначения язык, на нем что угодно можно, просто он нахуй никому не нужен, никаких ниш не смог занять, фреймворков нет, даже рад-студия пидорское ПО, которое стоит дохуя а пиратнутое стучит в офис разрабам
1032 2198291
>>198283
Нет, это очень хуёвая идея. Делай как все нормальные люди через DI.
1033 2198296
>>198108

>А как тогда быть


1. Убедиться, что проблема не умозрительна, а реально существует - ты в ситуации, когда нужно использовать в PostConstruct нечто, что не успевает подцепиться.
2. Использовать любой подходящий workaround, например, вместо @Transactional брать напрямую TransactionManager
1034 2198321
>>198291
Нахуй DI, если сканирование класспаса дороже сервис провайдеров?
1035 2198322
>>198257
Речь-то не о проде, а о задаче
1036 2198326
>>198321
И насколько часто надо этот класспатх сканировать, м?
1037 2198330
>>198326
При каждом запуске.
sage 1038 2198348
>>198257
А в чем проблема составных ключей?
1039 2198483
>>197917
>>198257
Вообще, для таких задач просто индексы нужно прописывать на нужные поля.
Другое дело, что в том же liquibase, у меня ни в какую не получилось индексы прописать. Ни через ченджлоги, ни через инклюд sql-скриптов напрямую. Была как-то такая задача - провозился в этой парашей 4 часа, и нихуя не заработало.
Может быть, в этом и причина, почему многие так сделали схему.
1040 2198534
>>198348
1) Как ты будешь ссылаться на эту таблицу из других таблиц? Там тоже делать дублирующие поля для составного ключа?
2) Может измениться структура, правила заполнения этих полей, обязательность, возможность дублирования и так далее. Всё это создаст огромные проблемы если использовать их в качестве ключей
3) Производительность и сложность индексирования. Ключ по текстовому полю - плохая идея
1041 2198536
>>198534
4) Поля могут меняться. Как их менять, если они выступают в качестве ключа?
1042 2198548
Как именно спринг бут запускает веб сервер?
1043 2198551
You can close all the open tool windows at once and thus enlarge the split screens. Place the cursor in an editor tab and press Ctrl+Shift+F12 or just double-click the tab. IntelliJ IDEA hides all the open tool windows so all the space is shared by split screens.

Как блять это говно ёбаное отключить? Каждый 3 раз при переключении вкладок у меня эта поебень срабатывает. Уже клавиатуру пополам почти сломал.
1044 2198553
>>198548
он содержит в своем составе встроенный
idea-tabs.png28 Кб, 743x397
1045 2198559
>>198551
Таки нашёл. Почти час искал.
1046 2198562
>>198548
AnnotationConfigWebApplicationContext aactx = new AnnotationConfigWebApplicationContext();
aactx.register(YourAppConfig.class);
DispatcherServlet dispatcher = new DispatcherServlet(aactx);
Tomcat tomcat = new Tomcat();
tomcat.setBaseDir(System.getProperty("java.io.tmpdir") + "tomcat_embed");
tomcat.setPort(8080);
Context rootCtx = tomcat.addContext("", new File(".").getAbsolutePath());
Tomcat.addServlet(rootCtx, "DispatcherServlet", dispatcher);
rootCtx.addServletMappingDecoded("/", "DispatcherServlet");
tomcat.start();
tomcat.getServer().await();

Но реально это размазано на 100500 классов.
1047 2198567
>>198562

>tomcat.start();


>tomcat.getServer().await();


В каком классе эти методы вызываются?
1049 2198590
>>198572
Хм, прямо в конструкторе эти методы вызываются? То есть томкат стартует сразу после создания бина спрингом?
sage 1050 2198604
>>198534
А, ты про это. А если составной ключ для Many to many связей?
1051 2198618
Привет, народ! Интересно узнать, кто что думает... скоро в университете иннополис стартует третий поток для обучения разработке корпоративных приложений на java (чуть ранее стартовало уже два, в каждом, как я понял, по 1000 мест). Самый прикол в том, что половину обучения платит государство, половину какая-то конторка Тим Форс, обещая после завершения обучения - собеседование и, возможно, трудоустройство. При этом, если последует офер, должен на них отработать год... так сказала менеджер. Сам курс стоит в районе 95к, итого на каждого вкатуна они раскошелятся на ~45к... Что-то не могу понять, какой профит с их стороны, платить чумовые деньги на обучение этой оравы, чтобы принять n джунов? Хм, не проще ли закинуть объявление на hh и брать тех же джунов за еду? Какие подводные могут быть?
P.S. сам курс ни о чем, за два месяца предполагается объять необъятное.
1052 2198619
>>198618
Просто забей и не связывайся с этим.
1053 2198623
>>198619
Сам планирую вкатиться, а тут такой сыр... есть вероятность, что придется пахать за МРОТ
1054 2198624
>>198623
Кто-нибудь вообще сталкивался/работал в этом Тим Форс?)
1055 2198632
Всем привет, проходил собес на джуна на джаву, сказали что вроде норм, но сказали что писать буду на Scala, кинут - разберусь. Приступаю через неделю. Внимание вопрос: "А что делать-то, епта?". Яж так сильно в функциональщину не погружался, я круды на спринге клепал. Сказали конечно что всему научат, но тем не менее, я за недельку решил сам начать что-то изучать. Что на этой вашей Scala делают? Посмотрел как там REST делается на Баделунге и ахуел немного, но тем не менее язык нравится. Наставьте на путь истинный.
1056 2198635
>>198632
Почему бы тебе не спросить в скала-треде?
1057 2198684
>>198632
Охуенно подфартило же. Тут наоборот как не спросишь, что надо джуну знать, так говорят что если ты не знаешь спринг то вероятность успеха равна нулю, а тебе сказали что разберешься по пути. Заебись же.
1058 2198727
Приветствую аноны. Насколько я знаю, java очень изолирована от системы. Я вкатыш пока что, поэтому хочу поинтересоваться, а насколько сильно она от системы изолирована? В чём это выражается?
1059 2198789
>>198727
По моему это пиздежь просто. Я сам вкатыш, но всегда, когда требовалось каким-то образом провзаимодействовать с чем-то вне программы, гуглилось это за минуты и делалось тоже. Например всякие там создания директорий, файлов, чтение/запись реестра, переменных среды и т.п. Есть куча встроенных в джаву классов которые для тебя все это абстрагируют
1060 2198793
>>198727
Это значит, что у тебя нет прямого доступа к системному API (winapi, posix и прочее), но и его можно получить через системно-зависимые обёртки. Больше никакой изолированности нет.
1061 2198797
>>198727
Если ты волокешь например в C, то можешь просто написать свою реализацию любой системщины, и вызвать ее из java с использование JNI.
1062 2198799
>>198632
На Скале не обязательно писать в фунциональном стиле. Можно продолжать писать в императивном стиле используя синтаксический сахар Скалы.

В целом если ребята не сильно угорели по типам, то освоишься легко.
1063 2198803
>>198727
Ну типа нельзя взять мусор из оперативки, вывалившись за пределы массива, как в сишечке.
1064 2198962
>>198635
Дэк его либо нет, либо 2 с половиной человека
1065 2199056
Джунам на собеседовании дают задачки с литкода или что-нибудь еще?
1066 2199083
>>199056
Не обязательно с литкода.
1067 2199092
Как подключиться к сраному постгресу в докере? Че вбивать и куда,нихуя не работает
1068 2199159
А вам на работе премиум идею оплачивают?
1069 2199160
>>199159
чем коммунити не устраивает?
1070 2199175
>>199159
Да, через корпоративный сервер лицензий.
>>199160
Тебе и вскода хватит.
1071 2199185
>>199159
У нас только фронтендерам.
1072 2199256
>>199160
плагины для:
- баз
- жс и фреймворков
- хибера и жпа
- хттп клиент
- спринга
И это я только вкатываюсь.
На комьюнити этого или вообще не будет или придется пользоваться клиентами баз и постманом каким-нибудь.
Интересно как с этим в SpringToolSuite или вскоде. Сейчас пишу тестовое для компании, где очень нарядли будут оплачивать идею.
1073 2199267
>>199256

>SpringToolSuite


Самое смешное, что для идеи этого нет.
1074 2199270
>>199267
В идее поддержка спринга из коробки.
1075 2199273
>>199270
В ультимейте только.
1076 2199276
>>199273
А зачем юзать коммунити?
1077 2199422
>>199092
Почитай про Docker Compose.
1078 2199499
>>199256
А чо там за хттп клиент?

мимо на ультимейте
1079 2199513
>>199499
https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html

Ничего особенного, но тыкнуться в свеженаписанную апишку не отходя от кассы много времени экономит.
1080 2199787
Начал читать главу Хорстманна Java Networking и не осилил. Какие ещё есть книги на эту тему?
1081 2199828
Пацаны,у меня идея не предлагает валючить авто импорт и в подсказки не выдает в докерфайле и при указании пути например. Где можно этот контекст включить?
1082 2199833
>>199828

> идея не предлагает валючить авто импорт


Пидоры из жидбрейнс ломали-ломали функцию автоимпорта, наконец-то доломали.

> и в подсказки не выдает в докерфайле и при указании пути например


Купить ультимативную идею или попробовать поискать плагин.
1083 2199838
>>199833
И так ультимейт,а чем там с автоимпортом? У меня кстати еще когда создаю вручную файл типо application context среда не отмечает его как спринг файл,он тупо висит как обычный, соответственно подсказок там тоже нет
1084 2199851
>>199787
а че ты там не понял?
1085 2199906
фаст вопрос:
Есть ли сейчас Spring in Action на русском языке в нормальном издании, где не будут допотопные технологии описываться, желательно спизжено с торрентов чтоб все это было?
1086 2199910
У меня докер запускается буквально 15-20 минут,как исправить? Тупо висит в docker engine is starting
1087 2199913
>>199851
Он просто перечисляет какие есть классы и какие методы в них вызывать, но общего представления у меня от этого не возникает. Как будто предполагается, что я уже писал сетевые приложения на другом языке и хорошо знаю, как работает этот ваш инторнет.
1088 2199919
>>197641

> докер


>>199092

> докер


>>199828

> докер


>>199910

> докер


Слушай, анон, мы может и понимаем, что раз ты учишь сопутствующие к жабе технологии, то тебе кажется логичным про всё это спрашивать в жаба-треде, но скажи, если у тебя сломается винда или надо будет починить принтер, про это ты тоже здесь спросишь?
1089 2199920
>>199906
Нет конечно. И вряд ли будет. Читай на инглише с автопереводом, там язык очень простой, даже я все понял.
Можешь прям 6ое издание начинать. Там первые 5-7 глав уже вышли, а вся книга выйдет через месяц.
1090 2199926
>>199906
Читай Pro Spring 5 на русском.
1091 2199932
>>199913
Ну мне все понятно было
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1
вот плейлист поверхностный-ознакомительный по сетям. Посмотри 5-10 видосов про ip, tcp, сокеты и http.
Я когда эту главу читал написал первое учебное приложение сам. Типа чатик в cmd на tcp-сокетах по локалке, с двумя потоками. Помню было два джарника: клиент и сервер, на клиенте пришлось захардкодить ип сервака. Поставил на второй комп в другой комнате и тнусом переписывался.
1092 2199933
>>199919
Ладно там кубер, но докер. Он сейчас даже в тестовых на стажёра, не то, что джуна. Это как с вопросом по гиту в отдельный тред отсылать.
1093 2199934
>>199926
Там много допотопщины.
1094 2199935
>>199933

> Это как с вопросом по гиту в отдельный тред отсылать.


Да, нюфаг-тред называется.
1095 2199937
>>199934
Скипай допотопщину.
1096 2199939
>>199937
А как понять что является допотопщиной если ты полный вкатыш?
1097 2199940
>>199935
Тогда все вопросы по спрингу туда же, у нас тут жаботред, а спринготред
1098 2199943
>>199940
а не
fix
1099 2199945
>>199940
Не надо крайностей. Спринг есть только в жвбе. Докер и гит есть везде.
1100 2199949
>>199945
Схуяли только в жабе, котлин уже отменили?
1101 2199952
>>199939
Читать всё. Вдруг ты вкатишься в древнее легаси с вебсферой, антом, шестой жабой, DB2, на спринге (третьем) только пара модулей, остальное на ЕЕ.
1102 2199957
>>199949
Его отменили, он только на мобилках, в котлине свои фреймворки, и т.д. Выбирай, какая причина больше нравится.
1103 2199968
>>199957
В последнее время я скорее больше проектов на котлине с вебфлаксом видел, чем с жабой. И gradle тоже нужно из жаботреда увольнять, жаба для него всего лишь один из возможных плагинов.
1104 2199980
>>199937
Но при этом там многое упущено. Например по тем же базам. На один пример с современными автоконфигами бута - 5-10 старых с хмл/ддава конфигом. Про бут, стартеры, хуяртеры придется отдельно читать.
1105 2200031
>>159709
Как написать кроссплатформенное десктопное приложение?
1106 2200103
>>200031
На js-говне, типа electron.
1107 2200158
>>199920
Сосачую этого.
Кстати, кто каким софтом пользуется для перевода? Лет 15 назад был годный Babylon, который мог моментально перевести слово под курсором. Сейчас уже канул, наверное.
sage 1108 2200229
Скалатред тоже умер. Из жвм осталась только жаба
1110 2200281
>>200274
Тоже его скачал 3 часа назад. Попробовал почитать Spring in Action 5 [2019], и оказалось что переводить там практически ничего не нужно.
>>200158 - кун
1111 2200288
Джуны в небольших городах и говномиллионников,какая у вас стартовая зарплата была после вычета налогов?
1112 2200314
>>200103
Зачем тогда нужен шарп?
1113 2200332
>>200158
тоже кутранслейт, только недавно яндоксовский движок перестал на нем работать. Приходится пользоваться гуглом. яндекс по моим ощущениям с английского на русский был чуть лучше.
sage 1114 2200334
>>200288
500 Минск
javaimageviewer.jpg373 Кб, 1625x972
1115 2200346
Привет, ребята!
Я перекатился из треда по шарпу в джаву, потому что шарп не может в кроссплатформенные графические приложения.
1116 2200365
>>200346
Охуенная попытка, зеленый (нет)
1117 2200369
>>200365
.Net Core может только в консольные и веб приложения. А если хочешь графические, то только Windows. Кроссплатформенность .Net Core - это обман.
1118 2200374
>>200346
В шарпе есть авалония. Но это всё равно нахуй никому не сдалось, гуй сейчас в основном в виде веб-параши, хоть в жабе, хоть в шарпе.
1119 2200376
>>200369
И что? Ты хочешь сказать что джава с ее инструментами работы с UI это типа то чем стоит заниматься по жизни? Серьезно?
1120 2200383
Если я использую Spring+Hibernate, какие есть способы сделать кастомный запрос к БД?
- Использовать аннотацию @query

Какие-то еще способы есть?\
1121 2200385
>>200374
По ней нет литературы, чтобы понять как ей пользоваться.

>>200376
Мне интересно делать красявые графические приложения.
1122 2200395
>>200383
Есть. Написать DAO, которая будет работать в обход хибернейта.
1123 2200411
>>200383
А что нельзя просто напрямую сделать запрос через драйвер базы с использованием низкоуровневого jdbc?
deepl.png50 Кб, 969x497
1124 2200469
>>200332
А как тебе DeepL?
1125 2200475
>>200469
все, кроме гугла и яндекса неудовлетворительно.
1126 2200504
Боль Джуна в 2к21:

Нужно изучить технологию
@
Гуглишь статью/видос
@
Вникаешь, радуешься
@
Случайно позже натыкаешься на статью "yoba-технология теперь устарела, надо использовать ололо-Api"
@
Ловишь бугург
1127 2200507
>>200504
Не тот тред?
1128 2200518
>>200507
А чё, тут побугуртить незя?
1129 2200525
>>200504

> yoba-технология теперь устарела, надо использовать ололо-Api"


Не надо. Даже если кто-то считает, что устарела, это ещё не повод учить ололо-апи, если на нём нет работы.
1130 2200531
>>200525
В итоге нужно знать и древние 20-тилетние технологие и попсовые 10-летние и модные-молодежные 5-летние.
1131 2200584
>>200525
>>200531

Простой пример:

Учишь как пилить CRUD'ы на Spring'e.
@
Чел показывает тебе аннотацию @RequestMapping
@
Радуешься
@
Знакомый мид/синь засерает тебя, говоря что нужно использовать @GetMapping/@PostMapping и др
@
Грустишь
1132 2200594
>>200584

> @GetMapping/@PostMapping


Не всё так однозначно. Понадобилось на рабочем проекте мне как-то покопаться в рест-контроллерах, а то в основном с соапом ебусь. Вижу везде @RequestMapping, с учебных крудов вспомнил про @GetMapping, попытался заменить, идея его не нашла, и выяснялось, что четвёртый спринг их не поддерживает.
1133 2200595
>>200594

>попытался заменить


получи по рукам что трогаешь лишнее без спроса
1134 2200604
>>200595
Нет, со спросом. Тебе отдают хуйню и говорят переделывать половину механизма, можно делать что угодно, лишь бы фронт мог вызвать.
1135 2200788
Нормально ли в качестве первичного ключа использовать класс UUID? Получение по id получится пиздец муторным
1136 2200790
>>200334
Как работается? Что на собесе спрашивали?
1137 2200799
>>200788
Использовать можно, но подумай, что на стороне СУБД это потом нужно будет индексировать.
1138 2200801
>>200788
Не нормально. Чего там муторного в автогенерации id?
1139 2200808
>>200801
Uuid выглядит модно,подумал может это тру и супер
1140 2200809
Скалист в треде. По сложившейся ситуации выше в треде описывал, вынужден писать на Scala. В связи с этим возник вопрос. Как часто приходится иметь дело с каррированием и функциями высшего порядка,
.png23 Кб, 746x268
1141 2200818
>>200808
Если хочешь модно, бери монгу, там уже из коробки вместо автоинкремента ID хуй знает что, тебе понравится. Правда, не совсем уже модно.
1142 2200843
>>200788
нормально. В случае если надо будет сливать несколько баз в одну - это единственный вариант
1143 2200865
>>200809
Я помню раньше были сухарики с курицей карри, прикольные.
1144 2200867
Кто-нибудь делал свои скоупы для спринга?
1145 2200959
Изучал Java в 2006-2007 в универе. Писал даже свой ftp-сервер/клиент. После универа уже не программировал и не интересовался Java.
Сложно ли будет вкатиться сейчас в язык?
1146 2200965
>>200959
Что значит вкатиться в язык? Что ты собираешься на нем писать?
1147 2200987
>>200965
Свой ftp-сервер/клиент.
1148 2201001
>>200987
Да хоть в 2056-2057 его пиши.
1149 2201003
>>200987
А ftp за 15 лет чем-то поменялся?
1150 2201037
>>200965
Десктопные приложения
1151 2201072
>>201037
Тогда несложно. Джава в десктопах мало развилась с 2007. Свинг вообще +- тот же.
1152 2201078
>>201072
Отлично. Значит напишу новый ftp-сервер, возможно даже клиент.
1153 2201106
>>201078
А потом обратно на завод?
image.png853 Кб, 1425x971
1154 2201118
1155 2201132
>>201003

>А ftp за 15 лет чем-то поменялся?


Ог умер.
1156 2201153
>>200594

> и выяснялось, что четвёртый спринг их не поддерживает.


О, познавательно, спасибо
1157 2201157
>>201153
Молись, чтобы это знание тебе никогда не пригодилось.
1158 2201159
Аноны, поясните тему исключений.

Конструкцию try-catch-finally я понял.

А что дает нам запись "throws" в сигнатуре метода?
Че-то там типа пробрасывается "наверх"..
Получается, что этот метод сам с исключением не работает и если оно возникает, то оно будет обрабатываться в том месте, где текущий метод вызывается?
Типа вместо результата текущего метода исключение придет?
1159 2201166
>>201159
Это ошибка в дизайне языка, суть которой в делении исключений на непроверяемые (unchecked) и проверяемые (checked). И если ты кидаешь проверяемое исключение или вызываешь метод, который кидает такие исключения, ты обязан либо поймать его в этом же методе, либо пометить свой метод throws, заставляя всех, кто использует твой метод, проделывать то же самое.
1160 2201179
>>201166
И всё это описано в главе про исключения в КАЖДОЙ БЛЯТЬ книге про джавакор.
1161 2201191
>>201179
Да слышал я сто раз объяснения, но не понял сути. Поэтому и переспросил, чтобы мне объяснили на говне и палках
.jpg98 Кб, 960x1280
1162 2201192
>>201179
Да, если бы все здесь перед тем, как спросить, сначала RTFM, активность постинга была бы на уровне /rm/. Но мне по фану отвечать.
1163 2201280
Нахер нужен Guice, когда есть Dagger?
1164 2201286
>>201280
Спроси в андроид-треде. Здесь разве что расскажут, зачем нужен Spring IoC, когда есть CDI/EJB.
1165 2201294
>>201286
Так Guice в андроиде не применяется вроде.
1166 2201350
>>200383
>>200395
>>200411

>драйвер базы с использованием низкоуровневого jdbc?


А как это сделать? Надо какой-то синтаксис jdbc учить?
Дайте ссылку, плиз

> какие есть способы сделать кастомный запрос к БД?


А можете, плиз, все способы перечислить?
Хочу понимать варианты
1167 2201361
>>201350
Ну ты чо как маленький-то? Ты же даже не гуглил.
Качается драйвер для твоей БД, подключается к проекту как зависимость, загружается в программу через Class.forName (видимо это надо чтоб класс-лоадер отработал), потом у DriverManager (это часть джава.скуэль) вызывается статический метод GetConnection, в который параметром передается всякая трехомудия с параметрами подключениея. Возвращается из вызова коннекшен, с которым уже можно всякое чудить.
Потом тупо пишешь запрос на языке SQL той базы, которую используешь, кладешь его в строковую переменную. Создаешь объект класса Statement, через вызов createStatement у объекта Connection. В зависимости от того, надо ли запрос параметризовать, юзаешь или просто Statement или PreparedStatement. Стэйтмент можно уже отправить выполняться на сервер. В зависимости от того, селектит ли что-то запрос, используется или execute или executeQuery. Если ты селектишь, то результат приезжает в виде так называемого ResultSet, у него есть как бы курсор, который указывает на единственный кортеж результата. Из того кортежа, на который сейчас указывает курсор, ты можешь вытаскивать результаты по индексу, имени атрибута, и т.п, и делать с ними уже все что угодно. Движение курсора в ResultSet только одностороннее - хотя структура и реализует интерфейс, позволяющий вызов previous, база данных пошлет тебя нахуй скорее всего, всегда работает только next(). В самом начале кстати курсор стоит как бы над первым кортежем, и чтоб начать что-то получать нужно один раз вызвать next(), чтоб получить первую запись
1168 2201374
>>201166
с чего это ошибка?
1169 2201414
>>201374
С того. В джаве так-то много чего не так сделано.
1170 2201418
>>201414
ну так обоснуй свой вскукарек
1171 2201420
>>201374
С ошибочности идеи, что существуют ошибки, которые всегда можно обработать на месте. Такого не бывает.
1172 2201425
>>201420
Причём в Go наступили на те же грабли и теперь пишут везде if err != nil { return nil, err }, чтобы прокинуть ошибку наверх.
1173 2201454
>>201420
если не можешь, выкидывай выше. При этом код выше должен жестко знать об этой возможности получения такой ошибки, которую надо обработать. Если он тоже не может, то снова выше. Это заставляет думать о корректной обработке эксепшенов
1174 2201471
>>201454
Я и выкидываю, куда деваться.
try {
...
} catch (final Exception e) {
throw new RuntimeException(e);
}
1175 2201472
>>201471
мразь
1176 2201517
Читаю Блоха, там "методы, генерирующие проверяемые исключения, не могут быть использованы в потоках непосредственно". В чем причина? Где об этом можно узнать подробнее?
1177 2201525
>>201517
Возможно, речь про Runnable, который не декларирует исключения, и если в качестве его реализации попытаться подсунуть метод с throws, это не скомпилится.
1178 2201630
>>201159
Если ты вызываешь метод, который в сигнатуре имеет throws, то у тебя два стула пути: либо ты оборачиваешь строку с вызовом этого метода в try-catch, либо тот метод, который ты пишешь в данный момент, тоже должен быть помечен как throws этого же типа исключения, либо супертипа.
Надо понимать, что если исключение возникло, то исполнение, так сказать, бизнес-логики метода в блоке кода прекращается. Если все это происходит в блоке трай, то продолжается оно в выражении catch и finally, если же ты просто пробросил вверх через сигнатуру метода, то метод этот вообще умирает, совсем.
1179 2201669
>>200867
Баляяя че молчите
1180 2201677
>>201669
что это?
1181 2201680
Кто-нибудь может объяснить, что происходит с ресурсами при упаковке? Куда мавен их девает и как правильно указывать путь до них?
Пытаюсь с помощью @propertysource достаю из внешнего файла пароли к базе, но томкат их не видит (а где он, блять, их вообще искать то пытается?).
1182 2201691
>>201669
Очевидно, что никто, все лепят синглтоны, большинство даже не подозревает, что есть что-то ещё. Пару раз попадались prototype и request, но делать кастомный скоуп - эио ж насколько спринганутое приложение должно быть.
1183 2201696
>>201691
ОБНОВИЛ СПРИНГ
@
ПЕРЕПИСЫВАЙ ВСЮ ПРИЛОЖУХУ ЗАНОВО
1184 2201700
>>201680
С ресурсами ничего не происходит
1185 2201702
>>201696
ЧЕТВЁРТЫЙ СПРИНГ
@
ЕЩЁ НА НЕСКОЛЬКО ЛЕТ
@
ВЕДЬ ИЗ ПЯТОГО ВЫПИЛИЛИ ПОДДЕРЖКУ EJB
1186 2201706
>>201525
А есть какие-то способы сделать это в принципе? Или принципиально никак не избавиться от того, что перехватывать и обрабатывать эксепшены придется внутри работающего треда?
1187 2201710
>>201706
Перехватывать, оборачивать в RuntimeException и кидать дальше, как здесь: >>201471
1188 2201727
>>201710
А чтобы снова сделать исключение обязательным к отслеживанию, я так понимаю, надо делать чтото типа
try{
thread.start()
}catch (RuntimeException rte){
if (rte instanceof MyException) throw new MyException(rte)
}

?
1189 2201735
1190 2201737
>>201735
Прикольные костыли
1191 2201744
>>201737
Самый главный костыль - это существование проверяемых исключений.
1192 2201826
>>201744
Чем они тебе не угодили? Ну если ты их так не любишь, пробрасывай всегда вверх. IDE это позволяет делать автоматически. Просто бесит что ли срань в коде? Тогда джава в принципе не для тебя, если только ты не какой-нибудь лобколюб
1193 2202043
Создал с помощью spring data rest три сущности. Запросы работают нормально только для классов с названиями в одно слово. У класса EmployeeDetail не работают никакие хттп методы. Почему так?
1194 2202047
>>202043
Ты случайно не проебал аннотацию @RestController?
1195 2202059
>>202047
У меня контроллеры и сервисы создает spring data rest. Я даже классы такие не создаю. При этом у сущности department например все работает заебись. Вбиваю в постмен localhost:8080/departments и все ок. А как вбивать имя из двух слов я вообще хз,уже и так и этак пробовал и с подчеркиванием и с дефисом
1196 2202068
>>202043
Вопрос закрыт,надо в кемел кейсе
1197 2202080
>>202043

>spring data rest


А нехуй всякое говно брать с запредельным уровнем абсракций.
1198 2202084
>>202080
Теперь эта падла вставляет null значения в поля базы
1199 2202133
Поясните немного новичку про Мавен. Если я например юзаю зависимости Спринга в каждом своем приложении, значит ли это что Мавен всякий раз выкачивает эти библиотеки и складывает локально у меня на диске, или он где-то в системе создает свой репозиторий, и сначала ищет там и подключает к проекту, а уже если не находит, то лезет во внешний репозиторий и тогда качает?
1201 2202139
>>202133
Да, сначала лезет в %username%/.m2/repository и ищет там, если не находит, качает.
1202 2202158
>>202135
>>202139
благодарю. согласен, я грешный долбоеб, который сначала идет ко всем своим друзьям на двачи а потом уже в гугол
1203 2202184
Бля,какого хуя у меня пост метод null значения в json кидает?
1204 2202290
>>202158
У тебя тут друзей нет.
1205 2202308
>>202290
Здесь все мои друзья.
1206 2202321
>>202308
идинахуй, пидор лучше про мавен пару статей наверни вместо двачевания, дружочек.
1207 2202392

>final Exception e



Зачем тут final?
1208 2202400
>>202392
Я все переменные делаю final, такая у меня привычка. И ты тоже попробуй.
1209 2202456
Поясните за курсы\лекции, которые на всяких торрентах и ютубах лежат.
Про любые, которые вы смотрели и можете примерно оценить. Даже если там просто java core.
Самому отсматривать ебанёшься, а за советами ко мне прибегают часто.
1210 2202459
>>200288

>миллионников


70+ у меня в рублях
1211 2202463
>>201118
Здравствуйте мои дорогие
1212 2202466
>>201361

>надо ли запрос параметризовать, юзаешь или просто Statement или PreparedStatement


Ещё надо добавить, что б не вздумал параметризовать простые запросы через конкатенацию строк, иначе можно получить дыру для sql injection.
1213 2202470
>>201361

>загружается в программу через Class.forName


Ещё забыл: начиная с JDBC type 4 драйвера, его не нужно тянуть руками через класслоадер.
1214 2202489
1215 2202520
>>202459
Город?
1216 2202521
Поясните за Н2. Если кините как докер компоус составить вообще супер
1217 2202556
>>202520
Деанон-травля же.
Город-миллионник в РФ.

>>202521

>Поясните за Н2


Её, в основном, используют как in-memory database. Профиты в виде использования для тестов, в том числе.

>Если кините как докер компоус составить вообще супер


Миллиард статей и видосов на ютубе по запросу "docker compose spring postgres". C стационарной H2 всё должно аналогично работать. Единственное, если она долго стартует и приложение успевает упасть, то, возможно, нужно будет присрать какой-нибудь скрипт, типа этого https://github.com/vishnubob/wait-for-it
1218 2202566
В чем смысл проверяемых исключений?
Я так понимаю, что в том, чтобы мы имели возможность самостоятельно обработать возникновение исключительной ситуации, которая не относится к RuntimeException. То, что относится RuntimeException, является непроверяемым потому, что восстановление работы программы после него невозможно/нецелессобразно? Есть вот, например, проверяемое исключение FileNotFoundException. Если мы перед октрытием файла, к примеру, сначала проверим его на наличие, а в следующей строке откроем, все же есть вероятность, что между этими строками файл будет перемещен/удален и поэтому нет способа избежать исключения с помощью проверок. А например, деление на ноль всегда вина того, кто пишет. Такой смысл?
1219 2202591
>>202466
Что ты имеешь ввиду под конкатенацией строк? Если ты сконкатенировал у себя в коде и отправил запрос уже готовым, чем это отличается от того чтобы просто отправить запрос? Или там есть какие-то механизмы отправлять запрос в СУБД кусками?
1220 2202592
>>202521
оно очень примитивно по сравнению хоть с постгресом и обычно не взаимозаменяемо. Может это для всяких мобилок, хз
1221 2202593
>>202566
Нет. Смысл в том чтоб ты не мог проигнорировать факт возможности возникновения проверяемого исключения. Ловить ты можешь в том числе и непроверяемые (ты в трай-кэтч можешь заключить блок кода который бросает рантайм эксепшен, словить его и обработать, просто ты не объзан этого делать. Ты можешь в трай-кэтч заключить вообще что угодно, даже если там никаких исключений не случается, хотя все тело метода, исключив выход чего-либо наружу). Так же можешь и не ловить проверяемые, пробрасывая их вверх во всех мотодах где они вываливаются, вплоть до main (это чревато тем что твоя программа будет наебываться по любому самому пустяковому эксепшену). Короче, у тебя нет прям непреодолимой обязанности делать что-то с ними, они просто как иголки воткнутые в воротник, настоятельно подталкивают тебя использовать их так, как они задуманы.
1222 2202609
>>202321
Иди таблеток прими от нервов, токсик
1223 2202856
Что может быть интересного в работе на спринге? К какой работе следует стремиться?
1224 2202862
>>202856
Откуда нам знать, что тебе интересно? Может, ты так любишь писать бизнес-логику без привязки к языкам и технологиям, что тебе и кобол понравится.
1225 2202865
>>202856
Ничего, РНН.
1226 2202926
>>202862
Ну это субъективный вопрос. Что у тебя может вызвать интерес в работе на спринге? Я просто пока не работал. Хотел бы послушать мнения других людей об их интересах.
Ну понятно, что очень значительному числу >>202865 даже тех кто работает, интересна только зп.
1227 2203008
>>202926
Наверное, возможность поиграться с архитектурой. Интересно делать что-то с нуля, когда дают самостоятельно написать целый модуль или микросервис, там прокачиваешь умение в архитектуру, может понадобиться юзать интересные спринговые фичи, о которых и не слышал раньше. Но такая возможность выпадает не очень часто, обычно надо дорабатывать или фиксить существующее и написанное давно. На больших проектах почти весь спринг скрыт за ядром приложения, и пользуешься в основном всем готовым, никогда не открываешь конфиги, пишешь логику и скучаешь, от спринга юзаешь пару аннотаций.
1228 2203071
>>203008
Спринг для этого и есть. Чтобы вместо архитектуры писать логику.
1229 2203086
>>203071
Создание архитектуры невозможно автоматизировать, это наиболее творческая часть программирования. Можно использовать готовые ее паттерны просто.
1230 2203222
>>202593
Я просто не до конца понимаю, зачем это разделение на проверяемые и непроверяемые и на каком основании они сделаны? Как обращаться, мне понятно. Чтобы обратить внимание? Почему именно на них? Есть ли какая-то смысловая разница? Моё предположение было в том, что разделение основано на том, что возникновение RuntimeException всегда зависит только от программиста, написавшего код, который породил RuntimeException, в то время, как проверяемое исключение (отсутствие файла) гарантированно предупредить невозможно (между двумя строками проверки наличия и открытия он может быть перемещен), потому что там задействованы внешние ресурсы, которые неподконтрольны программисту, написавшему код. Верно ли это?
1231 2203241
>>203222
Не могу тебе на этот счет ничего сказать. Мне это представляется довольно естественным: тебе дизайн языка дает возможность как вынудить пользователя помнить о возможных исключениях при работе с твоим кодом, так и скрыть эту возможность, воспользовавшись анчекед вариантом. Зачем задаваться вопросом, зачем дано слишком много каких-то возможностей? Лучше думать о тех, которых не дано, а надо бы.
Про ситуацию с файлом... опять же не понимаю что не так. Механизм исключений как раз таки тебе позволяет в случае если файл куда-то перемещен не наебнуться при попытке начала работы с ним, а предпринять, например, вторую попытку, указать новый файл, и все такое. И то как оно сделано вынуждает тебя хотя бы обратить на это внимание (хотя ты можешь забить и просто пробросить вверх). Если бы там стоял анчекед, ты бы, возможно, просто даже не стал париться о том что файла может и не оказаться, просто набисал бы логику а потом словил эксепшен. С этой точки зрения, безопасность работы с этим инструментом была повышена через чекед эксепшен.
Анчекед эксепшены они имеют такое свойство, что возникнуть могут буквально везде. Если бы дизайн языка не имел вообще анчекед варианта, тебе приходилось бы буквально каждый математический стейтмент оборачивать в трай-кэтч, потому что вдруг там деление на ноль. Естественно, это уже что-то вроде неоправдявающего себя перебдения за безопасностью. Тебя бы такой стиль просто заебал.
1232 2203325
Блять почему эти контроллеры не работают , что я еще вписать то должен.
1233 2203364
>>203325
в маппинге косых черточек не хватает
.png14 Кб, 720x259
1234 2203369
>>203364
Скорее дело в каком-нибудь web-xml/beans.xml/другом древнем говне.
1235 2203378
>>203369
Нету тут XML , задача ебанутая. Этот конфиг был как дано. Только вот он нихуя не работает и в тестах независимо от того что я меняю в коде стабильно 404
1236 2203383
Ну че, какие пет проекты пилите, откуда идеи черпаете?
1237 2203385
Сап, на связи вкокотун. Есть собственно вопрос: а можно ли на Java написать допустим бампалку для двача или автопостер для втентакле? Иными словами можно ли как-то имитировать/автоматизировать действия на сайтах с помощью Java?
1238 2203387
1239 2203392
>>203383
Форумы и интернет-магазины, потом вкатываемся в работу, и больше никаких петов. Бесплатно что ли этим заниматься?
>>203385
Можно, хоть на ассемблере можно, но для это лучше взять какой-нибудь питон.
1240 2203400
>>203392

>вкатываемся в работу, и больше никаких петов


Беспетпроектную чмоню не спрашивали.
1241 2203406
>>203400

> пуксреньк

1242 2203474
>>203400
Но современная джава заточена под большие серверные приложения. И ты такое:
1. Вряд ли запилишь один.
2. Под большой проект нужна большая дорогая инфраструктура.
А если пользоваться джавой для чего то более мелкого, то будешь пользоваться не самым подходящим инструментом, то есть забивать гвозди микроскопом. Так что на джаве пилятся учебные проекты(причем скучные и однотипные), для изучения джава технологий и их возможной демонстрации для джунов. А ты уже не соискатель, то они и не нужны.
1243 2203477
>>203385

>а можно ли на Java написать допустим бампалку для двача или автопостер для втентакле



Да, можно. Берем selenuim и погнали нахуй. Никто не запрещает.
Только не проще ли питон взять для этих целей? Правда вк уже умеет ботов распознавать. А для двача нужен пасскод.

>>203383

>откуда идеи черпаете?


Из головы.
Много идей всяких.

Распределенное отказоустойчивое хранилище данных.

Бот для инсты/vk, который будет на протяжении долгого времени собирать разную информацию и строить социальный граф. Что-то вроде автоматизации построения досье на человека и его окружение.

Система контроля версий для геометрических моделей. Во всяких 3ds max и cad/cam наверное такое уже есть, но все равно интересно самому подобную хуевину сделать.

ГИС система с бекендом на жабе, и с фронтендом на js или c++/rust/wasm. Что-то вроде клона викимапии или народных карт яндекса. Ну и соответственно хранилище для картографических объектов. Хотя это уже излишнее велосипедирование, postgis давным давно существует.

Всякие интерпретаторы/компиляторы/трансляторы. Тут можно много всякого придумать. Но какой-нибудь транслятор Verilog -> VHDL было бы интересно запилить, правда такой уже наверняка есть.

Как-то так. Можно хоть всю жизнь писать, работы дохуища в каждом из проектов. Как инженерной, так и исследовательской. Другое дело, что их писать можно на любом другом языке, не обязательно на жабе.
А вообще идеи для проектов берутся легко, если у тебя есть кругозор какой-никакой. Ну то есть, если ты последние 6 лет только лишь скроллил двачи 24/7, то ничего кроме скачивателя вебмок из фаптредов и автобампа тебе на ум не придет. Нужно кругозор расширять.
1244 2203479
>>203477

>Система контроля версий для геометрических моделей. Во всяких 3ds max и cad/cam наверное такое уже есть, но все равно интересно самому подобную хуевину сделать.


Вот об этом тоже думал, остальное в голову вообще не приходило.

>кругозор какой-никакой


Вот это точно. Устраивался впервые на одну работу, связанную с продажами - сразу понял что там можно автоматизировать. Правда решение для этого уже существовало. А так как я больше нигде не работал и не знаю других воркфлоу, то и идей, соответственно, нет.
1245 2203578
>>203477

>Система контроля версий для геометрических моделей. Во всяких 3ds max и cad/cam наверное такое уже есть.


А что, обычный гит этого не сумеет? Это же просто бинарные данные о геометрических примитивах в составе модели
Професси-анально работал в 3DMax несколько лет - там такого не было (правда это было много лет назад)
1246 2203580
Почему Н2 не сохраняет объекты в базу? Посылаю запросы,возвращает и добавляет данные,при этом в самой базе изменений нет. Тип подключения у меня embedded,файлик лежит в папке с ресурсами.
1247 2203591
>>203580
не коммитишь транзакцию может
1248 2203604
Просмотрел серию гайдов по Spring Core, вроде все понял, все легко. Не понял только одно: нахуя все это надо? Чем создание контекста и получение из него бинов проще, чем создание точно таких же объектов руками?
sage 1249 2203607
>>203604
Потому что руками делать больнее
1250 2203608
>>203607
Что это значит? Или ты просто зеленишь? Я правда не понимаю.
То есть я понимаю что наверное вся важность спринга раскрывается вместе с прочими его компонентами типа бута, мвс, секьюрити етц. Но вот если взять кор в вакууме то это какая-то муть имхо
sage 1251 2203615
>>203608
Ну, кор в вакууме редко используется.
У тебя есть 100+ объектов. Тебе их нужно создать, настроить, проинжектить. Скорее всего придется делать какую-нибудь фабрику и изобрести спринг и каждый раз ее править, когда что-то меняется. Получаем огромный класс-помойку, на котором постоянно мерж конфликты, в который лучше не лезть вообще и тд и тп
1252 2203618
>>203615
Еще так и не понял пока что, как создать несколько бинов из одного класса, но с разными значениями values. В файле пропертиз дублирование не допускается же
1253 2203623
>>203618
Можешь через конфиг:
@Configuration
public class MyConfig {
@Bean
public MyBean foo() {
return new MyBean();
}
@Bean
public MyBean bar() {
return new MyBean();
}
}

И при автовайринге юзать @Qualifier
1254 2203648
>>203071
Ты путаешь архитектуру и инфраструктуру.
1255 2203660
>>203604
Ищи в книге
2015 Spring 4 для профессионалов, страница 44
или
2019 Spring 5 для профессионалов, страница 67

Там будет часть "Помещение Spring в приложение Hello World!"
Вот отсюда и до конца главы прочитай эти 7-8 страниц.

Мне на нескольких собеседованиях задавали вопрос, нахуя он нужен, поэтому я очень внимательно перечитывал это место.
1256 2203767
Придумайте как мне реализовать свой DI фреймворк на аннотейшн процесссорах и сервис лоадерах. Я пока не могу придумать.
1257 2203795
>>203767
https://www.youtube.com/watch?v=szI5sza6Wug
https://github.com/inponomarev/java-mipt/tree/master/di-example
я только простой пример видел, без класслоадеров.
1258 2203802
>>203795
Хуйня ебаная, некст.
1259 2203810
>>203591
Через jpa repository делаю,там автоматом
1260 2203816
>>203802
А почему бы тебе самому тогда не поискать более глубоких знаний самому? Это же джава, здесь все миллион раз придумано до нас. Возьми и погугли хорошенько на английском. Залезь в сорцы самих di-фреймворков.
Я о таком честно говоря не задумывался, меня все эти аннотейшн процессторы, рефлексия и класлоадеры не возбуждают. Но что там такого сложного, если есть желание повозиться?
1261 2203829
>>203816
Сложного ничего, у меня просто в голове крутится идея объединить аннотейшн процессор и сервис лоадер, но я не понимаю, как. Они друг с другом никак не стыкуются на первый взгляд.
1262 2203830
>>203829
По аннотациям можно генерировать
META-INF/services/...
но это нахер не нужно. Уж лучше сразу на базе аннотаций генерировать код который будет инициализировать классы при старте.
1263 2203864
Двухстороннюю связь manytomany невозможно сделать без создания третьей таблицы?
sage 1264 2203865
1265 2203878
>>203864
Возможно, если послать нахуй нормализацию.
1266 2203926
>>203623
Ну если у класса MyBean есть поле примитивное, например int someInt, как я создам два бина с разным значением из конфиг-файла? Пока что я вот такой способ нашел, но только через конструктор:
@Value("${myBean.someInt}")
int someInt;

@Bean
public MyBean myBean() {
return new MyBean(someInt);
}
1267 2203946
Блять аноны,вот какого хуя н2 такое говно и при этом хуй че нагуглишь. Вот указал я папку куда хочу сохранять базу,хуй так, ничего туда сохранять не будет,создаст два файлика НА УРОВЕНЬ ВЫШЕ,а срать все равно будет в .idea/datasource. Вот нахуя так делать,я просто хочу чтобы бд хранилась в файлике там где я скажу и чтобы оттуда нормально считывались данные,а не слетали к хуям при каждом запуске при условии что я сука указал,что хочу хранить в файлике,а не в оперативке
1268 2203949
>>203946
а почему не сохранить в нормальную базу? н2 это же для тестиков в инмемори режиме.
1269 2203977
>>203946
Возьми sqllite.
1270 2203978
>>203949
Задание такое,чтобы проверяющим было проще,открыл файлик и все
1271 2203980
Вот какого сука хуя ты безмозглая долбоебина не сохраняешься то блять?!
1272 2203981
>>203980

>ультимейт идею скачал


>думать не скачал

sage 1273 2203982
>>203980
Показал все кроме сервиса
изображение.png9 Кб, 396x96
1274 2203984
1275 2203986
>>203978
ну шерсти доку н2. Гуглится плохо, ибо твой кейс мало кому нужен в реальной жизни.
А че за курсы такие?
1276 2203989
>>203986
Ноунейм шарага в новосибе,блять как же я заебался,второй день с этой базой сраной ебусь и не могу дальше пройти.Ненавижу ебучую Н2,горите в аду создатели этого говна.На постгрес переключаешься и все волшебным образом работает
1277 2203992
Добрый день, 300к/наносеки это жи борда для успешных? А можно ли на Java забабахать визуальную новеллу? Я знаю про RenPy, но для закрепления навыков хочу заделать именно на Джаве. Такое возможно?
1278 2203996
>>203992
Нет,производство визуальных новелл на джаве является преступлением против человечества
1279 2203999
>>203992
Существуют движки VN, написанные на жабе. Но для скриптинга юзаются другие языки типа Lua, ибо жаба компилируемая, в ней нет питоньего eval/exec.
1280 2204001
>>203989
А доебаться до самого препода/сокурсников?
.png20 Кб, 710x345
1281 2204053
>>203978
У тебя прям в задании так написано что ли - "Берите именно H2, допишите его исходники, чтобы научить делать то, чего он не умеет, затем уже пилите свой круд"? Почему нельзя взять SQLIte, который и умеет сохранять в файл без сервера, и поддерживается хибернейтом?
1282 2204149
Пацаны,как методы добавления в коллекцию при многие к одному
То есть есть сущности например department и employee. У department есть лист employees и метод allToEmployees. Так вот,как и где вызывать этот метод? Реализации круд операций за нас то реализованы
1283 2204158
>>203604
Нахрена спринг, когда есть кваркус
1284 2204161
>>204158
Я пукнул хихи)
.png2 Кб, 248x99
1285 2204181
>>204158
Намекну. В этом треде все сидят исключительно с целью найти работу или поднять своё ЧСВ. А похлебать борщи можно на чём-нибудь поинтереснее спрингокваркусов.
1286 2204187
Сколько у вас миграций на проекте? А то я ахуел мальца как увидел
1287 2204189
>>204187
Около тысячи flyway-скриптов.
1288 2204216
>>204189
Расскажи зачем столько. Для изменений схемы?
1289 2204220
>>204189
Сейчас глянул из любопытства, на самом деле их ~4000.
>>204216
Да, много лет проекту, пилит много разрабов, на каждую вторую фичу требуются новые таблицы или изменения в существующих.
1290 2204222
>>204220
сильно сложно менять схему в базе, где уже много данных? Как это происходит?
1291 2204224
>>204222
Обычно несложно, пишется alter table + апдейтов, и всё. В сложных случаях что-нибудь местные базисты могут подсказать.
1292 2204228
>>204224
Я скорее имею ввиду бюрократически что-ли. Мне просто кажется это большая ответственность. Проекты старые и большие.
1293 2204230
>>204222
"менять схему" в большинстве случаев это просто добавление новых таблиц и колонок, количества данных роли не играет
1294 2204231
>>204228
Если кто-то что-то сломает, выявляют и чинят достаточно быстро. До релиза это проходит несколько этапов тестирования на тестовых схемах БД, при проблемах всегда можно восстановить бэкап.
1295 2204232
>>204231
а для тестовой схемы тоже есть 4к миграций?
1296 2204233
>>204232
Они везде есть, сначала их катят на тестовых, затем уже запускают на проде.
1297 2204324
1298 2204527
>>204181
Поднять ЧСВ - это пилить на чистой джаве. Наблюдая местные высеры, зачастую можно подумать что спрингодети уже просто не умеют ничего делать вне фреймворка.
1299 2204534
>>204527
Те, кто умеет, ничего не спрашивают.
1300 2204552
>>204527
Что вообще пишется на чистой джаве и нахуя? Наоборот на голой джаве пишут дети, когда джаву учат.
1301 2204673
Гайз,как в постмане объект передавать заранее созданный?
1302 2204798
Посоветуйте софт для создания POST запросов.
1304 2204804
>>204798
плагины к браузеру
1305 2204826
sage 1306 2204885
>>204798
Постман
1307 2204986
Есть гайд исчерпывающий по тестам в спринге? Чтобы объяснили нормально на примерах отличие юнитов от интеграционных и юниты показали ко всем слоям. И в одном месте и структурировано.
1308 2204987
>>204986
Тот же вопрос интересует, но не именно про тесты, а вообще про все популярные направления спринга: boot, data, mvc, security, orm, etc.
1309 2205000
>>204986
Поднимаешь контекст - интеграционный, не поднимаешь - юнит.
1310 2205002
>>205000
Поднимаешь контекст
@
Не используешь, всё мокаешь
1311 2205011
>>205000
Так прямо в самом любом гайде по юнитам начинают с теста к сервиса, где сервис автовайрят, а репо и другие компоненты, от которых завист сервис мокаются. Этот один автовайр разве не поднятие контекста?
1312 2205014
>>205011
Если автовайр встречается вместе с моками, то это значит, что часть зависимостей все равно обеспечиваются спрингом. То есть это интеграционный тест.
1313 2205018
>>205014
а можно ссылку на гайд с примерами? А то именно юниты в 3 гайдах, что я читал описываются именно так >>205011
1314 2205021
>>205018
Хз, что за гайды у тебя, но
1. если ты в сам тест заавтовайрил сервис, но дальше тестириуешь только один сам этот сервис, а зависимости его мокаешь, то это по сути именно юнит-тест, хоть даже спринговый контекст чуть-чуть где-то сбоку там участвует.
Могу кстати заметить, что в типичном энтерпрайзе полезность юнит-тестов очень ограничена. Нет ничего более глупого, чем мокать репозитории, и сводить тест к проверке того, что сервис действительно вызывает у репозитория нужный метод.
2. с тестами есть эта вечная путаница с терминологией. Частенько юнитами называют любые тесты, которые являются частью проекта, запускаются вместе со сборкой, и не требуют участия внешних систем. Ну типа раз через junit запускаются, значит unit, и похуй, что там в нем.
1315 2205027
Анончики,нужна ваша помощь,умираю. Есть спринг бут приложуха,для создания одной сущности требуется еще две другие. Как мне сделать так чтобы я мог дочерние сущности передавать в виде айдишника? Отдельно конструктор с айдишками я создать не могу така ка между основной сущностью и второстепенными стоит связь ManyToOne и я обязан привязывать столбец с айди к объекту,а не к числу. Я чичас расплачусь умоляю
1316 2205039
>>205027
Легко, надо выпилить говнохибернейт и сделать нормально.
DA6E4B07-766B-462D-9F58-1228FB0F9713.jpeg29 Кб, 600x600
1317 2205049
>>205039
Так нельзя :( помогите
1318 2205052
Как записать хибером java.util.date Date-объект с unix-timestamp в postgresql?
Хотел использовать timestamp-поле для postgresql, но там не юниксовый timestamp, а какой-то свой. В итоге, пишет неправильно.
1319 2205198
>>205027

>Есть спринг бут приложуха,для создания одной сущности требуется еще две другие.


Ты сделал какую-то херню. Родительская сущность должна всегда создаваться первой и без дочерних. Персистишь ее и уже потом создаешь дочерние и линкуешь к родительской.
изображение.png84 Кб, 898x754
1320 2205201
Важный вопрос от вкатуна: как учить этот ваш Спринг?
Работаю макакой-тестировщиком, периодически приходится писать простенькие заглушки на Спринге, которые отвечают 200 OK, но делаю это я в общем-то интуитивно. Ну а как дальше? Есть ли смысл в курсах конкретно по Спрингу,что почитать, с чего вообще начинать?
1321 2205215
>>205052

>Хотел использовать timestamp-поле для postgresql, но там не юниксовый timestamp, а какой-то свой. В итоге, пишет неправильно.


Если неправильно пишет -то 99% у тебя стоят разные таймзоны на сервере с постгресом и сервере с приложением. В общем или поменяй тип поля на long или в бине используй ZonedDateTime а в базе timestamp with time zone
1322 2205216
>>205000

>Поднимаешь контекст - интеграционный


Ебанулся что ли? Интеграционный тест проверяет интеграцию между системами и у тебя должны не контексты подниматься, а сервисы целиком деплоиться.
1323 2205219
>>205018
>>205021
>>205216
Во, вот как раз я и говорил о мутной терминологии. У кого-то, как видим, интеграционные это про "интеграцию между системами" (все остальное, видимо, юнит), так что и нет смысла задаваться вопросами про контексты.
1324 2205224
>>205201

>но делаю это я в общем-то интуитивно


Да вообще писать продакшн-код тоже так можно по началу. Если ты не дурачок, базовые принципы понимаешь, уже что-то написать в состоянии, то вполне может хватить официальной документации.
1325 2205227
>>205201
>>204987

пока лучше всего мне зашел курс от отуса(есть на nnm-club). >>191161
Я целых пол года по 5 разным гайдам/ютуб каналам/книгам дрочил спринг core, boot, jdbc, data, mvc, правда до security так и не добрался, Но вот иду по отусу, посмотрел пока 7 видосов из 40 и узнаю много нового(судя по названием тем я знаком с содержанием первых +- 17 видосов, но где-то на 70%).
Много бойлерплейта(прям как в джаве), лишнего балабольсва, разговоров с аудиторией. 80 часов видео при грамотном монтаже можно было бы урезать в 2.5 раза. Если первый раз знакомишься со спрингом наверно все таки кое-что, но немногое придется гуглить. Например все по базам там на h2, а не на нормальных postgres/mysql. Но костяк весь есть и понятно будет,что гуглить и какие гайды читать.
Ну а потом практику думаю норм отсмотреть. Например книга spring in action. Я с нее начал и там просто ничего не объясняется, тупо пользуются кучей магии.
1326 2205233
ах да, мне тут полгода назад только и посылали нахуй типа этого анона >>205224 читать доку. Но дока только по самым важным подфреймворкам это около 2к страниц, как я подсчитал. Я пару раз за нее садился не вывез и лезу в доку, только когда гуглю что-то и читаю ее наравне с каким-нибудь гайдом baeldung.
Может дело во мне, но вот такой у меня опыт самообучения, может кому тут пригодится.
>>205227 - кун
1327 2205273
>>205219

>Во, вот как раз я и говорил о мутной терминологии.


Все нормально с терминологией, просто надо почитать пару мурзилок про теорию тестирования.

Юнит тесты тестируют отдельные классы и поведение публичного API этого класса, если у класса есть зависимости их обычно мокают, для предсказуемости поведения. Это тесты для разработчиков.

Функциональные тестируют бизнес функционал. Можно тестировать как через REST API подняв сервис целиком, но иногда можно поднять контекст и тестировать функциональность вызывая методы у класса. Главное что тестируется бизнес функциональность, а не API класса. В общем-то это основной тип тестов для проверки, что система соответствует требованиям бизнеса.

Интеграционные тестируют интеграцию между системами. Поднимается несколько систем и смотрят как они между собой взаимодействуют. Тут тестируется, что разрабы из разных команд успешно договорились про API, формат данных, порядок взаимодействия и прочее. Тут тестируют базовые сценарии, весь функционал тестами, как правило, не покрывают.
1328 2205284
>>205273

>просто надо почитать пару мурзилок


О, спасибо за совет, действительно, как же разобраться без "мурзилок".
Вот, например, всем известная музрилка baeldung https://www.baeldung.com/integration-testing-in-spring
действительно описывает, как поднять несколько систем, чтобы проверить договоренности о порядке взаимодействия, ну да
1329 2205286
>>205273

>Все нормально с терминологией, просто надо почитать пару мурзилок про теорию тестирования.


Ты теоретик обоссаный или хочешь нормальные тесты писать?
1330 2205289
Ну и например, у меня есть фейн клиент, который представляет собой интерфейс взаимодействия с внешней системой. Когда я пишу в тестах мок для этого клиента, я превращаю функциональный тест в интеграционный или как?
1331 2205293
>>205273

>Функциональные тестируют бизнес функционал.


>Интеграционные тестируют интеграцию между системами.



https://www.youtube.com/watch?v=Lnc3o8cCwZY
То есть в этом видосе автор попутал и LoginTest это функциональные тесты, а не интеграционные?
1332 2205295
>>205293
Да, весь мир все попутал, и только на дваче, как обычно, четко все разложили
1333 2205301
>>205198
Ну вот есть у меня книга,у книги есть автор и жанр. У жанра и автора много книг,у книги один и жанр и автор. При создании книги я должен передавать и автора и жанр,а там по несколько полей. Я хочу тупо их айди передавать
1334 2205307
>>205284
Это мурзилка "как протестировать", а не "зачем и что тестировать".

>>205286

>Ты теоретик обоссаный или хочешь нормальные тесты писать?


Кстати, такие мудаки как это реально проблема индустрии. Сейчас стало модно заставлять разработчиков самих тестировать свой код, но при этом никто не подумал, что разрабы плохо понимают тестирование. Зачем пишутся тесты, какие тесты бывают, а уж выражение "тестовый сценарий" для большинства разрабов звучит как ругательство.

>>205293

>То есть в этом видосе автор попутал и LoginTest это функциональные тесты, а не интеграционные?


Да, он даже сам вначале говорит что будет тестировать функционал логина. Если бы он тестировал OAuth2 авторизацию, через сторонний SSO сервис - это был бы интеграционный тест. А это чисто функциональный тест.
1335 2205308
>>205301

>Я хочу тупо их айди передавать


EntityManager#getReference
1336 2205313
>>205307

>пук

1337 2205332
1338 2205348
>>205332
entityManager.getReference()
1339 2205366
>>205215
Спасибо за ответ!
Не уверен, что дело именно в таймзонах, потому как была бы куда меньшая погрешность. А так, выходит, что я вношу unix-timestamp типа 2021-10-25 само собой, лонговой строкой, для облегчения понимания дату написал, а из базы селектом что-то типа 1970-01-19 выходит. Как-то так.
Видимо, всё же придётся менять на лонговое поле.
1340 2205369
>>205366
java.sql.Date
1341 2205454
>>205227
А есть эта хуитка на нормальных торрентах? по каким словам искать? курс отус по спринг или сорт оф?
еще один вкатун
1342 2205483
>>205454
чел, ну тебе же все равно придется дохуя гуглить.
https://nnmclub.to/forum/viewtopic.php?t=1474084
1343 2205489
Короче сразу два препода с отуса говорят, что когда jpa-orm использовать не резон, то обычно используют облегченные orm типа mybatis или spring data jdbc.
А чистый spring jdbc в проде c нагромождением RowMapper-ов и ResultSetExtractor-ов это муторно.
А тут топили за чистый jdbcTemplate.
1344 2205538
>>205489
и кто пиздит или не шарит: двощерики или продаваны курсов?
1345 2205559
>>205538

>и кто пиздит или не шарит


Ты может удивишься, но в этом нашем ремесле обычно так не бывает, что способ X в 100% случаев это единственный правильный вариант, а способ Y это однозначно зашквар и кто так делает не шарит. Если б все было так просто и однозначно, тут бы и не платили 400к/наносек, быть может. И то используют, и то; в каких-то случаях что-то муторно, в каких-то вполне приемлемо. Кто-то больше любит одни подходы, кто-то другие. Многие вещи вполне можно нормально сделать и так и сяк, и выбор будет зависеть просто от вкуса, привычек, того, с чем больше знаком.
1346 2205569
Начал понемного пробовать вкатываться в спринг, и позвольте такой вопрос:
Thymeleaf и шаблонизаторы вообще - нужны ли они бекенд разработчику на реальной работе с реальными проектами, или это хрень, которая во всяких уроках юзается только чтоб как-то видеть как данные выводятся в браузер?
Я совсем пока не понимаю как происходит стыковка работы приложения и итогового фронт-энда. Может кто-то скажет в двух словах как данные которые выдает контроллер превращаются в настоящие нормальные страницы, вроде двачевской.
просто один только тимлиф можно изучать кучу времени, хочется быть уверенным что это не совсем зря и что запоминать его стоит на долго, а не ради уроков
1347 2205570
>>205559
вот он боейлерплейт джавовский. Суть фразы из 3 слов

>бывает по разному


завернул в 1000 знаков.
1348 2205573
>>205569
хтмл - это строчка. таймлиф внутренней магией меняет куски строчки. и строчку отдает на фронт. Не советую вникать, просто повтори примеры в источнике механистически и переходи к ресту.
1349 2205575
>>205569

> это хрень, которая во всяких уроках юзается только чтоб как-то видеть как данные выводятся в браузер?


Обычно да, но ситуации разные. Бывает, делают внутренние тулзы для облегчения разработки, которые юзают только разрабы и тестеры, но не пользователи, и там может быть что угодно, на чём даже вакансий нет, хоть таймлиф, хоть свинг. Это всё по необходимости, на собесе за незнание таймлифа никто не завернёт.

> Я совсем пока не понимаю как происходит стыковка работы приложения и итогового фронт-энда. Может кто-то скажет в двух словах как данные которые выдает контроллер превращаются в настоящие нормальные страницы, вроде двачевской.


На более-менее современных проектах юзают SPA: на бэке только рест апи, и отдельно существует проект с фронтом на каком-нибудь реакте, который деплоится на какой-нибудь nginx и просто дёргает апишку.
1350 2205582
>>205575

>который деплоится на какой-нибудь nginx и просто дёргает апишку


я короче захотел как то докеризировать отдельно фронт, отдельно спрингбутовое приложение, отдельно nginx с js-ом. Ну и короче я сломался в настройках nginx. Полдня потыкал и забил(пришлось отрубить cors в spring security).
Уметь настраивать nginx это вообще релевантно для джависта? Я знаю это всяким там фулстекам на пхп надо. Вроде хочется покопаться, но жалко времени, и так в планах на изучение много материалов.
1351 2205583
>>205573
>>205575
Спасибо, аноны

>на бэке только рест апи


Ну, вот например сейчас я вижу в уроках что спрингом делается мэппинг какого-то запроса на метод контроллера, который выдает (везде, что я пока посмотрел) просто строчку с названием представления, после чего спринг сам что-то там связывает и выдает в браузер.
А на реальных проектах куда попадает аутпут метода с мэппингом и что в нем вообще лежит?
Сорян за тупые вопросы, можете если что просто послать в гугол
1352 2205588
>>205582

> Ну и короче я сломался в настройках nginx. Полдня потыкал и забил(пришлось отрубить cors в spring security).


Вроде, делается несложно через proxy_pass.

> Уметь настраивать nginx это вообще релевантно для джависта?


Нет, ты не девопс, разве что для общего развития. В пхп-мирке не могут себе позволить отдельно фронта, отдельно бэка, отдельно девопса, отдельно лида, вот и приходится им учить всё.
1353 2205592
>>205583

> Ну, вот например сейчас я вижу в уроках что спрингом делается мэппинг какого-то запроса на метод контроллера, который выдает (везде, что я пока посмотрел) просто строчку с названием представления, после чего спринг сам что-то там связывает и выдает в браузер.


Есть просто контроллеры (@Controller, которые Spring MVC), а есть рест-контроллеры (@RestController). Контроллеры да, возвращают название вьюхи, но рест-контроллеры возвращают объект, который надо сконвертировать в JSON и отправить фронту.
1354 2205593
>>205583
Ну в просто контроллере он отдает штмлку/динамически измененную шаблонизатором штмлку(которую он берет из файла с "представлением") строчкой в теле http ответа. А в ресте в теле тоже в виде строчки будет сериализованный объект. А штмлку тебе нарисует жс внутри браузера.
Короче почитай статьи про основы http и rest.
1355 2205599
>>205575
Если уж зашла такая тема, то что нужно изучить дополнительно к спринг чтоб обрести статус неформальный full-stack? Реакт? что-то еще?
1356 2205600
>>205593
>>205592
Спасибо, гайс. Все достаточно понятно стало.
1357 2205606
>>205599
Да, реакт и всю трендовую веб-парашу с вебпаками и популярными либами. Ну и девопс - разобраться хотя бы в докерах-куберах-нгинксах.
1358 2205607
>>205599
https://hh.ru/search/vacancy?area=&fromSearchLine=true&text=Full+stack+Java+Spring
Кто нам нужен - full stack developer, который:

Имеет опыт коммерческой разработки от 2 лет
Хорошо знает Core Java, Spring
Знает Angular, RxJS, TypeScript
Владееь технологиями HTML 5, CSS 3 а также знание препроцессоров
Знает стек TCP/IP; Знает работу с HTTP, WebSockets
Умеет работать с инструментами: Webpack, Jest, Cypress, Docker
Готов читать задачи и доводить их до работоспособности (важный редкий навык!)
1359 2205613
>>205607
И сколько за это обещают в этой вакансии и в реальности сколько это стоит в сравнении с голым беком?
1360 2205619
>>205613
Хз, обычно фулстеки со спрингом это мидлы/синьеры.
Для вкатунцов фулстек это как раз всякое странное говно на фронте типа шаблонов/jsp/ваадина, примеры совсем странного велосипедного говна.
1361 2205647
>>205489
jdbcTemplate есть из коробки в спринг буте. А твой спринг-дата я хуй знает.
Второе. Знаешь зачем это нужно? Если нужно сделать хитровыебанный запрос, или всякие хранимки, или специфичные функции субд, типа там массивов или геоданных.
Я сильно сомневаюсь что @Query сможет обработать такие штуки
1362 2205695
>>205647
Ну челик говорил, что сложные агрегации с которыми хибер плох он делает на майбатисе и это ему проще чем на темплейте. А про новую спринговую поделку просто сказал что небесполезно.
Эти челики для меня не авторитеты. Я просто украл их курс и смотрю.
1363 2205762
>>205369
Объект уже существует и сделан не мною, нужно уже под него спроектировать схему. Так бы, само собой, взял бы нормальный дэйт.
1364 2205830
>>205695
Ты за 2000 год смотришь? И как тебе лекторы?
Я 2018 украл, там один тип всё рассказывает, говорит быстрее, в сон с него не клонит, как с Колыбельного.
1365 2205850
>>205830
2020
Самый частый, толстый такой лысый - реально плох в плане умения рассказывать. Плюс, если отходит от плана, то там точно сделает опечатку, которую 2 минуты будет искать. Но вроде шарит и сам план норм. Слушать тяжело. Очень хочется монтажа. Пришлось даже через метод помидорки это смотреть. Но инфа мне нравится.
1366 2206123
>>205762
>>205366
>>205052
Проблема была не с БД, а со старым говнообъектом даты.
Может кому понадобиться - не пытайтесь просто взять и вкопипастить лонговое значение unix-time в сраный Date()-конструктор - он засетит его неправильно. Инициализируйте объект через другие конструкторы даты, например, через GregorianCalendar SimpleDateFormat.
1367 2206140
>>206123

>не пытайтесь просто взять и вкопипастить лонговое значение unix-time в сраный Date()-конструктор - он засетит его неправильно


И почему же?
1368 2206183
>>206140
Скорее всего, потому что он принимает unix-time расширенный, в миллисекундах. Можешь попробовать туда засетить unix-timestamp и умножить его 1000 - может заработает.
1369 2206186
Просто это неочевидная вещь, пока сурцы не откроешь
1370 2206205
>>206183

>и умножить его 1000 - может заработает


Точнее, не может - а заработает. Я проверил.
1371 2206409
>>205227

>пока лучше всего мне зашел курс от отуса(есть на nnm-club)


Ссылкой, конечно же, нельзя поделиться?
1372 2206413
>>206183

>Скорее всего, потому что он принимает unix-time расширенный, в миллисекундах


Ну то есть стандартный формат, о чем и в джавадоке написано https://docs.oracle.com/javase/8/docs/api/java/util/Date.html#Date-long-. Ты-то нахуя ему секунды кормил?
sage 1373 2206884
Мы там потонем скоро
1374 2206887
>>206884
И слава богу.
1375 2206927
>>206409
конечно же, нельзя.
1376 2206939
>>206884
Тред на 5 странице из 10. Можно еще тыщу постов накалялкать перед перекатом.
1377 2206968
>>206939

> Можно еще тыщу постов накалялкать перед перекатом.


И нужно.
1378 2207113
Вкатуны, которые смогли, отзовитесь.
Скажите на какую ЗП устроились, в каком городе и стек технологий, который у вас был и какой был необходим.
1379 2207118
>>206413

>Ну то есть стандартный формат


Это не стандартный формат. В стандартном формате unix-time принято указывать с секундной точностью.

>о чем и в джавадоке написано


>Ты-то нахуя ему секунды кормил?


Потому что до открытия доки это было неочевидно. Я просто вставил стандартную секундную строку и пошёл искать поломку в другом месте.
1380 2207123
>>207113
Мухосрань-милионник, 60к
Не могу сказать что смог, просто вписался в разношерстный ИТ-отдел одного пром-предприятия, где вообще лютый треш и салат из всякого легаси-говна чуть ли еще не на бейсике и 1С-хуиты. Я просто имел много идей по бизнес-логике, и сказал что реализую все сам, но работать буду на джава, подключая все свое дерьмо как что-то вроде микросервисов к единой почти корпоративной БД. В итоге я там сам себе и архитектор и реализатор. Поскольку я еблан, пилю всю свою шнягу на чистой джаве (кор + ждбц + всякие прикладные вещи).
Хуйня, конечно, потому и зарплата по меркам отрасли нищая. ХЗ зачем я это высрал, но тоже своего рода опыт.
1381 2207137
>>207118

>Это не стандартный формат. В стандартном формате unix-time принято указывать с секундной точностью.


Нет, стандартный как раз в миллисекундах. В джаве же нет метода System.currentTimeSeconds(), или ты результат System.currentTimeMillis() на 1000 делил всегда?
1382 2207141
Вот везде пишут, что запрос в базу это дохуя. Особенно по сравнению вызова из кеша. Но нигде Мне стало интересно насколько.
Померил у себя на компе - память ддр3, база постгрес на ссд сата3. Считал через System.nanoTime().
Ну вот простое обращение к полям объекта - 1-3к наносек.
А вот первый запрос к постгресу(я делал инсерты), что через jdbc, что через хибер это 20-60 кк наносек.
Правда со второго по десятый инсерт(тут только на jdbc пробовал) например это уже 150-400к наносек. Но все равно 2 порядка разницы с java-объектом.
Первый инсерт это время подключения к базе походу.
То есть
- подключение к базе - 50 миллисекунд(как пангинуть до франкфурта),
- простой инсерт в базу это 300 микросекунд,
- обращение к объектам 2 микросекунды.
И это на очень простых запросах и пустых базах. На крутом серверном железе разница будет максимум в пару раз.
Правильный порядок цифр?
1383 2207149
>>207137

>Нет, стандартный как раз в миллисекундах.


Алло, это в жаве он стандартный в миллисекундах.
А в стандарте unix-epoch он в секундах:

>Unix-время представлено целым числом, которое увеличивается с каждой прошедшей секундой без необходимости вычислений для определения года, месяца, дня, часа или минуты для удобства восприятия человеком. Современное Unix-время согласуется с UTC — отсчет происходит в секундах СИ.

1384 2207154
>>207141
ты измерял на локалхосте, и считаешь эти данные показательными, я правильно тебя понял?
1385 2207162
>>207154
Ну считаю минимумом. Ясно, что база часто на другой машине. Но я не могу так проверить.
А какие порядки цифр показательные? Я в хаброответах вообще нагуглил, что 200 миллисекунд на сложный многосоставной селект это многовато, не не то чтобы очень.
Просто хочется понимать порядки цифр и насколько например кешированный объект сэкономит времени для полного цикла запроса в рест-приложухи от нажатия кнопки на фронте до перерисовки компонента на фронте же.
1386 2207199
>>207162
Хз, но сталкивался, что когда приложуха крутится на локалке, она выдает стабильную и большую скорость, когда же начинается работа с удаленным сервером это становится довольно плавающей характеристикой - может и быстро прогрузиться, может и подлагнуть иногда. Я бы придерживался стратегии хранить в памяти такие данные, которые нужны неоднократно (например на весь сеанс работы), и такие которые герантировано не сожрут много памяти (например, какие-нибудь весьма ограниченные списки). Если возможны селекты больших объемов данных, можно сделать логику, которая кэширует в память весь пул кусками, например по 500 объектов (после работы пул очищается и ты лезешь за некст 500). Это позволяет не селектить каждый объект отдельным запросом, но в то же время не пытаться закэшировать сразу 100500 рекордов, рискуя получить аут оф мемори.
Сугубо мое мнение и практика, может нормальные люди так и не делают.
1387 2207204
>>207199
Охотно верю, что пагинация в кеш это норм вещь, думаю там много конкретных способов оптимизации. Но хотелось бы про какие-нибудь порядки цифр узнать для общих случаев.
1388 2207209
>>207204
Для чего тебя порядки цифр? Вот какая нахуй разница отдашь ты данные через 200 миллисекунд после нажания кнопки или через 1 секунду?
1389 2207212
>>207162
простые запросы по индексированным полям - десятки милисекунд.
Сложные оптимизированные запросы - сотни милисекунд. Плохие запросы - секунды. Очень плохие запросы - минуты
1390 2207217
>>207209
Ну не знаю, ну вот интересно мне про полный цикл веб-приложухи.
>>207212
Спасибо. Меня такой ответ удовлетворил.
1391 2207293
Аноны, а кто здесь мидл? Кто считает себя таковым? По внутренним ощущениям или по мнению других, по уровню з/п.
Понимаю, что это все довольно условно, в то же время какая-то примерная грань существует. Пусть каждый и определяет для себя сам оттенки.

Расскажите о своем становлении. Как вы поняли что уже на уровне мидла? Сколько времени это заняло(может занять)? Мб есть какие-то конкретные хардовые критерии уровня.
Интересно узнать, чтобы хоть какой-то ориентир и цель иметь
1392 2207330
>>207293
Здесь в основном сеньоры, это же борда для успешных людей.
По моим ощущениям - все действительно очень условно, определяется больше ролью на конкретном месте, чем какими-то "хардовыми критериями". Для себя никогда не задавался таким вопросом - перешел ли я уже на конкретный "уровень" или нет - и неплохо себя чувствовал.
В качестве ориентира и цели лучше иметь либо размер зп, либо задачи/проекты/предметные области, которыми хочешь уметь заниматься, а не условную лычку мидла или сеньора.
1393 2207360
>>207149

>Алло, это в жаве он стандартный в миллисекундах.


А ты программируешь на джаве или на стандарте unix-epoch?
1394 2207385
>>207360
Я программирую на языке жопаджава, в котором и так многое стандартизировано, потому что один прикладным языком весь мир не ограничен. Например, работа с ФС для JVM регламентирована стандартами окружения, в котором она запущена.
Поэтому неочевидность несоответствия каким-то общепринятым стандартам - это вполне себе причина для неожиданных ошибок в коде.
1395 2207416
Есть 2 пк. Нужно иметь возможность кодить сидя за обоими. Для этого можно юзать git. Но вот незадача, удалять коммиты с remote сервака не принято. Можно коммитить проект в нерабочем состоянии, но не хочется устраивать там срач, вдруг показывать придётся. Как выкручиваться?
1396 2207423
Как неохота фронт писать для пета это пиздец,я посмотрел,что тимлиф что бутстрап что вью жс такие страшные вещи что охуеть можно
1397 2207425
>>207423
пиши на голом жсе.
sage 1398 2207570
>>207416
Юзай гитовые патчи
1399 2207592
>>207416
Сучара, ты почему в джава треде это пишешь?
1400 2207612
>>207423
Может и ну нахуй тогда этот фронт? Заставляет кто-то его писать?
1401 2207614
>>207612
Ну и чё ему, голый сваггер тыкать?
1402 2207616
>>207423
страшные это значит сложные или выглядит уебищно?
1403 2207644
>>207614
Если нет цели представиться (недо)фулстеком, а хочется потыкать что-то для себя, так чтоб не голый сваггер, можно много чего придумать. Да хоть декстоп клиент к своему рест-апи сделать.
1404 2207864
Аноны, подскажите, че за хуита блядь.

Я добавил зависимость в POM, вылезла какая то ошибка что он там чето не может, ну хуй с ним, я эту зависимость удалил, и теперь этот ебучий мавен не собирает приложение с ошибкой Could not transfer artifact "зависимость" from/to nexus

НО БЛЯДЬ УДАЛИЛ ЭТУ ЗАВИСИМОСТЬ СУКА, КАКОГО ХУЯ И ГЛАВНОЕ ОТКУДА ОН БЕРЕТ ИНФУ, ЧТО ОН ТАМ ЧЕ-ТО НЕ МОЖЕТ СДЕЛАТЬ С ЭТОЙ ЗАВИСИОМСТЬЮ, КОТОРОЙ СУКА НЕТ В ЭТОМ ЕБУЧЕМ POM.XML.

у МЕНЯ СЕЙЧАС ПЕРДАК РАЗОРВЕТ.
1405 2207892
>>207864
ААА БАЛЯЯ ГОРИШЬ?)))
1406 2207898
>>207616
Нихуя не понятно и выглядит противоестественно
sage 1407 2207908
>>207864
Попробуй clean refresh
1408 2207927
Как подключить debug к spring boot приложению?
Брекпоинты в контроллере не работают. 2 вечер рецепты из гугла перебираю, но нихуя.
image.png75 Кб, 969x495
1409 2207933
Подскажите кто сталкивался с такой задачей , пожалуйста.
Как формулы распозновать? Парсер логических выражений я написал , но толку от него мало потому что на вход не подаются числовые значения. Вопрос в том , как парсить эти выражение на наличия аксиом. Я думаю что можно исходное выражение парсить , пока оно не сократиться до адекватных размеров и там уже перебором решать. Но не понимаю как это сделать , ведь названия переменных в исходных выражениях могут быть рандомными.
1410 2207944
>>207933
regexp
1411 2207961
>>207944
Сейчас бы регулярками парсить нерегулярную грамматику.
1412 2207970
>>207933

>Вопрос в том , как парсить эти выражение на наличия аксиом.


Ты мешаешь в кучу, 2 несвязанных вещи:
1. Парсить надо по грамматике - можно регулярками токенизировать, потом строить дерево синтаксического разбора, но если есть формальное описание синтаксиса лучше взять antrl и сделать нормальный парсер.
2. После того как распарсил АСТ - уже начинаешь вычислять, вот твои аксиомы и пригодятся.
1413 2207988
>>207961
ди нахуй)
attachme.png26 Кб, 880x319
1414 2207995
>>207927
Сам нашёл.
1415 2207997
>>207970
Мой парсер может распарсить по грамматике и посчитать выражение если заменить все на 1 и 0. Но я не понимаю как сократить выражение , если оно содержит в себе аксиомы.

>можно регулярками токенизировать


Шо это значит.
1416 2208266
>>207997

>Мой парсер может распарсить по грамматике


Что твой парсер выдает как результат парсинга? Реальный парсер должен выдавать синтаксическое дерево. Подозреваю что твой, просто eval какой-то делает.
16125561950970.gif213 Кб, 250x263
1417 2208410
Почему именно вы не хотите перекатывать?
1418 2208414
>>208410
Чем реже перекаты - тем меньше клоунады от шарпоблядей с 1 по 500 пост каждого треда.
sage 1419 2208416
>>208414
Поэтому лучше писать с сажей :3
1420 2208420
>>208416
Да, до 500 с сажей, потом можно расслабиться. Я тоже к этому пришёл.
1421 2208429
Почему или зачем хибер в jpa.show-sql=true(это только в логах или как?) добавляет какие-то цифры к именам колонок:

>Hibernate: select document0_.id as id1_0_, document0_.name as name2_0_ from document document0_

1422 2208535
>>208414
Но шарп дает пизды, как ни крути
1423 2208543
Скоро выхожу на первую работу.
Проект - легаси, контора в которую я устроюсь уже третья или четвертая, кто поддерживает проект. И к софтине пользователь предявляет много новых требований. Особенно по интеграции.
Расскажите что это означает для джуна. Особенно в условиях того, что штат небольшой.
1424 2208562
>>208535
Хоть даёт, хоть не даёт, это блять не имеет значения, тред про жабу, а не про шарп.
1425 2208574
>>208429
чтобы избежать проблем при джойнах колонок с одинаковым названием
1426 2208611
>>207293
Есть еще мнения? Интересно узнать
1427 2208624
>>208535
Вчера стримили новый дотнет, он в 4 раза быстрее жээвы. Надеюсь на рыночек это не повлияет
1428 2208656
>>208543
И еще вопрос. Я учил современный спринг, свои холоворд-круды писал на последнем. А на проекте будет 4.2. Там все сильно отличается?
1429 2208669
>>208656
Да, в худшую сторону.
1430 2208677
>>208624

>Вчера стримили новый дотнет, он в 4 раза быстрее жээвы.


И в 8 раз быстрее С++!
1431 2208694
>>208677
И в 16 раз быстрее го?
1432 2208755
>>208624
Че? кто стримил? Может там просто долбоебы бенчмарки готовили?
920d407ada4f01ee06790e3dfc65d083.mp42,6 Мб, mp4,
576x1024, 0:16
1433 2208931
1434 2208932
>>208931
Бля, не тот тред
1435 2208964
>>208931
Какая красивая девочка, да уже, это точно не в наш тред.
1436 2208966
>>208755

>Может там просто долбоебы бенчмарки готовили?


А может наоборот профессионалы, которые знают как написать тест чтобы CLR был топчег, а JVM наоборот отстой. Например достаточно создавать кучу мелких объектов в JVM и использовать value type в .Net - и вуаля, JVM тормозит на GC а .Net на коне. Или использовать в JVM BigDecimal, а в .Net - Decimal и делать много вычислений.
1437 2209094
Была такая утилита java, которая позволяла писать код прямо в командной строке и там же его выполнять. Например, пишешь out.println(5==6) и на экран выводится false, вроде того. Как она называется?
1438 2209096
>>209094
Jshell.
1439 2209101
>>209096
Точно, благодарю. Ощущения на кончиках пальцев.
image.png13 Кб, 670x128
1440 2209135
>>208266
Мой парсер численный ответ выдает. Скобки он тоже понимает. Порядок выполнения вроде бы тоже. Сори за тупые вопросы, но eval это что ? А как он это дерево выдает ? Я делаю методом рекурсивного спуска его мне собсна и показывали на лекции, тока написанного на Си
1441 2209143
>>209135

>писать парсеры на java


сука...
1442 2209144
>>209143
бля у , в падлу мне другой язык учить ччтоб домашку сделоть
1443 2209159
>>209144
АНТЛР выучи и не еби мозгу
1444 2209304
Подскажите, пожалуйста, как в Spring Boot в теле принимать массив?
Представим что есть класс SomeData, который внутри содержит строковый массив:
@Data
public class SomeData {
private Sttring words[];
}
Контроллер:
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
public SomeData doIt(@RequestBody SomeData object) {
return object;
}
В итоге передаю Json следующий через постман:
{
words: ["двачер", "тяночка", "Тони", "лайф"]
}
Но потом все валится с ошибками, т.к. массив в итоге остаётся null. Как правильно передавать массив и принимать их со стороны Spring Boot? Может быть в Spring Boot что-то ещё дополнительно надо описать, чтобы он принимал массивы?
1445 2209353
Что такое реентерабельная блокировка? Где про это можно нормально почитать?
1446 2209359
>>209353
Класс ReentrantLock, реализующий интерфейс Lock, также, как и synchronized, обеспечивает многопоточность, но имеет дополнительные возможности, связанные с опросом о блокировании (lock polling), ожиданием блокирования в течение определенного времени и прерыванием ожидания блокировки. Кроме того, ReentrantLock предлагает гораздо более высокую эффективность функционирования в условиях жесткой состязательности. Другими словами, когда несколько потоков пытаются получить доступ к совместно используемому ресурсу, виртуальной машине JVM потребуется меньше времени на установление очередности потоков и больше времени на ее выполнение.

В переводе reentrant может означать повторно используемый (повторный вход). Что может означать блокировка с повторным входом? Это учет количества получения определенных блокировок. Т.е. один и тот же поток повторно получает одну и ту же блокировку. Но для того, чтобы реально разблокировать необходимо уже будет два раза снять блокировку. Это аналогично использованию synchronized; если поток повторно входит в синхронный блок, защищенный монитором, то блокировка не будет снята при выходе потока из второго (или последующего) блока synchronized, блокировка будет снята только когда поток выйдет из первого блока synchronized, в который он вошел под защитой монитора.

Одним из интересных методов интерфейса Lock и его реализации ReentrantLock является запрос блокировки с возможностью прерывания процесса ожидания. Т.е. если поток запрашивает блокировку методом lockInterruptibly() и не получает ее сразу же, то переходит в процесс ожидания. Методом interrupt работу потока можно прервать. Тогда ожидающий блокировки поток просыпается, и генерируется исключительная ситуация InterruptedException. После этого попыток доступа к защищенному ресурсу (получения блокировок) не делается и освобождать блокировку не требуется.
1447 2209361
>>209359

> жесткой состязательности


Смешно.
1448 2209364
>>209361
не вижу ничего смешного, такова многопоточность.
1449 2209448
Есть некий высер на спринге с капчей. Планирую хранить капчу в редисе, но прошел слушок, что хазелькаст будет получше редиса, это так?
1450 2209449
>>209448
А у нас в компании противоположный слушок.
1451 2209454
>>209448
Храни в Spring Cache
1452 2209474
>>209448
Разные есть мнения на этот счет. Работать нормально будет и то, и то. Хазелкаст получше в основном тем, что его удобно встраивать, а редис это всегда отдельный сервис, дополнительная devops-нагрузка
1453 2209519
>>209135

>Я делаю методом рекурсивного спуска


Не уверен, как его тут применить. Я бы просто взял ANTLR и сгенерировал парсер, для таких булевых выражения она должна быть несложной, а потом уже можно пройтись по дереву делая замены для правил которые попадают под аксиомы
Начать можно с этого примера https://stackoverflow.com/questions/30976962/nested-boolean-expression-parser-using-antlr
вначале реализовать свою грамматику, заимплетентить EvalVisitor без аксиом, потом добавить замену аксиом.
1454 2209920
SimpleJpaRepository это ведь и есть то, что выполняет волшебные методы из JpaRepository?
Оно на критерии написано. А много где прям нелюбовь к критерии встречал.
1455 2209921
>>209519

>11/11/21 Чтв 13:26:52



>>209920

>12/11/21 Птн 00:27:22



11 часов и 30 секунд между соседними постами. Поумерьте пыл!
1456 2209931
Читаю джуновские вакансии и вижу дохуя таких, где нужно писать тесты. Стоит ли на них ходить? Боюсь, что там нихуя полезного не получу, только заклеймят как вечного тестописателя и придётся до пенсии только этим и заниматься.
1457 2209932
>>209931
Ты никогда не станешь даже стажером, если не умеешь покрывать код тестами. Сейчас это базовое знание даже для новичка.
1458 2209935
>>209931
Типа так и пишут, что ты только тесты будешь писать за другими, а больше мы тебе ни к чему не подпустим? Мне кажется, даже если так и есть, то в этом в вакансиях не признаются.
1459 2209953
>>209931
>>209935
Признаются, если вакансия называется типа "Автоматизатор ручного тестирования" и в обязанностях "Писать автотесты". Перекатиться в нормальную разработку потом да, будет труднее. Есть такой сиереотип, что у автоматизаторов квалификация ниже и кодить они умеют хуже, и поэтому при переходе на другой проект, услышав, что ты раньше писал автотесты, могут захотеть тебя опять посадить за них. Часто даже бывает, что автоматизаторами становятся после обычных ручных тестировщиков, когда они начинают изучать кодинг.
1460 2210079
Поясните, плес, как при имплементации классом каким-то классом интерфейса Clonable, и единственном вызове в методе клонирования super.clone(), оказываются скопированными поля наследника? Ведь у Object нет доступа к полям потомка? Там происходит что то с использованием рефлексии, или я просто что-то плохо понимаю? Как это срабатывает?
1461 2210081
>>210079
Забудь и никогда это не используй.
1462 2210087
>>210081
Я и так не использую, предпочитаю конструктор клонирования. Но, во-первых, я ковыряюсь в говнолегаси где это сделано, и все места там зарефакторить будет сложновато. Ну и в основном спрашиваю просто потому что бесит, когда что-то непонятно как работает, тем более в такой базе (хоть и мусорной)
1463 2210176
>>210079

>Там происходит что то с использованием рефлексии, или я просто что-то плохо понимаю? Как это срабатывает?


Там не рефлексия, а нативный код JVM memcpy скорее всего. Но тебе на это пофиг, тебе надо знать какие эффекты есть для тебя:
1. Конструктор не вызывается.
2. Копируются все поля, для ссылок копируются только ссылки.
3. Поведение можно переопределить с помощью внезапно переопределения метода clone(). Т.е. ты можешь заменить клонирование на конструктор копирования хотя это и не рекомендуются.
1464 2210215
>>210176
Все эти свойства и особенности использования этого говна я знаю. Не знал только, как оно это умеет делать, думал что может упустил какие-то полезные умения джавы, относящиеся к "публичным" инструментам языка. Если оно работает чисто магически, то хуй с ним. Спасибо за ответ.
1465 2210648
soap с виндовым клиентом на жаба8 это сильно больно?
при том, что есть еще рест-веб клиент с велосипедами на фронте.
для госов.
что мне ждать?
1466 2210665
>>210648
Все нормально.
1467 2210678
>>210648

> soap с виндовым клиентом на жаба8 это сильно больно?


Что "это"? Больно юзать SoapUI? Больно писать с нуля свой велосипедный аналог SoapUI? Больно писать клиентское приложение, работающее через SOAP?
1468 2210703
>>210678
Я сам пока не понял, что там. Может поддерживать клиент, может переписывать его на веб-морду. Явно нужно будет дописывать модули для сервера.
Я вообще пока не знаю soap.
90% современных роликов это рест с spa-фреймворком.
Нагуглил себе "мурзилок" и видосов. Сейчас буду вкушать.
Пока выглядит сильно сложнее реста. Особенно хеловордный пример на spring.io, но там класс домена отсутствует в исходниках и генерируется с xml-ки. Это прикол соапа или еще откуда-то?
1469 2210714
>>210703

> класс домена отсутствует в исходниках и генерируется с xml-ки


Соап в отличие от рест-жсонок типизированный, из-за чего системе-отправителю надо строго соответствовать контракту, понятному системе-получателю, описав не просто вложенные структуры и названия полей, но и типы, чтобы можно было провалидировать ещё до отправки. Переписывать все типы было бы сложно, поэтому обычно выгружают схему контракта в специальном формате и используют её на обеих сторонах. Схема - это описание типов в XSD и описание самого SOAP-сервиса в WSDL. Хотя подобное и в ресте иногда практикуют с OpenAPI/json schema.
1470 2210751
>>210714
а wsdl это просто xml с определенными правилами, как pom?
1471 2210770
>>210751
Да. Правила достаточно хитрые, можно не вникать, главное уметь её выгружать и генерировать по ней классы через JAXB.
1472 2210943
>>210770
А что за jax-b? Еще jax-ws какой то. Везде птичьим языком объяснено. Можешь пояснить для дебилов?
1473 2210957
>>210943
Именно JAXB, не jax-b, он не имеет отношения к jax-ws. Это сериализатор/десериализатор между джава-объектами и XML (примерно как Jackson для JSON), но ещё есть jaxb-maven-plugin, который умеет генерировать джава-классы из XSD-схемы.
JAX-WS - это оракловая спецификация API для серверов приложений, реализующих SOAP-сервисы на Java EE, просто стандарт. В Spring-WS этому стандарту не следуют, там свой подход.
1474 2210969
>>210957
Блядь, как же всего этого говна много. Ощущение, что я не очень скоро узнаю даже то насколько глубока кроличья нора. Не говоря уж до знания всех нужных штук.
1475 2210973
>>210969
Разобраться можно, если долго ежедневно ебаться с этой хуйнёй. Но глубоко понимать и не надо, достаточно только на том уровне, что нужен для решения текущих задач.
1476 2210995
>>210973
А для собеседований насколько глубоко нужно погружаться? Я проект пилю, но ощущение, что всё равно какую-нибудь редкую поебень могут спросить, до которой я не дошёл.
1477 2211009
>>210995
Единственная вакансия на hh по которой мне ответила херка на мой отклик это магнит, но на собес не позвала, ибо не знаком ни c jms, который нужен в вакансии, ни с кафкой.
Резюме без опыта, с 2 крудами на гите. Написано - java, jdbc, spring mvc, spring data, hibernate, sql, rest, html/css/js, docker.
Вот сейчас буду дальше в таком порядке: soap(ибо с этой штукой там вроде предлагают работу, но может обломаться в любой момент и даже если возьмут, то там походу такое, что лучше больше полугода не сидеть) потом nosql, месседжинг, секурити, микросервисы, облака.
После каждой новой техи обновлять резюме, делать отклики на хх. Тут челик еще сказал делать отклики на сайтах крупных контор типа

>сбер, телекомы, всякие галеры вроде нетсракера, ебама, ланита, крока, и прочей параши


буду делать на след шаге.
Глубоко дрочить ничего не собираюсь. Разве что джавакор подтянуть.
1478 2211088
>>210969
это описание методов запросов и ответов. А также структуры запросов и ответов. Вместо того чтобы юзать костыли типа сваггера или описание контрактов в вики - эта штука сама описывает все возможные запросы и все возможные структуры данных. Можно даже автоматом генерить сервисы и дто.
Взял всдл, сгенерил по ней классы, юзаешь их. Элементарно. Что-то изменилось - взял новую всдл, сгенерил новые классы, идея сразу кидает ошибки что изменилось
Гораздо удобнее и строже говнореста
1479 2211174
>>211088
И чем это отличается от сваггера?
1480 2211208
>>211174
в сваггере глазами смотришь, нет автоматической валидации, ендпоинты надо руками писать
1481 2211224
>>211208

>ендпоинты надо руками писать


Чел ты... https://editor.swagger.io
Ну и валидация для сгенерированного кода там есть.

Просто это как обычно, вначале зумерье кричало что XML тяжеловесный, а XML Schema сложная, SOAP вообще отстой, а мы сейчас обойдемся простым REST по шаблону /ресурс/айди/ и валидировать будем кодом на беке. Но потом на реальных проектах жилко пернуло, после того как API разрослось и сталу нужно отдавать его внешним заказчикам. До них наконец дошло, что было бы неплохо и формат запросов валидировать, и формальное описание сервисов иметь. В общем по второму кругу изобрели SOAP.
1482 2211227
>>211208
C чего ты взял? Есть все.
1483 2211360
В гайд из шапки треда было бы неплохо добавить пару слов про ELK и MQ, они сейчас во всех вакансиях в том или ином виде присутствуют. Ещё про bpmn движки можно вспомнить, апишки для всяких gRPC с SOAP.
1484 2211369
>>211360

> ELK


Специфично, не в каждом проекте нужно.

> MQ


Там и учить нечего.
@СлушатьОчередь(очередьНейм)
очередьСервис.отправить(очередьНейм, сообщение)
А с остальным девопсы ебутся.
1485 2211397
>>211360

>bpmn движки


мёртворожденная срань
1486 2211440
>>211369

> ELK


> Специфично, не в каждом проекте нужно.


В той же мере, в какой кубер специфичен. И тем не менее, он упомянут.

> MQ


> Там и учить нечего.


Неправда. Хотя зачастую чего-то сверх того, что ты описал, действительно не требуется.

>>211397
Аргументы?
1487 2211441
>>203767
СУКА ХУЛИ ЭТО УЖЕ ПРИДУМАНО БЛЯДЬ
https://sting-ioc.github.io/docs/overview.html
1488 2211452
>>211441
Потому что хватит писать языки, фреймворки и технологии. Пишите продукты для конечных пользователей.
1489 2211462
>>211452
Продукты я на работе и так пишу.
1490 2211467
>>211462
Пиши их дома тоже. Будешь писать вдвое больше продуктов.
1491 2211470
>>211467
Да я ебал)
1492 2211489
>>211440

>Аргументы?


изначально предполагалось, что менеджер или топ будет сидеть такой и мышкой менять схемы бизнес-процессов в редакторе, и всё это будет загружаться и автоматически изменяться.
Надежды не оправдались, топам не всралось изучать bmp редакторы и ебаться с багами и ограничениями. Им проще как и раньше описывать всё на бумаге и спускать четырёхглазым засерям по почте.
А засерям не усрался bmp, им проще в коде поменять
1493 2211635
Если процессор аннотаций написан на котлине, я могу использовать его в java-проекте? Или не скомпилится?
1494 2211649
Как собрать проект c makefail на винде ?
1495 2211650
>>211649
makefile*
стыд
1496 2211652
>>211650
спроси в треде для языка си.
1497 2211653
1498 2211661
>>211652
но мне надо java проект собрать
1499 2211666
>>211661
Зачем?
1500 2211667
>>211666
Препод заставил.
1501 2211670
>>211667
Ты скажи ему, что мейком можно только плохо джаву билдить.
Че он тебя так неуважает? Ботинки тебя заставит целовать, тоже будешь?
1502 2211672
>>211670
Ну смари. Мне дали задание решить задачу по матлогике. Языки были : Java , Python , C , Kotlin. На каком языке я ее решил думаю понятно. И вот хуяк он вываливает системы теста. Я то думал как на тимусе будет или там какие то условия есть раз Java и Kotlin в списке. А нет нихуя, система тока через makefile принимает.
1503 2211676
>>211672
страдай
1504 2211677
1505 2211782
Ебать пацаны,за 6 часов я смог вывести данные из базы в vue.js. Ебать я гений. Уверен когда нужно будет вводить составные данные я отсосу,ну да похуй. Кто-нибудь знает годные туториалы?
1506 2211889
>>211009

>Единственная вакансия на hh по которой мне ответила херка на мой отклик это магнит


В краснодаре живешь?
1507 2211896
Есть несколько разных типов бинов, условно Extractor, Processor, Writer. Есть один енум с типом источника. Для каждого типа источника создается свой бин каждого типа. Как мне в другом сервисе получить все бины трех типов, для каждого значения енума?
1508 2211919
>>211896
А в чём проблема то? Чем DI не устраивает?

Хуёво ТЗ поставил.
У тебя 3 бина и енум, принимающий 3 значения?
А в сервисе хочешь 3 бина получить? Тогда инжекти все три через конструктор и похуй на енум.
1509 2211922
>>211889
по удаленку
1510 2211930
>>211919

>Для каждого типа источника создается свой бин каждого типа



Enum1Extractor, Enum1Processor, Enum1Writer, Enum1Extractor...
Я хочу их во первых объединить в одном классе типа Enum1Support, Enum2Support, а затем заинжектить в другой сервис в мапу <Enum, EnumSupport>.
1511 2211936
>>211896
>>211919
Или у тебя только в рантайме станет известен источник, для которого будет персональный набор бинов?
Инжекти сам енум и сделай в нём геттеры для бинов.
1512 2211948
>>211936

>Инжекти сам енум и сделай в нём геттеры для бинов


Давай поподробнее.
1513 2212003
>>211672
Ну напиши makefile который запустит грейдл.

.DEFAULT_GOAL := build
build:
_____./gradlew build
clean:
_____./gradlew clean
1514 2212007
>>211930

>Enum1Extractor, Enum1Processor, Enum1Writer, Enum1Extractor...


>Я хочу их во первых объединить в одном классе типа Enum1Support, Enum2Support, а затем заинжектить в другой сервис в мапу <Enum, EnumSupport>


В Enum1Support передаешь 3 бина Enum1Extractor, Enum1Processor, Enum1Writer, в Enum2Support - Enum2Extractor, Enum2Processor, Enum2Writer. По типам все разрулиться.
Чтобы засунуть все в мапу в конструктор передаешь List<EnumSupport> спринг соберет в лист все бины которые реализуют этот тип.
1515 2212011
>>212007
Я ебал это все руками делать. Я хочу чтобы саппорт-бины генерились автоматически, а в мапу все автовайрилось по квалифаерам.
1516 2212022
>>212011

>Я хочу чтобы саппорт-бины генерились автоматически


Ты хочешь чтобы спринг за тебя бины генерил? Может еще и бизнес логику за тебя реализовать?

>а в мапу все автовайрилось по квалифаерам.


У тебя каша в голове, попробуй вначале ту мапу описать, потом поймешь что это невозможно. <Enum, EnumSupport> - не описывает что должно быть ключом, что значением.
1517 2212035
>>212022

>Ты хочешь чтобы спринг за тебя бины генерил? Может еще и бизнес логику за тебя реализовать?


Это две противоположные вещи. Да, бины он и так за меня генерит.

><Enum, EnumSupport> - не описывает что должно быть ключом, что значением.


Ключом енум, значением бин, в который заавтовайрены другие бины с определенным квалифаером. Ты тупой?
1518 2212118
Аноны, че по джаве читануть? Шилдт какая-то душная хуйня, на инглише лень ибо надо моск напраягать, ибо сука две задчачи сразу надо дрочить... надо чет на русском. Говорять Эккель норм, но он написан хуй знает когда ещё был да и перевод от Питера сраного, говно... Мне бы ченить от ДМК или Диалектики, какие годные книги для вкатуна? Курсы сразу нахуй, а в будущем хочу в андроид вкатиться, кстате инглиш норм, но если читаю то надо напрягаться.
1519 2212120
>>212118
Мурзилки.
1520 2212124
>>212120
Да я без прикола, мне бы для себя.
1521 2212125
>>212118
Хорстманн, если не ньюфаг.
1522 2212128
>>212124
Для себя лучше в зал тренажерный запишись, или на спорт какой-нибудь.
1523 2212131
>>212035

>Да, бины он и так за меня генерит.


Мамка твоя дебило генерит, а спринг генерирует только прокси.

>Ключом енум, значением бин, в который заавтовайрены другие бины с определенным квалифаером.


Ебать ты даун! Как протрезвеешь, подумай если найдешь чем и скажи как по сигнатуре
<Enum, EnumSupport>
спринг должен понять, что надо в мапу вайрить.
1524 2212138
>>212131
Я и спрашиваю, как сделать так, чтобы спринг это понял, хлебушек.
1525 2212202
>>212138
Н И К А К
И
К
А
К

Спринг вайрит типы, а не конкретные значения. Если ты такой тупой, что не можешь из List сделать Map то тебе надо идти в клининг менеджеры и не ебать тут мозг.
1526 2212247
>>212202
Спринг вайрит типы с учетом квалифаеров. Я и спрашиваю, как мне вытащить квалифаер при этом. Впрочем я уже нагуглил.
image.png8 Кб, 1251x115
1527 2212296
>>212003
А я могу все собрать в jar пакет и просто через мэйк его вызывать ? Я просто вообще мэйкфайлы писать не умею.
Увидел питоновский пример такого файла и охуел от краткости скажем так. Нельзя ли и jar так же ?
1528 2212299
>>212296
А нахуя тебе вообще мейкфайл в таком случае?
1529 2212304
>>212299
ну потому что без него решение не запустится в тестовой системе
1530 2212306
>>212304
А ты уверен, что в тестовой системе нет своего мейкфайла?
1531 2212321
>>212247
Нагуглил - поделись с аноном.
мимо
1532 2212336
>>212306
Уверен. Надо загрузить зип с мэйкфайлом и решением
1533 2212431
>>212336
Бредятина какая-то. Ну тогда проще всего сделать как тут >>212296 с джарником.
1534 2212546
>>159705 (OP)
На форчане сказали go заменяет джаву. Это правда?
1535 2212548
>>212546
На заборах тоже много чего пишут.
Не имеет значения, заменяет или нет. Сейчас работы на жабе больше, а если это когда-то станет не так, то к тому времени можно успеть переучиться.
1536 2212554
>>212546
Это похуй
1537 2212559
>>212118

>Шилдт какая-то душная хуйня


Да ты охуэл штоли сука. Шилдт прекрасен.
Наверни хэд-фёрст Сьерры и Бейтса. Там как раз для любителей унылого стендапа, которым серьезные дядьки скучна/сложна.
1538 2212595
Сорян за оффтоп - не нашел в шапке доски. По каким ресурсам прокачаться в веб-технологиях? Есть какой-нибудь пиздатый труд-монография для полных дебилов? По тому как организовано общение клиентов и серверов, HTTP, всяким там запросам и ответам, HTML-ам и прочим CSS-ам, JSONам и т.п.? А то в мануале к этому треду висит "Вы должны уже шарить во всей паутине, не падать в обморок от слова Endpoint", а как это хоть немного прокачать не рассказано.
1539 2212600
>>212595
Конечно не нашёл. Вопросы по вебу в JS-треде, а здесь разве что HTTP.
1540 2212606
>>212600
А что, можно как-то эффективно разрабатывать веб-приложения толком не понимая как оно все работает? Если все так не важно, то зачем же в шапке, на которую все слегка дрочат, указывается что шарить надо?
1541 2212610
>>212606
Шарить поверхностно нужно, но это тред про жабу, а не веб.
bindDB.png34 Кб, 402x561
1542 2212621
Кто-то пробовал подключать в качестве дата-сурса Firebird/Interbase к Intellij? Что-то не вижу такой опции. Может нужен какой-то плагин или что-то вроде этого?
1543 2212635
>>212559
Шилдт - говно. Даже нет приложенного архива с кодом. Я че сам это все должен переписывать и дописывать к каждому примеру бойлерплейт?
1544 2212641
>>212595
Я работу хттп, хтмл, жс смотрел на https://developer.mozilla.org/ru/docs/Web/HTTP/Session
там больше половины на русский переведено.
1545 2212642
>>212635
Он выступает как справочник, а не учебник для всяких пряников. Так что со своими архивами можешь уебывать, смузихлеб.
1636963502506.png96 Кб, 570x749
sage 1546 2212649
1547 2212651
>>212642
Во первых в чем проблема дописать к справочнику бойлерплейт и выложить сорцы?
Во вторых вкатыш сверху прямо сказал, что пошел по Шилдту, как по учебнику и в этой роли Шилдт душная хуйня, и в этом он прав.
В третьих а нахуя такой унылый справочник нужен? У тебя есть справочник - дока называется.
1548 2212677
>>212649
Это что, в какой-то новой идее из коробки так? У меня нет там никаких others (idea 2020.1)
sage 1549 2212689
>>212677
2021.1 ultimate
1550 2212716
>>212431
дак а что написать то туда надо , что бы это сделать
1551 2212724
>>212651
Проблема в тебе. Совсем уже охуели, пряники гречневые. В олдскульных книгах всех рекомендуется код писать в блокноте без всяких ИДЕ и собирать/запускать из командной строки, а этим хлебушкам уже даже лень написать три строчки в тепличных условиях.
Нахуй вообще его запускать? Ты что не веришь что тебе в книге правильный аутпут покажут? Посмотрел листинг, понял о чем в нем речь и погнал дальше.
1552 2212732
>>212296

>А я могу все собрать в jar пакет и просто через мэйк его вызывать ?


Можешь, но ты же начал с

>Как собрать проект c makefail на винде ?



Как вариант можно из грейдла запускать main() метод.
1553 2212737
>>212724
лол. чувствуется запах программиста из говновуза. Нахуя код запускать вообще? Сиди и пиши его на листочке и дрочи на него. Программы пишутся же не для того, чтобы их запускать, а чтобы кусочки кода в голове прокручивать.
И таким долбоебизмом только твой Шилдт занимается. Есть замечательный Хорстман с нормальным кодом, книжка по канкарренси с кодом, книга Лафоре по алгосам с кодом, книга по хиберу с кодом, книга спринг ин экшон с кодом. Одному Шилдту это нинужна.
Зачем нужно такое говно, как шилдт, если это просто перепечатка доки?
1554 2212752
>>212737
Этот входильщик-в-ай-ти-из-мак-доналдса порвался, еще несите. Чуйку почини свою, дебс. Я не сказал что код писать не нужно, я сказал что непонимаю нахуя слово-в-слово переписывать или запускать скопипащенный код который в книге. Разницу чуешь?
1555 2212768
>>212752
А нахуя во всех нормальных книгах есть готовый код и все кроме шилдтодебила его выкладывают? Чтобы читатели запустили из книжки и посмотрели как работает, покрутили, поменяли пару переменных, дописали что-то, на сайдэффекты могли бы наткнуться, перешли в библиотечные классы через идеху и поняли, как работает код с данной языковой конструкцией/библиотекой?
Ты лучше мне ответь нахуя нужна перепечатка доки.
1556 2212805
>>212737
>>212752
>>212768
Ребята, не ссорьтесь. Давайте лучше вместе почитаем Core Java Хорстмана!
Первый том 12 издания уже вышел.
https://dropmefiles.com/0o9L8
1557 2212831
>>212805
Хорстман топ. Читал 11.
17 есть, это збс. А там с 11 есть что-то новое, кроме многострочек и свича нового?
Свинг он зря не убрал из первого тома.
image.png37 Кб, 665x452
1558 2212978
Помогите алгоритм придумать для получения всех комбинаций 2^n. Я вот это высрал , но чет задача в 1 секунду не укладывается. Походу говна написал.
1559 2213040
>>212978
Самое время юзать Guava/Apache Commons.
1560 2213067
>>212978
Нормально задачу сформулируй, а не "получить все комбинации 2^n". Или ты думаешь кто-то будет тут всматриваться в твой говнокод пытаясь понять что он делает, если заведомо известно что делает хуево?
sage 1561 2213094
>>212978
Иди циклом от 0 до 2^n - 1 и выводи побитовое представление числа
1562 2213120
>>212978

>эта смесь регистра букв в аргументах X и x


>эта транслитерация русского слова


>отсутствие выравнивания


>это получение результата через побочный эффект


пиздец
1563 2213205
>>213120
>>213094
>>213067
>>213040

Да хуй знает чем думал , кароч я уже все сделал. Не бузите
1564 2213215
>>213205
ссылку хоть кинь на нее. посмотреть чем нынче вкатыши занимаются. или скопипасть текст
1565 2213327
>>212321
Нет)
1566 2213330
>>212716
google -> how to run java program
1567 2213355
Кто недавно по собеседованиям ходил - вспомните, какие вопросы задавали.
Уже больше года дрочу, но ощущение, что всё равно обосрусь.
1568 2213364
>>213355
Ну обосрешься и обосрешься, у тебя бесконечное колличество попыток, малой, только время теряешь на страхи свои. А по существу глянь на ютабе собеседования, те же вопросы и задают везде
1569 2213365
>>213364
Бесконечное количество попыток на что?
Пока ни разу на собес не позвали даже.
На ютабе глянул, там у людей даже с полугодовымопытом такую хуйню спрашивают, что я даже вопрос понять не могу.
1570 2213404
>>213365
Кидай резюме, обсудим ошибки
1571 2213423
Каким именно образом незакрытый ресурс приводит к утечке памяти? Где висит та ссылка, которую не может убрать гц?
1572 2213446
>>213404
И скрин паспорта?
1573 2213451
>>213446
А сколько тебе лет и какое образование? Меня вот не зовут, как я думаю, потому что я старый и с нерелевантным образованием.
Какие кейворды написаны?
1574 2213464
>>213451
Лет за 30. Образование профильное. Мне кажется, что херки в первую очередь рассматривают студентов и выпускников профильных вузов. А стариков сразу в корзину.
1575 2213465
>>213464
А если образование профильное, то почему ты вкатываешься за 30 лет? Или ты на другом стеке работал? Для таких я думал тоже норм скидка, как и для выпускников/студентов старших курсов
Я по глупости своей пошел не на айти, хотя хотел, а потом еще годы пытался работать по специальности, которую закончил. В сейчас вкатившиеся без образования убедили меня попробывать.
1576 2213489
>>213423
Оно приводит к утечке ресурсов ОС, а не памяти приложения. Система продолжает сопровождать и обслуживать то, на что ты уже утратил способ влиять (оно вышло из области видимости программы).
1577 2213490
>>213465
>>213464
Спок, диды. Мне вообще 36, все еще вкатываюсь, лул
1578 2213492
>>213490
Во сколько начал вкат, что побудило, что уже изучил?
1579 2213502
>>213492
В формате увлечения лет в 30. Изучал джаву "просто так" для интереса, прогал микроконтроллеры на околоплюсах, ну и просто компьютер саенс в разных аспектах. Работать на джаве начал пару лет назад, но у меня специфическая область - попил своего рода "микросервисов" которые кое-что обрабатывают в базе данных и туда же скалдывают результаты. Понятное дело что это хуйня, так что понемногу изучаю Spring, потому что это и есть коммерческая джава по сути. Изучил джаву (кор включая стандартную либу), какой-никакой UI не ней, работу с БД, с некоторыми другими внешними вещами (это все легко разбирается).
Побудило то что "обычные" профессии (я был инженер) - это как правило засилье тупости и беспомощности, люди там годами делают тупую хуйню по шаблонным рецептам, даже не задумываясь зачем это нужно и нужно ли вообще, как работает, и как может быть улучшено и автоматизировано.
В целом на мой вкус энтерпрайз - это параша, как по мне гораздо более интересны какие-то более фундаментальные вещи, вроде ОС или движков каких-нибудь красивых технологий, вроде графических/физических/блокчейн/нейросети и вот это вот все. Надеюсь когда-нибудь туда съехать (если не сдохну раньше)
1580 2213504
>>213502
так ты работаешь на джаве или как?
1581 2213506
>>213504
Да, но это не похоже на то как обычно на ней работают. Это скорее похоже на то как работают на каком-нибудь шарпе. Джава обычно используется на бэке в вебе. У меня совсем не так. Дело в том что я работаю в проекте где не было какой-то заранее готовой архитектуры и соответственно технологий, и мог пилить на чем угодно, что дало бы результат. Я стал юзать джаву потому что на ней больше всего умею и знаю.
1582 2213507
>>213506
Так что используешь?? Джаваее? Или это не серверные приложения?
1583 2213511
>>213507
Просто голую джаву с ее стандартной либой. Специфика того что надо делать - больше вычислительная а не КРУДовская. Для связи с БД просто JDBC без всяких гиберов. Это все конечно можно начать перетаскивать на Спринг (JavaEE вроде как более менее мертвая в сравнении со спрингом), но если я буду достаточно квалифицирован чтоб работать с такого уровня вещами на спринге полноценно - будет просто нецелосообразно работать там где я сейчас нахожусь, потому что стоят такие вещи гораздо больше, чем я здесь обхожусь своему работодателю. Это и есть ближайшая цель - подучить какие-то популярные мейнстримные технологии и вкатиться "по-настоящему"
1584 2213513
>>213511
Ммм, вычислительные штуки. И что сложная логика вычислений?
1585 2213517
>>213513
Ну такое... всякое бывает. Иногда сравнительно сложное, вроде эволюционного алгоритма подбора коэффициентов функции оптимизации, или что-нибудь вроде "экспертной функции" вроде того какую машину наивогоднейше отправить по такому-то маршруту, с учетом ограничений и маршрута, и машины - ну типа там, у этой радиус поворота не позволит проехать там-то, а эта недостаточно проходима что пройти там-то (это как пример, просто задачи подобные)
1586 2213518
>>213517
тогда ты меня вообще не утешил. Звучит пострашнее всяких страшилок спрингистов про сложные валидации, огромные базы и интеграции с миллионом сервисов.
1587 2213519
>>213518
Ну почему же. Отличие от спринга в том, что там тебе нужно знать какой-то гигантский стек технологий разработанных ХЗ кем и ХЗ как работающих. В том случае, в который я попал, тебе ничего особо знать не нужно, кроме самой джавы с ее либой, ну и каких-то базовых вещей для межпрограммного взаимодействия (С БД, системой, какими-то типами ресурсов). А весь код, который тебе позволит абстрагировать предметную область и сделать нужные обработки, ты придумываешь и пишешь сам, соответственно хорошо его знаешь и всегда можешь адаптировать/допилить/перепилить под новые нужды. Хороший способ естественным путем дойти самому до всяких "паттернов проектирования", лол. Тут просто, как бэ, язык вторичен, главное идеи и понимание того что надо сделать. Язык просто твой супер-универсальный программируемый калькулятор с неограниченными возможностями.
1588 2213538
>>213489
То есть, средствами мониторинга JVM его даже не найти?
1589 2213580
>>213538
Я не ебу, ес честно. Просто практически в кажом мануале по юзанью Autoclosable интерфейсов говорится именно это. Еще когда-то где-то читал, что у системы ограниченное количество дескрипторов разных предоставляемых клиентсому ПО ресурсов, так что если ты запустишь открытие потоков в каком-нибудь длинном цикле то они тупо могут закончиться. Это похоже на memory leak по смыслу, только в этом случае не освобождается не память до удаления на нее всех указателей, а ресурс системы, с которым процесс работает.
1590 2213701
>>213465
После вуза, сюрприз, ты тоже нахуй никому не нужен без опыта.
Тогда не было засилья рекламы всяких курсов и я не знал, что нужно делать. Но зато тогда можно было на собес попасть даже с пустым резюме, где тебя как правило обсирали, хули ты ничего не умеешь.
А теперь нужно дохуя всего знать, часов 500 пописать пет-проекты чтобы тебя соизволили пригласить на интервью.
1591 2213703
>>213580

>Просто практически в кажом мануале по юзанью Autoclosable интерфейсов говорится именно это


Да, я тоже просмотрел десяток мануалов, и везде пишут одно и то же, не разъясняя почему.
1592 2213723
>>213703
Потому что это особенность операционной системы больше, чем самой джава-среды. Если ты хочешь прокачать джаву чтоб не думать об этом, можешь накатить ламбок, там есть аннотация которой ты можешь пометить любой вновь создаваемый ресурс, и лобок его утилизирует за тебя.
1593 2213774
>>213723
Я хочу прокачать джаву. Чтобы конструкцию try-with-resources переименовали в context manager, и чтобы с вместо try(...) использовалось ключевое слово using(...) или with(...).
sage 1594 2213777
>>213774
Юзай котлин
1595 2213789
>>213701
То есть ты 8+ лет после вуза писал пет проекты?
1596 2213792
>>213777
Ну трипл, обычно когда котлин вслух произносят у дидов в команде включается эпичное НЕНУЖНО
sage 1597 2213800
>>213792
Ну а жаву прокачивать кончено же нужно.
Остаётся только юзать try (...) и не бухтеть
1598 2213907
>>213774

> переименовали


И сломали заодно весь код, где есть переменная с таким названием, которая раньше была корректным идентификатором.
1599 2213934
>>212296

>Увидел питоновский пример такого файла и охуел от краткости скажем так. Нельзя ли и jar так же ?


Кстати, начиная с 12 JDK можно так же java MoiGovnokod.java
в классе не должно быть никаких внешних зависимостей
1600 2213979
>>213907
Ну дяяя.
1601 2214067
>>213907
Почему дотнет может позволить себе послать нахуй обратную совместимость и переродиться (.net framework -> net core - NET 5+), а джава нет?
sage 1602 2214068
>>214067
На жаве много легаси, в котором крутится слишком много денег
1603 2214069
>>214068
Но сломали же совместимость в 9ке.
1604 2214070
>>214068
Так на шарпе не меньше легаси было, у них с джавой одна сфера
1605 2214071
>>213423

>Каким именно образом незакрытый ресурс приводит к утечке памяти? Где висит та ссылка, которую не может убрать гц?


Это касается нативной памяти не кучи и тех ресурсов которые ОС выделила твоему приложению например файловый дескриптор и кеши.
Хорошая новость в том, что все стандартные классы реализуют финализацию. Плохая в том, что сторонние библиотеки могут этого не делать например тот же JACOB раньше забивал на это хуй.
sage 1606 2214074
>>214069
А разве там не впилили костылину с аннеймд модулями?
1607 2214093
>>214070
И что за фреймворки у шарпа есть для энтерпрайза и веба?
1608 2214113
>>214093
Сам .NET и ASP NET Core (аналог спринга)
1609 2214151
У оракла в загрузках для виндоус есть jdk в виде архива, но инструкции по установке есть только для использования установщика. Этот установщик делает что-нибудь кроме распаковки архива и установки переменной path и java_home?
1610 2214225
https://habr.com/ru/post/589605/
Пожалуйста, обновляйтесь.
1611 2214226
>>214225
Обнови мне сервер приложений, который на жабе больше 8 тупо не стартует с NPE.
1612 2214229
>>214226
Кидай стектрейс.
1613 2214230
>>214225
java 8 поддерживается до 2030 если шо
1614 2214239
>>214225
Про List.of и Arrays.asList - упрощение в том, что не надо импортировать util.Arrays?
1615 2214243
>>214239
Строки короче получаются.
1616 2214292
Че вы делаете, когда внутри метода сервиса че-то логируется, потом этот метод сервиса вызывается в другом методе сервиса в котором логируется почти то же самое?
1617 2214294
>>214292
Ничего. Делал не я, переделывать времени как обычно нет.
1618 2214339
Понимаю что платиноводебильный вопрос, но дайте пж туториал\вебинар\книгу для быстрого вката. Мне нужно простое веб приложение написать, я плюсы на достойном уровне знаю, так что нужно чтобы минимум говна было для новичков
1619 2214371
Вкатуны, организуйте кто-нибудь дискорд сервер какой-нибудь что ли. Мне легче заниматься обучением, когда я осознаю, что я не один.
1620 2214376
>>214371
Ты не один, с тобой весь этот тред. Здесь все твои друзья.
1621 2214382
>>213215
Держи. Задачу то я решил , переменные нормально обозвал. Но когда 16 переменных выражении время исполнения за секунду все равно переваливает. Эх...
Из за чего это может быть ? Парсер у меня самый дефолтный , на лексемы просто разбивает и потом обходит.
1622 2214424
А встречались вам те, кто поработав в бхэкенде послал его в месте с джавой нахуй и ушел, например, во фронт?
1623 2214427
Знает кто-то бесплатные моки-тесты к oca/ocp? А то я один нашел и он не оче.
1624 2214432
Что изучить для вкатуна в спринг: jms, rabbitmq, kafka? Много где есть требования к одной из этих штук. Какую релевантнее изучать? Пока думаю rabbit.
1625 2214437
>>214424
Охотно бы съебался в какую-нибудь системщину, или геймдев. Бизнес-автоматизация - это душное говно. Особенно если голая крудня без всяких алгоритмов обработки более-менее нетривиальных
1626 2214441
>>214437
Так это понятно. Там интереснее и сложнее.
А про фронт интересно. Стать формошлепом после опыта крудомакакой с джавовским ооп головного мозга.
sage 1627 2214443
>>214432
Для вкатуна разницы нет. Главное - понять, как общаться через брокеры
1628 2214446
>>214443
Я понял, что главное что-то одно из этого потрогать, но с чего лучше начать? Что сейчас популярно, что из под спринга попроще управляется?
sage 1629 2214452
>>214446
Там со всем интеграция хорошая. Можешь с рэббита начать
1630 2214459
>>214371

>Вкат в жабу


Сейчас не 2015 год, у тебя есть превосходно отполированный дотнет и несущийся локомотив хайпскрипта, но нет надо жрать говно на допотопных технологиях
sage 1631 2214464
>>214459
Зарепортил.
1632 2214466
>>214464
По фактам тебе просто возразить нечего
sage 1633 2214474
>>214466
Репорт.
1634 2214475
>>214459
Хуйню какую-то несешь. На энтерпрайзе джава разделывает ваш дотнет и тайпскрипт вместе взятые помноженные на 5
1635 2214484
Форсер дотнета, вот ты тут срешь уже давно.
Расскажи чем реально лучше дотнетовский стек для больших приложений, чем дефолтные java11/springBoot/springDataJpa/springSecurity?
1636 2214485
Например я работаю с JDBC, создаю Connection и отключаю у него автокоммит. Все это, естественно, делается в try-catch. Есть ли разница между тем, когда соединение просто сломается и вылетит в catch, так и не выполнив коммита, и явным вызовом rollback у транзакции в блоке catch? Короче, какой смысл вызова rollback в catch-блоке? Это освобождает какие-то ресурсы БД или как? Но ведь соединение в любом случае сломалось и выбросило эксепшен.
Просто если использовать try-with-resources то в блоке catch уже не виден пойнтер коннекшена.
1637 2214490
>>214485
Так при транзации ты не поломанное соединение обрабатывать должен тракетчами, а ошибки в бизнес логике во время транзации. И при ошибке в логике ты и ролбечишь.
1638 2214495
>>214490
Ну это понятно, но если например логика упадет с любым другим SQLException, и я попаду в catch, есть ли смысл делать откат транзакции? Или достаточно просто того, что до киммита уже и так никогда не дойдет?
Просто эта механика как-то хреново согласуется с try-с-ресурсами - ведь из catch уже ничего нельзя сделать с коннекшеном. Либо надо внутри try-с-ресурсами где делается коннекшен делать вложенный try-catch вокруг логики и в нем в catch вызывать rollback, потому что там он все еще виден. Вот я и хочу понячть есть ли смысл городить такой пиздец, или можно просто забить на открытую транзакцию.
1639 2214513
>>214495
так при разрыве соединения там все ролбечится автоматически. По классике два вложенных трайкетча(обычно больше) - на внутреннем обрабатываешь ошибку логики и в его кетче ролбечишь, а на внешнем sql-ексепшоны.
1640 2214521
>>214513
Уже так и сделал, благодарю за содействие. Классический подход обдвачевавшегося долбоеба - сначала спроси, потом подумай и сам все пойми, потому что это вполне логично
1641 2214527
Начал потихоньку подходить к секурити. Ну и хочу на google-oauth запилить проектик. Как всякие личные данные отделять с паролями/секретными токенами от гуглов, чтобы их на гит не складывать? В примерах они вместе совсем в application.yml лежат.
Или лучше зарегать почту, которую не жалко и все данные для этой почты выкладывать на гит, чтобы оно работало?
sage 1642 2214536
>>214527
Юзай environment variables
1643 2214540
>>214536
в винде типа в переменные среды захардкодить?
sage 1644 2214579
>>214540
Если ты пользуешься идеей, то можно прописывать переменные в ней
image.png59 Кб, 274x280
1645 2214677
>>214382

>razmer


>colichestvo


>код картинкой

1646 2214684
>>214579
Ну то есть если вдруг кто-то мой гит будет смотреть, то это норм, что код не будет работать, так как я не выложу всякие секурные пропертюхи?
sage 1647 2214694
>>214684
Да. Пусть свой акк заводит либо у тебя креды попросит
1648 2214702
>>214684
В ридми напиши, как эти пропертюхи получить.
нехочунафронт.png1,7 Мб, 996x798
1649 2215270
>>214437

>Бизнес-автоматизация - это душное говно


по сравнению с системщиной тут рай. Логи, скриншоты, повторяемость, подробнейшая документация, исходные коды, бизнес-аналитики. В системщине у тебя даже логов не будет, а документация только редкие ндашные даташиты. Стековерфлоу тоже будет недоступно. А аппаратные ошибки, которые надо будет ловить на конкретном девайсе всякими осцилографами
1650 2215275
В случае разработки SPA - рекомендуется вынести
репозиторий с front-end. Используйте proxy при разработке
(настройки CORS не должно быть).


Это значит, нужно 2 микросервиса делать?
Как использовать прокси? Прямо во фронте ловить запрос и перенапрвлять его на бэк? Как это по уму делать?
1651 2215387
Что такое блокировка с открытым доступом?
"Если класс использует блокировку с открытым доступом, он позволяет клиентам выполнять последовательость вызовов методов атомарно — ценой потери гибкости".
1652 2215519
Как назвать компонент, который отслеживает время, прошедшее с получения последнего ивента?
1653 2215524
image.png89 Кб, 800x418
1654 2215535
АХАХАХАХ
1655 2215612
>>215275
думаю имеется ввиду фронт раздавать с nginx и настроить его, как реверс прокси.
1656 2215620
Олды, подскажите как лучше обращаться к внешним апишкам через спринг бут? Хочу пиздить данные с погодных сервисов
1657 2215631
>>215270
Это выбирается не потому что там просто, а потому, что сложно
f.png315 Кб, 1250x1250
1658 2215677
>>215535
Просто спиздили безликого робота у шарпов, впрочем как и весь язык
sage 1659 2215683
>>215677
Вот кот был гораздо лучше
1661 2215700
>>215677
Как и весь язык, спизженный с Джава?
1662 2215710
>>215700
Зумеры, зачем вы носитесь с этой мантрой? Шарп был копией на первых версиях языка
1663 2215715
>>215710
И как это исключает заявление выше, шизик?
sage 1664 2215716
>>215696
Если ты пытался потроллить кодом на шарпе, то мое тебе почтение
sage 1665 2215717
>>215620
Webclient
1666 2215719
>>215715
Может тем, что когда куколд Бреслав пили котлин и опирался на другие языки, шарп уже далеко ушел от просто копии жабы?
1667 2215945
>>215612
Братишка, можешь поподробнее? Как это гуглить? ЯННП.
1668 2215961
>>215524
А еще? Clock.idleTime() чет не очень
1669 2216016
>>215945
Суть этого задания в отусе - поднять фронт отдельным серваком не на джаве на отдельном порту. Но если у тебя будет на разных портах работать фронт и бек - ты попадешь под cors ограничения.
Я с эти столкнулся, когда вот этот хеловорд дописал: https://sysout.ru/spring-boot-postgresql-js-v-dosker/
Для преодоления этой проблемы используются реверс-прокси, вроде нгинкс(нормальный метод, но я спасовал, не захотел разбираться с натройками nginx) или отключение корса на сервере(как сделал я, плохой способ).
Я бы не ебал мозги и никуда фронт пока не выносил.
1670 2216199
А теперь серьёзный вопрос:
Насколько важно знать докер для вкатуна?
А брокеры сообщений?
Или лучше потратить время на подготовку к вопросам про джава кор?
1671 2216315
>>216199
я так и не понял зачем нужен докер. В докере запускать базу? Зачем? Установил на рабочую машину и вот у тебя тестовая база.
Остальное окружение всё-равно не поднять локально, надо деплоить на стенд. Конфиг докера одинаковый на все МИКРОСЕРВИСЫ на жабе, и как они там на стендах деплоятся я не знаю. Этим пердолики девопсы занимаются
1672 2216474
В случае, если переменная field будет не null, значение field будет считано из памяти дважды? В этих местах: "field == null" и "return field"?

private Object getField() {
if (field == null) {
synchronized (this) {
if (field == null)
field = computeFieldValue();
}
}
return field;
}
1673 2216481
>>216474

>значение field будет считано из памяти дважды


ебать ты че братан
1674 2216482
>>216199
Мне кажется брокеры нужнее докера. Меня не позвали на собес, ибо нужен был jms или ребит/Кафка, чтобы был знаком.
1675 2216496
>>216474

>В случае, если переменная field будет не null, значение field будет считано из памяти дважды? В этих местах: "field == null" и "return field"?


Если она не volatile то гарантий нет, но вероятнее всего 1.
sage 1676 2216558
>>216315

> В докере запускать базу?


Да

> Зачем?


Гугли testcontainers

> Установил на рабочую машину и вот у тебя тестовая база.


Неудобно create-drop для тестов

> Остальное окружение всё-равно не поднять локально, надо деплоить на стенд.


Редис, реббит, эластик хорошо поднимаются в докере

> Конфиг докера одинаковый на все МИКРОСЕРВИСЫ на жабе, и как они там на стендах деплоятся я не знаю. Этим пердолики девопсы занимаются


Докерфайлы обычно программисты пишут, т.к. только они знают, как их говно в конт собрать. Но в основном программисту докер нужен только для разработки
1677 2216699
Почему в мейвене нет команды в командной строке чтобы отобразить расположение локального репозитория?
1678 2216702
https://maven.apache.org/guides/introduction/introduction-to-the-pom.html

>The Super POM is Maven's default POM. All POMs extend the Super POM unless explicitly set, meaning the configuration specified in the Super POM is inherited by the POMs you created for your projects.


>if the configuration details are not specified, Maven will use their defaults.


В суперпоме указан modelVersion, однако в каждом своём поме всё равно приходится указывать это дерьмо, при том что оно не меняется с 2007 года. У них там свои представления о наследовании?
1679 2216728
Почему в результате чистой установки он скачал maven-compiler-plugin восьмилетней давности, а теперь сам же ругается на старую джаву и ничего не может сканпилировать? И как теперь обновить эту хуйню. Так много вопросов и так мало ответов...
1680 2216730
А бывают какие-то решения для генерации тестовой базы/скриптов? Ну вот 10 инсертов я там напишу сам. А если я хочу тестовую базу на 500 строчек в каждой таблице?
1681 2216731
Подскажите нубину. Набросал код для передачи csv с фтп-комп-обработка-фтп, хочу переделать это в приложение, где мне лучше хранить объекты(данные от фтп(ip, login, pass))? В бд или какой конфиг делать? Сильно не стукайте
1682 2216739
>>216731
Это ты тут две недели назад про фтп-сервер писал?
91yISYgXhcL[1].jpg719 Кб, 2214x2560
1683 2216743
Препод в одной шараге посоветовал читать пик.
Книжка 2008 года, серия дурацкая, да и про jsp в книге.
Вообще стоит глубже знакомиться с сервлетами? Или мне хватит того, что есть такая черная коробка, которая реализует всю работу с хттп?
1684 2216745
>>216739
Нет, не я
1685 2216748
Вакансия: Младший (Junior) разработчик Java

Предлагаем вам выполнение тестового задания:

Сделать сервис агрегации агрегаторов такси. Необходимо реализовать общую архитектуру, коннекторы к конкретным агрегаторам можно реализовать на примере IWay или stub connector, но нужно сделать общий интерфейс
Сервис должен реализовывать возможность поиска предложений по адресам(в т.ч. асинхронно), бронирования и отмены бронирования
В качестве примера для имплементации можно взять API IWay

В тестовом задании необходимо использовать технологии и принципы указанные в вакансии:
владение Java на уровне junior+;
Spring/Spring Boot, Hibernate, SQL
работа с XML, XSD, XSLT;
желательно: gRPC, PostgreSQL, Kafka, Docker;

Как вам такое на Джуна? Зп не указана.
sage 1686 2216795
sage 1687 2216796
>>216748
Они закономерно идут нахуй
1688 2216800
>>216748
Нахуй пусть идут, как как
1689 2216814
Доставьте кто-то адекватный уровень вакансии на джуна, без охуелости работодателя как предыдущем примере.
мимо-вкатыш
1690 2216822
>>216814
Oracle, Java EE, WebSphere, SOAP, JMS, XML, XSD, XSLT.
1691 2216823
>>216822
может пойдешь лучше мамку тролльнешь?
1692 2216824
>>216814
Spring/Spring Boot, Hibernate, JUnit, SQL, HTML, REST, PostgreSQL;
1693 2216903
>>216824
а вот ты адекват
1694 2216919
>>216903
но меня по факту взяли на работу на
Java8, Spring4, PostgreSQL, Oracle, Liquibase, SOAP, XML, REST, JMS + какой-то велосипедный вебфронт, который поддерживать тоже мне.
1695 2216988
>>216743

>Вообще стоит глубже знакомиться с сервлетами?


Нет, если ты не собираешься писать свой WEB framework. Напиши хеловорлд, с базовыми функциями куки, сессия, авторизация, посмотри как выглядят HTTP запросы и этого достаточно для практической работы.
1696 2217007
>>216988
Так и думал, что челик советовавший книжку по веб-технологиям 15-летней давности и тем более с jsp неправ не только в этом.

>хеловорлд, с базовыми функциями куки, сессия, авторизация, посмотри как выглядят HTTP запросы


это я делал перед спрингом, правда авторизацию не трогал. Потратил вечер. Только пару гетов, пару постов и что-то одно с сессией.
Но сейчас я так и не знаю, (хотя по спригну уже много читал/смотрел, писал несколько петов) где спринг соединяется с томкатом/ другими контейнерами сервлетов.
1697 2217222
Как в cmd запустить java не из корневой папки проекта?
javac .\src\main\java\govno\FirstProject\Dog.java
java .\src\main\java\govno.FirstProject.Dog
Первая команда выполняется, а вторая - нет. Полная\частичная замена точек на бекслеши не помогает, всё равно ClassNotFoundException. В собаке.java указан package govno.FirstPrjoect;
1698 2217233
>>217222
javac .\src\main\java\govno\FirstProject\Dog.java
java -cp .\src\main\java podbrushkin.FirstProject.Dog
1699 2217235
Ананасы, расскажите, как наебать Сонар?

Есть дохуя непокрытого юнит-тестами кода. Покрывать его, во-первых, долго, во-вторых, бесполезно, ибо функционал скоро будет удаляться.

Но, сука, менеджеры из среды кабан кабанычей доебались, типа, хули coverage такой низкий, всего 30%, надо минимум 80%!

А там покрывать столько, шо я ебал её маму рот.

Пытался нагуглить squid-настройки, но чёт нихуя внятного нет.

Можно как-нибудь исключить java-файлы по маске имени или типа того?
1700 2217252
Чет коробит, когда java называют "ява".
Никакого иного именования, кроме "джава" не приемлит организм.
А у вас как?
1701 2217277
>>216731
бамп
1702 2217285
>>217252
А мне пох, я разрвб, а не филолог.
1703 2217304
>>217235
Тестируй геттеры и сеттеры
1704 2217307
>>217235

>Можно как-нибудь исключить java-файлы по маске имени или типа того?


Добавь аннотацию @Generated
1705 2217308
>>217252
ЯВА - Язык Высокого Уровня
1706 2217322
>>217308
Аровня?
sage 1707 2217326
>>217252
>>217308
Язык Великолепных Анимешников же
1708 2217331
>>217322
урАвня
1709 2217582
Яву, Явуведь openjdk бесплатен для личного исползования, взял я на халяву!
1710 2217655
>>217582
Может быть ты еще и Идею используешь только комьюнити эдишон, потому что она бесплатная?
1711 2217659
>>217655
Я прохожу степики раз в 3 месяца и получаю ключик.
Челик с отуса форсит белсофтовсий ждк, типа даже для коммерции бесплатно.
1712 2217665
>>217659
Расскажи поподробнее? Я полузуюсь пизженной ИДЕ-шкой, и мне это иногда не нравится

>белсофтовсий ждк, типа даже для коммерции бесплатно


Не совсем понимаю при чем тут ЖДК, мы же об ИДЕ, она вообще может быть любая подключена, и в дефолт-поставку жид-брейнса входит опен-ЖДК из коробки
1713 2217669
>>217665
https://support.stepik.org/hc/ru/articles/360010105180-Как-получить-лицензионный-ключ-от-JetBrains-

>Не совсем понимаю при чем тут ЖДК


я начал с бесплатности ждк
ЖДК МНОГО, ЯВА У МЕНЯ ОДНА!
1714 2217679
ШАРПОБЛЯДИ РАЗВОНЯЛИСЬ ПО УТРУ!
А Я ЯВУ НЕЖНО ТРЯПОЧКОЙ ПРОТРУ!
1715 2218252
>>217659

>Я прохожу степики раз в 3 месяца и получаю ключик.


Нахуя? Просто сбрасывай триал раз в месяц. Это делается одним кликом по нужному скрипту.
1716 2218286
Почему синглтон через енам называют не ленивым? Чем он хуже синглтона через внутренний статический класс?
1717 2218333
Ебать у вас шапка огромная, и сколько на джуна вкатываться, 3 года? А че по зп?
1718 2218342
>>218333
5 лет. Потом первые пару лет зарплата 35 тысяч до вычета НДФЛ.
image.png62 Кб, 660x514
1719 2218402
Помогите пж. Задача такая. В таблице Employee есть сущность с полями firstname, lastname и midllname. Вернуть json класса emoloyee , где все три выше перечисленных поля сложены в объект класса FullName. Как мне это сделать используя JPA. Вот как связи расставил , что писать над FulName хз
1720 2218405
>>218402
Как же хорошо, что в JdbcTemplate это делается просто, прозрачно и без ебучей магии говнохибернейта.
1721 2218427
>>218252
В винде цирк с конями какой-то, а не кликнуть на скриптик.
1723 2218647
>>218405
И причем тут это? Если я через рест контроллер возвращаю объект он его сам в json превращает и возвращает в теле ответа. Мне нужен вот такой вывод employee.
{
"id": 7839,
"fullName": {
"firstName": "JOHN",
"lastName": "KING",
"middleName": "MARIA"
},
"position": "PRESIDENT",
"hired": "1981-11-17",
"salary": 5000.00000,
"manager": null,
"department": null
}

>>218405
Знаю , я решил уже эту задачу через него. Теперь через спринг дату надо
1724 2218649
>>218647
Причем тут спринг дата? Ты сущность возвращаешь в контроллере?
1725 2218651
>>218649
Возвращаю объект класса employee
1726 2218658
>>218651
А объект класса employee у тебя каким образом получается?
1727 2218660
>>218658
Через jpa репозиторий , который через аннотации @Entity ищет сущности в таблице. На скрине , который скинул он никак не получается , потому что поля FullName нету в таблице. И надо как то заставить засунуть три поля в 1 объект засунуть.
1728 2218664
>>218660
На скрине сущность называется EmployeeEntity. Это то, что лежит в бд. Из контроллера надо возвращать объект другого класса. При его создании и надо склеивать три поля в одно. Нахуй ебаться с этой хуйней на уровне репозиториев?
1729 2218668
>>218664
Сори , опечатался. Да возвращаю EmployeeEntity и его юзаю везде.
Таково задание , я сам выкупаю что бесполезная задача.
1730 2218680
>>218668
Судя по первому посту, у тебя задание

>Вернуть json класса emoloyee


Для формирования json явно не класс сущности надо использовать.
image.png25 Кб, 974x224
1731 2218698
>>218680
Да вроде бы его . Вот вывел этот класс , но без имени
1732 2218704
>>218427
Скоро заканчивается триальный месяц. Новый акк заводить или можно сбросить как-то?
1733 2218718
>>218664
Вот , решил как ты сказал. Но имхо это лютейший костыль. Зачем тогда вообще юзать хибернет , если через JdbcTemplate проще 7?
1734 2218732
>>218718

>Зачем тогда вообще юзать хибернет


До тебя начинает доходить...

>Но имхо это лютейший костыль


Разные классы для сущностей и для представления - индастри стандарт.
1735 2218746
>>218732

>индастри стандарт



Не знал
1736 2218843
>>218427
Ну тогда сорре
1737 2219013
Пишу на работе хуйню на спринг буте, которая читает очередь из rabbitMq, в настройках можно задать количество тредов, которые аппликация одновременно будет обрабатывать, я просто рандомной выбрал 10, и так оно и работает. Вроде всё норм, но хочется понять, как вообще определить оптимальное их количество. Как-то посчитать это можно ?
1738 2219134
Я не умею гуглить помогите. Я хочу получать погоду с гис метео через веб клиент,они дают токен для подключения. Как мне к нему подключиться? Сколько я не гуглил выходит какая-то хуйня,обзор веб клиента. Спасите,дайте нормальные гайды
1739 2219155
>>219134
Судя по странице https://www.gismeteo.ru/b2b/ , токены они дают только для юридических лиц. Ты точно уверен, что это то, что тебе нужно?
sage 1740 2219180
>>219013
Бамп вопросу inb4 кол-во треков у проца
1741 2219186
>>219180

> inb4


Если ты уже знаешь ответ, зачем спрашиваешь?
sage 1742 2219187
>>219186
Но я другой анон
1743 2219270
>>218402
Зачем именно используя JPA?
Знаю, что обратная задача через @JsonProperty решается.
1744 2219318
>>219155
Ну гис метео чисто для примера, можно openweather или яндекс. Суть в том чтобы найти туториал
1745 2219346
Почему на интервью часто спрашивают о нововведениях java8, а по другим версиям не спрашивают?
Java 8 самая популярная и более новые не использкют широко?
Или потому что в других версиях не такие значимые изменения?
1746 2219357
>>219346
Потому что в ней добавили механизмы, качественно изменившие разработку на джава, а именно лямбда-выражения, на котором основан еще один важный фреймворк - Stream API. Большинство же нововведений дальнейших версий - это какая-то косметическая хрень или не получившие широкого распространения фичи. Есть конечно потенциально полезные вещи в последних изменениях, например рекорды, но они вроде пока что в тестовом режиме еще
1747 2219400
>>219134
Анончеки, что в спринге надо уметь делать?
Мне дали тз ебнутую какую-то, типа написать структура университета. Я ахуел с колличества всего, надо пилить дохуя сущностей в виде уроков, расписаний уроков, преподавателей, студентов, админа, админки и прочего прочего. И это на джуна сраного. Это везде так?
2 года назад мне нужно было сервис обработки JSON сделать и все.. А тут блять целая структура.
1748 2219409
Очень по разному. Мне в одном месте дали >>216748 говно.
В другом нужно было 2 таблички сделать и по одной из них искать/фильтровать, чуть сложнее, чем тестовое от райфа на стажера.
Сегодня прислали еще:
Реализовать на языке программирования Java Rest API для картотеки супергероев Marvel. Необходимо реализовать 1) Базовые API методы https://developer.marvel.com
· GET /v1/public/characters
· GET /v1/public/characters/{characterId}
· GET /v1/public/characters/{characterId}/comics
· GET /v1/public/comics
· GET /v1/public/comics/{comicId}
· GET /v1/public/comics/{comicId}/characters
2) POST/PUT методы для наполнения базы/файлов c комиксами и героями Обязательные требования:
1) Постраничная загрузка, сортировка, фильтрация для запросов, возвращающих списки
2) Работа с изображениями (загрузка, отображение)
3) Адекватные ошибки в ответе. Например:
a. 404 если не найден персонаж
b. 400 если запрос не прошёл валидацию
4) Документирование API (например, через Swagger) Допущения:
1) Формат запросов и ответов может быть упрощён по сравнению с Marvel (оставлены только базовые поля)
2) На первом этапе можно не реализовывать проверку токена безопасности Требования к инструментам:
1. Язык программирования – Java
2. Сборка – Gradle/Maven
3. Исходный код должен быть опубликован на Github/Gitlab/Bitbucket
4. (Крайне желательно) использование Spring/Spring Boot
5. (Желательно) использование базы данных. Например Mongo
6. (Совсем здорово) использование docker Срок выполнения: две недели.
1749 2219487
Планируются в джава out-параметры как в божественном шарпе?
Просто уже доебало, когда надо вернуть какой-то еще стейт из метода, помимо основного output-а.
1750 2219496
>>219487
Не планируется. Передавай POJO по ссылке и устанавливай там нужные поля.
1751 2219497
>>219496
Это выглядит уёбищно.
Вообще идеально было бы иметь какой-то механизм языка, позволяющий множественный аутпут, с разбором по индексам например. При этом дефолтный вывод бы был с нулевым индексом либо просто без индекса, и он бы завершал исполнение. Если что-то еще не выведено на этот момент - не ебет, тогда выводится нулл или дефолтное значение для типа.
Пишешь что-то вроде
public {double, int, int} doSomething(){
return(1) 1;
return 3.1415
}
Есть языки умеющие в такое дерьмо?
1752 2219505
>>219497
Ты дурак? Бог дал тебе ООП.
1753 2219510
>>219497

>Это выглядит уёбищно.


Уёбищно выглядят out переменные, вот это уёбищно. А named tuple выглядят отлично. Сразу ясно что на входе, что на выходе. Никаких side effects с тем, что у тебя локальная переменная поменяла значение после вызова.
1754 2219585
>>219505
И как блять ООП решает этот конкретный вопрос? Скорее ООП это стиль, который просто не приемлет такой семантики концептуально
>>219510
Named tuple это целый отдельный класс, который надо создать, сопроводить, насрать им в память и все такое. Лень хуярить всякие матрешки каждый раз когда тебе надо что-то такое сделать
1755 2219628
>>219409
Не сложное задание , на какую зп такое требуют ?
1756 2219631
>>219270
Условие задания такое в универе было , sping дату проходили просто.
1757 2219634
>>219585

>И как блять ООП решает этот конкретный вопрос?


>Named tuple это целый отдельный класс

1758 2219635
>>219634
Блять, это суррогат просто средствами ООП для решения проблемы, вот и все. Никто бы не стал заниматься такой хуйней если б для этого были более удобные и красивые средства
1759 2219638
>>219635
Что красивого в том, чтобы возвращать несколько значений из метода без названий? Посмотри на питон, дохуя красиво наверное?
1760 2219641
>>219638
Ну я же не утверждаю что тот вариант, который я наверху высрал, красив и единственно возможен. Просто сказал что хотелось бы подобные вещи.

>питон


не имею чести его знать, к сожалению
1761 2219664
>>219585

>Named tuple это целый отдельный класс, который надо создать, сопроводить, насрать им в память и все такое. Лень хуярить всякие матрешки каждый раз когда тебе надо что-то такое сделать


Надо разрешить тимлидам пиздить таких долбоёбов, которым лень создать record. А вот похерить читабельность кода всякими out переменными - это им не лень.

>>219635
Tuple это и есть красивое и удобное средство, во всех приличных языках именно так и делают. Где-то можно и безымянный и именованый tuple создавать, где-то только именованные.
Есть недоязыки, где не захотели вводить tuple, поэтому метод возвращает tuple, но его сразу наде деконструировать.
1762 2219681
>>219664

>лень создать record


Хуя ты молодчик. Где ты найдешь проекты на 16+ джаве? К тому же это говно еще насколько знаю в "раннем доступе".
1763 2219725
Выучив все что в шапке можно претендовать на джуна? И сколько это примерно займет?
1764 2219726
Есть таблицы Book и Author, отношение ManyToOne, очевидно.

class Book {

@Id
Long id;

String name;

@JoinColumn(name="author_id")
Author author;
}

Я создал объект книги, и знаю author_id. Мне нужно сохранить книгу в бд.

1) Могу получить автора по id, и сохранить книгу в бд. Но получение объекта из бд вынуждает делать лишний запрос.

2) Можно сохранить книгу напрямую SQL запросом.
INSERT INTO book (name, id, author_id)
VALUES ('Mein Kampf', 14, 88)
Но тогда пропадет смысл в JPA

3) Нет ли способа сделать это через JPA но без лишних запросов? Что-то вроде

Book book = new Book();
book.id = 14;
book.name = "Mein Kampf"

getEntityManager().persistAndChangeColumn(book, author_id, 88);
1764 2219726
Есть таблицы Book и Author, отношение ManyToOne, очевидно.

class Book {

@Id
Long id;

String name;

@JoinColumn(name="author_id")
Author author;
}

Я создал объект книги, и знаю author_id. Мне нужно сохранить книгу в бд.

1) Могу получить автора по id, и сохранить книгу в бд. Но получение объекта из бд вынуждает делать лишний запрос.

2) Можно сохранить книгу напрямую SQL запросом.
INSERT INTO book (name, id, author_id)
VALUES ('Mein Kampf', 14, 88)
Но тогда пропадет смысл в JPA

3) Нет ли способа сделать это через JPA но без лишних запросов? Что-то вроде

Book book = new Book();
book.id = 14;
book.name = "Mein Kampf"

getEntityManager().persistAndChangeColumn(book, author_id, 88);
1765 2219731
>>219725

>Выучив все что в шапке можно претендовать на джуна?


можно

>И сколько это примерно займет?


Астрономически дохуя
Но джуном можно быть с гораздо меньшим багажом
1766 2219736
>>219725
Смотря какой у тебя бэкграунд. Если ты не знаешь чем integer отличается от boolean, как возможно такое что x = x + 1 (ведь на уроке математики за такое пиздят указкой по ебалу), и думаешь что "байт" это когда ты задираешь кого-то на двачах чтоб потроллить, то наверное и 4-5 лет будет маловато. Если уже и так знаешь процедурщину, особенно около-Сишную, есть понимание как вообще (и где) компьютер хранит и обрабатывает данные, что такое БД и как с ним разговаривать, и если вообще склонен к аналитическому мышлению, то может от года до двух.
1767 2219737
>>219357
Спасибо
1768 2219742
>>219628
30-50 нижний новгород.
1769 2219758
Есть ли тут бывшие 1Сники.
Интересует, как у вас ЗП поменялась и через какое время, если вы уже были опытными разработчиками в 1С с нормальным стажем (у меня 4 года стажа + бэкграунд в виде айтишной вышки, в течение которой я на разном кодил, но базовое знание синтаксиса и каких-то элементов стандартной библиотеки эт сегодня вообще нихуя не значит, насколько я понимаю, там весь стек надо знать со смежными технологиями и фремворки).

Если мне тут почти 200к платят, (но иногда и больше выходит, так как я сижу на окладе + ещё во франче подрабатываю в свободное время и закрываю какие-то часы), то я предполагаю, что на jav'e первый год придётся снова поесть на тыс 50 ?

И какие курсы ещё норм ? Я пока думаю между OTUS'ом и Хекслетом. Но вроде на Хекслете по Jav'e не так много инфы. На ОТУСе есть полная профа с нуля.

Хочу накопить денег, уволиться и пол года заниматься только самообразованием, а потом переехать со своей хуйни в Дс/Дс2, где есть вакансии джависта на джунские/стажёрские позиции.

я ещё думал про C#, в частности asp.net, но по этой ёбе вакансий мало и материалов для обучения тоже с гулькин нос относительно того, что есть на Джабе

Мне 25
1770 2219761
>>219758
П.С.
Ещё хотел спросить. Убунту надо же накатывать хватит ли wsl виндовской?, если Джавой заниматься буду ?
И я плохо представляю, как выгглядит erp-система на Джаве. Там что через веб-интерфейс всё ? То есть клиент на стандартном веб-стеке описывается, его тоже надо знать ? Тут декстоп приложения делаются или уже моветон ?
1771 2219766
>>219758

>со своей хуйни в Дс/Дс2


А где ты зарабатываешь 200к вне дс/дс2?
Хз, стоит вообще щемиться с такой зарплаты? Мне в твоей ситуации западло былобы только то, что это 1С - довольно контуженный язык, еще и встроенный в какую-то среду специфическую. Но так ли это важно?
1772 2219770
>>219758
https://www.youtube.com/watch?v=QlSop74hSDc
вот об этом видос.
Зачем увольняться? Зачем платить инфоцыганам? Читаешь бесплатное, воруешь у инфоцыган.
1773 2219773
>>219761

>Убунту надо же накатывать


Куда накатывать? Можешь спокойно сидеть на винде. Джава позиционируется как вообще кроссплатформенная на уровне самих откомпиленных файлов. То есть скомпилив джарник на винде ты его сможешь запустить на маке и линухе и получить тот же (теоретически) результат

>erp-система на Джаве


О чем ты? У джавы нет никакой среды, куда она встроена (вроде вашего 1С или какой-нибудь СУБД с т.з. SQL). Она сама по себе, программирование ведется в IDE, все это компилится и деплоится на сервак или еще куда. Может конечно ты имеешь ввиду фреймворки. Если так, то это тоже безинтерфейсное все. Это просто заранее откомпиленный комплекс программного кода, служащий определенным задачам (как правило это Spring)

>Там что через веб-интерфейс всё ?


Джава отвечает за бекэнд только ка парвило, то есть тебя вообще не волнует особо как данные будут отображены. конечно на практике обычно морда вебовская

>Тут декстоп приложения делаются или уже моветон ?


Делаются, но уже моветон, лол. Это не ниша языка. Но если очень хочется то пожалуйста - напедалить какую-нибудь кнопкожалку на десктоп - не проблема.
sage 1774 2219787
>>219681
Хуево ты знаешь. А что тебе мешает обычный pojo сделать?
1775 2219790
>>219766

>А где ты зарабатываешь 200к вне дс/дс2?


Владивосток.
Но я работаю оч много.
При 8часовом рабочем дне дефолтном - это было бы 150к.
Ну в ДСе под 200 было бы с нормальными условиями.

Но в 1Се верхний предел это эти самые 200к. Максимум 250. Дальше уже всё, потолок стеклянный почти не разрушается, завязанность на СНГ, локальный стек, отсутствие best practise, которые используются во всём мире (ну процедурный стиль в 21 году ещё, архитектурно платформа устарела на лет 20), жидовская фирма, которая документацию продаёт за далары и садит клиентов на инглу лицензий, грязь, блядство и гавно. Я даж баг репорт в фирму 1С не моггу отправить, так как там кучу бюрокартии.
Я не хочу тут оставаться. Есть опасения, что сегмент 1Ски начнёт постепенно оттесняться. Вот, кстати, CRM сеггмент у неё уже отжали. И могут дальше пойти отжимать. Понятно, что буха и зарплата останется, но я не занимаюсь этим, да и там уже не совсем программирование.

>>219770

>Читаешь бесплатное, воруешь у инфоцыган.


Да у меня есть деньги. Почему нет. Пусть обучают ёпта. Вроде на ОТУСе по отзывам норм площадака, не наёбская.
1776 2219794
>>219681

>Где ты найдешь проекты на 16+ джаве?


У нас уже идет тестовая миграция на 17. Я потестистил сборку и рантайм нашего проекта на 17-ой. Как только будет на уровне компании одобрено использование в проде, начнем миграцию.
sage 1777 2219795
>>219726
Насколько мне известно, в jpa такой возможности нет. Но скорее всего, ты ее и так пойдешь в базу, чтобы проверить, существует ли автор с ид 88
1778 2219803
>>219736

>Если ты не знаешь чем integer отличается от boolean


На самом деле вопрос гораздо глубже, чем кажется. В байткоде нет операция по работе с булевским типом и все операции с булевскими типами это операции с int. Есть только тип поля и параметров boolean.

Мимо 2 года байткод генерил.
1779 2219806
>>219787
Ну если она уже и вышла из тестов, один хуй это не значит, что на нее уже переехали много проектов.

>А что тебе мешает обычный pojo сделать?


Ничего, так и сделал. Просто иногда заебывает делать все эти обертки, когда уже все готово, и местами даже использовано в дургих методах, но вдруг выясняется что кое-какие порождаемые параллельно в том самом методе данные тоже нужны на выходе. Соответственно изволь потом подправить везде, где уже успел наделать вызовов.
1780 2219812
>>219803
Да там это было для образности сказано, что типа есть такое понятие как "тип данных" в программировании (по крайней мере, с развитой системой типов, как на жаве). Если уж говорить про "на самом деле", то вообще нет никаких типов - а все есть обычный байтодроч на уровне машинных кодов. А вся система типов это просто контроль над сохренением семантики операций.
sage 1781 2219940
>>219806
Не совсем понял. Ведь таплы и out переменные такая же беда настигает. Если они расширяются, все норм. Если что-то выпиливается, то нужно все править
1782 2219970
Сколько в день занимаетесь/можете заниматься программирование/изучением программирования?

Эффективно, имею в виду
1783 2219971
>>219970
8 часов с перерывом на обед.
1784 2219981
>>219971
Прям все 8 часов эффективно пишешь код? а в конце рабочего дня откладывваешь все что связанно скодоми отдыхаешь?
sage 1785 2219994
>>219981
4-6 часов. + всякое говно по типу обсудить что-нибудь, подкинуть идей и тд
sage 1786 2219996
1787 2220015
>>219758
И нахуй тебе джава?
1788 2220119
>>220015
Не знаю. Сам задаюсь таким вопросом.
У меня синдром неполноценности. У каждого адекватного 1Сника в какой-то период его карьеры возникает такой недуг.
Ну ещё из рашки можно будет уехать, инглиш у меня норм
1789 2220120
>>220119

> адекватного 1Сника


/0
1790 2220121
>>219940
Таплы настигают (я так понимаю мы тут под ними подразумеваем что-то вроде параметризованного класса Tuple<T, V>), а вот out-переменные нет (ты можешь в любой момент запихнуть такую в аргументы, это никак не повлияет на output). Проблема с аутами в том, что это по сути программирование через побочные эффекты на члены класса, а это немного бесит - надо всегда учитывать, что у какой-то переменной в классе есть стейт, и он может оказаться в каком-то не том состоянии, которое ты ожидаешь.
lyagushonok-pepe.jpg153 Кб, 458x458
1791 2220127
sage 1792 2220153
>>220121
Ага, понял.
Тогда, если мы потенциально будем меняться, нужно делать pojo. При добавлении полей в него все будет норм
1793 2220683
Че выбрать в качестве первого яп питон или джаву?
1794 2220688
>>220683
По задачам.
1795 2220696
>>220688
Зарабатывать миллион рублей и нихуя не делать
1796 2220701
>>220696
Ты выбрал не те инструменты для таких задач.
1797 2220706
>>220701
А ротеш твоей матери подойдет?)
1798 2220709
>>220706
Ты мыслишь в правильном направлении.
1799 2220760
Взяли работу на джава-легаси. Первое задание.
Разобраться с одним подмодулем модуля по интеграции с соап-сервисом. Весь модуль - по сути соап-клиент + сервер для рест клиента. Подмодуль - именно соап-клиент.
И написать подобный подмодуль для другого модуля по другой доменной модели.
В модуле 200+ классов. Вызываются другие модули(во всем проекте - 30 мавен модулей в каждом около 5 подмодулей и 15к файлов). И этот модуль вызывается другими модулями.
Код на смеси старого спринга и библиотек реализующих javaee. Код написан хуево, дао, репо и контроллеры часто названы сервисами(наверно есть что и похуже, я просто пока не дошел и плохо шарю).
Документации нет.
Я вообще не знаю соап. За первый день даже не смог найти точку входа.
Кабан уже через 2 часа начал спрашивать разобрался ли я.
С чего начать?
Если меня уволят через 2-3 недели с записью в трудовой это плохо для резюме?
1800 2220905
Есть ли хоть какой-то смысл идти на работу туда, где нету спринга? Даже JEE нету, пишут про какую-то редкую поебень, но зато на ДЖАБЕ!
1801 2220906
>>220905
Какая разница, на чём писать бизнес-логику?
1802 2221003
Почему main в Java возвращает void, а не int?
1803 2221005
>>221003
А почему нет? Это просто конвенция. Предполагается что программист не заморачивается с возвратом кода отработки.
sdfsd.jpg86 Кб, 1453x864
1804 2221022
Когда-то где-то натыкался на инфу, что если нужно работать с картой, как просто с последовательностью, например при переборе в цикле, то лучше идти по ее EntrySet, типа это позволяет избежать доступа по ключу, который выполняется относительно долго.
Сделал вот такой код чтоб это проверить, и вроде как результат показывает что все строго наоборот. Причем если перевернуть циклы (сначала отработать по Entry) то разница вообще становится огромной (показано на врезке внизу в консоли). Если раскомментировать вывод в консоль, чтоб исключить возможность что что-то там есть связанное с lazy-вычислениями, то разница практически отсутствует (при смене порядка вычислений, имею ввиду - во всех случаях второй проход раза в 1,5 быстрее, бОльшая часть времени уходит на вывод в консоль, там величины порядка миллиарда наносекунд)
Вопрос: это я долбоеб, который что-то делает не так, или просто инфа про то что перебор по энтри-сер быстрее - фуфло?
1805 2221175
>>221022

>это я долбоеб, который что-то делает не так


This!

Бенчмарки так не пишутся. У тебя нет ни прогрева, ни нескольких запусков, ни грамотной работы с возвращаемым значением. Берешь Мавен, создаешь из JMH архетайпа проект, в нем пишешь бенчмарк:
- в инит методе заполняешь мапу рандомными данными
- делаешь 2 метода один тестит первый тип цикла, другой второй тип
- ебалу с вложенными мапами лучше выкинуть, ну или сделать 2 отдельных тестовых сценария
- значение которое прочитал из мапы обязательно скидываешь в черную дыру
- желательно написать параметризированный тест и проверить на разных размерах (10, 100, 1000б 1000000)

Вот примеры как правильно писать JMH бенчмарки https://github.com/openjdk/jmh/tree/master/jmh-samples/src/main/java/org/openjdk/jmh/samples
1806 2221187
>>221003
В этом нет смысла. Возврат int был принят в Си для последующего встраивания утилит в сценарии на shell-оболочке, чтобы можно было делать вывод об успешности выполнения каждого шага. В C++ это осталось для совместимости.

Java, во-первых, изначально не предполагала написания утилит для скриптов в каких-то оболочках (это нарушало бы кроссплатформенность), нацелившись на создание полностью своей экосистемы. И по этой причине ты передаёшь класс на исполнение не оболочке, а виртуальной машине. А там принцип коммуникации построен на объектах, любая ошибка — это, как правило, исключение со стектрейсом. Код возврата JVM нахуй не упал.

Ну а во-вторых, если тебе вдруг приспичит использовать Java для задач, традиционных для Си что само по себе не очень умный выбор, но мало ли, то у тебя есть System.exit(), куда ты можешь засунуть любой код возврата, какой хочешь.
1807 2221213
Как же тошнит от спринга, хотя я еще даже не вкатился.
1808 2221223
>>221213
Зато не будет тошнить от битрикса.
1809 2221229
>>221175
Да это кусок реального рабочего проекта, поэтому там карта в карте, и небольшая выборка из примерно 50 энтри суммарно тоже по этой причине. Я понимаю что бенчмаркинг это довольно сложное дело, но все же по множеству запусков с перестановками выглядит так, будто энтри-сет медленнее. Данные там не рандомные, но точно разные (получины вычислениями кое-какой бизнес-логики).
Энивей, я не собираюсь вливать говно в жопу с серьезным бенчмаркингом, раз уж оказалось что это тысячи наносекунд всего, но все же спросил вдруг кто знает что-нибудь на эту конкретную тему (доступ по ключу VS энтри-сет)
1810 2221238
>>221223
Хуитрикса.
1811 2221265
>>221229

>по множеству запусков с перестановками выглядит так, будто энтри-сет медленнее


У тебя сайдэффекты перевешивают, все эти множество запусков.
Код написан в одном методе, а у JDK есть ограничения у JIT-а, он не всякий код из интерпретатора может заменить на скомпилированный. Метод довольно большой, почти наверняка есть ограничений на инлайнинг тупо один метод заинлайнился, а другой нет. Никак не используется возвращаемое значение - что там JIT выкинет - неизвестно.
1812 2221313
>>221265
А какое множество то? Там уже готовая карта, я просто ее пробегаю и вывожу.
То есть ты считаешь что энтри сет быстрее работает?
1813 2221343
>>221313

>То есть ты считаешь что энтри сет быстрее работает?


Я не знаю. Я написал бенч, сейчас закончит прогоняться узнаю.
Подозреваю, что на маленьких мапах разница будет незаметна и выигрыш будет только на больших.
1814 2221348
>>221343
О, прикольно. Если не затруднит, покажи результат. Не то чтоб это важно, но для общих знаний.
1815 2221379
>>219726
spring data
1816 2221488
>>221187
Спасибо
1817 2221490
>>221005
Потому что решения не с потолка берутся и хотелось бы понимать, в чем их смысл
1818 2221505
>>221348

>Benchmark (mapSize) Mode Cnt Score Error Units


>MapIterate.iterate_by_key 10 avgt 25 97,182 ± 1,287 ns/op


>MapIterate.iterate_by_key_value 10 avgt 25 75,485 ± 1,246 ns/op


>MapIterate.iterate_by_value 10 avgt 25 79,858 ± 6,576 ns/op



>MapIterate.iterate_by_key 100 avgt 25 1045,236 ± 13,137 ns/op


>MapIterate.iterate_by_key_value 100 avgt 25 834,681 ± 18,286 ns/op


>MapIterate.iterate_by_value 100 avgt 25 821,635 ± 19,629 ns/op



>MapIterate.iterate_by_key 1000 avgt 25 11427,181 ± 353,521 ns/op


>MapIterate.iterate_by_key_value 1000 avgt 25 8951,105 ± 390,315 ns/op


>MapIterate.iterate_by_value 1000 avgt 25 10653,960 ± 951,261 ns/op



>MapIterate.iterate_by_key 10000 avgt 25 199055,673 ± 4000,670 ns/op


>MapIterate.iterate_by_key_value 10000 avgt 25 180748,862 ± 12711,778 ns/op


>MapIterate.iterate_by_value 10000 avgt 25 174720,827 ± 2289,144 ns/op



В середине прогона комп ушел в спячку, так что результаты для 1000 неточные. Но видно, что итерация по ключу чуть дольше, а keyvalue и value почти одно и то же.
Screenshot 2021-11-24 at 17.56.29.png171 Кб, 1264x626
1819 2221506
>>221505
Так читабельней
1820 2221534
>>221379
И как это в спрингдате сделать? В репозитории сделать метод, над которым с помощью аннотации ручками написать запрос?
1821 2221579
Посоветуйте годный сайт с задачами на Stream API, чтобы много было и различной сложности, желательно на русском, если там еще и ответы есть или он проверяет твой код и говорит правильно или нет, то вообще супер. С меня как обычно
1822 2221595
>>219726
Ну getReference же (или getOne в спрингдате)
1823 2221649
>>221595
Нет такого в спрингдате уже давно.
1824 2221668
source и target версии нужны для того, чтобы писать код на одной версии языка и компилировать под другую?
1825 2221742
>>221505
>>221506
бдагодарю, анон. Я правда не особо понял где из этих трех вариантов энтри сет, и какой вообще есть третий вариант проитерироваться, но как я понял разница все равно не стоящая каких-то усилий.
image71 Кб, 1349x1080
1826 2221761
Почему при запуске junit если classpath указать в параметрах запуска java, то он не видит тесты, а если указать тот же classpath в параметрах запуска самого junit, то тесты находятся?
1827 2221762
>>221761
Используй мавен и не еби себе мозг.
1828 2221764
>>221762
Ещё можно из блокнота в ide перекатиться, из командной строки в проводник, из джавы в no-code.
1829 2221767
>>221764
Жабу специально под это и затачивают. Можно приводить сколько угодно разумных доводов против этого, но очень показательно, что в большинстве туториалов примеры пишут без импортов, и если не использовать иде с автоимпортом, приходится гуглить каждый класс. И хуй запомнишь эти импорты из-за всяких спрингов с десятью вложенными пакетами.
Хочется писать в консольке и блокнотом - юзай сишку или питон, там нормально сделано.
1830 2221769
>>221767
Я учусь, поэтому делаю всё руками, чтобы лучше понимать, как оно работает.
1831 2221834
Принимали на спринг, хоть и устаревший. Из спринга пока вижу spring orm поверх хибера и немного спрингкора с автовайрингом бинов.
А веб на который меня посадили работает через javax.ws.rs.* аннотации. Это сильно хуево?
1832 2221835
>>221769
Самый тупой довод блокнотодрочеров.
1833 2221850
>>221835
Хуй будешь?
1835 2221945
>>221850
Чему ты научишься дроча джаву в консольке без сборщика, если на работе этого никто не делает?
1836 2221950
>>221945
Научится скачивать сотни жарников руками, когла доберётся до спрингоговна.
1837 2221998
>>221945
Консоли.
Нахуя нужен сборщик, если у тебя одна-две зависимости? Ты напишешь две консольные команды один раз и они будут моментально выполняться каждый раз когда тебе это нужно, а мавен мало того что срёт в стдаут бесполезными простынями текста, так ещё и замедляет повторные компиляцию-запуск, которые приходится делать постоянно.
image67 Кб, 1761x702
1838 2222013
рейт
1839 2222021
>>222013
Не надо воспринимать это как челлендж . Нормальным людям за такое должно быть стыдно.
1840 2222065
>>222021
Это хибернейт и спринг такие, для них мейвен оправдан. Все остальные допы(jdbc, servlet, junit, javafx итп) подключаются буквально одним джарником.
1841 2222098
>>222065
Понятно.
Можешь посмотреть в сторону Ant, тебе понравится. Но Ivy не используй.
1842 2222230
>>221900
спасибо, буду знать.
хорошо бы самому поучиться нормально делать бенчмарки
1843 2222273
>>222013
Классический троллинг тупостью.
1844 2222353
>>222013
Для вас дебилов блокнотных звездочку завезли.
1845 2222422
>>222013
Да это же мейкфайл!
1846 2222425
>>222422
Джавовский аналог мейка - ант. У него скорее build.sh
1847 2222444
Стоит ли смотреть на mapstruct, если уже есть собственный конвертер из хуйни в хуйню?
1848 2222469
>>222444
ля гет
1849 2222545
На чем больше кодите: на ноутбуке или на десктопе?
1850 2222548
>>222545
на ноуте
1851 2222559
Какие у вас проекты? Или только говнокодите на дядю
1852 2222563
Назовите мне хоть одну причину по которой я - продвинутый зумер 21 века, должен прогать на вашей жаве для пердедов?
sage 1853 2222594
>>222563
Зарепортил.
1854 2222646
>>222563
Хорошо, что таких "продвинутых" большинство. Меня так подобрали грести без вышки за юный возраст, конкуренции даже не почувствовал
зумер мидл
sage 1855 2222650
>>222646
Чаю
1856 2222743
>>222646
Ебал я столько говна учить, в джеесик куда проще и быстрее вкатиться. Буду попердывать за 150к пока ты доучивать очередную древнюю хуйню изжопы
1857 2222761
>>222563
Детекчу в тебе свиновыблядка из нуб-треда, который там усирается как он всех крутит на хую со своим CMS-фуллстеком за 70к. Поссал на всякий случай тебе на спину.
1858 2222782
Аноны,все ли из вас начали свою карьеру на легаси ? Я вот думаю,с одной стороны это неплохая база,с другой стороны можно сразу начать хавать актуальные тенденции. Что думаете?
1859 2222831
>>222782
В легаси нет базы. Мало технических задач, тупо пилишь бизнес-логику на существующий платформе и стагнируешь. Вот в чём-то актуальном куда легче прокачать эту самую базу.
1860 2223028
Почитал вакансии на hh и выглядит пиздецки сложно и для особенных, которые матан дрочат с детства. Или не все так хуево? Хотел вкатиться во фронт js, но подумал, что дроча будет примерно столько же, а зп в итоге в разы ниже
1861 2223044
Spring-kafka умеет автоматически подбирать concurrency исходя из количества партиций и реплик микросервиса?
1862 2223046
>>222782
Устроился на первую работу. Там легаси, очень размашистое, плохо написанное и нет документации. И стек еще древний оказался.
Сижу, копаюсь, реверс-инжинирингую.
Не знаю, что может быть хуже.
1863 2223071
>>222831
Я так понимаю нормальная практика,когда ты пишешь не на джаве,а на платформе? Оракловской или ибм
1864 2223097
>>222563
Научишься grep'ать, особенно в древнем говне с кучей xml
1865 2223121
>>223071
Не, пишешь ты на обычной джаве. Просто в проекте будет уже столько абстракций, что практически вся техническая часть будет скрыта за готовыми обёртками, будто бизнес-фреймворк, для всего будут готовые сервисы, даже спринговве аннотации могут быть переопределены по той или иной причине. Ты знаешь, как этим пользоваться, но не знаешь, как оно работают и взаимодействуют со спрингом, всё уже придумано за тебя. Не чувствуешь экосистемы, да и не гуглишь ничего, тупо смотришь внутреннюю документацию. Можно было бы писать на любом другом языке и не заметить разницы, разве что синтаксис другой.
1866 2223131
>>223046
Ай ной дат фил, бро.
Спустя пару недель уже вешаюсь и подумываю перекатиться в машоб или каки-нибудь алгоритмы. Уже даже скачал книжку по пайтону.
1867 2223135
>>222782
Начал на проекте с микросервисами, монгой, кубернетисом, кафкой, так тут и сижу
1868 2223137
>>223046
>>223131
Не пробовали сменить место работы?
1869 2223139
>>223131

>перекатиться в машоб


унылое дрочево параметров моделей

>>223131

>каки-нибудь алгоритмы


алгоритмы чего? алгоритмы очень мало где применяются

а вообще вся разработка сейчас ебаное говно ебаного говна, индустрии нужны крудошлепы в больших количествах, интересных технических задач хуй да нихуя.
1870 2223143
На джаве есть проекты с микросервисами? Со всякими докерами-хуекерами, спрингбутом или до сих большинство пердолится с java ee и аппликейшон серверами вроде glassfish/jboss/wildfly?
1871 2223146
>>223143
Да, все новые проекты на буте и докерах-хуёкерах. Старые проекты по мере возможности тоже распиливают на микросервиы.
1872 2223148
>>200385

>Мне интересно делать красявые графические приложения


Так возьми Qt или Electron. Сейчас ГУИ на жабе уже давным давно мертв, свинг остался только в самом махровом легаси времени java 1.4, про которое уже мало кто вспомнит и JetBrains IDE, а javafx в принципе оказалась никому не нужна. Правда в джетбрейнсе решили сделать свой фреймвор jb-compose, посмотрим что из этого выйдет, но скорее всего ничего хорошего.
Шарп может и хорош для ГУИ на винде, винформочки и впф сделаны неплохо, но вне винды они никак не используются, а MAUI не поддерживает линухи.

Десктопный гуи уже сдох как лет 10, если не больше, ковыряться в доисторическом говне мамонта сейчас нет смысла, нужно брать либо qt, либо электрон, все остальное сдохло по разным причинам.
1873 2223149
>>200274

>QTranslate is a free translator for Windows


>Windows


Я думал джависты исключительно под linux/mac os сидят.
1874 2223151
>>200229
Скала нахуй не нужна очевидно, хоть задумка и интересная была, но в последние 2-3 года желающих писать на скале все меньше становилось, в РФ наверное только в вертикалях яндекса и тинькоффе она еще попердывает, но в остальных местах ее либо на жабу заменили, либо на котлин.
1875 2223154
>>223146
А сколько их, новых проектов? Ну вот если я пойду в условное МЯСО/ритейл вроде Х5/утконоса (и что там еще из продуктовых компаний есть в РФ?), или всякие говногалеры по типу нетсракера, ебама, лохософта, ланита, крока, я с большей вероятностью попаду на Java EE 6/Glassfish и говнокопролиты, либо же на няшные микросервисы ну или на нормальный монолит, который потихоньку пилят на микросервисы и переводят на новые технологии?
1876 2223159
>>223151
А какие годные языки тогда остаются?
На чём бы вы предпочли пердолить код, если бы ЗП всем платили бы одинаковую?
1878 2223191
>>223121
А если проект настолько старый,что работает на чистой жабе? У Райфайзен банка я знаю есть такие системы
1879 2223227
>>223137
Пока первая неделя прошла. Думаю месяца через три начну искать. Месяцев через 8 уйду, даже если не найду ничего.
А может меня сам директор этой хуйни выгонит через 2 месяца, если я не начну шарашить новый функционал на этом же говне. Ведь там копать - не перекопать.
Просто это первая работа и на другие места даже на собесы не звали. И меня предупредили, что легаси. Но я не думал, что все настолько плохо.
1880 2223261
Реквестирую учебники/мурзилки по jax-ws и jax-rs. На баелдунге как-то недостаточно.
1881 2223321
>>223159

>На чём бы вы предпочли пердолить код, если бы ЗП всем платили бы одинаковую?



Да похуй на чем, нужно смотреть по задачам. Конечно в маняфантазиях я пишу ЙОБЫ от компиляторов до геометрических движков всяких CAD/CAM, от систем анализа трафика в realtime до распределенного отказоустойчивого хуйлоада, но в действительности мы все понимаем, кто есть кто.
1882 2223350
Как быстро менять версию java в classpath? Мне админ сказал есть какая-то хрень, причем есть и на винде и на линуксе, но используется часто на линуксе. Но я забыл, как называется. Метки или как-то так.
1884 2223370
>>223154
1. Не всегда монолит хуже микросервисов. Нормальный не легаси монолит может быть даже проще в разработке, чем когда тебе надо последовательно сделать изменения в 10 микросервисах. А уж синхронизация состояний в 10 базах, это отдельное удовольствие.
2. Как правило в аутсорсерах проще сменить проект если не нравиться.
1885 2223372
>>223356
Про sdkman слышал от ютуберов, но это нужно все sdk через него ставить. А админ говорил про какую-то хрень для работы с уже установленными по обычному sdk.
1886 2223376
>>223372

>Несмотря на то что SDKMAN! удобен для установки JDK, но он не помогает при автоматическом переключении между разными JDK при переходе от одного проекта к другому. Здесь нам поможет jEnv.


>После того как вы установите несколько JDK, с помощью SDKMAN! или любыми другими способами, вам нужно будет добавить их в jEnv:

1887 2223380
>>223370
зачем делать 10 баз на микросервисах?
1888 2223384
>>223372
Ну хуй знает, может просто JAVA_HOME=... java ...?
1889 2223390
>>223376

>или любыми другими способами


проебал этот кусок текста, спасибо.
1890 2223420
>>223384
В итоге на винде дома закинул два батника в корень диска c. Раньше через гуй винды переключал это говно.
1891 2223425
>>223420
лошара блять)))
sage 1892 2223439
>>223380
Масштабируемость и отказоустойчивость
1893 2223470
1894 2223502
>>223470
пизда
1895 2223576
Здравствуйте, пирожочки! По каким лучше книгам/ресурсам изучать Spring/Spring Boot? Я закончил с Java Core и теперь есть огромное желание перейти и углубиться в Spring.
Подойдет ли книга Spring Boot 2. Лучшие практики для профессионалов? До этого смотрел на ютубе курс по Spring от Наиля Алишева и делал Rest Api CRUD сервис магазина домашних животных, который создавал объекты в бд, обновлял их, удалял и получал объекты из БД
1896 2223577
Здравствуйте, пирожочки! По каким лучше книгам/ресурсам изучать Spring/Spring Boot? Я закончил с Java Core и теперь есть огромное желание перейти и углубиться в Spring.
Подойдет ли книга Spring Boot 2. Лучшие практики для профессионалов? До этого смотрел на ютубе курс по Spring от Наиля Алишева и делал Rest Api CRUD сервис магазина домашних животных, который создавал объекты в бд, обновлял их, удалял и получал объекты из БД
1897 2223971
>>223577
Я тебя изнасилую
1898 2223992
Java подойдет в качестве первого яп?
Даже если на работку в итоге не возьмут - я начну больше шарить в программировании в целом?
Сейчас абсолютный ноль
1899 2223996
>>223992
Подойдет. У меня так и было.
1900 2223997
>>223996
Щас сениор 300кк в наносекунду, надеюсь?
1901 2223998
>>223997
не, просто прогаю на раб-оте по мелочи. но я недавно вкатился. в чем твой вопрос вообще? для вката подойдет любой ЯП, особенно массовый (то есть всякие брейнфаки и ассемблеры лучше не выбирать). Особенно если ты не будешь в нем замыкаться и почаще будешь интересоваться как то же самое делается в других ЯП, и вообще почему их так много и чем они разные.
1902 2224174
>>223997
Милорд 500ккк в пикосекунду.
1903 2224280
>>223992
Да, в джаве всё для обучения ООП есть.
1904 2224322
>>223380
У каждого микросервиса есть свои данные которые надо как-то хранить.

Например: один микросервис занимается учетом складких остатков, второй занимается заказами, третий отвечает за задания на комплектацию товаров на складе, пятый за трекинг заказов, шестой рассылает нотификации пользователю. И вот ты заказал дилдак и смазку: у тебя сервис заказов отправил запрос в сервис учетом складких остатков на бронирование дилдака и смазки. После подтверждения бронирования сервис заказов отправил запрос на комплектацию посылки в сервис комплектации. Когда сборщик начал комплектацию заказа, выяснилось что смазки нету у складских петровичей был веселый вечер и во первых тебе придется долбиться насухую, а во вторых надо обновлять состояние других сервисов: у складских остатков отмечать что дилдак продали, а смазку спиздили петровичи. У сервера заказов, надо отметить, что заказ будет выполнен частично и послать уведомление. В сервисе трекинга добавляем собранную посылку и включаем отслеживание. И шлем письмо с рекомендациями по изготовлению смазки из подручных средств.

И каждый пук в этой цепочке сопровождается изменениями в базе и надо это все делать надежным способом. Что делать если сделали 3 попытки послать запрос, но сервис по прежнему не доступен? Приходится либо в локальную базу записывать какой-то флаг и потом по расписанию пытаться послать этот запрос. Или слать нахер этот REST и переводить все на очереди, тогда у тебя возникает куча состояний, типа запрос на бронирование товара отправлен, запрос на бронирование товара подтвержден/отклонен и вопросов что делать на UI, что показывать покупателю.

А в монолите все просто: Ein Service - ein Datenbank - ein Transaktion.
1905 2224388
>>224280
Но ооп нигде в том объеме, как в джаве и шарпе не нужно.
1906 2224399
>>224280
он тебе про фому, ты ему про ерёму. с каких пор ооп стало синонимом программирования?
1907 2224421
>>224322
Чел ты так увлекся кейсом со смазкой, что так и не объяснил зачем 10, кроме одной основной базы. Почему данные микросервисы не могут хранить в основной? Дорого и долго?
А вот этот кейс про сохранение данных каждого микросервиса, несмотря на недоступность полного функционала всей приложухи он прямо такой популярный? Почему бы не хранить в инмемори базе, а потом все что не смогли отправить в основную базу через короткое время удалять?
1908 2224490
>>224421

>Почему данные микросервисы не могут хранить в основной? Дорого и долго?


Потому что тогда теряется смысл микросервисов. Смысл микросервиса - это когда ты прячешь информацию о внутреннем состоянии за API, никто за пределами микросервиса не знает что там у тебя за база и как она устроена может там вообще нет ничего и микросервис ходит за данными в другие микросервисы. Это нужно для того, чтобы можно было спокойно менять внутренне устройство без изменения API. Раньше у тебя один сервис рассылал СМС и емайлы, а теперь ты их разделил и добавил голосовые звонки, но API остался прежний.

2 главных смысла использования единой базы это: контроль целостности на уровне базы foreign/unique key и прочее и возможность делать изменения в одной транзакции создаем заказ, бронируем складские остатки, создаем задание на сборку заказа.
1909 2224583
Как правильно дебажить спринговый код? В смысле di-код. Я иду по вызовам методов а он вместо нужного класса идет в миллион спринговых оберток.
Нужно для понимания работы говнокода без документации.
1910 2224621
Тред всё ещё открывается быстрее, чем инпут лаг в идее.
1911 2224622
>>224399
С момента появления.
1912 2224625
>>224399
ООП - ОО программирование. И, учитывая, что при разговоре о программировании в 95% случаях имеется ОО программирование - это синонимы.
1913 2224642
>>224625
Последние 5 лет чаще всего под программированием чаще всего подразумевается верстка штмля джаваскриптом, где с ооп все оче не оче.
1914 2224850
О, вы решили до 2000 постов сидеть. Неужели так много залетных?
1915 2224854
>>224850
Только сегодня высралась очередная шарпоблядь, её уже потёрли. Но это хуйня по сравнению с ежедневной клоунадой до 500 постоа. Можно вообще не перекатывать, пока не будет самым последним тредом, а после переката всем писать с сажей.
1916 2224870
Заебало курьерить, а вышку получать долго и хуй знает че там потом меня ждет.
Можно ли вкатиться в зарплатку 100+к через 2 года?
1917 2224875
Бля, на джаве удаленки нет?
Лол блять, нахуй надо тогда
1918 2224895
>>224622
>>224625

>пук


надеюсь вы троллите
1919 2224920
>>224875
Еще и телефоны на проходной отбирают безопасники, мемчики не полистаешь на работе!
1920 2224925
Хорошо ли при написании тестов использовать генераторы случайных чисел, создаваемые в рантайме строки и тому подобный динамический контент?
Или же тесты надо писать так, чтобы при взгляде на них было ясно видно, что передаётся в тестируемый метод, что должно вернуться и почему?
1921 2224956
>>224925
Очень хуёво, тесты должны быть детерминированными. Если ты и юзаешь рандомные данные, то должен их сгенерировать и захардкодить заранее.
1922 2225009
Посоветуйте туториалы по тестированию рест хуйни на буте. Везде какая-то шляпа
1923 2225031
Soap я вообще не знаю, если чё
А тут короче soap клиент нужно сделать. Через jax-ws, реализация cxf. Я нихуя вообще не понимаю.
Как делать не сказали. Сказали вот код без документации, там есть другая интеграция по soap. Есть спецификация от разработчика сервиса на 180 страниц, 3/4 из которой разные xml внутри вордрвского файла.
Читаю спецификацию для интеграции к сервису и нихуя не понимаю. Там пиздец, электронные подписи, асинхронность.
Смотрю другой клиент-интеграцию для примера, а там тысяча классов. Все разнесено на 10 подмодулей и не очень ясно, как взаимодействует. Какие то классы генерированные, какие то. Как генерировать тоже не совсем понятно, cxf модулем, но как хз. Из доки cxf ничего не понятно. Ещё там откуда-то из какого то сервиса идёт шифровка и дешифровка сообщений.
Я неделю потратил чтобы это узнать.
Чё делать?
Screenshot 2021-11-29 at 11.43.04.png368 Кб, 1976x1448
1924 2225113
1925 2225117
Насколько я понимаю Prepared Statement в JDBC, это такая фича которая позволяет вставлять вместо симпола-джокера (?) любое значение именно переменной.
Насколько я понимаю, таким способом нельзя вставить что-то в "синтаксическую часть" запроса, например имя таблицы, атрибута или подобное? "SELECT FROM ? WHERE ? = ? " Есть ли какой-то безопасный способ такое делать?
1926 2225121
>>224925

>Хорошо ли при написании тестов использовать генераторы случайных чисел, создаваемые в рантайме строки и тому подобный динамический контент?


Можнл, если не забывать граничные случаи. Т.е. у тебя есть тест с нулем, отрицательным и положительным значением, а потом тест десяти рандомных чисел. Ну и конечно не забыть записать что за случайные значение были, чтобы можно было воспроизвести.
Но обычно такие тесты нужны, чтобы протестировать какой-то хитрый алгоритм, на предмет хитрых багов типа: не работает с числами которые одновременно делятся на 3, 5, 13. Если у тебя просто бизнеслогика взять число и записать его в базу - то нафиг не надо.
1927 2225125
>>225117

>Есть ли какой-то безопасный способ такое делать?


Нет. Смысл Prepared Statement именно в том, чтобы никак нельзя было изменить изменить само выражение.

Если тебе надо делай 2 PS одно с одним условием, другой с другим.
1928 2225390
>>225031

>Чё делать?


Размещать резюме на хх.
1929 2225395
>>224925
Хорошо (и необходимо) для property based testing. В остальных случаях - сомнительно.
1931 2225436
>>225427
Надеюсь, написано оно на электроне, требует next-generation железа, которое можно купить только за next-generation зарплату?
sage 1932 2225437
>>225427
А что с плагинами и колорсхемами?
1933 2225447
>>225427
Нативное приложение, вдруг реально на котлиняше запилили? Я не хочу работать в индустрии где все восхищенно хавают трешняк типа го, а про котлин за пределами андроида даже молодые разрабы не говорят
1934 2225487
>>225447
Пишут что юзают котлин. Может даже на композе морду захуярили. Пока мало инфы, даже хз как это распространяться будет.
1935 2225510
>>225427
Ебать чел тупой, не может сам тест пофиксить.
1936 2225714
>>225427
Переизобретение вс кода?
1937 2225715
>>224854

>шарпоблядь


Но я ни одной строчки кода не написал на шарпе.
1938 2225719
А что не так с шарпом? Я джавоблядь по работе, но тоже считаю что шарп нагибает джаву практически по всем параметрам как язык. Это что, типа нельзя тут говорить и за это меня забанят?
1939 2225722
>>225719
Аргументировано - можно. Но тред тонет в низкопробной клоунаде без аргументов и контекста.
sage 1940 2225723
>>225719
Тред сука про жабу, а не про шарп и другие языки.
1941 2225724
>>225723
С такой логикой из треда всё пойдёт нахуй, кроме консольных кофемашин. Потому что тред про джаву, а не базы данных, веб-протоколы и прочее.
1942 2225725
А кстати, что за история с этими кофемашинами? Какие есть реальные примеры бытовой техники, которые работают на джава, или пример тул-кита который можно купить и что-то на нем разработать на джава?
Прост мне кажется это какой-то ебанизм же, в эту железяку должен быть встроен какой-то рантайм, что само по себе лютый проеб памяти и хардваре-ресурсов. Сколько чего видел или делал сам - это все прогается на плюсах в нативный код, и работает без всяких там осей и виртуальных машин.
1943 2225726
>>225724
Я смотрю, ты тоже любишь крайности, как тот анон с вопросами про докер. Обсуждение, как подключаться к постгресу из спринга и как в жабе юзвть вебсокеты имеют прямое отношение к сабжу. Вскукареки, что на шарпе овердохуялион вакансий, а жаба это кобол кобол кобол - тупой шитпост, и здесь ему не место, даже если бы это было правдой.
1944 2225727
Как подлючиться к соапу через cxf асинхронно по activemq?
1945 2225728
>>225725
Насколько я понимаю, это реликт с времён, когда каждое устройство было на своей ОС и со своим набором команд. Типа намного легче было ораклу написать виртуальную машину под устройство, чем осваивать ньюансы C++ под каждый телефон, если речь про разработку игры на мобильный.
Сейчас всё унифицированно и такой нужды нет.
мимо ньюфаг
1946 2225731
>>225728
Что-то я очень сомневаюсь что когда-то вообще существовали тостеры, стиралки и кофемашины с собственными осями. Опять же, ОС не обязательно нужна чтоб поддерживать JVM на борту. ОС это по сути просто диспетчер пользовательских приложений. Например у меня старинная нокия умела в игрушки на джава, хотя это не был смарт, и ничего кроме прошивки в нем не было.

>написать виртуальную машину под устройство, чем осваивать ньюансы C++ под каждый телефон


А то что жвм все равно надо каким-то способом прикручивать к аппаратной части в каждом телефоне, ты видимо не подумал, да?
По-моему весь этот концепт - просто типа такой трюк, который типа возможен, но нахуй никому не нужен. То есть действительно, имея кофе-машину на JVM со средствами ввода программ и их запуска, программист джава сможет написать для нее игру на дисплее, которая будет брать инпут от кнопок управления,.. но зачем? Ведь в 99,9% случаев все будут пользоваться заводской прошивкой, которую гораздо естественнее наговнокодить на плюсах, вкомпилировать в контроллер и порядочек.
1947 2225732
>>225714
Убийство вс кода
1603215899700.png962 Кб, 1276x1280
1948 2225734
Какие есть варианты тестировать рест апи от рандомного сервиса в интернете?
Дёргать публичные гет это без проблем, а вот пост/пут это уже внесение изменений на сервере. Как можно это делать безопасно? Регать другой акаунт для этого не вариант.
sage 1949 2225740
>>225734
Никак. Может быть, делать пост/делит, но все равно изменится какая-нибудь статистика
1950 2225757
>>225725
Каждый телефон в мире.
1951 2225760
>>225757
3 миллиарда устройств?
1952 2225795
>>225757
телефон это как бы вообще не то же самое что кофеварки/стиралки/тостеры/пылесосы, не?
1953 2225841
https://habr.com/ru/company/timeweb/blog/592017/

Как же жавоблядей приложили...
sage 1954 2225855
>>225841

> Использовать асинхронные запросы в жс и форк джойн в джава


Как всегда объективно
1955 2225882
Посоветуйте туториалов по тестированию рест апи в буте пж
1956 2225923
>>223044
Бамп
1957 2225924
>>225795
1. В чем принципиальная разница?
2. Я про сим карты.
1958 2225932
>>225795
Кнопочные телефоны, которые были распространены в нулевые, вполне похожи на кофеварки и стиралки тем, что тогда каждый производитель пилил свое железо и свою мини-ОС для своих телефонов. Это сейчас либо андроид, либо iOS и все работает на ARM, а тогда был такой зоопарк, в котором хуй разберешься. Теперь, понятное дело, все унифицировалось, что в телефонах, что во встраиваемой технике по большей части, так просто гораздо быстрее и дешевле вести разработку и проще нанимать новых людей к себе в компанию.
1959 2225946
>>225719
Ну шарп как язык явно неплох, наверное один из самых наполненных разными фичами и годных по дизайну. Жаба в этом плане отсталая.
Другое дело - экосистема. ИМХО, для жабы больше всяких либ и фреймворков для бекенда написано от разных вендоров, а не только от MS, как в случае с шарпом.
1960 2225959
>>225946
Удачи затащить на прод quarkus/micronaut, спринг по факту единственный фреймворк (rip java ee)
1961 2225963
>>225959
В большинстве мест спринг основной фреймворк, и будет им оставаться еще очень долго, но работу в РФ на quarkus/micronaut/helidon/guice/vert.x можно уже сейчас найти, хоть ее и очень мало, к сожалению.
1962 2225977
>>225963
Увидеть бы лица тех, кто предпочитает это васянство и костыли вместо божественного ktor.
1963 2226053
Как вы считаете, вот если мне сказали, что на этом проекте спринг. А из спринга там только dependency injection, да и на него иногда забивают и пользуются статическими методами.
Меня обманули?
1964 2226059
>>226053
Потому что приходишь ты не на стек, а на предметную область. Конечно же, это у всех так, что читаешь талмуды типа pro spring, а потом из всего спринга юзаешь пять аннотаций.
1965 2226080
Сложно ли освоить Кайфку и начать ее применять хотя бы в простых проектах на джаве?
Сколько времени нужно для освоения, примерно?
1966 2226082
>>226080
Минут 30.
1967 2226083
>>226082
Чет я уже не уложился(
1968 2226197
>>226059
Да нихуя, там например все по обычному, но просто без спринга во многих местах. Спринг даты нет, но есть хибер. Для реста вместо spring mvc - jax rs. И куча таких моментов, где спринг бы заебись смотрелся, даже в те времена, когда проект начинали.
Мне сказали могу пользовать спринг, если уж очень хочу. Но для единообразия лучше не стоит.
1969 2226349
решил подрочить литкод, и тут такая хуйня
https://leetcode.com/problems/maximal-rectangle/submissions/
мое недорешение:
https://pastebin.com/Fs4vti80
прикол в том что, при подаче массива {{1},{0}} на литкоде возвращается 0, а в идее 1.
Как такое может быть? Это оптимизация? или версии жаб различаются у меня 16?
1970 2226352
>>226349
вот сразу с гавнотестом
https://pastebin.com/j24ybYZk
1971 2226401
Сениоры, нужна помощь.
Есть один parent, внутри которого лежит чекстайл.хмл файлик. Как мне в дочернем мавен-проекте указать в плагине путь к этому файлу? И возможно ли это? Нагуглил что можно обращаться к пропертям парента через ${project.parent.property-name}, но либо у меня руки из жопы, либо эта хуйня не рабочая
1972 2226412
>>226401
../checkstyle.xml
1973 2226417
>>226412
Структура у проекта не такая, парент находится не выше и не рядом, а где-то там в артифактори
1974 2226423
>>226417
А в паренте чекстайл плагин настроен? Тогда он автоматически и к чилдам будет применятся.
image.png278 Кб, 1394x1364
1975 2226443
>>226423
Настроен вот таким образом. Но нихуя не применяется
1976 2226473
>>226401
Так как я хотел сделать не получилось, но получилось по гайду создав отдельный проект для чекстайла

https://codeburst.io/how-to-centralize-your-checkstyle-configuration-with-maven-7575eacd7295
1486068302667.png9 Кб, 710x114
1977 2226503
>>225447
Написан на современном стеке - будущем стандарте индустрии. жс макакеры со своим вскодом нервно плачут от зависти.
1978 2226505
>>225734
Мокать ответы фейковыми данными, которые в точности как реальные ответы от сервиса. Но может выйти что мок работает, а валидация на сервисе провалена по воле Аллаха. По сути нужно в полуслепую переписать рест реализацию этого сервиса и надеяться что он работает именно так.
1979 2226508
Читаю про тестирование, пишут что оно нужно, чтобы убедиться, что программа делает то, что должна делать, и не делает того, что не должна делать.
Если мой калькулятор без видимых на то причин создаёт папку с:\говно\моча, то тестом найти её практически невозможно, и невозможно убедиться, что калькулятор\класс\метод не делает того, что он не должен делать.
Это вызвало вопрос - почему нет способа запуска\объявления программы, которая по определению неспособна к произвольному изменению данных на жестком диске, обращениям по сети итп?
Если я в джаве создаю объект и вызываю у него метод, то он при всём желании не сможет прочитать/изменить переменные, которыми я пользовался, но ему не передавал. А запуск приложения на пк - это всегда раздвинуть булки и надеяться, что ничего плохого не произойдёт.
Хотя на мобильных устройствах с инкапсуляцией гораздо лучше. Это потому, что платформа - молодая, а пеки сотканы из легаси-говна?
Вообще, можно ли запустить екзешник так, чтобы отображались все его попытки записи на жесткий диск?
1980 2226510
>>222646
В чём заключалось твоё превосходство перед бумерами-коллегами, в чём они были хуже?
1981 2226526
>>226508
chroot,
1982 2226597
>>226526
choort szi est'
1983 2226669
Можно использовать виндовс для шлепания крудов Spring + Postgresql или обязательно линукс ставить?
1984 2226671
>>226669
У половины преподов в курсах по спрингу стоит винда. У меня проблемы были только с редисом. Но можно использовать докер/всл.
1985 2226674
>>201166

>ошибка в дизайне языка


нихуясебе у нас дизайнер языка в треде
жаба пережила 17 версий и исключения ни разу толком не трунули - это как раз говорит о том что это одна из самых важных фич
1986 2226676
>>226508

>и не делает того, что не должна делать.


А вот это не совсем правда, иногда бывают явно оговоренные вещи которые программа делать не должна, но обычно тестируют именно то, что программа должна делать. Проверить все случаи "не должна" невозможно.

>Это вызвало вопрос - почему нет способа запуска\объявления программы, которая по определению неспособна к произвольному изменению данных на жестком диске, обращениям по сети итп?


Есть SecurityManager https://docs.oracle.com/javase/8/docs/api/java/lang/SecurityManager.html который умеет это контролировать, но его скоро выпилят к хуям https://openjdk.java.net/jeps/411
Более современное решение это Docker, он не запрещает ничего, но за его пределы можно выбраться только если явно разрешить это.
1987 2226681
>>203325
скан классов скорей всего не срабатывает, сделай конструктор бина контроллера и проверь в дебаге что он вызывается
1988 2226686
>>209304
@RequestBody String[] words
1989 2226697
>>226669
Вообще никаких проблем. Даже если у тебя оракл вместо постгреса.
1990 2226700
>>225841
такой тупорылой статьи я давно не читал
1991 2226705
Почему мне вобычном консольном проекте пишет, что я не могу использовать аннотации? У меня ручное копирование массива, которое мне надо оставить, я хочу подавить этот ворнинг, но не могу.
sage 1992 2226740
>>226674
Проиграл
1993 2226746
>>226674
Жаба вообще не особо развивается.
1994 2226750
>>226746
почему тогда регулярно выходят новые версии, в том числе с весьма весомыми новшествами?
1995 2226751
>>226750
Ты с шарпом перепутал.
1996 2226760
>>226705

>Почему мне вобычном консольном проекте пишет, что я не могу использовать аннотации?


А текст ошибки скопировать не судьба? Но вангую что ты не в том месте лепишь аннотацию, @SuppressWarnings можно ставить на класс, поле, метод и объявление локальной переменной объявление и присваивание должно быть в одной строке.
1997 2226780
>>226751
>>226746
шарпоблядь, ты?
1998 2226785
>>226674
Чел, обратная совместимость если бы убирали фичи джаву бы уже закопали
1999 2226789
>>226750
Рынок использует восьмерку
sw.png15 Кб, 716x214
2000 2226818
>>226760
Текст ошибки буквально Annotations are not allowed here, как и написано в первом сообщении. Сам ворнинг, как и написано, Manual array copy.
2001 2226823
>>226818
проиграл с этого погромизда
2002 2226830
спринг прогомизда, извольте
2003 2226836
>>226818

>Текст ошибки буквально Annotations are not allowed here, как и написано в первом сообщении.


Нет, дебилушка, текст ошибки аннотация не разрешена тут, а у тебя написано

>пишет, что я не могу использовать аннотации


Если ты не понимаешь в чем разница между этим двумя предложениями - то программирование это не твое это я серьезно.

Ну и в твоем случае аннотацию надо ставить на метод.
2004 2226846
>>226503

>Написан на современном стеке - будущем стандарте индустрии


Ага, Котлин уже стал стандартом индустрии, осталось Skia стать стандартом и вытеснить Electron и заживем! но это не точно
2005 2226847
>>226830
В твоей версии спринга аннотации хуярятся в абсолютно рандомные места?
2006 2226887
>>226503
Мне кажется стандартом уже стал джаваскрипт, который выполнил все то, что сан микросистемс прогнозировали про джаву
2007 2226894
>>226887

>стандартом стал js


стандартом хуйни
2008 2226917
>>226847
@Var @Named("a") @Inject @Service @Named("serviceA")
2009 2226926
>>226894
ну так ебаное айти
2010 2226934
Возможно ли без использования JS создать веб приложение со встроенными гугл картами в темплейты. Не так что бы там 1 точка была или просто можно было карту двигать.
А что бы у меня был массив точек в бд , которые можно было бы добавлять и удалять, и они все отображались на страничке. Направьте куда гуглить .
2011 2226938
>>226887

> джаваскрипт


Уже всех заеб. Айти мир ищет новых ощущений.
2012 2226941
>>226938
TypeScript native.
2013 2226943
>>226934
Если клиент бравузер, то кроме жс ничего нет.
2014 2226944
>>226943
Принял , тогда не буду маяться хуйней и сделаю на нем.
2015 2226950
>>226746
ясно, понятно
2016 2226983
>>226950
Сравни джаву, даже самую последнюю, с шарпом/жсом/питоном/котлином
2017 2227004
>>226983

>даже самую последнюю, с шарпом/жсом/питоном/котлином


Да хули сравнивать - програмил на джаве 8 лет и на котлине 2 года, один хуй задачки делать надо а не писюнами мерятся

Базара нет котлин лаконичный язык при условии что какой-нибудь порридж не начнет ебошить бесконечное количество экстеншенов или писать на нем код в стиле брейнфака.

Ты когда-нибудь пробовал понять чужой код написанный в функциональном стиле с помощью экстеншенов чтобы было МАКСИМАЛЬНО коротко.
За такой PR при просмотре хочется яйца оторвать а тебе как тимлиду нужно его в продакшн пустить.

Потом вдруг в продакшене случается пиздос и нужно очень быстро понять где же бажина а ты час пытаешься прочитать 3 строчки на модном языке.

Если бы язык заставлял программера писать читаемый код это был бы лучший язык.
sage 2018 2227006
>>227004
А зачем пускать в прод нечитаемое говно?
мимо
2019 2227009
>>227006
Вот и не пускаешь а порридж тебе говорит что ты не оценил его прогрессивный соde style и вообще не любишь модный язык

А я люблю язык а вот хуйни не люблю

Ну и самое интересное это как автор пытается прочесть собственный код спустя пол года при тех же обстоятельствах - внезапный косяк на проде. Ох сколько раз уже это пережил
2020 2227022
>>227009
>>227004
А кстати, можно ли в проект на джава в интеллидже начать невозбранно встраивать котлин-код? Я просто пилю собственные микросервисы на почти голой джаве, никому по сути ничего не должен по содержимому проекта, хоть на брейнфаке пиши. Думаю ради расширения знаний вкатиться. Это реально?
мимо-макака
2021 2227033
>>227004

>Если бы язык заставлял программера писать читаемый код это был бы лучший язык.


Теперь это го тред.
2022 2227034
>>227022
Можно конечно, кто ж запретит. Был и такой опыт.

Но это опять таки приведет к зоопарку - отрыл один файл там жава, открыл по ссылке класс а там котлин. Через пол года едешь в дурку.
2023 2227072
>>227033

>Теперь это го тред.


varFoo, err := GetFoo()
if err != nil {
return err
}
sliceBar, err := SliceTheBar(varFoo)
if err != nil {
return err
}
err := CheckBarSlice(sliceBar)
if err != nil {
return err
}
2024 2227081
>>227072

> if err != nil {


> return err


> }


Некоторые местные шизики кайфуют от checked exceptions (которых, кстати, нет в шарпе), так что им и это должно понравиться.
sage 2025 2227099
>>227009
Поэтому в котлин стоит вкатываться только после жабы
2026 2227108
Какой примерно средний размер в строках энтерпрайз проектов на яве?
2027 2227124
>>227099
Ну и толку-то? От вседозволенности сносит башню только так. У меня с груви такое было в свое время.
2028 2227129
2029 2227130
Платиновый вопрос.
Если я джун и пойду работать туда, где нету спринга, я смогу через годик претендовать на позицию мидла? Или это пустая трата времени и нужно сразу искать позицию, где работают с современным стеком, пускай и денег платят меньше?
2030 2227137
>>227130
Думаешь, миддловость измеряется технологическим стеком?
2031 2227140
>>226836
Блять, понятно, что она тут (в месте копирования) не разрешена, а не на заборе, например, нахуй ты меня дизморалишь? Негде больше самоутвердиться? Клоун. Чем так отвечать, лучше бы просто ебало завалил.

Что над методом, мне уже ясно, неясно почему не над присвоением, что ты и не осилил объяснить.
2032 2227147
>>227137
Ну я понимаю, что там не столько хардскиллы имеют значение, сколько пройденные грабли. Но вот сейчас читал статью на хабре про то, что синьор должен иметь опыт разработки ТЫРПРАЙЗ приложений. А если я буду несколько другие задачи выполнять?
2033 2227149

> В день большая часть программистов пишет приблизительно 10-12 строк кода, которые попадают в итоговый проект. Настоящие программисты 90% своего времени тратят на размышления и пробные запуски, чтобы найти лучший вариант программы.



Это рофл или как? Большинству программистов настолько нехуй делать или там огромное легаси, что чтобы что-то добавить/исправить надо весь день разбираться?
При чем тут говорится про всех программистов, а не конкретно джавистов.
2034 2227151
>>227147
Что ты понимаешь под другими задачами? На спринге ничего другого нет, только тырпрайз.
2035 2227158
>>227149

> там огромное легаси, что чтобы что-то добавить/исправить надо весь день разбираться?


Не только. Большинство тасок, как правило, до конца не понятны, потому что упираются в предметную область, и ты большую часть времени продумываешь все варианты и граничные случаи. Уходит время на погружение в эту самую область, и если один разраб что-то не успел доделать, хотя оставалось немного, другому разрабу придётся разбираться с нуля, и потратит он намного больше времени. Ну и переписки с созвонами отнимают дохуя времени.
2036 2227195
Помогите пожалуйста. Есть 2 времени в виде строки "HH:MM". Как их сложить/вычесть и получить опять строку "HH:MM"? Я уже совсем запутался стандартных классах даты и времени...
2037 2227197
>>227140

>Что над методом, мне уже ясно, неясно почему не над присвоением, что ты и не осилил объяснить.


Жопоглазый, давай начнем с того, что не можешь прочесть ни то что тебе пишут
>>226760

>@SuppressWarnings можно ставить на класс, поле, метод и объявление локальной переменной объявление и присваивание должно быть в одной строке.


ни документацию
https://docs.oracle.com/javase/8/docs/api/java/lang/SuppressWarnings.html

>@Target(value={TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})


Это места где эту аннотацию можно использовать, потому что так решили авторы джавы.

>нахуй ты меня дизморалишь? Негде больше самоутвердиться? Клоун. Чем так отвечать, лучше бы просто ебало завалил.


Мы на дваче, тут не вытирают сопли. Я тебе все сказал еще первым постом. Не нравится? Пиздуй на курсы, там за твои бабки тебе будут и сопли вытирать и жопу целовать.
2038 2227198
Хочу простейший шаблонизатор без зависимостей.
2039 2227202
>>227198
MessageFormat/String.format
StringTemplate
2040 2227205
>>227202

>StringTemplate


Циклов нет.
2041 2227207
>>227205
<items :{ item | <item> }>
2042 2227208
>>227195
String t1s = "12:34";
String t2s = "07:41";
DateTimeFormatter timeFormat = DateTimeFormatter.ofPattern("HH:mm");
LocalTime t1 = LocalTime.parse(t1s, timeFormat);
LocalTime t2 = LocalTime.parse(t2s, timeFormat);

LocalTime t = t1.plusHours(t2.getHour()).plusMinutes(t2.getMinute());
String ts = t.format(timeFormat);

System.out.println(ts);
2043 2227210
>>227207
Не понимаю.
2044 2227216
>>227208
Огромное тебе спасибо, анончик.
2045 2227225
Можно ли стать норм джавистом, никогда не дроча литкоды и вообще не шарить в алгосах, дальше быстрой сортировки? Да и ту уже не помнишь.
Вот знакомые мидл+ фронты и меньше меня знают и им норм. Но с джависта спрос другой.
Развернуть дерево и с графами всякое делать точно придется?
Просто я садился за алгосы несколько раз, меня быстро заебывло и я забивал. А по ощущениям с моими силами мне надо на литкод + учебник потратить месяца три минимум
2046 2227228
>>227210
Например, вот:
Массив items = {"foo", "bar", "baz"];
Твой шаблон:
\\<ul>
<items :{item | \\<li><item>\\</li>
}>
\\</ul>
И в результате получится:
<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ul>
2047 2227231
>>227228
А если мне, например, надо ставить запятые между элементами массива, но после последнего элемента запятая не нужна?
2048 2227232
>>227225

>Развернуть дерево и с графами всякое делать точно придется?


Не придется ни разу, если не ходить специально во всякие яндексы
2050 2227246
>>227236
Норм, беру. Только пусть еще шаблоны будут в ${}, а не в <>.
2051 2227281
>>227081

> checked exceptions


> одна catch (Throwable e)/throws


> вместо портянки копипастов на говне

2052 2227288
Блиц-вопрос:
Трудно ли написать на Java куайн? Какого лвл-а по шкале джуно-сениора надо быть чтоб справиться?
2053 2227296
>>227288
Писяпопа))))
2054 2227303
Перекат где?
2055 2227310
>>225113
Браток, только вернулся к этому вопросу.
Посмотрел. А у меня идея так по дефолту настроена.
Сегодня опять надо будет дебажить. Как скинуть миллион библиотечного кода и походить только по коду проекта?
2056 2227313
>>227303
Так джава все
image.png122 Кб, 1093x665
2057 2227342
2058 2227344
>>227313
Шарпошиз, плиз, вернись в стойло
2059 2227355
>>220760
Ну как, разобрался или ушел на hh?
2060 2227395
>>227313
У меня тред грузится как идея, пора перекатывать
2061 2227469
>>227395
Этот тред отображает ирл положение Java.
2062 2227648
>>227395
Докупи оперативки, смени проц. Думай по джавовому.
2063 2227658
>>227355
Зарегал ещё хабру и суперджоб. Позвали на два собеса на удаленку и пропали. До 12 декабря думаю посижу. Я с этой работой слез с пособия. И если я уволюсь сейчас и получу только часть от оклада(а оклад треть того что кабан обещал), то не смогу заплатить за квартиру. Не думаю что кабан при расчете будет платить то что обещал, а не то что в договоре.
Сегодня даже не копался в коде. Чтобы через дебагер ковыряться в реализации говна нужно нужно посылать запросы с фронта старого модуля, а там подписи и нужно поставить крипто про и крипто про плагин фаерофокс на машину с убунтой. Я не смог, админ меня сегодня послал на потом.
Сижу читаю про асинхронный соап. Ибо в новом модуле будет и асинхронный. Причем хз как это реализовывать. То ли через jms, то ли нет. Jms я тоже соответствовенно не знаю.
2064 2227664
>>227658
И мне хотели в первый день поставить нетбинс и бивер. Но в итоге поставили ультимейт идею с ключом с моим степика.
Мне кажется это самая трешовая работа на жабе эвар.
2065 2227710
>>227658
Жесть конешно. Я сам только вкатываюсь, до этого на пыхе пробовал кодить, но джава больше понравилась. После твоей истории даже ссыкотно как-то, неужто вот так прям бросят в огонь и делай что хочешь? Неужели им вообще пахую что будет с проектом? Что если ты накосячишь? Разве обычно не делают так, что вводят в курс дела, в курс стека и всё такое в первый месяц/неделю? Ну и джуну же еще приставляют синьора какого-нибудь, опять же, чтоб не накосячил. Неужели я настолько маняфантазёр?
>>227664
Лол. Сам сижу с ключом от степика, но никогда бы не подумал, что работодатель скажет мне юзать это. И правда зашквар, похоже реально попал к кабану какому-то. Сожалею.
sage 2066 2227713
>>227648
Можно попросит ещё один комп, и сидеть в хроме/слаке через него
2067 2227714
>>227710
Они сами нихуя не в курсе. Кабан урвал проект по связям пару месяцев назад. Кодить умеет три человека. Его зам, который руководит разработкой. Но разработка это 30% обязанностей зама. И два кодера. Один пилит фронт, другой другую интеграцию. Ещё два кодера уволились за месяц до моего прихода. Сроки скоро, конь не валялся.
2068 2227715
>>227713
Горизонтальное масштабирование. Модно.
2069 2227717
ПЕРЕКАТИТЕ ТРЕД!!!!!! Мой ноутбук еле справляется. Куда теперь заходить, чтоб пообщаться на тему джава???
2070 2227730
>>227717
Нахуй.
2071 2227735
>>227717
Еще 4 страницы до конца борды.
2072 2227742
>>227717
Чел, у меня смарт за 12к справляется легко. А ты ноешь.
>>227735
Так и до 4к можно досидеть.
2073 2227748
>>227742
Хз, наверное мобильная версия легче и лучше оптимизирована. У меня ноут так-то сильный: i5 7300HQ, 16gb ОЗУ, SSD 1gb, gtx 1060 max-Q. Всё летает, кроме этого треда.
2074 2227758
>>227748
У меня десктоп и5 4460, памяти столько же, видяха хужее. Ноль проблем с тредом.
Ты чем-то засрал свой ноут. Может режим энергосбережения стоит.
2075 2227862
Бляяя как меня заебал этот томкат. Почему я открываю один и тот же проект и каждый раз я вижу разную картину. То он мне по кд выдает 404 и ошибку The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. То блять контроллеры не видит. ХОТЯ ПРОЕКТ ОДИН И ТОТ ЖЕ. Подскажите пожалуйста как это пофиксить.
2076 2227871
>>227862
Используй спринг бут. А еще лучше gin.
2077 2227872
>>227862
Используй WildFly.
2078 2227873
>>227862
Используй Undertow.
2079 2227889
>>227862
Используй WebLogic.
2080 2227899
Подскажите плез как шрифты подгрузить. Вижу вот такую шляпу , в css импорт шрифтов прописан. Если просто страничку открыть без приложухи то все отображается. Запускаю приложуху - крокозябры.
2081 2227902
>>227899
Путать джаву и джаваскрипт - это почти как называть системный блок процессором.
2082 2227903
>>227902
Я спринге ващет приложуху сделал. Просто на странице есть скрипты .
2083 2227905
>>227903
Спрашивай про скрипты в треде HTML-программистов.
2084 2227907
>>227905
Дак я блять не про скрипты спрашиваю. Я юзаю темплейт резолвер. Я указал в конфиге где лежат ресурсы. Он мне все подтянул , все стили , все скрипты а шрифты заигнорил. Если запустить страницу вне джава проекта , просто открыть index.html все нормально.
2085 2227926
>>227907
Кароч я нашел в чем проблема , просто у резолвера нужно прописывать кодировку.
2086 2228042
Аноны , выручите . Джавы в вузе почти не было , и он сказал сделать задание. Может кто знает
--------------------------------------------------------------
1. Прочитать файл. Удалить дублирующиеся строки, указав в файле назначения количество удаленных дублирующихся строк.

2. Реализовать восстановление сжатой версии в полную.
--------------------------------------------------------------
2087 2228048
>>228042
Знаки препинания в русском и большинстве других языков не отбиваются пробелами, пряник
1. Используй BufferReader, он позволяет построчно читать содержимое файлов. Считанную строку сразу же можно write в аутпут через BufferWriter, cоседние строки не сложно сравнивать через equals, если получается труе, то запись пропускается, и инкрементится какой-нибудь счетчик. Когда некст строка будет нулл, записываешь значение счетчика и закрываешь все это.
2. Сжатой версии чего во что? Пружину сжатую? Гондон наказанный воздухом? Если речь о сериализации-десериализации, то используются файловые потоки, схоже впрочем с тем что написано выше.
2088 2228143
Хуйлоады на джаве есть? Как туда попасть? Хочу по хардкору упороться всякими распределенными отказоустойчивыми системами, хадупом, зоокипером и всяким таким.
2089 2228210
Сейчас задам максимально тупой вопрос. Если я переходы между страницами пропишу просто в ссылке

<a href="map"><a>

И сделаю маппинг /map - Это окей ? Или переходы между страницами надо как то по другому делать ?
2090 2228250
>>228042

> он сказал


Кто сказал?
2091 2228257
>>159705 (OP)
Привет. Подскажите, что нужно знать среднестатистическому джуну, чтобы попасть на стажировку с возможным трудоустройством по джаве? Ну +-, в общих чертах кроме Java Core.
2092 2228441
>>228143
Гугл, Амазон, Букинг.
2093 2228445
>>227658

>То ли через jms, то ли нет


По хорошему без провайдера типа JMS обойтись не получится так как ты будешь плодить потоки на каждый запрос.
Как вариант организовать через локальную базу сервиса - пишешь в базу пришел такой-то запрос и после обработки маркеруешь его что ответил.
2094 2228446
>>228257
Мочь на спринге сделать простой круд, ну и само собой SQL, Git, Maven.
2095 2228477
Есть аноны кто разобрался в модулях, и поюзал их в работе? Нахуй они вообще нужны? Какие задачи решают? Стоят того чтоб в них вкатываться или не тратить зря время?
2096 2228484
>>228477

>не тратить зря время

2097 2228490
>>228477
Не трать зря время.
2098 2228504
раз уж зашла речь про Tomcat контейнер сервлетов, кто-то в курсе как он работает?
Он неиронично создает пул из 50-100 потоков, после чего на каждый запрос выделяет поток из пула, а как только пул закончился, то кидает клиенту 500? В 2021 году это больше на постиронию похоже, скорее на какую-то лабу в универе, чем на что-то реально рабочее.
Как же тогда пишут сервера на несколько десятков и сотен тысяч запросов в секунду? Если у нас на нашем томкате 1 запрос обрабатывается 1 секунду, то 50-100 запросов в секунду, это максимум, который можно выжать. Какие есть нормальные способы обрабатывать вплоть до 1М или 10М запросов в секунду?
Как в >>228441

>Гугл, Амазон, Букинг


строят хуйлоады? Они несколько миллионов серверов закупили и на каждом крутят tomcat servlet container, каждый из которых обрабатывает по 50 запросов в секунду максимум? Как это работает?
2099 2228534
>>228504

> как только пул закончился, то кидает клиенту 500?


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

> ак же тогда пишут сервера на несколько десятков и сотен тысяч запросов в секунду?


Поднимают дохуя нод, обмазывают кешами, автоматически масштабирующимися микросервисами, тяжёлые вычисления пишут на более быстрых языках.
2100 2228536
>>228504
Используют Wildfly.
2101 2228538
>>228504
Используют Undertow.
2102 2228539
>>228504
Используют Gin.
sage 2103 2228541
>>228536
>>228538
>>228539
Зарепортил.
2104 2228543
>>228541

>пук

2105 2228546
>>228504
На сервлетах с моделью поток на запрос жаба-мир не заканчивается. Например, если возьмешь spring webflux, будет там под капотом по дефолту неблокирующий netty, заточенный на тот самый хуллиард одновременных соединений. Хотя и на условном томкате не обязательно обрабатывать каждый запрос отдельным потоком.

Почему вообще при этом к 2021 все уже не выкинули давно томкаты? Потому что не все подряд амазоны, а потоков может быть не 50-100, а скорее 500. И тогда при твоих расчетах с запросом за секунду десяток томкатов дадут 5к в секунду. Гугл на планете один, а для твоего бизнеса хватит с запасом.
2106 2228547
>>228534
ПИЗДЕЦ,

Я так понял, что большинство джава проектов до сих пор пишется в блокирующем стиле. А у меня острое желание писать исключительно неблокирующие сверхбыстрые легкие сервера. Мне нужно изучать Govno для этого?
Я никогда не думал, что джава это старый отсталый язык, но вот именно то, что почти все пишется с блокировками, меня очень сильно огорчает.
2107 2228558
>>228534
>>228546

ПИЗДЕЦ

Я так понял, что большинство джава проектов до сих пор пишется в блокирующем стиле. WebFlux не популярен и даже не занимает 30% от всех спринг проектов. А у меня острое желание писать исключительно неблокирующие сверхбыстрые сверхлегкие сервера. Мне нужно изучать Govno или node.js для этого?
Я никогда не думал, что джава это старый отсталый язык, но вот именно то, что почти все пишется с блокировками, меня очень сильно огорчает.

>>228546

>Потому что не все подряд амазоны, а потоков может быть не 50-100, а скорее 500. И тогда при твоих расчетах с запросом за секунду десяток томкатов дадут 5к в секунду. Гугл на планете один, а для твоего бизнеса хватит с запасом.



Я всегда думал, что жабу используют в сверхогромных энтерпрайзах, продуктами которых пользуются миллионы и миллиарды людей. Ну и думал, что почти вся джава это хуйлоады. А тут оказывается, что для большинства задач достаточно блокирующей модели? Как такое возможно? Разве даже у самого помойного интернет магазина не бывает нагрузки в 100-500к соединений в секунду?
Я думал, что подобные сайты просто вымерли где-то в середине нулевых еще.
Да и взять тот же сбер, который написан на дефолтном спринге чуть более, чем полностью. Там же миллионы людей ежесекундно переводят друг другу деньги и оплачивают покупки в интернетах. Неужели для этого тратятся охуллиарды на закупку серверов?
sage 2108 2228561
>>228558
Ты слишком преувеличиваешь нагрузки
2109 2228571
>>228558
"Блокировки" серьёзных проблем не вызывают, системный планировщик задач не даст процессору простаивать и переключит ядро на другой поток, пока первый ждёт разблокировки. Проблема только одна - сам системный планировщик работает не так эффективно, как работал бы встроенный. Есть проект по впиливанию его в жабу, называется Project Loom. Ну и куча реактивных либ, там пиши без блокировок, сколько влезет.
А энтерпрайз не обязательно огромный, очень часто это несколько тысяч внутренних пользователей. На реально нагруженных проектах, да, закупают больше серверов, но так делают независимо от стека технологий, там хоть на сишке с асинхронными либами пиши, многократного прироста производительности не увидишь.
2111 2228578
>>228558

> миллиарды людей


>Да и взять тот же сбер


Алё, миллиарды это вся планета. Сядь прикинь, даже если считать, что все взрослое население страны каждый день совершает штук по 5-10 переводов через сбер, сколько это в среднем операций в секунду. Получатся совсем не миллионы.
2112 2228637
>>228578
Скорее можно представить, что до 50 миллионов пользователей сбера в самый пиковый час переводят по 3 операции. 150 лямов операций в час это 42к операций в секунду. Думаю может быть даже суперпиковая минута в день зпхи, где и есть и овер 50к в секунду.
Плюс там всяких юрлиц куча с их переводами.
2113 2228766
Как можно получить SelectableChannel из System.in? Да, я хочу в неблокирующем режиме читать данные из stdin с селекторами и прочими фичами NIO.

Собственно в недрах JDK (насколько хуево импортировать jdk?) обнаружил такой класс, который появился только в 11 джаве:
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.net/jdk/nio/Channels.html

И у него есть метод:
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.net/jdk/nio/Channels.html#readWriteSelectableChannel(java.io.FileDescriptor,jdk.nio.Channels.SelectableChannelCloser)

То есть, можно в качестве аргумента можно передать FileDescriptor.in, и можно будет читать неблокирующе из STDIN. Вопрос только в том, что желательно бы сами данные из канала как-то прочитать. А как? Опять же, в недрах JDK нашел, что Channels.readWriteSelectableChannel возрващает не что иное, как ReadWriteChannelImpl. Этот класс унаследован от AbstractSelectableChannel и реализует интерфейс SelChImpl.

В AbstractSelectableChannel нет методов для чтения из channel в ByteBuffer, такой метод есть только у SocketChannel, что не мой случай.

Чо делать с этим всем? Есть варианты прочитать данные, которые вроде как в stdin находятся, но при этом запрятаны в класс, находящийся в глубинах стандартной либы джавы?
Или лучше не ебать себе мозги этими NIO и просто педалить спрингбут?
2114 2228783
>>228766
Как ты себе представляешь неблокирующее чтение из stdin?
2115 2228853
>>228547

> у меня острое желание писать исключительно неблокирующие сверхбыстрые легкие сервера.


Reactor, quarkus, nio, netty, kotlin ktor и ещё пол сотни фреймворков.
>>228558

> Я никогда не думал, что джава это старый отсталый язык, но вот именно то, что почти все пишется с блокировками, меня очень сильно огорчает.


У тебя есть возможность писать как угодно.

> Я всегда думал, что жабу используют в сверхогромных энтерпрайзах, продуктами которых пользуются миллионы и миллиарды людей. Ну и думал, что почти вся джава это хуйлоады. А тут оказывается, что для большинства задач достаточно блокирующей модели? Как такое возможно?


Когда маркетологи нассали в уши и не такое возможно.

> Разве даже у самого помойного интернет магазина не бывает нагрузки в 100-500к соединений в секунду?


Не бывает.
2116 2228858
>>228547
Тоже охуел и передумал вкатываться в джаву держу в курсе
2117 2228897
>>228547
От того что у тебя в коде нет видимых блокировок не означает что их нет. Как ты собрался работать с любой базой данных без блокировок, их от тебя могут спрятать но это не значит что их не будет.
"Без блокировок" смахивает на религиозные верования но скорей всего постичь блокировки просто слишком сложно для юного вкатывальщика
2118 2228937
Я не зайду сюда, пока не перекатите. Что сложного-то блять???
2119 2228940
Стоит перед собесами на джуна на спринге учить секурити? Я его не знаю считай. Был один собес, там не спрашивали. Впереди ещё парочка. Не думаю что Джуна допустят до секурити, но все же, могут ли на собесе спросить?
2120 2228948
>>228937
Ты можешь вообще сюда не заходить.
2121 2228957
>>228897

> "Без блокировок" смахивает на религиозные верования


Просто тренд последних лет, как микросервисное говно которое хорошо продавалось вайтишными курсами. Челу еще предстоит узнать блокирующие задачи могут быть и cpu bound и что все его миллиард запросов будут стоять в очереди и сосать хуй пока потоки из пула заняты long calculation задачами.
2122 2228971
Пасаны, кто-нибудь в курсе что на собесах спрашивают на спринг бэкенд мидлов?
2123 2228972
Пасаны, кто-нибудь в курсе что на собесах спрашивают на спринг бэкенд мидлов?
2124 2228973
>>228504

>строят хуйлоады


Да.

>>228504

>Они несколько миллионов серверов закупили и на каждом крутят tomcat servlet container, каждый из которых обрабатывает по 50 запросов в секунду максимум? Как это работает?


По разному. Там и языков много разных используется и не весь хайлоад про рест запросы.
2125 2228976
>>228573
Классический паттерн из GoF. Что ты еще хочешь знать?
2126 2228984
>>228976
Классический паттерн, это когда только цепочка линейна, и один обработчик идет за другим. А тут практически 2D вместо цепочки.
2127 2229020
Как часто джавистам нужно взаимодействовать с женщинами на работе? На джаве вообще много тянок пишут?
Я просто боюсь их. Ну женщин. Не хотелось бы сильно часто с ними взаимодействовать.
2128 2229028
>>229020

> На джаве вообще много тянок пишут?


Это нн настолько важно, в основном ты будешь взаимодействовать с тестировщиками и аналитиками. И вот среди них тянок и кунов поровну.
image.png15 Кб, 544x99
NEED HELP 2129 2229029
Сап сосоны, помогите реализовать одну ёбу плз.
Вернее, не совсем вкуриваю логику, хоть направьте в какую сторону копать. Суть в том, что пытаюсь наковырять свой фреймворк по PageObject, в общем основная задача: написать метод, который СОХРАНЯЕТ текст в себе, не обращаясь к ЛОКАТОРУ.
Есть метод, в котором я достаю из локатора текст .getText() и он возвращает текст, но подводный камень в том, что данный текст, мне нужен, когда УЖЕ этого локатора на странице нет.
Я конечно могу решить проблему костылем создать стрингу и впендюрить её в ламповый пейджобджект напрямую, но не хотелось бы от слова совсем.
2130 2229040
>>229029
UPD
я знаю что там нет ретёрна
2131 2229045
>>229020
Большинство куа и иногда аналитики - жнщины. Представь, написал ты новый функционал, отдаешь на тестирование, а тебе куа говорят, что там есть баг. Чем чаще делаешь баги, тем чаще приходится общаться с жнщинами.
2132 2229047
>>229028
>>229045
Животных с фронтенда забыли
2133 2229051
>>229047
У нас ни одной фронтендерши, но есть несколько джависток.
2134 2229053
>>229028
>>229045
>>229047
А есть отрасли в айти, где не придется взаимодействовать с куа, аналитиками и фронтендерами? Ну чтобы женщин вообще не было?
Я думаю про какой-нибудь эмбеддед на С/С++, где мужики работают за тридцатку на военных заводах и регулярно получают пизды от каких-нибудь офицеров-заказчиков. Там тянок по идее вообще не должно быть, ну нахуя им в такой параше работать? По этой причине думаю пойти в эмбеддед парашу.
2135 2229058
>>229053

> ну нахуя им в такой параше работать?


А нахуя кунам там работать? Это надо быть совсем анальником-адептом культа превозмогания.
Нет таких отраслей, тянки везде. Сейчас не 19 век.
2136 2229067
Анон помоги JPA настроить. Он вроде бы подключается к БД и создает там таблицы, потому что я в проперти хибернета прописал create-drop. Запросы на поиск тоже работают. Вот сущность и сервис и контроллер.
2137 2229085
Джуны, сколько у вас первая зарплата была,я почитал тред и охуел что где-то первая зп 70к сразу,мб это только в столицах,но у нас в Воронеже 40к считается норм зп для старта
2138 2229089
>>229020
Из разработчиц у меня 2 было из 8 челов в нашей кладовке. Но это хуйня, потому что придется общаться ещё с десятком команд и отделов где процент может доходить до 100%
2139 2229090
>>229085
70к брутто, ДС. 40к у нас стажёры получают, ну и джуны в некоторых совсем убогих шарагах.
2140 2229097
>>229090
в одной конторе 50 предложили, в другой 40 попросил, тк собес на мой взгляд не оч хорошо прошел, благо через пару месяцев еще 20 накинули
2141 2229098
2142 2229099
2143 2229102
>>229089
А что значит общаться по работе? Я вот необщительный аутист, но если уточнить, что нужно туда-то в такое-то место добавить такую формочку, то это наверное я смогу. Или нужно прямо быть альфачом и клоуном одновременно, чтобы быдло боялось, а тянки текли?
2144 2229107
>>229102

>уточнить, что нужно туда-то в такое-то место добавить такую формочку, то это наверное я смогу


как правило нужно или это, или уточнить у другого разраба какие-то детали того, то он делал
2145 2229287
>>228984

>Классический паттерн, это когда только цепочка линейна, и один обработчик идет за другим. А тут практически 2D вместо цепочки.


Тебе прям в статье написали:

>Combination of patterns if possible.


Там просто процессор внутри себя снова использует этот паттерн.
2146 2229292
>>229067

>Анон помоги JPA настроить.


>Он вроде бы подключается к БД и создает там таблицы


>Запросы на поиск тоже работают.


И чем тебе помочь? Сломать это все?
2147 2229299
>>229287
Да я понял. Ну в принципе это норм, если есть много вариантов, как обработать данные, или они должны применятся последовательно. Но я изначально искал вариант, как избавиться от кучи вложенных if-else и вышел на эту статью. Может еще какие-то варианты есть? У меня получается всего 2 варианта обработчиков на каждом шаге - тут такая комбинация паттернов выглядит излишней.
2148 2229317
>>229292
Да я еблан , суть забыл написать. Он не сохранял нифига. Но я уже решил, я не тот ентити манагер прописал в конфиге.
2149 2229338
>>229299
Нет какой-то серебрянной пули как это сделать универсально и красиво.

Если есть некий универсальный критерий который в if проверяется, например поле тип, можно создать Map где ключ тип, а значение обработчик. похож на CoR но решение принимает не процессор, а основной обработчик

Если у тебя сложные и длинные проверки в if, то вынеси их в отдельный метод код if(isOfflineTransaction(txn)) читается гораздо лучше чем 3 условия через &&.

Ну и в целом разбивать на методы и выносить функционал в классы это универсальный метод который всегда работает. Вот например их первый пример с разбивкой на методы https://pastebin.com/QK2N4hhh
2150 2229348
>>229338
Наверное не буду усложнять и оставлю просто ифы. Думаю от 2-3 вложенных веток никто не помрет.
2151 2229352
Графку Эль кто-то реально использует, кроме фейсбука? А нахуя?
2152 2229357
>>229352
Например, в Сбере некоторые внутренние сервисы. Он очень специфичный, не для всех задач подходит, без реальной необходимости его не берут.
2153 2229516
Бля пацаны уже 6 часов ебусь. Сделал свою форму логинки для секурити и когда нажимаю войти ловлю HTTP Status 405 ? Method Not Allowed . При том что авторизация срабатывает. Тоесть страницы доступные только авторизированным пользователям становятся доступными. Че за хуйня ? Уже весь инет перерыл. Шаблонизатор thymeleaf.
2154 2229586
>>229516

> Бля пацаны уже 6 часов ебусь


Дальше не читал,уебывай социоблядь
image.png329 Кб, 462x664
sage 2155 2229918
>>229586

Ой анончик не злись , поделись пожалуйста со мной своим опытом. А потом я тебя отняшу под хвостик :3
2156 2229928
https://www.youtube.com/watch?v=DKvR35O2xeA
Всем, кто изучает или недавно изучал жпа - советую. Практическое объяснение с 50:40, до этого бла-бла.
2157 2229948
>>229516
У тебя разные методы в форме логина и в контроллере. Авторизация срабатывает, потому что выполняется до вызова контроллера.
2158 2229956
>>229928

>жпа


Не нужно. Есть спринг дата.
2159 2229963
>>229956
а в спринг дата типа не jpa внутри да?

пиздец вы тут сеньоры
2160 2229967
>>229963
А в жпа типа не JDBC внутри? Пиздец ты сеньор.
2161 2229970
>>229967
обосрался так и скажи, как можно использовать spring data не понимая jpa?
2162 2229978
>>229970
обосрался так и скажи, как можно использовать jpa не понимая jdbc?
2163 2229990
>>229956
они там генерят и методы репозиториев спринг дата жпа. Так что это и про нее тоже.
2164 2230002
>>229963
Ну типа нет, какая нахуй jpa в nosql?
2165 2230015
>>230002
А, так ты из этих.
2166 2230019
>>229948
Я нагуглил что на метод POST /login у спринга есть встроенный контроллер из коробки. Я лишь прописал отображение страницы.
Видел на ютубе гайды что у челов все работало само и им не приходилось создавать свой POST обработчик логинки.

Энивей как пофиксить, подскажи пожалуйста.
2167 2230028
Имеет ли смысл делать рест в локальной сети на три компа? Чем это лучше/хуже обычного десктопа?
2168 2230035
>>230028
Почему у тебя рест и десктоп исключают друг друга? Они в разных плоскостях лежат. И какая задача у тебя?
2169 2230038
>>230035

>И какая задача у тебя?


Для гос конторы запилить приложение учета. Прошлая их программа была написана в начале нулевых на делфи.
2170 2230041
>>230038
Нужно данные синхронизировать в реальном времени? Или на каждом ПК по своей независимой локальной базе будет?
И чем MS Access не устраивает?
2171 2230042
>>229978
ну в общем и целом да, не понимая как устроены базы данных будешь писать дичайшую хуйню и не важно с какой библиотекой
2172 2230043
>>230041

>Нужно данные синхронизировать в реальном времени?


This.

>И чем MS Access не устраивает?


С него и той программы, что его использовала, как раз и переезжают из-за недостатка автоматизации.
2173 2230048
>>230043
Тогда, очевидно, должны быть клиент и сервер. Клиент не важно на чём, хоть веб, хоть десктоп, но на веб потом будет легче найти человека. Протокол тоже не имеет значения, но если веб, придётся делать рест.
2174 2230054
>>230048
И правда, логично, спасибо. Просто на дипломе потом обосновать придется почему именно такая архитектура, а объяснение вида "ну потому что я бек и в паре с фронтендером" - не прокатит.
2175 2230063
>>230042
А где в jpa нужно знание jdbc? Там нужно знать сами реляционные базы данных, а jdbc-api это совсем другое апи, нежели jpa, хоть и более низкоуровневое.
2176 2230066
>>230054
Потому что данные общие, и если их независимо вести в разных базах, поддерживать все базы в актуальном состоянии будет невозможно. А так у тебя есть единый сервер, который централизовано занимается ведением базы, а клиенты нужны только для работы с сервером, который сам всё будет синхронизировать. Ну и масштабируемость.
2177 2230068
>>230063
Нигде. Вот и получается, что для спринг даты не надо знать, как работает jpa.
2178 2230072
Где-то читал про рекомендации по неймингу в java. И не помню уже где и не могу нагуглить. Там было про максимальное рекомендованное количество знаков в названии методов. Вот сколько не помню - 50 что-ли или 40.
2179 2230076
>>230072
И че?
2180 2230080
>>230068
Нихуя. Для спринг дата жпа нужно знать, как в жпа энтити объявляются. Там только мастхевных аннотаций штук 20 с 2-5 параметрами в каждом.
2181 2230081
>>230066
Ага, понял.
2182 2230083
>>230076
Может ты помнишь такие рекомендации? Не подскажешь?
2183 2230087
>>230068
когда ты Еntity описываешь в коде это и есть jpa, ебанаха я молчу про все остальные аннотации внутри entity

единственное где jpa может не быть это если у тебя вообще не будет реляционной базы в проекте
2184 2230088
>>230083
Гугл конвенция скорее всего.
2185 2230089
>>230080
Нет, не нужно, магия сама справится ¯\_(ツ)_/¯
2186 2230092
>>230089
схуявится
вжухиты.mp4455 Кб, mp4,
1280x720, 0:03
2187 2230094
2188 2230096
>>230094
٩(‿。)۶
2189 2230169
Поясните за @Transactional,многие ставят,но я чииал что спринг бут сам заботится о транзакционности. Я прав?
2190 2230171
Какие конторы в РФ платят 350+ сеньорам?
Я так понимаю, основной джава работодатель у нас это сбер, который больше 250к сеньорам не платит?
2191 2230187
>>230169
Сложнейший вопрос между прочим.

- Во первых есть 2 аннотации @Transactional (нужно юзать спринговую а не javax)
- Если пометишь публичный метод бина аннотацией то транзакция создаться еще при входе в метод и будет использоваться именно она а не то что мог бы создать спринг дата.
- Если ты нихуя не пометил то транзации будут создаваться при вызове методов репозитория и ты их по сути контролировать не сможешь. До определенного уровня сложности в твоем коде этого даже достаточно.
Но однажды ты можешь охуеть от того что не понимаешь как твоя залупа работает и будешь сидеть в дебагере до сопряжения сфер

- Если у тебя появятся сложные операции то могут понадобится вложенные транзакции и тогда тебе вообще пизда без понимания всего этого механизма
2192 2230236
>>230187
Подытожив все это, лучше вешать аннотацию на все методы сервиса,которые вызывают методы репозитория. Так?
sage 2193 2230302
>>230015
А что с носиквел не так?
мимо
2194 2230306
>>230302
ну в 95% проектов на жабе есть сиквел бд. И большинство из них используют жпа. А вот носиквелы нужны не везде.
sage 2195 2230309
>>230236
Вешать нужно там, где нужно. Например, если нужна атомарность нескольких апдейтов
sage 2196 2230310
>>230306
Чаще всего используется и то, и другое
2197 2230314
>>230310
Ну полно старперского легаси говна без носикуля. А говно без сикуля это не про джаву.
2198 2230755
https://habr.com/ru/post/580424/
В статье челик 5 раз говорит, что к ресту нужен и необходим сваггер. Реально так? Нужно поучить и в свои петы/тестовые засунуть? Или не стоить тратить время?
2199 2230775
>>230755
Не сказать, что это трата времени, делается в несколько строк и потом помогает разрабам клиентской стороны разобраться с твоим API.
2200 2230965
>>230775
Чем это от постмана отличается?
2201 2231076
>>230965
Тем что сваггер не надо руками писать. Постман кстати может создавать коллекции на основе сваггера.
2202 2231154
Я вот тут подумал, а чем feign клиенты принципиально отличаются от репозиториев спринг даты? Почему нет реализации спринг даты под веб клиенты к другим сервиса?
2203 2231165
>>231154

> Я вот тут подумал, а чем feign клиенты принципиально отличаются от репозиториев спринг даты?


Примерно тем же, чем сервис отличается от DAO.
Спринг дата работает с данными, это просто круд к базе, а REST-клиенты нужны для вызова бизнес-логики, которая не вписывается в концепцию круда.
2204 2231173
Сап, Джвач.
Пытаюсь понемногу вкатиться в спринг, дошел до DI аннотациями и вот не понимаю...
Как мне создать два бина из одного @Component с разными значениями полей, внедряемыми через @Value? Да и через @Autowired тоже. Если в XML можно вручную этих бинов наплодить сколько угодно, пихая в каждый свои значения, то как я могу сделать это с аннотациями? Я же не буду делать несколько классов с разными значениями @Value и @Autowired
Еще не очень пока понимаю, в чем вообще прикол всей это хуйни. Чем связывать это все аннотациями проще, чем просто вручную средствами самой Java. Это мне только кажется что это какое-то говно без задач, или просто конкретно эта часть спринга такая, а всякие там MVC и прочее уже сверхполезны?
2205 2231178
>>231173

> Если в XML можно вручную этих бинов наплодить сколько угодно


Не надо через XML, делай через Java-конфиг.
@Configuration
public class AppConfig {
@Value("${foo}") String foo;
@Value("${bar}") String bar;
@Bean myComponentFoo() { return new MyComponent(foo); }
@Bean myComponentBar() { return new MyComponent(bar); }
}
2206 2231180
>>231165
И че?
2207 2231182
>>231178
А еще можно через прототайп скоуп.
2208 2231188
>>231180
Соси хуй.
2209 2231191
>>231178
>>231182
Спасибо, завтра поразбираюсь с этим. Но все же я не очень понимаю, зачем это все надо, если все равно на каждый объект по сути надо сделать какое-то действие в коде. Аналогично тому, как это делается самим джава-кодом.
2210 2231198
>>231191
Сколько ни рассуждают про DI, SRP и прочее, в конечном итоге всё сводится к менеджменту ресурсов. Спринг знает, как поддерживать пул соединений к БД, очереди и прочее, и надо как-то их эффективно прокидывать в логику, но не создавать же для этого глобальную переменную со свалкой ресурсов, потому что этим сложно управлять и сложно это расширять.
2211 2231222
>>231188
Охуеть у вас тут атмосфера токсичная.
2212 2231234
Господа сениоры, посоветуйте гайд/книгу/видос по транзакциям в Spring с Hibernate. Пока шо нихуя непонятно, но очень интересно, чего-то годного обычным гуглингом/поисками в ютубе не обнаружил, к сожалению
2213 2231560
>>231234
шо там не понятна? не понятна.
прочитай сперва просто что такое прокси потом аоп потом читай или смотри уже по спринг транзакции.
как ты гуглищь не понятна пишешь спринг транзакции первая ссылка на хабр общедоступно там.
2214 2231748
>>230019
мб "login.html" нужно в form.loginPage указать
2215 2232079
Че сложнее: андроид или бэк? Освоился с кором, теперь выбираю что дальше.
2216 2232115
>>232079
Имхо, бэк легче, но это хуёвый критерий, выбирать надо то, что интереснее или прибыльнее.
2217 2232121
Какие перспективы у джавы в беке, при условии, что сейчас много чего переезжает в cloud native и у спринга с этим переездом возникли очень большие проблемы?
2218 2232125
>>232121
Ты главное не пытайся разобраться в вопросе самостоятельно, а больше читай го-тред, сделаешь однозначные неоспоримые выводы.
2219 2232127
>>232125
Спасибо, но все-таки джависты могут без тралирования объяснить зачем вообще нужен этот cloud native и почему спринг в него не умеет?
2220 2232130
>>232127
Умеет.
2221 2232135
>>232130
Тогда почему лично димсоул в pro.jvm говорит, что спринг вряд ли когда-либо станет cloud native?
2222 2232136
>>232135

>Тогда почему лично неизвестный мне говноед в непонятно где говорит какую-то хуйню?

2223 2232138
Почему кастомные репозитории в спринге сделаны так через жопу? Зачем еботня с суффиксом Custom/Impl, когда можно просто сделать абстрактный класс?
2224 2232139
>>232136

>писать на джаве


>не быть в pro.jvm/jvmjobs


>не знать димсоула



Ты вообще в какой вселенной живешь? Наверное капчуешь из какого-нибудь мухосранской галеры?
2225 2232140
>>232139
Ты ведь просто выдумал все эти слова, да?
2226 2232141
>>232140
https://t.me/jvmjobschat

Просто ты почему-то выпал из самого крупного русскоязычного джава-сообщества.
2227 2232143
>>232138
Чтобы ты юзал JdbcTemplate.
2228 2232144
>>232141

>Чат для обсуждения вакансий


А может я просто работаю на нормальной работе и мне нахуй не сдалось обсуждать вакансии?
2229 2232157
>>232139
Так у него и спроси почему. И нам расскажи.
2230 2232256
>>232121
Никаких, посмотри на последний дотнет и сравни это с кучей говна на джаве
2232 2232415
Старый уютный тредик без шарпидоров.
2233 2232498
>>232415
И без женериков в рантайме
2234 2232575
>>232498
В Го их вообще нет, но это не мешает дрочить на него в присядку.
2235 2232930
Как понять Spring? И что в нем важно понять?
Кто как осваивал?

Стоит читать книги? Или мб какие-то видеоуроки смотреть?
Или статьи?

Запрашиваю ваши мнения
2236 2232955
>>232930
Мурзилки.
2237 2234033
Нужно хранить аватарки локально: в папке resources проекта или в аргументах командной строки указывать путь к папке на диске?
2238 2234633
>>232955
Что это значит?
2239 2236661
>>232930
Бамп вопросу
2240 2238185
Начинаю нюхать тему микросервисов.
Как мне декомпозировать монолит на МКС?
У меня был монолит в одном проекте в IDEA, а теперь я разбиваю на
несколько проектов? или как?
Чет не пойму пока
2241 2238227
Сдох тред?
2242 2245838
>>238227
С разморозкой. Уже полтыщи постов как перекатились.
2243 2246092
>>245838
А, ну да
чет пропустил перекот
Screenshot20220119135519.png95 Кб, 613x809
2244 2270186
Тред утонул или удален.
Это копия, сохраненная 24 апреля 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски