Сохранен 506
https://2ch.hk/pr/res/2585661.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Java #243 thread /java/

 Аноним 24/01/23 Втр 18:02:19 #1 №2585661 
image
image
image
image
Программирование - это не столько про анальное крудошлёпство, сколько про стиль мышления. Высокоуровневая абстракция, поиск сходных черт, оптимизация - всё это высшие интеллектуальные способности, что образуют такой прочный симбиоз с программированием на Java.

Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki

Пять вопросов из предыдущего треда:
1. Самая базовая и мастхев библиотека/фреймворк джавы, без которой джава вообще не джава (за исключением стандартной библиотеки)?

2. Сап джавовый! Я тот неугомонный который копается в JVM. Хочу сделать следующее, написать приложуху на джабе, прикрутить мониторинг и начать насиловать JVM. Когда найду потолок, начать опциями комбинировать чтобы повысить производительность. Подскажите как это сделать с технической точки зрения. Вижу следующий вариант:
На спринг буте делаю рест хуйню с одним эндпоинтом, когда буду дергать его, спринг будет в цикле создавать n количество объектов (в классе которого ещё будут статические поля).
Норм тема или херню придумал?

3. >https://github.com/neo4j/neo4j/blob/c082e80b792d46ad1b342fbf7f1facb2028344c6/community/kernel/src/main/java/org/neo4j/kernel/info/JvmChecker.java#L33
>Ахахах, реально. Пометил себе neo4j как неюзабельное говно.
Оооо, а вот на хуя они так делают то?

4. Чё нового в мавене 4.0.0?

5. Если без приколов, 8к строк на джаве - это какой проект, маленький, средний или большой?

Предыдущий: >>2574557 (OP)
Аноним 24/01/23 Втр 18:12:56 #2 №2585669 
ЖАБА ГОРАЗДО ХУЖЕ, ЧЕМ ШАРП
Аноним 24/01/23 Втр 18:21:17 #3 №2585683 
>>2585669
шарполахта, сьеби
Аноним 24/01/23 Втр 18:33:53 #4 №2585695 
Раскрасил дтохи в розовый цвет, а энтити в голубой. Умом?
Аноним 24/01/23 Втр 18:35:00 #5 №2585698 
>>2585695
Хранить все по отдельным пакетам не пробовал?
Аноним 24/01/23 Втр 18:36:39 #6 №2585703 
LogooftheJNA.svg.png
>>2585198 →
Бампну, может кто дельный совет даст.
Аноним 24/01/23 Втр 18:40:48 #7 №2585710 
>>2585698
Так они и так в разных пакетах.
Аноним 24/01/23 Втр 19:06:58 #8 №2585740 
>>2585710
Надо хранить в разных модулях. А лучше в разных проектах.
Аноним 24/01/23 Втр 22:20:47 #9 №2585988 
кто-то пробовал mjc school? стоит того?
Аноним 24/01/23 Втр 22:58:05 #10 №2586044 
>>2585988
Пробовал кислоту, определенно стоит
sage[mailto:sage] Аноним 24/01/23 Втр 23:00:11 #11 №2586048 
>>2586044
Репорт.
Аноним 24/01/23 Втр 23:58:32 #12 №2586135 
>>2585695
Чем раскрашивал?
C !mHBuMJ5MzI 25/01/23 Срд 00:24:42 #13 №2586147 
Когда мы вызываем с помощью рефлексии метод другого класса и передаем туда аргументы, он выполняется там где мы его вызвали с помощью рефлексии, или выполняется там откуда вызвали ?
Аноним 25/01/23 Срд 00:43:13 #14 №2586155 
>>2586048
Извини пожалуйста
Аноним 25/01/23 Срд 00:52:46 #15 №2586157 
>>2586147

Что значит "там"?

Вызванный через рефлексию метод вызовется так же, как и вызванный напрямую. В том же треду, на том же стеке вызовов. Единственное отличие - для java.lang.Method можно задать обьект-инстанс, на котором этот метод будет вызван. Ну и с точки зрения производительности может быть просадка, ибо рефлексия дороже обычного вызова (особенно если работать с рефлексией по тупому).
Аноним 25/01/23 Срд 05:05:20 #16 №2586224 
>>2586135
Скоупами в идее
https://youtu.be/lMcbxwJ74P4
Аноним 25/01/23 Срд 07:24:34 #17 №2586250 
>>2585661 (OP)
Как там в вашем тестконтейнере почистить все данные в БД после каждого теста? Перезапускать контейнер или дрочить репозитории руками не предлагать.
Аноним 25/01/23 Срд 10:05:53 #18 №2586334 
>>2586250
@Sql(scripts = "clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD)
Аноним 25/01/23 Срд 10:23:18 #19 №2586361 
>>2586250
>>2586334
@Transactional
Аноним 25/01/23 Срд 10:37:47 #20 №2586384 
>>2586361
https://dev.to/henrykeys/don-t-use-transactional-in-tests-40eb

>>2586334
>@Sql
Это еще что такое? Ну и это снова руками придется скрипт каждый раз править
Аноним 25/01/23 Срд 11:06:01 #21 №2586404 
>>2586384
С ликвибейз и флайвей можно дропать все и перенакатывать схему
Аноним 25/01/23 Срд 13:04:46 #22 №2586497 
>>2586384
Да, каждый раз когда добавляешь или удаляешь таблицу меняешь клин-скрипт.
Способ не очень подходит, если ты через свою приложуху динамически меняешь схему.
Поищи по гитхабу, как используется Sql.ExecutionPhase.AFTER_TEST_METHOD для очистки базы.
Это если ты не накатываешь схему на каждый тестовый метод. Миграции по умолчанию накатываются на каждый тестовый класс, потому что каждый раз переподнимается контекст.
Аноним 25/01/23 Срд 17:12:33 #23 №2586811 
Аноны, есть две @Entity, скажем Person, с полями name и age, Payment с полями employeeName и amount. Как мне через JPA получить третий объект, представляющий джоин этих двух энтити?
Аноним 25/01/23 Срд 17:15:16 #24 №2586816 
>>2585661 (OP)
>Самая базовая и мастхев библиотека/фреймворк джавы, без которой джава вообще не джава (за исключением стандартной библиотеки)?
Конечно же ЖИДБРЕЙНС АННОТАЦИИ. Ебало тех, кто пишет @NonNull и Validate.nonNull(obj) представили?
Аноним 25/01/23 Срд 17:47:34 #25 №2586884 
Я тот анон из предыдущего треда, которому пришлось ебаться с градлом. Вы бы знали, в какую пизду мне пришлось залезть.

Вопрос по существу - как открыть файловое дерево (то, что слева всегда) в идее 2017?
Аноним 25/01/23 Срд 17:49:45 #26 №2586887 
>>2586884

>Вопрос по существу - как открыть файловое дерево (то, что слева всегда) в идее 2017?

Где то в менюшке window должно быть, по логике, не?
Аноним 25/01/23 Срд 17:52:20 #27 №2586892 
>>2586887
В том то и юмор, что нихуя.
Аноним 25/01/23 Срд 17:53:39 #28 №2586894 
>>2586887
>>2586884

>Вопрос по существу - как открыть файловое дерево (то, что слева всегда) в идее 2017?

А, либо в View -> Tool windows -> Project. Вспоминаю по памяти, ибо под рукой идеи нет конкретно щас
Аноним 25/01/23 Срд 17:54:20 #29 №2586896 
>>2586894
Спасибо, нашёл!
Аноним 25/01/23 Срд 18:17:42 #30 №2586950 
image.png
Как это говно исправить?
Аноним 25/01/23 Срд 18:27:28 #31 №2586968 
>>2586950
Попробуй запустить на 8 джаве.
Аноним 25/01/23 Срд 18:37:46 #32 №2586985 
test.jpg
>>2586950
Выкинуть ваадин нахуй
Аноним 25/01/23 Срд 18:51:37 #33 №2587013 
>>2586985
И заменить на Blazor.
Аноним 25/01/23 Срд 20:15:22 #34 №2587130 
>>2586950
Какая версия ваадина?
Аноним 25/01/23 Срд 22:17:50 #35 №2587249 
Почему валидация List<@Valid CustomObject> может не работать, и когда поле не проходит валидацию выдает код 500 вместо 400? Когда пробую сделать реквест с просто @Valid CustomObject, все отлично. В чем может быть причина?
Аноним 25/01/23 Срд 22:37:19 #36 №2587266 
>>2587249
В ебаной магии спрингбута.
Аноним 25/01/23 Срд 23:00:05 #37 №2587290 
Что за хуйня?

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

Но класс имеется. Смотрел через winrar.
Аноним 25/01/23 Срд 23:22:39 #38 №2587304 
>>2587290
Можно хотя бы как-то класс подгрузить из непосредственно файла .class, если JVM серет и не может?
Аноним 25/01/23 Срд 23:26:59 #39 №2587309 
>>2586224
Ебать, делать нехуй? Я завожу пакеты dto и entity
Аноним 25/01/23 Срд 23:29:03 #40 №2587313 
>>2586816
Использую аннотации спринга и в хуй не дую. Javax превратился в jakarta? Да и в рот оно ебись! У меня есть спринг, идея провалидирует все параметры.
Аноним 26/01/23 Чтв 00:51:40 #41 №2587363 
Пару часов потратил на гугление, но нихуя внятного и понятного не нашел, поэтому прошу помощи у вас. Есть один JMS-канал, откуда летят сообщения. Мне необходимо эти сообщения получать и сразу без каких-либо обработок отправлять в такой-то топик Кафки. Хуйня вопрос, заюзал KafkaTemplate и отправил куда надо и все работает, все понятно. Но сделать это нужно с помощью Spring Integration, которым я впервые пользуюсь и который для меня нихуя непонятен.

На ютубе только гайды от индусов, в которых делается непонятная не нужна мне поебень, которая даже отдаленно не помогает сформировать хоть какой-либо псевдокод у себя в голове. Вся надежда на вас, анончики, прошу любой помощи
Аноним 26/01/23 Чтв 00:54:25 #42 №2587364 
>>2587290
Бамп
Аноним 26/01/23 Чтв 01:11:50 #43 №2587369 
15495652394040.jpg
Сап, анчоус.
Я один такой еблан, который не может понять принципиальную разницу между Factory Method и Abstract Factory?
Вот два примера:
https://refactoring.guru/design-patterns/abstract-factory/java/example#lang-features
https://refactoring.guru/design-patterns/factory-method/java/example#lang-features

И там, и там есть абстракция - у метода абстрактный класс, у абстрактной фабрики интерфей. И уже конкретный сабкласс создает конретные объекты. Какого хуя?

Получается, ключевое отличие в том, что в случае с Abstract Factory, клиент не знает, какую фабрику получает и какие объекты будут созданы?
Там еще говорится, что Abstract Factory может создавать семейства объектов. А че, разве я не могу создание нескольких объектов засунуть в фабрику, используя Factory Method?
Аноним 26/01/23 Чтв 01:19:11 #44 №2587373 
>>2587369
Вот здесь, например, иначе объясняется:
https://www.javatpoint.com/factory-method-design-pattern
https://www.javatpoint.com/abstract-factory-pattern

Грубо говоря, с Factory Method мы имеем одну фабрику, которая на основе какой-то переданной переменной будет создавать нужный объект. А c Abstract Factory мы имеем фабрику фабрик.
Так как правльно-то?
Аноним 26/01/23 Чтв 02:14:23 #45 №2587391 
>>2587290
Бамп
Аноним 26/01/23 Чтв 02:19:03 #46 №2587393 
>>2587391
Никто на твой вопрос отвечать не будет, хоть 500 раз бампай.
Аноним 26/01/23 Чтв 02:29:45 #47 №2587398 
>>2587393
Почему?
Аноним 26/01/23 Чтв 02:39:54 #48 №2587401 
>>2587398
Потому что местные говнокодеры не умеют ни в паттерны, ни в структуры данных.
Аноним 26/01/23 Чтв 02:41:59 #49 №2587402 
>>2587398
Потому что вопросы задавать не умеешь, вот почему.

Ни предыстории, ни внятного эксепшена, нихуя не дал, и бампает сидит - ну умора. Тут не чат экстрасенсов. По той инфе что ты дал, однозначно сказать можно только одно - у тебя SLF4Jя в класспафе нет. Помогло тебе это? Нет? Ну и хуй с тобой.
Аноним 26/01/23 Чтв 02:42:21 #50 №2587403 
>>2587401
Причем тут паттерны и структуры данных? У меня проблема с пососом JVM, а не высших абстракций.
Аноним 26/01/23 Чтв 02:58:55 #51 №2587405 
>>2587369
Ты слишком критичен к себе, и слишком много придаешь значения паттернам. Паттерны это хуйня... Ну то есть как хуйня... На полшишечки хуйня. Ща обьясню.

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

По сути паттерны это просто юз-кейсы, оторванные от базы, ни больше ни меньше. Без базы паттерны - каргокульт. Зубрить различия между ними имеет смысл только чтобы иметь возможность ответить какому нибудь тупорылому уебку на собесе, если он своим скудным мозгом додумается спросить об этом. На практике знание паттернов назубок не дает никакого преимущества, а иногда может навредить. Про фабрику достаточно знать лишь что она позволяет отвязать объект(ы) от процедуры его/их сборки. А уж как это делается - методом или классов - так ли уж важно?
Аноним 26/01/23 Чтв 03:05:09 #52 №2587406 
>>2587402
Я портирую мод для копрокубов с 1.7.10 на 1.12.2. Это в целом большое приключение из-за говнистости форджа и градла, и мне пришлось уже разрешить (но в основном обойти) дохуя проблем.

Самой серьёзной проблемой на моём пути оказалось добавление библиотек в джарник. Видимо, это происходит из-за того, что фордж как-то анально залезает в процесс сборки градла и ломает там чё-то (скорее всего, эта поломка очень глубокая, плавающая, редкая и платформо-зависимая, потому что починить её у меня не удалось, даже скачав готовый проект мода на 1.12.2).

Я пытался использовать различные версии форджеградла, пользовался разными плагинами для шейдинга, перепробовал с десяток разных способов с стаковерфлоу и вики форджа, мне даже приходилось скачивать идею 2017 года. Всё бестолку. Самое большое, что мне удалось добиться от дегенерадла - добавить все библиотеки вместе с майнкрафтом в итоговый джарник.

В один момент я плюнул и решил добавить библиотеки напрямую в .jar. Я сделал проект на мавене с этими библиотеками, открыл итоговый джарник с библиотеками в винраре, мод без библиотек, и перекинул из библиотечного всё в модовый.

Запускаю я значит этот мод, и вижу следующую проблему - мод успешно вызывает HikariCP, который был добавлен путём копипасты, а тот пытается получить доступ к LoggerFactory из SLF4J, который тоже был закопипасчен, и это уже не получается. Вылетает java.lang.ClassNotFoundException: org.slf4j.LoggerFactory. Я предположил, что дело в том, что по какой-то причине закопипасченные классы не могут получить доступ к закопипасченным, но написанный в основном коде мода Class.class.getClassLoader().loadClass("org.slf4j.LoggerFactory"); тоже выдаёт NullPointerException.

Вот полный эксепшен со стактрейсом: https://pastebin.com/9dmATw8r

Аноны, прошу, не будьте такими же пидарасами, как стековерфловщики, которые минусуют и удаляют все вопросы сложнее "что такое Class".
Аноним 26/01/23 Чтв 03:10:31 #53 №2587409 
>>2587406
>Видимо, это происходит из-за того, что фордж как-то анально залезает в процесс сборки градла и ломает там чё-то

Наврядли.

>В один момент я плюнул и решил добавить библиотеки напрямую в .jar

Как конкретно добавлял?
Аноним 26/01/23 Чтв 03:13:46 #54 №2587410 
>>2587409
1. Открываю джарник с библиотеками, собранными через мавен, и мод, собранный градлом в винраре
2. Выделяю пакеты с библиотеками (в моём случае org и com)
3. Перетягиваю их в окно мода и нажимаю "ОК" в открывшемся окне
4. Запускаю получившегося франкенштейна сервером форджа
Аноним 26/01/23 Чтв 03:33:00 #55 №2587417 
>>2587406
Ок, с форжем я почти не знаком, ибо в майнкампф не шпилю. Скорее всего ты впоролся в класслодеры, и SLF4J у тебя грузится не-пойми чем.

На твоем месте я б забил на затею с винраром и все таки разобрался бы с добавлением зависимостей в мод. Я чекнул мельком mdk-проект с форжа - выглядит так, будто все должно решаться обыкновенным добавлением зависимостей в dependencies.
Аноним 26/01/23 Чтв 03:34:05 #56 №2587418 
>>2587417
...обыкновенным добавлением зависимостей в dependencies в build.gradle
Аноним 26/01/23 Чтв 03:34:28 #57 №2587419 
>>2587418
Я 15 часов убил на попытки добавить зависимость.
Аноним 26/01/23 Чтв 03:36:46 #58 №2587420 
>>2587419
Ну а так ты еще 500 часов убьешь на то, чтобы понять, как форж класслодерами ворочает. И все равно нихуя работать не будет.
Аноним 26/01/23 Чтв 03:38:52 #59 №2587421 
>>2587420
Можно как то вручную загрузить класс из файла .class?
Аноним 26/01/23 Чтв 03:45:35 #60 №2587422 
>>2587405
Да, спасибо. Ты все верно написал, я со всем согласен.
Хочу именно в самом стандартном классическом их виде разобрать паттерны, чтобы дать четкий ожидаемый ответ на собесе.
Аноним 26/01/23 Чтв 03:50:41 #61 №2587423 
>>2587421
Чел, ты щас на третьей стадии принятия - торг. Давай сразу к принятию.

Отвечая на вопрос: гугли джава класслодинг. Стандартный сет класслодеров подразумевает цепочку "бутстрап класслодер" -> "класслодер расширений" -> "системный класслодер". Последний ищет и грузит классы из класспафа (надеюсь - что такое класспаф не надо обьяснять?) когда ты делаешь класслодер.loadClass().

Но это все стандартная схема. Что у тебя там нахуеверчено - одному богу известно. К примеру, вот этот вот кусок стектрейса:

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101) ~[launchwrapper-1.12.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_352]

По нему видно что произошла делегация к какому то хуй пойми какому класслодеру net.minecraft.launchwrapper.LaunchClassLoader, который хуй пойми как работает и хуй пойми откуда классы берет. Ты серьезно щас хочешь лезть в кишку? Просто поверь - разобраться с твоими терками к градлу скорее всего будет проще.
Аноним 26/01/23 Чтв 04:04:39 #62 №2587426 
>>2587405
Паттерны - антипаттерн, так как подразумевают в себе нарушение принципа DRY.
Аноним 26/01/23 Чтв 05:05:22 #63 №2587436 
>>2587363
Бамп вопросу
Аноним 26/01/23 Чтв 11:33:12 #64 №2587672 
изображение.png
изображение.png
почему так?
Аноним 26/01/23 Чтв 12:41:49 #65 №2587733 
>>2587728
ниче я не проебал. надо было просто обновить мавен проджект
Аноним 26/01/23 Чтв 12:59:57 #66 №2587769 
>>2587426

И в каком конкретном месте паттерны нарушают DRY?
Аноним 26/01/23 Чтв 13:12:15 #67 №2587801 
16386992070450.jpg
>>2585661 (OP)
Объясните по простому что такое forkjoinpool и как его использовать
Аноним 26/01/23 Чтв 13:22:24 #68 №2587817 
https://spring.io/guides/tutorials/rest/ сижу эту хуйню читаю
блядь как же мне хуево чисто физически
я не привык, когда происходят в коде вещи, о которых я ничего не знаю
эта залупа сама что-то делает, я даже не понимаю что ей для этого надо
тонны блядь каких-то методов хуй пойми для чего
обертка над оберткой над оберткой над апи фреймвокра
Аноним 26/01/23 Чтв 13:47:47 #69 №2587861 
>>2587801
Обычные пулы исполняют монолитные раннаблы и коллаблы. А форкджойн пул, помимо раннаблов и коллаблов, умеет выполнять forkjointaskи. А форкджойн таски имеют уникальную особенность - их можно не только выполнить (compute), но и побить на подтаски (createSubtasks), этой особенностью форкджойн пул активно и пользуется. Там есть еще всякие внутренние нюансы работы этого пула типа job-спиздинга, но ты просил по вершкам. За деталями иди к Шипилеву в блог.

Напрямую его обычно редко используют. Он сидит под капотом у комплитабл фьюч.
Аноним 26/01/23 Чтв 14:15:31 #70 №2587916 
>>2587817
Исходники диспетчер сервлета и реквестмаппингхэндлера лежат в открытом доступе, бери читай.
Аноним 26/01/23 Чтв 15:19:18 #71 №2588006 
>>2587916
да я не про это даже
почему я нигде не создаю объекты, но это говно знает какой и где объект создать?
а если она однажды не тот объект мне создаст?
как использовать разные конструкторы?
я не понимаю как это все там внутри работает
а смотреть исходники проекта этого я ебал того в рот
кто в здравом уме туда полезет? чтобы скакать от одной зависимости к другой часами?
ты сам можешь вообще имагинировать такое?
Аноним 26/01/23 Чтв 15:25:56 #72 №2588015 
а еще уровень статьи где говорят вот если ты Employee возвращаешь, то это не REST
а вот если ты EntityModel<Employee> возвращаешь, то это REST
ахуенное блядь объяснение, я теперь пытаюсь про это жижу нагуглить что-то получше, но нигде не упоминают подобное - про все эти линки блядь какие-то
ахуенно, хочешь разобраться в чем-то - тебя только запутывают больше и говна за шиворот накидывают

я всегда блядь раньше считал, что REST это обычный подход к менеджеру какими-то ресурсами, которые могут быть запакованы в условный жсон
но теперь я блядь не уверен и не могу больше ничего подобного нагуглить, что в той статье сказано
(а как же не гуглить? ведь это сами разрабы спринга меня запутали. они то дядьки умные. это я хуй с горы не понял их гениальную идею просто)
спасибо дядя спрыня покодил блядь
Аноним 26/01/23 Чтв 15:28:54 #73 №2588016 
>>2587817
Ну так ебашь на сокетах хттп сервер. Джава позволяет и такое.
Аноним 26/01/23 Чтв 15:30:09 #74 №2588019 
>>2588016
нет, с такими скиллами даже на собес не позовут, а мне туда надо срочно
Аноним 26/01/23 Чтв 16:58:44 #75 №2588173 
ой почитал дальше да ну вас нахуй короче, джава маньки, пиздец вы кал жрете
лучше в питон буду вкатываться снова
Аноним 26/01/23 Чтв 17:02:54 #76 №2588185 
>>2588006
>а если джава однажды неправильно мне память аллоцирует и память мне не так освободит?
>кто в здравом уме в код jvm полезет?
Аноним 26/01/23 Чтв 17:04:41 #77 №2588188 
>>2588173
Нахуя тебе петухон? Вкатывайся в шарп.
Аноним 26/01/23 Чтв 17:44:12 #78 №2588282 
>>2587861
Ок, спасибо за объяснение
Аноним 26/01/23 Чтв 22:04:26 #79 №2588659 
>>2588015
Про spring data rest почитай, уже давно все решено и сделано за тебя, попроще к этому относись и не заморачивайся надо всем. я хз как ты вообще в проге двигаешься без умения делать что-то не понимая (по крайней мере первое время)
Аноним 26/01/23 Чтв 22:32:57 #80 №2588685 
Какие зависимости добавлять для Hibernate ?!?!?! Добавляю hibernate-core, на тебе ошибка, добавляю ещё один, на ещё ошибку ! ! ! ! ! ! Добавляю все возможные библиотеки для hibernate, опять ОШИБКИ !! ! !
Аноним 26/01/23 Чтв 22:50:58 #81 №2588705 
>>2588685
Блин(
Аноним 26/01/23 Чтв 22:55:53 #82 №2588713 
>>2588685
Говнохибернейт правильно не добавлять. Тогда и ошибок не будет.
Аноним 26/01/23 Чтв 23:00:39 #83 №2588724 
>>2588713
Я проект доделываю.
Аноним 26/01/23 Чтв 23:09:18 #84 №2588733 
>>2588724
Доделываешь, а говнохибернейт понадобился только сейчас, значит, его не было.
Аноним 26/01/23 Чтв 23:45:25 #85 №2588773 
Нужно ли знать как работать с hibernate через Jpa ?
На собеседованиях спрашивают ?
Аноним 26/01/23 Чтв 23:57:31 #86 №2588780 
>>2588773
Да бля, в чём вопрос вообще, этому за пару часов можно научиться по первой попавшейся мурзилке.
Аноним 27/01/23 Птн 02:20:12 #87 №2588863 
>>2588773
Спрашивают. Полезно знать, что такое persistence unit и context, как оное связано в entity manager'ом и сущностями, какие состояния бывают у сущностей (transient, persisted, detached, removed) и что они означают в контексте разговора о persistence context'е.

Если на этом этапе ты понял что в гробу видел все это знать - поздравляю. Ты теперь стал чуть ближе к ORM-скептикам.
Аноним 27/01/23 Птн 02:22:44 #88 №2588864 
>>2588685
Че хоть за ошибка то?
Аноним 27/01/23 Птн 02:27:09 #89 №2588865 
Как же мне повезло, что на текущем проекте люто ненавидят хибер. Программирую на SQL каждый день и кайфую.
Аноним 27/01/23 Птн 02:35:06 #90 №2588868 
>>2588865
Плюсую.
Аноним 27/01/23 Птн 02:48:59 #91 №2588870 
>>2588865
Я тоже сперва радовался. А потом заставили писать километровые выборки с 5+ джойнами, динамическими фильтрами и рекурсивными cte.
Аноним 27/01/23 Птн 03:34:26 #92 №2588876 
>>2587769
Лол, ты буквально повторяешь то, что уже было сделано. Надо не повторять, а писать код, который заменит паттерн.
Аноним 27/01/23 Птн 03:36:30 #93 №2588877 
Decision decision = Decision.builder()
.id("loan_qualifier")
.name("Loan qualifier")
.hitPolicy(HitPolicy.COLLECT)
.expressionType(ExpressionType.FEEL)
.withInput(in -> in
.name("age")
.type(ValueType.INTEGER)
.build())
.withInput(in -> in
.name("activeLoansNumber")
.description("Number of active loans on user's account")
.type(ValueType.INTEGER)
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.build())
.build())
.withInput(in -> in
.name("startDate")
.type(ValueType.DATE)
.build())
.withOutput(out -> out
.name("loanAmount")
.description("Loan amount in Euro")
.type(ValueType.DOUBLE)
.build())
.withOutput(out -> out
.name("loanTerm")
.description("Loan term in months")
.type(ValueType.INTEGER)
.build())
.withRule(rule -> rule
.description("Loan for 18 years")
.withInputEntry(in -> in
.name("age")
.evaluationMode(EvaluationMode.INPUT_COMPARISON)
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(18)
.build())
.build())
.withInputEntry(in -> in
.name("activeLoansNumber")
.evaluationMode(EvaluationMode.INPUT_COMPARISON)
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(0)
.build())
.build())
.withInputEntry(in -> in
.name("startDate")
.withExpression(ex -> ex
.type(ExpressionType.FEEL)
.value("[date and time("2019-01-01T12:00:00")..date and time("2019-12-31T12:00:00")]")
.build())
.build())
.withOutputEntry(out -> out
.name("loanAmount")
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(10000)
.build())
.build())
.withOutputEntry(out -> out
.name("loanTerm")
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(12)
.build())
.build())
.build())
.withRule(rule -> rule
.withInputEntry(in -> in
.name("age")
.withExpression(ex -> ex
.type(ExpressionType.FEEL)
.value(18)
.build())
.build())
.withInputEntry(in -> in
.name("startDate")
.withExpression(ex -> ex
.type(ExpressionType.FEEL)
.value("[date and time("2019-03-01T12:00:00")..date and time("2019-03-31T12:00:00")]")
.build())
.build())
.withOutputEntry(out -> out
.name("loanAmount")
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(15000)
.build())
.build())
.withOutputEntry(out -> out
.name("loanTerm")
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(6)
.build())
.build())
.build())
.withRule(rule -> rule
.withInputEntry(in -> in
.name("age")
.withExpression(ex -> ex
.type(ExpressionType.FEEL)
.value(">18")
.build())
.build())
.withOutputEntry(out -> out
.name("loanAmount")
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(20000)
.build())
.build())
.withOutputEntry(out -> out
.name("loanTerm")
.withExpression(ex -> ex
.type(ExpressionType.LITERAL)
.value(12)
.build())
.build())
.build())
.build();
Аноним 27/01/23 Птн 04:06:25 #94 №2588885 
>>2588876

Кек.

Окей, два вопроса.
1. Но ведь dry - don't repeat Yourself. Паттерны жеж не твои, ты не себя повторяешь
2. А что делать если ты такой пишешь код, никого не трогаешь и БАЦ - случайно переизобрел один из паттернов? Переписывать?
Аноним 27/01/23 Птн 04:33:48 #95 №2588892 
>>2588885
>Кек
Хотелось перестать читать, но всё же обоссу порриджа.

>1. Но ведь dry - don't repeat Yourself. Паттерны жеж не твои, ты не себя повторяешь
Ты еблан? Доебался до хуйни. Очевидно речь идёт о в принципе отсутствии повторений. Да и к тому же если ты паттерны не один раз используешь, то ты принцип нарушаешь.

>2. А что делать если ты такой пишешь код, никого не трогаешь и БАЦ - случайно переизобрел один из паттернов?
Перефразировать ещё хуже чем повторять себя, потому что сложнее сделать абстракцию над этим. Это максимально хуёво, потому что ты в угоду визуальному ненарушению DRY ухудшаешь качество кода.

>Переписывать?
Как я уже говорил, сделать запрограммированную абстракцию, которая бы включала в себя этот паттерн, а не повторять код.
Аноним 27/01/23 Птн 05:15:40 #96 №2588899 
Очередное бугаенкоподобное шизоуебище вышло из дурдома?
Аноним 27/01/23 Птн 05:58:12 #97 №2588907 
>>2588899
Причина анальной боли?
Аноним 27/01/23 Птн 07:56:58 #98 №2588935 
>>2588892
"Сделать абстракцию" - это и есть паттерн
Аноним 27/01/23 Птн 09:36:23 #99 №2589008 
>>2588877
Я думал, в Яндексе не пишут на Java
Аноним 27/01/23 Птн 09:41:42 #100 №2589012 
>>2588877
Чё ты высрал, даун?
Аноним 27/01/23 Птн 09:45:36 #101 №2589015 
>>2589012
Твою мамку в помойку высрал.
Аноним 27/01/23 Птн 09:47:51 #102 №2589017 
>>2588935
Давно фундаментальное логическое понятие в паттерны записали?
Аноним 27/01/23 Птн 10:47:02 #103 №2589082 
>>2588892
Ты че порвался то? Высрал полотно так, будто я какой то защитник паттерного мышления, бля. Выше я уже пояснил что паттерны хуйня, поэтому я в душе не ебу, охоту на каких ведьм ты тут развёл.

Просто я первый раз слышу чтоб паттерны обсирали именно через драй. Попросил пояснить. И пока что твоя аргументация звучит так, что хочется сидеть и дальше тебя подьебывать тупыми вопросами на генерацию паст, лол.
Аноним 27/01/23 Птн 11:46:00 #104 №2589178 
Начал изучать кубер, задеплоил свой пет в кластер на клауде, сейчас практикуюсь в написании манифестов и читаю про Helm, в планах после кубера разобраться с дженкинсом, написать пару-тройку пайплайнов. Как думаете достаточно для вката на джуна будет? Или энивей только на позицию стажера могу претендовать?

ЯОБЯЗАТЕЛЬНОВКАЧУСЬ
Аноним 27/01/23 Птн 12:05:01 #105 №2589217 
>>2589178
На девопс-стажера?
Аноним 27/01/23 Птн 12:09:18 #106 №2589221 
>>2589217
Да вроде джаву учил со спрингом до этого, но если че без рофлов, я пока так и не устроился
Аноним 27/01/23 Птн 12:18:25 #107 №2589234 
>>2588870
а представь что надо было бы добиваться этого от хибера через знание его кишочков. Чтобы он не 100500 запросов лепил, а один с 5 джойнами
Аноним 27/01/23 Птн 12:18:48 #108 №2589235 
изображение.png
не писал никогда микросервисы
учить спрингу не на своем проекте не интересно
хочу попробовать сделать небольшой аналог кинопоиска
накидал структуру на пике
планирую с этим проектом потом идти на собес
база или кринж?
Аноним 27/01/23 Птн 12:24:25 #109 №2589243 
>>2589235
юзеры и мувисы это разные микросервисы? Как юзеры будут знать про мувисы? Что делать если мувис надо удалить? Что насчёт тракзакций? Что делать если умрут мувисы при живых юзерсах?
Аноним 27/01/23 Птн 12:24:53 #110 №2589244 
>>2589243
забыл про консистентность бд
Аноним 27/01/23 Птн 12:28:10 #111 №2589250 
>>2589017
"Паттерн представляет собой не какой-то конкретный код, а общую
концепцию или пример решения той или иной проблемы.
Паттерн — это высокоуровневое описание решения, реализация
которого может отличаться в двух разных программах."
В этом значении паттерн - абстракция.
Аноним 27/01/23 Птн 12:31:06 #112 №2589256 
>>2589250
Ну так вот это и надо реализовать в виде кода, а не словами.
Аноним 27/01/23 Птн 12:32:48 #113 №2589258 
>>2589243
есть 2 микросервиса REST API (RestController), каждый из которых управляет своей базой данных
1 база - фильмы
2 база - клиенты
есть 3 микросервис, который при обращении клиента (4 микросервис) к REST API клиентов, получает запрос регистрации/аутентификации клиента и отправляет ему ответ

если клиенты отвалятся - можно будет смотреть только какие фильмы есть
если отвалятся фильмы, то только регистрироваться/логиниться
юзеры про мувисы знать не будут (я чет даже и не задумывался об этом, не хотел чтобы юзер мог давать даже оценку фильмам, лол)
получается не особо аналог КП, да?
ну хз, а как можно связать две независимые БД между собой?
Аноним 27/01/23 Птн 12:37:02 #114 №2589260 
>>2589243
Я не тот же анон, если че
> Как юзеры будут знать про мувисы?
А зачем им знать про них? Допустим можно сложить мувисы против айди юзера в другой бд
> Что делать если мувис надо удалить?
А что мешает это сделать в микросервисе мувисов по айди юзера и айди мувиса
> Что насчёт тракзакций?
Разбивать на несколько в пределах одного микросервиса или есть что-то типо распределенных, на сколько я знаб
> Что делать если умрут мувисы при живых юзерсах?
Выдавать сообщение об ошибке при неудачном запросе
Аноним 27/01/23 Птн 12:40:39 #115 №2589266 
>>2589260
я думал кинопоиск это поиск подходящих фильмов для каждого юзера. Типа ластфм.
Это чо, теперь ещё нужен третий микросервис, хранить связи юзеров и мувисов?

И это надо ещё прикручивать кафку - чтобы мувисы и юзеры могли подписаться на события изменений
Аноним 27/01/23 Птн 12:40:41 #116 №2589267 
Микросервисы - глобальный наёб и торжество сойдева. Реальный опыт корпораций по работе с микросервисами показывает, что в любом случае микросервисы превратятся в очень сильно тормозящий монолит, в котором каждый из тысяч микросервисов связан с каждым другим микросервисом (опыт гейфликса).

Единственная по настоящему работающая архитектура - иерархический монолит.
Аноним 27/01/23 Птн 12:44:37 #117 №2589275 
>>2589267
аминь

>иерархический монолит
где-то про это можно почитать?
Аноним 27/01/23 Птн 12:46:41 #118 №2589276 
>>2589275
Нечего читать, это когда ядро зависит от каких-то либ, эти либы от чего то ещё, и так до фундаментальных ни от чего не зависящих.
Аноним 27/01/23 Птн 12:53:34 #119 №2589283 
>>2589256

вот тут шиз с DRY писал
>>2587426
Аноним 27/01/23 Птн 12:56:33 #120 №2589287 
>>2589266
Ну я скорее рассуждаю с позиции, работоспособно ли это, а оптимальность архитектуры, это уже следующий вопрос, тут я с тобой не могу не согласиться
Аноним 27/01/23 Птн 13:06:47 #121 №2589296 
изображение.png
>>2589260
>А зачем им знать про них? Допустим можно сложить мувисы против айди юзера в другой бд
ты имеешь ввиду создать 3 БД, которая была бы связана со всеми REST API? пик
Аноним 27/01/23 Птн 13:27:49 #122 №2589329 
>>2589235
Почитай книгу microservices in action, там все разжевано для полных ебанатов.
Аноним 27/01/23 Птн 13:29:35 #123 №2589331 
Что означает сущность в hibernate ? Это класс POJO ?
Аноним 27/01/23 Птн 13:32:20 #124 №2589339 
>>2589296
Я думаю, нет смысла продолжать с этой архитектурой изощряться, иначе говоря: хуйня, переделывай
Аноним 27/01/23 Птн 13:35:00 #125 №2589347 
>>2589331
Это класс помеченный аннотацией @Entity с обязательным полем айди, представляющий собой обьектное представление таблицы в твоей субд
Аноним 27/01/23 Птн 13:38:22 #126 №2589354 
>>2589347
Спасибо.
Аноним 27/01/23 Птн 13:59:01 #127 №2589404 
На днях буду изучать spring, после буду проект писать для интервью.
Скажите, на spring только сайты пишут ? Или можно лаунчер для майнкрафта написать ?
Аноним 27/01/23 Птн 14:02:33 #128 №2589413 
вчера вкатился в жава. написал привет мир в консоль. сегодня дописываю пузырек иду на собес. мысли?
Аноним 27/01/23 Птн 14:05:34 #129 №2589419 
>>2587423
По итогу я сделал патч, который прямо в ядро инжектит либы и исправил эту хуйню.
Аноним 27/01/23 Птн 14:05:56 #130 №2589421 
>>2589413
Как там в 2014?
Аноним 27/01/23 Птн 14:06:12 #131 №2589422 
>>2589413
Урааааа, собеееесы
Аноним 27/01/23 Птн 14:07:50 #132 №2589426 
>>2589404
На спринге не пишут "сайты". Вообще забудь это слово.
Аноним 27/01/23 Птн 14:08:38 #133 №2589428 
>>2589421
а че так можно было в 2014? а я в 2015 только поступил в вуз, но пузырек освоил уже на 3 занятии по информатике. получается я мог уже тогда искать работу?
Аноним 27/01/23 Птн 14:12:48 #134 №2589432 
изображение.png
это мне.webm
ну все скоро буду писать сайты затем на собес показывать
Аноним 27/01/23 Птн 14:13:46 #135 №2589434 
>>2589428
Да, вполне можно было.
Аноним 27/01/23 Птн 14:14:15 #136 №2589435 
писал сайты на жава еще до того как это стало мейнстримом
Аноним 27/01/23 Птн 14:19:11 #137 №2589442 
здравствуйте, я новичок, пришел писать на java
Аноним 27/01/23 Птн 14:21:11 #138 №2589446 
>>2589432
Тоже хотел пройти его курс, но у меня нет идеи ультимейт
Аноним 27/01/23 Птн 14:33:07 #139 №2589470 
>>2589234
Там это нереально, особенно сте. Просто бы посетовал на ограничения платформы и не делал бы.
Аноним 27/01/23 Птн 14:33:30 #140 №2589471 
>>2589442
Открывай рот.
Аноним 27/01/23 Птн 15:25:09 #141 №2589573 
Тред захвачен петушарперами.
Аноним 27/01/23 Птн 15:56:37 #142 №2589645 
Шарперы чем-то напоминают хохлов. Им нужно всегда заявить о себе, помахать флагом, прийти в тред джавы и высраться, короче, комплекс младшего брата. У джавистов такого нет. Джава просто работает, не надо ничего никому доказывать
Аноним 27/01/23 Птн 16:50:49 #143 №2589729 
изображение.png
а че в смысле это получается спринг кор такой большой https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#validation
а мне вон там показывают ролики по 10 минут я че зря курс купил? меня че не возьмут
Аноним 27/01/23 Птн 17:55:23 #144 №2589809 
Подскажите пожалуйста, что означает связь OneToMany, ManyToOne и ManyToMany ?
Аноним 27/01/23 Птн 18:00:00 #145 №2589816 
>>2589809
я не знаю
я к собесу готовлюсь
Аноним 27/01/23 Птн 18:13:14 #146 №2589838 
>>2589809
Насколько я понимаю, в OneToMany родитель использует Коллекцию с дженерик типом класса дочернего. В методе main(); создаем обьект класса родителя и дочернего, устанавливаем через конструкторы значения. А затем просто добавляем в коллекцию наш дочерний класс и всо. Зачем только ?
Аноним 27/01/23 Птн 18:14:49 #147 №2589839 
>>2589816
мне дошло, спс
Аноним 27/01/23 Птн 18:15:07 #148 №2589841 
Как сделать так, чтобы мавен не плодил мусорные файлы в корне проекта? У меня есть файлы в resources, и мавен их все копирует в корень при сборке.
Аноним 27/01/23 Птн 18:20:33 #149 №2589846 
>>2589258

>ну хз, а как можно связать две независимые БД между собой?

А в этом и фокус, чел. По сути, разбитие на микросервисы в конечном счете и сводится к разбитию единой модели данных (именно модели - здесь речь еще даже не о конкретных СУБД идет) на контексты. Но разбивается она не совсем на независимые БД. Физически БДшки независимые, но пересматриваются связи между ними.

То, что реляционки - одни из первых кандидатов на звание бутылочного горлышка в системе, люди понимали еще в эпоху хайпа по nosql. Тогда и пришло понимание что какими то гарантиями консистенции данных в модели можно пожертвовать в угоду масштабируемости. Так популяризировалось понятие eventually-consistent - мы допускаем что данные в двух физически независимых БД придут в согласованность не прямщаснахуй, а рано или поздно. И методы обеспечения такой консистентности получаются более щадящие - вместо анального foreign key constraintа ты можешь для согласования моделей использовать, например, event sourcing средствами кафки.

Ну а дальше, можно бить монолит так, что те же юзеры дублируются в разных моделях разных микросервисов и существуют в этих моделях в разной роли. При этом eventually согласовываются между собой. Например, в сервисе авторизации юзер будет из себя представлять табличку с логином и инфой для сверки креденшелов. В сервисе "клиенты" юзер будет существовать как сущность с перечнем закладок и предпочтений, и. т. д. В мире микросервисов такое зовут "разделением доменной области на ограниченные контексты (bounded context)".

И кстати - ментальность типа "юзеры про мувисы знать ничего не будут" - типичная и часто распространенная ошибка при проектировании микросервисов. Много контор, угоревших по микросервисному хайпу, зафакапилось на этом.
Аноним 27/01/23 Птн 18:21:02 #150 №2589849 
>>2589841
В смысле? Это именно то, что он должен делать - копировать ресурсы в корень класспатха.
Аноним 27/01/23 Птн 18:21:41 #151 №2589850 
>>2589849
Ну так пусть он в джарник их копирует, а не сурцы засоряет.
Аноним 27/01/23 Птн 18:40:59 #152 №2589866 
>>2589846
хуй знает что за кафка, мне бы спринг освоить сначала епта

у меня была идея просто добавить в бд с пользователями нужные столбцы (в зависимости от функционала) и хранить в них айдишник фильма

например: фэворит пул фильмов для пользователя
пользователь жмет на звездочку, имея уже на клиенте id фильма (потому что если он его видит, значит запрос уже был отправлен на бд с фильмами и фильм был дернут за анус от туда)
так вот, когда он это делает, этот id просто посылается в нужный столбец БД с юзерами
и если я захочу глянуть любимые фильмы, то я:
1. отправляю запрос на БД юзера, получаю id от туда
2. затем делаю второй запрос на БД фильмов и получаю уже по этим айдишникам названия фильмов
минус в том, что запрос выходит долгим, через клиента

какие есть еще минусы в моем варианте? (я еще пока ничего не пишу, думаю над архитектурой + спринг учу)
Аноним 27/01/23 Птн 18:44:08 #153 №2589869 
>>2589846
> угоревших по микросервисному хайпу
и еще, мне на микросервисы вообще похуй, я не хайпую. мне просто один знакомый сказал, что запилить микросервис в качестве пет проекта - это норм, аргументируя тем, что за этим будущее.
но похуй за чем там будущее, мне просто деньги платите я буду писать вам любой кал
Аноним 27/01/23 Птн 18:51:39 #154 №2589882 
там ии код пишут, вот за этим будущее
вы больше не нужны
ХАХА
Аноним 27/01/23 Птн 19:00:22 #155 №2589889 
>>2589866
>минус в том, что запрос выходит долгим, через клиента

Все правильно, это - минус. Это как раз тот кейс, когда сервисы мы развили, но толку от этого хер да маленько, ибо в одну бизнес-транзакцию "добавление фаворита" вовлечено два реста, которые даже не гарантируют ни атомарность, ни консистентность. Такие случаи называют "распределенным монолитом" и считают за антипаттерн.

Пойди от фильмов. На клиенте у тебя уже известен юзер, так как ты авторизован. На стороне фильмов заводишь табличку "юзер" и связанную с ней табличку "фавориты". В табличке "юзер" у тебя - айди. В табличке "фавориты" - фильмы, которые юзер отметил для себя.

А дальше, нажатие на звездочку обрабатывается ОДНИМ запросом к "фильмам" типа "добавь фаворида для юзера А", который под капотом просто инсертит новый фаворит в табличку. И тогда тебе останется лишь решить для себя, как юзер попадет в табличку "юзер" на стороне "фильмов". Если не хочется связываться на первых порах с эвент сорсингом, можешь просто условиться, что юзер попадает в базу фаворитов при первом добавлении фаворита.

И еще раз - тот факт что "фильмы" теперь имеют на своей стороне "юзеров" - это нормально. Это делает сервис фаворитов самодостаточным: он останется рабочим даже если ты положишь все остальное. Для его работы у него есть все что ему нужно.
Аноним 27/01/23 Птн 20:10:02 #156 №2589955 
>>2589432
Курс говнище кстати
Аноним 27/01/23 Птн 20:11:58 #157 №2589957 
>>2589955
почему
Аноним 27/01/23 Птн 20:20:27 #158 №2589970 
Как искать первую работу, если работодателю нужен опыт от 2-3 лет? Притом на каждую вакансию
Аноним 27/01/23 Птн 20:22:36 #159 №2589976 
>>2589957
Сходи на собес пройдя его полностью,тебя ждет неприятный сюрприз
Аноним 27/01/23 Птн 20:24:31 #160 №2589980 
>>2589976
ну давай мне один вопрос хотя бы который сюрпризом для меня окажется на себе. че мне твои пуканья в лужу
Аноним 27/01/23 Птн 20:33:33 #161 №2589997 
>>2589980
что будет, если в шедулере выполняется код, а жвм отдала команду на терминейт
Аноним 27/01/23 Птн 20:35:02 #162 №2589998 
>>2589980
Ну расскажи мне на основе курса про лецзиинит эксепшн, из-за чего он возникает и как его избежать на примере например сущностей Доска,Тред и Ответ
Аноним 27/01/23 Птн 20:37:03 #163 №2590001 
>>2589997
>>2589998
это не вопросы на джуна
когда я приду у меня спросят максимум что такое бин компонент и как его объявить/получить из контекста
Аноним 27/01/23 Птн 20:38:23 #164 №2590004 
licensed-image.jpg
>>2589998
не он
Аноним 27/01/23 Птн 20:38:26 #165 №2590005 
>>2590001
Хуй знает братан,я сам недоджун,но это вообще изи вопрос на понимание хибернейта. Также как вопрос про бинфактори и бин пост процессоры
Аноним 27/01/23 Птн 20:39:10 #166 №2590006 
16343116080340.png
>>2590004
Пожалуйста
Аноним 27/01/23 Птн 20:40:46 #167 №2590009 
>>2590006
когда есть связанная сущность не загруженная, и из кода идёт обращение к ней за пределами транзакции
Аноним 27/01/23 Птн 20:41:15 #168 №2590010 
>>2590005
какой хибернейт епта я спринг учу
до хибернейта я еще не дошел
у меня чичас мвц, жэпэа, рэстфул
вот седня узнал что есть томкат который в спринг бут входит
Аноним 27/01/23 Птн 20:42:41 #169 №2590013 
алсо я стараюсь еще инфу искать в дополнении к курсу
Аноним 27/01/23 Птн 20:44:01 #170 №2590015 
>>2590005
ну про фактори и пре/пост методы в курсе он рассказывал
Аноним 27/01/23 Птн 20:44:39 #171 №2590016 
>>2590009
> не загруженная
А можно ли ее загрузить? Если да то каким образом?
Аноним 27/01/23 Птн 20:47:00 #172 №2590022 
>>2590016
поставить аннотацию игер - хибер будет делать отдельный запрос для получения этой сущности каждый раз.

Ещё хибер может игнорировать лейзи и упорно загружать сущность если посчитает нужным
Аноним 27/01/23 Птн 20:47:18 #173 №2590024 
>>2590015
Как бы вы объяснили почему из postProcessBeforeInit возвращается бин,а из postProcessAfterInit возвращается прокси? Можно ли из метода before вернуть не бин,а например нулл или прокси? Что тогда будет?
Аноним 27/01/23 Птн 20:51:13 #174 №2590028 
ПОСТПРОЦЕССОРЫ БИНОВ
@
НЕСКОЛЬКО КОНТЕКСТОВ
Аноним 27/01/23 Птн 20:51:17 #175 №2590029 
>>2590024
эти методы могут возвращать любой тип, но получить их значения нельзя. поэтмоу используют void
прокси возвращается тому що после вызовов пост существующие бины не сразу уничтожаются. там че-то с транзакциями прикол какой-то.
я принят?
Аноним 27/01/23 Птн 20:52:08 #176 №2590031 
>>2590022
> хибер будет делать отдельный запрос
Получается при загрузки доски с 10 тредами и 50 ответами в каждом мы сделаем 500 запросов? Можно это как-то оптимизировать или все что нам остаётся это отказаться от хибера?
> Ещё хибер может игнорировать лейзи и упорно загружать сущность если посчитает нужным
То есть если я укажу коллекцию вложенных сущностей как ленивую хибернейт все равно загрузит их как жадные? И исходя из вашего ответа сделает кучу доп запросов? Получается lazy всегда игнорируется или есть нюансы?
Аноним 27/01/23 Птн 20:59:21 #177 №2590043 
>>2590029
> эти методы могут возвращать любой тип, но получить их значения нельзя. поэтмоу используют void
Как понять любой тип?
Допустим у нас есть threadBeanPostProcessor ,у него есть метод
public Object postProcessBeforeInitialization(Object bean, String beanName)
Мы можем отсюда вернуть null или обернуть наш бин в прокси и вернуть уже его?
> прокси возвращается тому що после вызовов пост существующие бины не сразу уничтожаются. там че-то с транзакциями прикол какой-то.
Как связано уничтожение бинов и прокси? То есть если бы они уничтожались сразу мы могли бы вернуть просто бин? Зачем если они бы сразу уничтожались?
Аноним 27/01/23 Птн 20:59:23 #178 №2590044 
>>2590031
>Получается при загрузки доски с 10 тредами и 50 ответами в каждом мы сделаем 500 запросов?
нет, в худшем случае мы сделаем 1 запрос тредов + 10 запросов ответов. Если тредов будет 20 - то 20 запросов ответов.
Хибер умеет делать джойны, но это анальная магия с кишочками, не всегда срабатывает. Надо будет поковырять на эту тему

>То есть если я укажу коллекцию вложенных сущностей как ленивую хибернейт все равно загрузит их как жадные?
у меня было что указывал как ленивые, а хибер загружал как жадые
>Получается lazy всегда игнорируется или есть нюансы?
предположу что если он может делать джойн то он его делает и сразу загружает данные. А если джойн не выходит - то оставляет лейзи
Аноним 27/01/23 Птн 21:02:32 #179 №2590048 
>>2590043
ты душный не понюхать тебе писечки
Аноним 27/01/23 Птн 21:05:12 #180 №2590051 
>>2590043
>Мы можем отсюда вернуть null
да
>обернуть наш бин в прокси
нет
>Как связано уничтожение бинов и прокси?
как-то
>То есть если бы они уничтожались сразу мы могли бы вернуть просто бин?
нет
>Зачем если они бы сразу уничтожались?
затем
Аноним 27/01/23 Птн 21:08:09 #181 №2590054 
>>2590044
Отвечу сам,lazy на коллекциях отрабатывает отлично. Подгружаться сущности будут только при попытке обратиться к их полям. Касательно твоего случая возможно ты обращался к полям вложенной сущности в сервисном слое или в мапере. Пример:
Сущность Доска и коллекцией Тредов.
До тех пор пока ты не сделаешь Доска.getТреды() треды не будут загружены,до этого момента у тебя хранится прокси,при обращении к которому будет загружена целевая сущность. Объект называется persistentBag если я правильно помню. То есть если у тебя жадно загружаются ленивые коллекции то ставлю 90% что ты обратился к их поляи,например при маппинге в дто
Аноним 27/01/23 Птн 21:09:36 #182 №2590055 
>>2590051
> >Мы можем отсюда вернуть null
> да
Не можем,так как после postProcessBeforeInitialization вызывается инит метод
> >обернуть наш бин в прокси
> нет
Верно,по той же причине
> >Как связано уничтожение бинов и прокси?
> как-то
Не связано
> >То есть если бы они уничтожались сразу мы могли бы вернуть просто бин?
> нет
> >Зачем если они бы сразу уничтожались?
> затем
Вопросы задал чтобы показать неправильных ход рассуждений
Аноним 27/01/23 Птн 21:14:03 #183 №2590059 
>>2590055
>Не можем,так как после postProcessBeforeInitialization вызывается инит метод
вообще не понял про что ты
я тебе про лайфцикл бина
у которого можно вызывать инит/пост методы помечая их аннотациями @PostConstruct и @PreDestroy
о каком ините после уничтожения речь?
Аноним 27/01/23 Птн 21:15:42 #184 №2590062 
>>2590059
Сначала вызывает BPPbeforeInitialization потом вызывается инит метод, тот самый который ты пометил @PostConstruct если ты вернёшь из первого метода null то в пост констракт у тебя придет нулл и ничего создать не получится
Аноним 27/01/23 Птн 21:18:03 #185 №2590067 
Пачиму нельзя скопировать модуль расширения dashchan встроенной функцией идеи? Выдает ошибку Error adding module to project, причём без какой-либо дополнительной инфы. Зато если в полу-ручном режиме скопировать папку и переименовать там классы с файлами, то всё работает как положено
Аноним 27/01/23 Птн 21:18:52 #186 №2590068 
>>2590062
хорошо. посоветуй тогда где можно посмотреть/почитать про спринг, чтобы на всю эту хуйню знать ответы? и вообще мне кажется ты меня специально пугаешь только, чтобы я отказался от затеи идти в жава энтэрпрайз
Аноним 27/01/23 Птн 21:28:38 #187 №2590085 
glqf3KV6Z2A.jpg
>>2590068
Я лично читал spring in action т смотрел доклады Евгения Борисова. Также полезно копаться в дебагере. Про персистант баг я например узнал оттуда. Вот тебе лайфсайкл как шпаргалка
Аноним 27/01/23 Птн 21:35:03 #188 №2590103 
>>2590085
ну а ты сам устраивался куда-то? у тебя это все спрашивали?
Аноним 27/01/23 Птн 21:40:53 #189 №2590112 
>>2590103
На практике спрашивали плюс минус. Я так долго сижу без работы что успел и докер поковырять и кафку немного. А вакансий с февраля в моем регионе ноль. Так что если ты не из дс судьба может быть к тебе жестока. Будешь как я своими знаниями на дваче выебываться
Аноним 27/01/23 Птн 21:50:03 #190 №2590124 
>>2590112
так найди удаленную блядь хули ты как этот
у тебя знания есть по сравнению со мной
я нахуй 4 года на шее у мамки после вуза висел
ни опыта блядь ни знаний нихуя нет по сути
весь вуз блядь лаба1 лаба 2 лаба3 писал в консольке блядской
пока я сидел дрочил и прокрастинировал стек вырос так блядь что я ахуеваю буквально
а теперь добавь к этому то что если за месяц не освою спринг, не освою жава ЕЕ, не освою хибернейт, не напишу свой маленький микросервис для резюме (мне буквально не хуй показать работадателю, весь мой опыт это лаба 1 на шарпе, лаба2 на кутэ, лаба3 на с++, лаба4 на прологе, лаба5 на ассемблере, лаба6 на андроид, вот и думай бля), не найду работу, то неиронично рискую из КЗ упиздовать в окоп
я даже инглишь не знаю толком, могу только документацию читать и то с переводчиком под рукой
Аноним 27/01/23 Птн 21:52:30 #191 №2590129 
>>2590124
Я откликался удаленно,все отказы, даже до собеса не дошло. Некоторые жирным шрифтом пишут тип удаленки нет или джуны только очно. При том что гит с петами имеется
Аноним 27/01/23 Птн 21:53:59 #192 №2590131 
>>2590124
Я тоже рискую умирать поехать,че поделаешь
Аноним 27/01/23 Птн 21:54:23 #193 №2590133 
>>2590129
создавай резюме на аутсорс биржах, линкедин, датаарт, люксофт, епам
Аноним 27/01/23 Птн 21:55:36 #194 №2590134 
>>2590133
Датаарт теперь айтентика,я проходил у них джава школу лол. У них там три собеса тупо чтобы лекции послушать. При том одно это диалог на английском с носителем,ебать я там пропотел
Аноним 27/01/23 Птн 23:30:59 #195 №2590224 
Сап, жависты. Работаю автотестером на жаве.
Есть варинт перекатиться на жава-спринг-хибернейт разраба в кровавом тырпрайзе. Либо пойти дальше по автотестерской стезе развиваться.
Какой стул выбрать?
Аноним 27/01/23 Птн 23:34:22 #196 №2590231 
>>2590224
Разрабом заработаешь больше деняк, чем автоматизатором.
Аноним 27/01/23 Птн 23:45:18 #197 №2590241 
>>2590231
Ну, в перспективе, да. Но поначалу не уверен.
То есть, я могу стать синиор атомейшеном. Либо перекатиться на джун-мидл разраба. И мидл вероятно будет мой потолок на ближайший год-полтора. И еще надо учитывать, что это галера. Так что по деньгам, в короткой-средней перспективе, мне кажется, лучше автоматизатором быть.
Но тут не только в деньгах вопрос. Мне нравится кодить. Был проект, где было много свободы. И я пилил всякие тулзы по автоматизации, изучал что-то постоянно и т.д.
Аноним 27/01/23 Птн 23:54:16 #198 №2590252 
>>2590241
Ну, представь, что будет через 5 лет, а не в короткой-средней перспективе. В любом случае, разрабом до миддла-сеньора дорастёшь быстрее, чем кажется, и там и там одно и то же программирование, просто вместо тестирования надо будет погружаться в предметную область и бизнес-требования, разница не так уж и велика.
Аноним 28/01/23 Суб 00:16:21 #199 №2590268 
>>2590224
Те в целом самому как тестировщиком, нормально? К чему душа больше лежит?

Вроде как есть мнение что тестировщикам больше всех на орехи достается от чужого долбоебизма. Ситуация, когда на QA спускается невнятная параша от говнокодеров, которую не пойми как вообще тестировать, довольно распространена. Разрабам в целом немного чиловее живется (что на мой взгляд несправедливо, но похуй). Плюс, по моим наблюдениям, лучшие разрабы получаются именно из бывших тестировщиков: наверное потому что тестировщики знают толк в контроле качества, в отличие от среднестатистических долбоебов.
Аноним 28/01/23 Суб 01:22:18 #200 №2590292 
>>2590009
Если не ошибаюсь тут имеет значение именно открытая сессия, а не транзакция
Аноним 28/01/23 Суб 01:30:25 #201 №2590296 
>>2590024
А разве на этапе пост процесс афтер еще не факт, что бин будет запроксирован т.к по сути там и создается прокси? Чтобы произвести какие-то манипуляции именно с прокси обьектом правильнее наверн будет написать эвентлисеннер на контекст рефрешед, где уже точно контекст поднят, все бины настроены и запроксированы
Аноним 28/01/23 Суб 01:36:21 #202 №2590300 
>>2590112
Плюсую, я уже кубер ковыряю во всю последний месяц, а все без работы, надеюсь, когда разберусь и поставлю еще один кейворд в резюме, офферы, наконец, повалятся

Хотя кого я обманываю…

Бтв, скажите плиз, пример дефолт таски с кубером, может мне уже его достаточно и пора переходить к чему-то другому
Аноним 28/01/23 Суб 03:18:31 #203 №2590335 
>>2590252
Всегда казалось, что между мидл разрабом и сеньором прям серьезная пропасть. И, если в тестировании сеньора можно как-то относительно легко залететь, то будучи разрабом надо прям серьезно попыхтеть и прям дофига чего знать. Типа начиная от того, как на базовом уровне устроен язык, заканчивая всеми нюанасми технологии в с которой работаешь (спринг и т.д.).
>>2590268
Мне норм. Но душа лежит больше к разрабству. Был проект, где я чисто пилил тестовый фреймворк. Раширял, добавлял новые фичи, фиксил баги. По сути можно сказать был разрабом. Никаких вооще тестов, регрессий, прочей херни. И это было прям круто и интересно. Сейчас пилю автотестики и это скучновато. Хоть и ненапряжно. Но ощущение, что занимаешься какой-то бесполезной хуитой.
У меня вот не то чтобы обратное ощущение. Но вижу часто, что разрабы пыхтят, тужатся, постоянно преодолевают какие-то траблы. А я сижу себе да тестики попиливаю. Поэтому еще и стремаюсь немного - вдруг я слишком тупой и не потяну.
Аноним 28/01/23 Суб 03:49:49 #204 №2590338 
>>2590335
Между мидлом и синьором вполне себе осязаемая пропасть - мидл от синьора отличается тем, что мидл имеет достаточный набор компетенций чтобы принимать решения в рамках отдельно взятой бизнес-фичи или компонента. Синьор - человек, способный с нуля стартануть продукт. Синьорность это не совсем про технологии, хотя общая эрудиция тут роляет, да. Синьорность скорее - про вес твоего экспертного мнения и стоимость твоих ошибок.

> Был проект, где я чисто пилил тестовый фреймворк

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

Поэтому не прибедняйся, не считай себя тупым по сравнению с разрабами (ибо это - навязанный разрабами тестерам стереотип, который тупо ложь: как разраб с многолетним опытом говорю), учи новые штуки и пробуй себя, адекватно оценивая свои возможности. Если ты - на галере, и эта галера дает тебе возможность сделать внутренний переход с тестировщика на разраба - пользуйся этой возможностью: пройти этим путем кратно проще чем искать работу вхолодную.
Аноним 28/01/23 Суб 08:10:18 #205 №2590389 
>>2590292
спринг и хибернейт может работать и без веба
Аноним 28/01/23 Суб 13:05:31 #206 №2590587 
>>2590389
При чем тут вэб, в хибернейте есть свои сессии
Аноним 28/01/23 Суб 15:13:37 #207 №2590761 
обращаюсь к интервьюверам (я знаю, тут такие есть). как вы относитесь к тем, кто закончил вышку в ИТ, но как программист не состоялся? и имею ввиду под этим: не участвовал в открытых проектах, не довел до конца ни один из его собственных проектов, знания на уровне "потрогал то, это, пятое, десятое, но нихуя не разобрался досконально в чем-то одном".

и как относитесь к тем, к кому относится все тоже самое, что и выше, но только теперь он понял: времени было проебано и так много, поэтому надо брать любой популярный стек и учить уже хоть что-то, даже если оно тебе не нравится и по тебе это видно?
Аноним 28/01/23 Суб 17:24:22 #208 №2590963 
>>2590761
Нормально относимся.

Мы не любим скакунов, у которых стаж весь - в лоскутах по три месяца длиной. А дальше надо разбираться, что ты имел ввиду под "открытыми" проектами.

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

>учить уже хоть что-то, даже если оно тебе не нравится и по тебе это видно?

Бесполезно. Выгоришь, будет еще хуже.

Тут надо просто пересматривать свои ценности. В идеале самое здоровое отношение к стеку и технологиям - чисто утилитарное. Когда ты, поинмая все его достоинства и недостатки, даже отдавая себе отчет что стек по сути - говно, знаешь как его эффективнее всего применять для достижения целей. А кайф получаешь именно от решения задач и своей роста компетенции.
Аноним 28/01/23 Суб 17:34:20 #209 №2590977 
>>2590963
>Неумение доводить дела до конца?
разве это не говорит о программисте, что он ленивый хуй и будет только вам палки в колеса вставлять? постоянно за ним присматривать придется, подгонять. оно же нахуй не нужно никому?

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

>у которых стаж весь - в лоскутах по три месяца длиной
что это значит? разве это не
>"потрогал то, это, пятое, десятое, но нихуя не разобрался досконально в чем-то одном"
о чем я писал ранее?
Аноним 28/01/23 Суб 17:43:16 #210 №2590986 
>>2590977

>разве это не говорит о программисте, что он ленивый хуй

Ну ленивый хуй разумеется никому не нужен. Но из твоего описания проблемы я понял что речь не об этом же, так? Насколько я понял, ты просто jack of all trades и никак не остановишься на прокачке в чем то конкретном. И как результат, не можешь растить грейд.

>что это значит? разве это не то о чем я писал ранее?

Трогать пятое-десятое - это не просто нормально, это хорошо. А вот что плохо, так это бросать свои обязательства (которые у тебя неизбежно появляются как только ты трудоустраиваешься). Если ты меняешь работу как носки, это для интервьюеров как раз звоночек, что не имеет смысла в тебя инвестировать свое время и деньги.
Аноним 28/01/23 Суб 17:59:23 #211 №2591017 
>>2590986
>ты просто jack of all trades и никак не остановишься на прокачке в чем то конкретном
не, скорее я не знаю что мне нравится, я что-то нахожу новое, щупаю, мне не нравится через какое-то время, я бросаю. если бы можно было говорить об этом, как о том, что я могу взять любой язык, который раньше использовал и написать на нем что-то рабочее, то это не так. все что становится мне не интересно или не нужно - просто забывается. и не смотря на то, что я раньше мог на этом даже что-то написать рабочее, пусть и не завершенное до конца, то сейчас я даже условно хелоу ворлд не выведу в консольку на том языке без гугла и вспоминания синтаксиса.

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

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

и я вот как представлю, что после изучении жавы иду на собес, меня там спрашивают про мой опыт, и я отвечаю на каждый вопрос "ну опыт был, да, только сейчас ничего не смогу сделать". мне аж хуево становится и кринжово со всего этого интервью. но в то же время вспоминать это все, чисто чтобы покозырять на собесе, как-то и нахуй не хочется, когда ты пришел на позицию жава девелопера собеседоваться...
Аноним 28/01/23 Суб 18:03:41 #212 №2591029 
>>2590986
>>2591017
т.е. я хочу понять, насколько ценен тот мой позабытый опыт длиною в условные 6 лет, добавив к этому 1 месяц вкатывания в жаву и завершенный 1 пет проект на ней? при условии, что моя цель - получить работу жава девелопером
Аноним 28/01/23 Суб 18:16:56 #213 №2591058 
>>2591029
Ненене, давай разделять вопросы.

Сначала ты спрашивал "как мы относимся к таким". Ответ: нормально относимся.

Теперь ты уже задаешь другой вопрос: "насколько ценен твой позабытый опыт". И ответ уже будет другим. Ну... сам понимаешь - каким. Какой ценностью впринципе может обладать позабытый опыт? Ценностью обладают твои скиллы и навыки решения задач, а окончательно роляет ситуация, когда твои скиллы закрывают потребности потенциального работодателя. Те же скиллы определяют и твой грейд. Если твои скиллы - на уровне джуниора, значит и отношение будет на уровне джуниора.
Аноним 28/01/23 Суб 18:27:15 #214 №2591078 
>>2591058
так я вкладывал этот же смысл про позабытый опыт еще сюда
>"потрогал то, это, пятое, десятое, но нихуя не разобрался досконально в чем-то одном"
ты это понял по своему
>ты просто jack of all trades и никак не остановишься на прокачке в чем то конкретном

я не спорю, что не совсем верно сформулировал свои мысли изначально.

>Какой ценностью впринципе может обладать позабытый опыт?
а разве это не говорит о человеке, что он как минимум способен к обучению? единственное, ему для этого нужно просто определенное количество времени. я лишь хочу понять: стоит ли это хоть чего-то? или лучше потратить еще пол года практики на жаве, написать 5-10 проектов и идти на собес, даже не упоминая о старом позабытом опыте?
Аноним 28/01/23 Суб 18:38:26 #215 №2591113 
>>2591078
ты душный, чел
Аноним 28/01/23 Суб 18:38:37 #216 №2591114 
>>2591078

>я не спорю, что не совсем верно сформулировал свои мысли изначально.

Сорян тогда. Если че, я не подразумевал под этим чето обидное.

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

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

Миддлы и синьоры - другая история. Это - бойцы, выполняющие поставленную задачу. Им наоборот готовы простить отсутствие "горящих глаз" и потерпеть их душнину, взамен за их опыт и результативность.

>лучше потратить еще пол года практики на жаве, написать 5-10 проектов и идти на собес

ИМХО при любом раскладе лучше идти на собес как можно раньше. Да, первые собесы ты завалишь, но получишь понимание - чего вообще ждать на собесах (и как результат, чего учить). А иначе ты можешь угрохать кучу времени на этих 5-10 петах, выучить хуй пойми что и все равно не пройти.

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

Если не хочешь чтобы тебя спрашивали о позабытом опыте, лучше убрать. Но ты подумай - может он не настолько уж и позабытый?
Аноним 28/01/23 Суб 18:47:47 #217 №2591132 
>>2591114
>Это здорово, но этого работодатель в первую очередь ожидает от вкатунов, стажеров, интернов и джунов.
а я и не претендую на что-то выше джуна. какое-то время думал вообще уйти тестировщиком куда-нибудь (представлял это нечто более простым, чем писать по). да и кто лучше протестирует программу, чем сам программист?

>Но ты подумай - может он не настолько уж и позабытый?
на уровне синтаксиса точно. да и что вообще можно рассказать об этом? как создавал виджет через Qt4:: обращаясь к объекту <name>? разве что помню основы плюсов, потому что сложнее консольного приложения на них не писал. даже STL далеко не весь потрогал, не говоря уже о boost. козырнуть явно не чем, но и приходить и говорить "здравствуйте, я программист, пишу на жава 1 месяц, вот мой пет проект" как-то тоже...
Аноним 28/01/23 Суб 18:57:36 #218 №2591153 
>>2591132

>да и кто лучше протестирует программу, чем сам программист?

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

>а я и не претендую на что-то выше джуна.

Ну тогда я думаю вопрос исчерпан. Добро пожаловать в реалии джуна 2022 года.
Аноним 28/01/23 Суб 19:03:52 #219 №2591156 
>>2591153
хз, когда программист пишет приложение, сил писать юниты уже не остается. я и сам не люблю распыляться. если я пишу и сконцентрирован на чем-то, то я и хочу писать это.

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

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

под программистом я подразумевал человека, который знает как работают программы/код, как там все устроено, потенциально шаткие места и т.д.
Аноним 28/01/23 Суб 19:13:22 #220 №2591162 
>>2591156
>когда программист пишет приложение, сил писать юниты уже не остается
Потому что надо делать наоборот.
Аноним 28/01/23 Суб 19:29:53 #221 №2591171 
>>2591156
Был период когда я так же думал. Сейчас я считаю иначе.

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

Ну а дальше весь вопрос сводится к тому, как писать юниты хорошо. И вот здесь у программистов все совсем плохо. Часть пытается каким то образом купировать свою некомпетентность посредством введения дополнительных ритуалов, aka test-driven development. По слухам - кому то оно даже помогло (но в основном - нет). Другая часть тупо забила на юнит тесты, и по старинке хайрят QA-команду, которая мейнтейнит высокоуровневый тест-сьют.
Аноним 28/01/23 Суб 21:05:34 #222 №2591228 
>>2591171
Я пишу интеграционные тесты на все эндпоинты своего сервиса и считаю их очень полезными. Очень часто на этапе написания теста понимаю, что эндпоинт работает неверно.
С другой стороны не очень представляю, как можно писать по tdd в test-first стилистике. Это надо заранее на 100% понимать, как будет работать твоя апишка на вход и выход и припоминать все сайд-эффекты.
Типа вот есть такой пост запрос - вот три валидных запроса, 5 невалидных, вот ответы на это все, вот такое изменение в базе произойдет, вот тут вызов внешнего сервиса в таком формате, вот тут пук в кафку в таком формате, вот здесь обращение к серверу авторизации в таком формате. После написания эндпоинта я это сделать могу, хоть и времени на все это уходит раза в 2 больше, чем на написание самого эндпоинта. А заранее написать тест - это анрил.
джун+ спринг-крудошлеп
Аноним 29/01/23 Вск 00:34:40 #223 №2591388 
>>2590338
>пилил этот фреймворк с нуля под ключ не в стол
Пилил не с нуля, конечно. Пришел, когда уже база была. Но добавлял какие-то новые фичи.
Спасибо за поддержку и советы.
Аноним 29/01/23 Вск 01:18:27 #224 №2591414 
>>2589970 есть вакансия на копрокубах. Для начала сойдет. Пиши телегу или почту ответом, напишу.
Аноним 29/01/23 Вск 01:44:21 #225 №2591430 
>>2591414
Сколько денег, что делать надо, какие технологии?
Если про деньги не хочешь тут отвечать, расскажи про остальное.
Аноним 29/01/23 Вск 01:54:15 #226 №2591433 
>>2591414
@ancap_kun
Аноним 29/01/23 Вск 01:55:24 #227 №2591434 
>>2589970
Никак.
Аноним 29/01/23 Вск 03:46:44 #228 №2591465 
>>2591464
Репорт.
Аноним 29/01/23 Вск 03:52:45 #229 №2591466 
Сап, анчоусы, только начал разбираться с ci и тут же вопрос, как я понял, при коммите в условный гитхаб срабатывает скрипт, который билдит твое приложение и запускает тесты, а как быть с датасорсами? Для этого делают отдельный тестовый профиль, в котором нет коннекшенов к базе или там есть какие-то инструменты, которые поднимут контейнер с чем угодно? Если есть то какие?
Аноним 29/01/23 Вск 04:14:18 #230 №2591474 
>>2591466
Юниты запускаются на всяких ин-мемори HSQLDB/H2
Автотесты подключаются к полноценной СУБД, аналогичной обычной работе приложения. Ну какие там могут быть инструменты? CI-агент запускает приложение, оно подключается к отдельному серверу с СУБД, и всё.
Аноним 29/01/23 Вск 04:18:51 #231 №2591477 
>>2591466
>там есть какие-то инструменты, которые поднимут контейнер с чем угодно? Если есть то какие?

testcontainers.org
Аноним 29/01/23 Вск 04:33:04 #232 №2591484 
>>2591474
>>ин-мемори HSQLDB/H2
в них синтаксис будет отличаться и под них нужны свои скрипты миграции, лучше использовать testcontainer
Аноним 29/01/23 Вск 05:33:23 #233 №2591488 
Этим утром я напишу второй спринг.
sage[mailto:sage] Аноним 29/01/23 Вск 05:42:12 #234 №2591490 
>>2591488
Я просто терминально ебанутый!!!!!!!!!!!!!!!!!!!!!!!!
Аноним 29/01/23 Вск 07:26:17 #235 №2591525 
>>2591488
уже шестой есть
Аноним 29/01/23 Вск 11:25:01 #236 №2591756 
>>2588019
К счастью вкатился в golang, на работе пишем сервисы на chi, никакой магии энтерпрайз фреймворков и вообще привкуса энтерпрайза, хорошо...
Аноним 29/01/23 Вск 11:28:21 #237 №2591759 
>>2589008
Маркет практически целиком на жабе написан, еще некоторые части клауда, толока, бизнес да и много где по мелочи.
Но в основном сейчас Go/C++/Python используют.
Аноним 29/01/23 Вск 13:29:53 #238 №2591893 
>>2585661 (OP)
Посоветуйте, пожалуйста, хорошую книгу, чтобы понять ООП и объектный дизайн.
Аноним 29/01/23 Вск 14:20:24 #239 №2592002 
EgorBugaenkoElegantnyeobekty.JavaEdition.jpeg
>>2591893
Аноним 29/01/23 Вск 14:37:15 #240 №2592063 
>>2592002
Егор, плез...
Аноним 29/01/23 Вск 16:20:50 #241 №2592211 
>>2591759
Любопытно, жаль в слив репозитория Яндекса это не попало.


>>2591893
Мне понравилась эта
https://www.amazon.com/Object-Oriented-Analysis-Design-Applications-3rd/dp/020189551X/
Плюс книги по шаблонам. На русском есть "Погружение в паттерны проектирования" Швец А. 2021 Страниц: 400
Аноним 29/01/23 Вск 17:20:13 #242 №2592287 
>>2592211
>Гради Буч
пон...
Аноним 29/01/23 Вск 17:46:25 #243 №2592349 
Сейчас будет, скорее всего, очень глупый вопрос, но всё же. Как кэшировать объекты на уровне приложения? Есть кэш 1 уровня у Хибернейта (хз, может и у всех, я пока чисто попсу ковыряю) - можно не закрывать сессию и иметь всё под рукой, есть какие-нибудь кэшинг-фреймворки, есть вариант навелосипедить что-то своё под конкретную специфику. Что выбрать? Что анон выбирает?
Аноним 29/01/23 Вск 17:48:25 #244 №2592351 
>>2592349
@Cacheable хватит?
Аноним 29/01/23 Вск 17:53:01 #245 №2592359 
.jpg
>>2592287
Что не так?
Аноним 29/01/23 Вск 17:54:45 #246 №2592361 
При разработке swing-приложения в Intellij idea его размер такой как надо. Но когда я делаю build и запускаю в папке jar-файл, размер окна и компонентов увеличивается многократно !
Почему так ? Теперь всё переделывать...
Аноним 29/01/23 Вск 17:56:58 #247 №2592364 
>>2592361
Идея не поддерживает Swing.
Аноним 29/01/23 Вск 18:08:22 #248 №2592399 
>>2592351
Хватит. Но что, только им пользуются? Не держат открытыми сессии, не велосипедят хэшмапы <String, CachedInstance>?
Аноним 29/01/23 Вск 18:19:38 #249 №2592416 
>>2592211
>жаль в слив репозитория Яндекса это не попало
Где-то уже есть подробный разбор этого говнокода?
Аноним 29/01/23 Вск 18:20:27 #250 №2592417 
>>2592399
Велосипедят конечно, но не от большого ума.
Аноним 29/01/23 Вск 18:21:35 #251 №2592420 
>>2592349
ehcache
Аноним 29/01/23 Вск 18:29:37 #252 №2592434 
Так а кафка нужна как вариант быстрой передачи данных в бд или просто уведомление между микросервисами о выполнении того или иного процесса?
Аноним 29/01/23 Вск 18:35:03 #253 №2592438 
>>2592434
Кафка уже научилась подключаться напрямую к постгресу?
Аноним 29/01/23 Вск 18:43:23 #254 №2592450 
>>2592434
шина данных с писателями/читателями и всевозможными настройками этого процесса
Аноним 29/01/23 Вск 18:58:43 #255 №2592479 
>>2592417
>>2592420
Хорошо, понял, спасибо. Но всё-таки интересует момент с использованием кэша сессии в Хибернейте. Я щас на работе имею дело с проектом, там вообще никакого кэширования нет, есть только некий Tapestry Hibernate SessionManager, из которого всё время берётся сессия, которая никогда не закрывается. Я так понимаю, она вместо кэша и используется.
Аноним 29/01/23 Вск 19:01:14 #256 №2592482 
>>2592479
это внутренний хибернейтовский в попытке снизить количество операций с бд.
Кеш обычно нужен когда например есть дорогие обращения к внешним сервисам, и ты кешируешь возвращаемое ими значение
Аноним 29/01/23 Вск 19:11:13 #257 №2592501 
>>2592482
Ну вот меня как раз и интересует: можно ли в приложении, которое активно обращается к БД, кэшировать через Хибернейт таким вот образом? Так ещё и искать удобнее.
Аноним 29/01/23 Вск 19:21:20 #258 №2592516 
>>2592501
нет смысла кешировать бд. Оно слишком быстрое (если правильное). Либо тебе нужна некая потокобезопасная мапа, куда ты срёшь из всех потоков
Аноним 29/01/23 Вск 19:27:39 #259 №2592521 
Что посоветуете изучить в дженкинсе джуну, над какими тасками стоит посидеть? Пока пишу простейшие одноклеточные джобы, но хотел бы разобраться как сделать так, чтобы приложение после успешного прохождения тестов собиралось и пушилось в докер реджистри, а потом каким-то образом оказывалось в кубернетисе, допустим с докером вроде изи, я поставил плагин, которое как я понял это сделает, но как это все направить в кластер с использованием чартов пока не разобрался, так что можете прояснить, ну или хотя б на вопрос ответьте
Аноним 29/01/23 Вск 19:29:44 #260 №2592523 
>>2592521
>джуну
Вкатышу
Быстрофикс
Аноним 29/01/23 Вск 19:33:23 #261 №2592532 
>>2592523
Окатышу.
Аноним 29/01/23 Вск 19:33:40 #262 №2592533 
>>2592521
ничего.
это тебе надо девопса изображать.
то есть, ты спрашиваешь штуку, которая зависит от особенностей деплоя в кубер. А с точки зрения Jenkins тут абсолютно нечего изучать. Ты как запускал команды через sh, так и будешь запускать всю жизнь.
Аноним 29/01/23 Вск 19:42:43 #263 №2592550 
>>2592521
Джуну надо знать о существовании дженкинса. Миддлу надо уметь нажимать на кнопку "Build Now". Есть ещё кнопка "Build with Parameters", но это уже уровень сеньора.
И я блять серьёзно. Ты разраб, а не девопс, к написанию пайплайнов тебя и на километр не подпустят.
Аноним 29/01/23 Вск 19:53:35 #264 №2592561 
>>2592533
>>2592550
Просто, почему я решил вообще начать изучать кубер, а теперь дженкинс, периодически видел тут от анонов посты о том, что разраб должен все равно что-то уметь показать в работе с этими вещами, у девопса много своих головняков по администрированию виртуалок изнутри, написанию каких-то скриптов и еще чего-то, чего я пока не знаю, тк не интересовался особо их профессией, или девопса может вообще не быть на проекте, будут говорить что-то про ю билд энд ю ран, да и наверное, с этими знаниями больше шансов пройти собес, чем без них, очень много на ждунов в требованиях пишут кубернетис же
Аноним 29/01/23 Вск 20:12:55 #265 №2592579 
>>2592561
> видел тут от анонов посты о том, что разраб должен все равно что-то уметь показать в работе с этими вещами
Ещё здесь были посты, что айти всё, и нет смысла вкатываться. Почему одним мимокрокодилам ты веришь на слово, а другим нет?
> у девопса много своих головняков по администрированию виртуалок изнутри
Для этого есть админ, который и делает всю ручную работу с заведением заявок, разовой настройкой серверов, мониторингом, сбросом забившихся кешей и прочим.
> девопса может вообще не быть на проекте
Даже в таких случаях роль девопса берёт на себя тот, кто хоть что-то в этом понимает, а не все подряд. Обычно это один из разрабов, которому приходится жертвовать кучу своего времени на решение проблем со свалившимися сборками и выдачей доступов.
> с этими знаниями больше шансов пройти собес, чем без них, очень много на ждунов в требованиях пишут кубернетис же
В требованиях это пишут, потому что разрабам приходится минимально в этом разбираться, чтобы локально развернуть сервер. Минимально - это значит знать пару-тройку команд и уметь гуглить, а не писать джобы и пушить образы в registry. Если на собесе один разраб говорит, что разбирается в девопсе, но хуёво решил задачу с алгоритмами, а другой ни черта не смыслит в девопсе, но задачу решил хорошо, возьмут скорее второго, чем первого.
Аноним 29/01/23 Вск 20:29:42 #266 №2592602 
>>2592579
>>один разраб говорит, что разбирается в девопсе, но хуёво решил задачу с алгоритмами, а другой ни черта не смыслит в девопсе, но задачу решил хорошо, возьмут
Того кто попросил меньше сотыг, ведь код они писать будут одинаково хуево.
Аноним 29/01/23 Вск 20:58:45 #267 №2592642 
>>2592602
Возьмут того, кто хорошо решил задачу, потому что он будет лучше писать код. Запрошенные сотыги роли не играют, потому что вкатыши часто просят намного меньше, чем установлена вилка, в итоге пришлют оффер ровно на столько, сколько стоит кандидат, ему остаётся лишь согласиться или отказаться.
Аноним 29/01/23 Вск 21:30:55 #268 №2592677 
>>2592642
>>хорошо решил задачу, потому что он будет лучше писать код
С чего ты это взял? Как решение алгосов проецируется на решение реальных задач? Или тебя не было в треде последние несколько дней и говнокод компании эталонных алгосодрочеров ты не видел?

>>сколько стоит кандидат
Вкатун умеющий кое-как писать код гораздо ценнее студента олимпиадника не знающего нихуя кроме синтаксиса языка (да и то очень ограниченно).
Первый может уже через месяц потихоньку пользу приносить и пилить простенькие фичи.
Второй будет просто начинать учить фреймворки и доучивать язык еще 3 месяца.

>>ровно на столько, сколько стоит кандидат
Оффер будет ровно на столько сколько он попросит, если это не выше определенной суммы. Готовы дать сотыгу, но попросил 30к - получит 30к.
Аноним 29/01/23 Вск 21:39:28 #269 №2592694 
>>2592677
>попросил 30к - получит 30к
Не, нихуя, на собственном примере знаю, когда устраивался на первую работу, просил сотку, а оффер дали на 130
Аноним 29/01/23 Вск 21:41:02 #270 №2592697 
Реально стать джава-господином вкатунишке без технической вышки? Или мой удел в бэкенде - дрочить петухоны и пхп?
Аноним 29/01/23 Вск 22:00:09 #271 №2592732 
>>2592697
Реально.
Аноним 29/01/23 Вск 23:26:28 #272 №2592826 
>>2591430

Я думал, что на мою пасту никто не откликнется, но раз такое дело, тогда контакт свой оставлю и лично расскажу, если кому интересно > [email protected]
Аноним 29/01/23 Вск 23:30:55 #273 №2592827 
>>2592826
А что тут рассказать не можешь? Мне твоя вакансия неинтересна, а что за проект с майнкрафтом - любопытно.
Аноним 29/01/23 Вск 23:49:22 #274 №2592847 
>>2592827
>>2591414
Блять, так кубы - это майнкрафт, а не kubernetes. Дно пробито.
Аноним 30/01/23 Пнд 00:06:44 #275 №2592870 
>>2592063
Моментальный подрыв тупоголового неосилившего ООП.
Аноним 30/01/23 Пнд 01:08:46 #276 №2592943 
ПОШЁЛ НАХУЙ, ЕГОР!
Аноним 30/01/23 Пнд 01:11:18 #277 №2592950 
>>2592943
Да не гори ты так.
Аноним 30/01/23 Пнд 02:26:15 #278 №2592967 
Kata Academy обучает наебывать работодателей?
Аноним 30/01/23 Пнд 04:19:12 #279 №2592985 
>>2592967
Сначала они наёбывают тебя.
Аноним 30/01/23 Пнд 05:04:06 #280 №2592988 
>>2592967
Дык я ж академий не кончал
Аноним 30/01/23 Пнд 06:18:28 #281 №2592999 
>>2592827
Не ЦА
Аноним 30/01/23 Пнд 06:37:28 #282 №2593004 
Расскажите как у вас в компании принято организовывать pom-ы, делите по секциям (тестирование, персистенс и т.д) или просто лепите подряд? Что в родительском поме?
Аноним 30/01/23 Пнд 06:47:17 #283 №2593006 
>>2591893
bump
Аноним 30/01/23 Пнд 08:11:12 #284 №2593024 
>>2592416
Я не следил за историей дальше раздачи.
Аноним 30/01/23 Пнд 08:12:09 #285 №2593025 
>>2593004
версии вверху, в пропертисах. Сами зависимости стараются делить по блокам, но в итоге всё смешивается
Аноним 30/01/23 Пнд 10:53:40 #286 №2593138 
>>2593004
ПООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООООХУЙ.

Мавен не градлопараша. Как ни набросай - всё понятно.
Аноним 30/01/23 Пнд 10:57:52 #287 №2593142 
>>2593004

В родительском поме - все плагин-биндинги, организованные по профайлам + dependencyManagement и pluginManagement. В дочерних помах - зависимости и только зависимости.

Активация у профайлов настраивается таким образом, чтобы профайл активировался по умолчанию ровно на тех подпроектах, где он нужен. Например, сборка докер образа активируется только в проектах с Dockerfile.
Аноним 30/01/23 Пнд 11:11:22 #288 №2593163 
>>2593142
>>2593004

А, и еще. Самый главный, можно сказать мастхэвный плагин: это maven-flatten-plugin. Он после билда вычищает из помника все что не зависимости, инлайнит все паренты и деливерит такой помник в реп, вместо оригинального. Это устраняет множество корнер-кейсов, в которые можно впороться в вышеописанной мной схеме
Аноним 30/01/23 Пнд 11:16:15 #289 №2593170 
Что должен делать РЭСТ эндпойнт вида
POST /resource/{id}
?

Создавать ресурс с заданным айди? Обновлять ресурс? Запускать какую-то операцию на ресурсе?
Аноним 30/01/23 Пнд 11:17:17 #290 №2593172 
>>2593142
>Активация у профайлов настраивается таким образом, чтобы профайл активировался по умолчанию ровно на тех подпроектах, где он нужен. Например, сборка докер образа активируется только в проектах с Dockerfile.
Дай пример. Мне по документации показалось что там толком ничего не настроить.
Аноним 30/01/23 Пнд 11:27:48 #291 №2593180 
>>2593170
Спроси у того кто его написал.
При создании id не указывается - его генерирует приложение/бд.
Аноним 30/01/23 Пнд 11:28:29 #292 №2593182 
>>2593170
всё что угодно. Скажи спасибо рест сектантам
Аноним 30/01/23 Пнд 11:43:16 #293 №2593190 
>>2593170
Ебать твою сестру id раз.
Аноним 30/01/23 Пнд 12:03:18 #294 №2593214 
>>2591893
bump
Аноним 30/01/23 Пнд 12:36:41 #295 №2593262 
activation.png
>>2593172
У каждого профайла есть секция активейшн, через которую можнро сказать, при каких условиях этот профайл должен запускаться. И ее можно по всякиому эксплуатировать если проявить фантазию и придрочиться. Например, можно настроить профайл на проекты с тестами, проверив на существование src/test/java. Или сделать профайл который запускается для всех проектов, проверив на существование pom.xml. Помимо файлов, профайлы можно активировать пропертями, или в зависимости от операционки.

Но есть нюансы. Например, активация activeByDefault - не то, чем оно кажется на первый взгляд: https://maven.apache.org/guides/introduction/introduction-to-profiles.html

>All profiles that are active by default are automatically deactivated when a profile in the POM is activated on the command line or through its activation config.
Аноним 30/01/23 Пнд 12:46:13 #296 №2593270 
Required type: capture of ?
Provided type: capture of ?

Это что за хуйня?
Аноним 30/01/23 Пнд 12:47:25 #297 №2593272 
>>2593270
Дженерики не сошлись.
Аноним 30/01/23 Пнд 14:52:20 #298 №2593389 
Почему на плюсах тырпрайз не пишут? В чем проблема написать идеальные отдебаженные и быстрые либы, с которыми было бы удобно и быстро работать?
Аноним 30/01/23 Пнд 14:54:02 #299 №2593391 
>>2593389
Попробуй.
Аноним 30/01/23 Пнд 15:02:30 #300 №2593401 
>>2593389

Плюсы слишком больно пиздят за ошибки. Джава в самом начале как раз и вывозила за счет трейдоффа - ты жертвуешь производительностью, получая взамен гарантии безопасности. В начале трейдофф был прям пиздецовый (мемы про хеллоу ворлд за 67 гигабайт - как раз с тех времен), но с введением JITа и современных GC трейдофф выровнялся. Ну и сролял тот факт, что в определенный момент железр стало стоить кратно меньше разработчиков.
Аноним 30/01/23 Пнд 15:03:08 #301 №2593404 
>>2593391
а что пробывать тут? берешь и пишешь. если команда красноглазиков есть вообще супер, взяли, сели и написали. кабаны просто тупые не согласятся свои легаси менять на не понятно что. а так в теории можно было бы рыночек за 1 день перезагрузить и жава больше не нужна нигде никому кек
Аноним 30/01/23 Пнд 15:05:32 #302 №2593410 
>>2593401
>Плюсы слишком больно пиздят за ошибки
>В чем проблема написать идеальные отдебаженные и быстрые либы, с которыми было бы удобно и быстро работать?
просто сесть, написать все четко, покрыть тестами каждый пук, архитектуру выстроить так, чтобы пользователям не пришлось даже думать о выделении памяти чему-либо. условно аналог спринга можно сделать, где под капотом будут все эти страшные вещи происходить, а ты только как макака вызывать статичные методы
Аноним 30/01/23 Пнд 15:07:56 #303 №2593411 
>>2593410
На плюсах сделать все вышеперечисленное тупо дороже чем на джаве, вот и все. Не забывай - время разработчика кратно дороже железа (за редкими исключениями в лице эмбеддед, где по железу иной раз тупо альтернативы нет).
Аноним 30/01/23 Пнд 15:09:45 #304 №2593413 
>>2593411
какая разница будешь ты вызывать метод контроллера на жава или на плюсах. я же сказал, сделать архитектуру библиотеки, похожую на спринг, только со своими нюансами, но не ведущими к увеличению кода.
Аноним 30/01/23 Пнд 15:12:56 #305 №2593416 
>>2585661 (OP)
Мне вот интересно если я скачал Идею с торрента, активировал по инструкции, она заработала то могут ли как-то узнать что я ее пизднул например когда через нее будут коммиты в профиль гитхаба? Короче сулит ли это проблемами в будущем?

Как себя представить в линкедине и гитхабе чтоб это было правильно, ну в смысл мне какой-то никнейм себе придумывать рядом с моим именем и фамилией?

Моя основная почта должна быть с моей фамилией или же с никнеймом?

Очень хочу все сделать правильно, чтоб это не сыграло против меня когда начну рассылать резюме. Умудренные опытом аноны, помогите молодому и неопытному советом.
Аноним 30/01/23 Пнд 15:14:15 #306 №2593417 
>>2593413
А поддерживать эту библиотеку, фичи пилить, интеграции новые, аннотации - по твоему забесплатно будут?

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

Или ты что думаешь - коли есть спринг, человеки ограничиваются лишь шлепаньем аннотаций? Есть стопятцот способов и спринг сломать, так то.
Аноним 30/01/23 Пнд 15:24:47 #307 №2593426 
жаву джуну надо знать прям всю? или основные моменты? коллекции, лямбды, потоки? если открыть доку к жаве, там дохулион классов всяких, это кто вообще все знать может даже в теории?
Аноним 30/01/23 Пнд 15:27:25 #308 №2593429 
>>2593417
>А поддерживать эту библиотеку, фичи пилить, интеграции новые, аннотации - по твоему забесплатно будут?
можно изначально сделать собственную либу для разработки основного фреймворка. лезть в сами кишки придется только, если понадобится добавить что-то абсолютно новое
Аноним 30/01/23 Пнд 15:28:43 #309 №2593430 
>>2593429
>можно изначально сделать собственную либу для разработки основного фреймворка.

Ну вот считай - джавовый хотспот и есть такая либа. Он аккурат на плюсах и написан.
Аноним 30/01/23 Пнд 15:39:47 #310 №2593436 
>>2593426
Никто этого и не знает. Есть основные общеиспользуемые классы. Многопоточку даже далеко не все знают, но вот коллекции надо знать короче, не только как с ними работать, но и как они устроены под капотом. Лямды глупо не знать, потому что что там знать вообще?
Аноним 30/01/23 Пнд 15:47:09 #311 №2593443 
>>2593436
>Лямды глупо не знать, потому что что там знать вообще

Метафактори, бутстрап методы, invokedynamic :)
Аноним 30/01/23 Пнд 15:50:24 #312 №2593448 
Можно ли выпросить себе оффер на две с небольшим сотыги будучи джава мидлом? Или это будет скорее исключение и столько только помидоры получают?
Аноним 30/01/23 Пнд 15:52:30 #313 №2593455 
>>2593436
>но и как они устроены под капотом
зачем? Они эти реализации ещё и меняют постоянно
Аноним 30/01/23 Пнд 16:17:13 #314 №2593488 
>>2593455
Нет, не меняют.

LinkedList был и остается связным списком, ArrayList был и остается списком на основе массивов, HashMap был и остается хэш-бэйзд мапой. Они могут фиксить там баги и тюнить оптимизацию, но суть их внутреннего устройства была и остается прежней.
Аноним 30/01/23 Пнд 17:37:06 #315 №2593566 
JDBC API, Spring Data JBDC, Hibernate, Spring Data JPA, JdbcTemplate
блядь, что учить из этого? нахуя так много одного и того же?
Аноним 30/01/23 Пнд 17:46:10 #316 №2593578 
>>2593448
Можно. Но скорее всего хахуй пошлют
Аноним 30/01/23 Пнд 17:52:34 #317 №2593592 
На каком уровне происходит хэширование пароля? На уровне сервиса, который работает с репозиторием перед тем как сохранить юзера? Прост как мне кажется, это не безопасно, а другие способы в голову не приходят, разве что в фильтре вклиниваться
Аноним 30/01/23 Пнд 18:38:33 #318 №2593631 
>>2593566
Это легаси, чел... Если тебе на собеседовании говорят, что они используют хубирнейт, то это легаси без каких-либо перспектив
Аноним 30/01/23 Пнд 18:39:48 #319 №2593634 
>>2593592
Фильтр по определению при прочих равных не может быть безопасней сервисного слоя: оба они - часть одного процесса.

Если юзаешь spring security, то следуй докам: там есть такое понятие как PasswordEncoder, с помощью него и шифруется пароль при добавлении юзера.

Если нет, то все равно как сделаешь.
Аноним 30/01/23 Пнд 18:47:44 #320 №2593647 
>>2593566
Нахуя ныть об одном и том же? Не интересно учиться, вьеби пива. Хули тебе еще посоветовать.
Аноним 30/01/23 Пнд 18:59:42 #321 №2593662 
>>2593634
Ну я так и делаю сейчас, инжекчу пассворд энкодер в сервис и делаю энкод пароля перед сохранением. Просто, что мешает при таком исполнении какому-нибудь разрабу написать какой-нибудь аспект, который будет дтошку с незахэшированным паролем отправлять ему на почту?
Аноним 30/01/23 Пнд 19:05:04 #322 №2593668 
>>2593662
Ничто не мешает. А что мешает разработчику написать фильтр поверх твоего фильтра, и соскрябать пароль до того как ты его заэнкодишь? Что мешает ему впринципе выкинуть твой фильтр?

Ты этому разрабу ничего особо не противопоставишь, кроме пиздюлей на кодревью. Ну может archunitом еще можно запретить менять сорцы определенным образом. Или выделить все сисурити в отдельный модуль, доступ к сорцам которого не давать всем подряд, но это тоже скорее организационные решения проблемы, нежели технические.
Аноним 30/01/23 Пнд 19:17:36 #323 №2593677 
>>2593566
Учишь вот это : jdbc(учить не так и много, глубоко не надо, можно и вовсе пропустить) -> hibernate(придется поебаться) -> spring data jpa(тут объем тоже небольшой). Каждое последующее - обертка над предыдущим.
Spring Data JBDC - не нужен от слова вообще.
jdbcTemplate - встречается, но не так чтобы много давал поверх голого jdbc.
Еще есть jooq и mybatis.

На собесах надо будет отвечать про устройство хибера, а в тестовых писать на spring data jpa.
Аноним 30/01/23 Пнд 19:18:56 #324 №2593680 
>>2593668
Ну про фильтр я скорее вкладывал то, что пароль так меньше времени будет находиться незахэшированныи в памяти, тк фильтры идут раньше контроллеров и сервисов. Так же я читал, что пароли полагается хранить в массиве чаров, чтобы потом его можно было пофасту заклирить, в отличие от стринги, до которой гк хуй знает когда доберется. А это означает, что к памяти как-то можно получить доступ и оттуда пароль как-то считать, получается фильтр все-таки чуть лучше будет.
Ну или это все хуйня и похуй, где хранить
Аноним 30/01/23 Пнд 19:27:06 #325 №2593693 
>>2593680

Я хз насчет того хуйня это или нет, но на твоем месте я б забил и сделал по гайдам, или как получится.
Аноним 30/01/23 Пнд 19:51:17 #326 №2593717 
>>2593677
>hibernate(придется поебаться)
Еще бы, ведь нормальных книг нет, а документация говна.

>spring data jpa(тут объем тоже небольшой)
Минимум книга на 600 страниц, которую нужно будет проработать в течении полугода.
Аноним 30/01/23 Пнд 19:51:26 #327 №2593718 
>>2593647
о чем ныть шиз я не помню когда тут ныл последний раз
Аноним 30/01/23 Пнд 19:52:33 #328 №2593719 
>>2593717
книжный червь, ты? сколько книжек прочитал? какая зп?
Аноним 30/01/23 Пнд 19:53:42 #329 №2593721 
>>2593631
>легаси
>хубернейт
значения знаешь?
Аноним 30/01/23 Пнд 20:08:51 #330 №2593747 
представим вам похуй на зарплату и карьерный рост
вы знаете программирование (язык не важен)
вам нужна работа, но вас не берут никуда
но вам предлагают поработать преподавателем программирования в онлайн школе для детей
вы бы согласились?

алсо, есть у кого опыт работы преподавателем в этих школах? какие плюсы/минусы? сильно напрягает сидеть в конфе с микро челами, да еще и с вебкой?
Аноним 30/01/23 Пнд 20:10:37 #331 №2593751 
>>2593717
Книга по хиберу есть. Ей лет 10, но устраела она совсем немного. Причем то что там есть, это оверкил для новичка, хватит десяток статей про основные апихи жизненный цикл энтити, методы энтитиМенеджера и кеши. jpql, лейзи инициализация, entity graph. Поебаться придется скорее на практике.
Спринг дату учить почти не надо, тупо открываешь хеловорд на баелдунге и пользуешься. Ну и доку открыть можно. Там дока - 50 страниц из которой половина не нужна.
Аноним 30/01/23 Пнд 20:14:19 #332 №2593757 
>>2593747
Не согласился бы. А если с дуру согласился, то выгорел бы.
На меня джуно-стажера скинули и когда он тупит - меня это бесит неимоверно. Хотя тупит не то чтобы прям очень.
Просто умение преподавать это отдельный скилл, для которого нужны задатки и который надо качать. Задатков у меня нет, а тратить время на прокачку мне не хочется.
Аноним 30/01/23 Пнд 20:20:34 #333 №2593765 
>>2593757
а как у тебя с боязнью аудитории? как по мне, это самый главный камень преткновения... я например понимаю, что у меня нет педагогического, и в роли преподавателя я ни разу не был, но я бы согласился попробовать, если бы не знал, что я туплю во время любых выступлений, меян накрывает ебейшее волнение, из-за этого в голове полный крах. как вспомню как диплом защищал, это вообще пиздец тушите свет. казалось бы, тут дети и с ними проще, но нихуя...
Аноним 30/01/23 Пнд 20:25:57 #334 №2593772 
>>2593765
Ну бывают небольшие коммуникативные проблемы. Если надо что-то коллегам рассказать, моя и так неидеальная речь становится еще немного хуже. Начинаю заикаться и запинаться. Замечания никто не делал, но я по записи и сам слышу.
Но чтобы боязнь и прям жесткое волнение - нет. Мне просто трудно выступать и от этого неприятно это делать. Думаю это все опять же прокачивается. Но я бы не очень хотел на это время тратить.
Аноним 30/01/23 Пнд 20:53:06 #335 №2593784 
>>2593747
>>школе для детей
Для этого мало знать программирование, надо еще и базовыми навыками дрессировки животных владеть.
Аноним 30/01/23 Пнд 20:54:34 #336 №2593785 
На гитхаб проект вместе с логированием заливать ? Или логирование используется исключительно во время разработки для дебага, а затем удаляется ? Подскажите пожалуйста как правильно.
Аноним 30/01/23 Пнд 20:57:10 #337 №2593788 
>>2593719
лол
Аноним 30/01/23 Пнд 21:01:39 #338 №2593790 
>>2593785
>>Или логирование используется исключительно во время разработки для дебага, а затем удаляется ?
При разработке для дебага ты можешь и в консольку пукать, а логи нужны на проде, когда ты не можешь просто подключится к нужному сервису и пишешь логи, чтоб понять, что пошло не так.

>>вместе с логированием заливать ?
Если ты про конфиг логбэка - то да, с ним.
Аноним 30/01/23 Пнд 21:10:59 #339 №2593797 
>>2593790
Обычный калькулятор, логирование в консоль идёт. Конфиг отсутствует.
Аноним 30/01/23 Пнд 21:29:24 #340 №2593820 
У спринг бута документация - 2000 страниц, которые нужно прорабатывать 2 года.
Вопрос.
Как создать проект?
Аноним 30/01/23 Пнд 21:30:44 #341 №2593822 
Сейчас реально попасть на проект с легаси из 1998 - 2003? Есть тут такие? Почувствовали ли в этот момент некую романтику тех времен? Было чувство прикосновения к истории?
Аноним 30/01/23 Пнд 21:31:14 #342 №2593823 
>>2593820
Ку ку ?
Аноним 30/01/23 Пнд 21:31:48 #343 №2593824 
>>2593790
То что в консоль пукает, оставлять иди удалить ?
Аноним 30/01/23 Пнд 21:43:03 #344 №2593842 
>>2593822
Ну а чем легаси 25-летнее будет отличаться от 10-летнего?
Если там версия языка 25-летняя или библиотек, значит это или какой-то совсем кал, что не смогли найти человекочасы на миграцию или изменения вносятся раз в несколько лет.
Аноним 30/01/23 Пнд 21:43:15 #345 №2593843 
>>2593823
Это шарпоблядь местная срет.
Аноним 30/01/23 Пнд 21:46:03 #346 №2593847 
>>2593797
Если ты там через system.out выводишь - то не надо такого в коде.
Аноним 30/01/23 Пнд 21:53:39 #347 №2593862 
>>2593820
800 страниц, из которых треть это перечисление бесконечных пропертей. Зачем ты врешь?
Аноним 30/01/23 Пнд 21:54:05 #348 №2593864 
>>2593842
Тем, что тогда про код стайл мало кто знал. Либы олдовые с приколами своими, о которых ты даже подумать не мог. Сидишь и представляешь, как кто-то сидел это 20 лет назад писал. Булка хлеба 7 рублей стоила, сникерс 10 рублей. Программирование не было мейнстримом.
Аноним 30/01/23 Пнд 21:57:12 #349 №2593866 
Нужно ли для собеседований создавать отдельный гитхаб и заливать туда пару пет-проектов ? Или давать ссылку на основной ?
Аноним 30/01/23 Пнд 22:00:31 #350 №2593870 
>>2593864
Программирование и 10 лет назад не было таким уж мейнстримом.
Аноним 30/01/23 Пнд 22:04:11 #351 №2593871 
>>2593870
10 лет назад уже каждая юристо-блядь знала, что надо в ойти вкатываца за баблом.
Аноним 30/01/23 Пнд 22:16:20 #352 №2593875 
>>2593871
Нет, я 10 лет назад закончил юридический и не было хайпа.
Мои одноклассники, закончившие мухгу на кодеров больше года не могли найти работу. Устраивались тестировщиками, в техподдержку, аналитиками, чтобы им через годик дали перебраться в кодеры.
Двое знакомых пошли на завод. Один дико выебывался, когда через год дошел до 2.5 мрот, когда все остальные получали полтора.
Хайп лет 7 назад начался, а вот прямо нормально лет 5 назад. Тогда очень многие знакомые юристы, экономисты, филологи и журналисты стали вкатываться один за другим.
Аноним 30/01/23 Пнд 23:12:02 #353 №2593900 
>>2593875
>Тогда очень многие знакомые юристы, экономисты, филологи и >журналисты стали вкатываться один за другим за баблом
Звучит отвратительно ...
Аноним 30/01/23 Пнд 23:13:28 #354 №2593902 
>>2593900
и жутко ._. Реально вот...
Аноним 30/01/23 Пнд 23:30:12 #355 №2593918 
>>2593822
Только смежники, там сидят деды предпенсионного возраста, вкатившиеся ещё в те времена, новичков не берут. Романтики на самом деле никакой, один говнокод, который и не развивают даже, а просто поддерживают, чтобы продолжал работать. Хотя та, был одно время восторг от забытых технологий предков.
У самих легаси 2006 года, получилось как ответвление более древней системы, написанной в 90-х. Там и от джавы были только обёртки над веб-сервисами с RPC, вся логика была на PL/SQL, никакой веб-разработки, одни десктопные клиенты на плюсах, делфи и вижуалбейсике. Сейчас уже почти всё переписали на джаву, но с древнего десктопного клиента так и не слезли.
Аноним 31/01/23 Втр 01:58:43 #356 №2594031 
Какой дебил из жидбрейнсов придумал не делать пустую строку между параметрами и зависимостями в генерируемом pom.xml при создании проекта?
Аноним 31/01/23 Втр 02:01:28 #357 №2594033 
>>2593416
1. Не должно, но лучше просто активируй триалки.
2. Как хочешь.
3. Как хочешь.
4. Это заметно, этап отбора через тухлодырую хр не пройдёшь.
Аноним 31/01/23 Втр 02:05:29 #358 №2594034 
.png
>>2594031
Я.
Аноним 31/01/23 Втр 02:10:16 #359 №2594036 
>>2594034
К чему ты вообще высрал это?
Аноним 31/01/23 Втр 02:10:39 #360 №2594037 
>>2594031
Нашел на что порваться. Лишний раз энтер жмакнуть не судьба? Эта ссаная строчка - самое малое из говнищ идейки. У них до сих пор переименование и удаление модулей в проекте не работает нихуя, а ты на какую то строчку бомбишь.
Аноним 31/01/23 Втр 02:17:43 #361 №2594039 
Архитекторы,поясните как лучше хранить информацию о сотрудниках:сделать одну таблицу и в ней дохуилиард полей или разбить на документы. Отдельно таблица с паспортом, отдельно с военником и тд. Второй вариант кажется красивее,но тут возникает вопрос как принимать данные по хттп. Сделать фасад,в который собирать все данные и раскидывать по сервисам сохранения или забить хуй и заставить пользователя заполнить все эти документы и вручную передовать айдишники при создании записи о сотруднике?
Аноним 31/01/23 Втр 02:35:09 #362 №2594041 
>>2594039
> Сделать фасад,в который собирать все данные и раскидывать по сервисам сохранения
Ну конечно. Принимаешь одну родительскую DTO-ху с инфой о юзере и вложенными DTO-хами с документами, на уровне сервисов/DAO просто распихиваешь всё по таблицам.
> заставить пользователя заполнить все эти документы и вручную передовать айдишники при создании записи о сотруднике?
Сам потом пожалеешь об этом. Это бесконтрольный нетранзакционный процесс, клиенту надо будет слать несколько запросов с риском, что что-то на полпути пойдёт не так, и надо будет всё откатывать вручную или смириться с тем, что в БД будет копиться мусор. Да и очень сложно уследить за хитрыми пользователями, которые подставят чужие ID и привяжут документы другим пользователям.
Аноним 31/01/23 Втр 03:33:19 #363 №2594049 
>>2594041
Понял спасибо,были сомнения не считается ли говнокодом хуячить одну мега дтошку и потом разбирать на сущности
Аноним 31/01/23 Втр 08:00:31 #364 №2594101 
Установил плагин для идеи, который требовал перезапуска. Перезапустил. Теперь при запуске выдаёт критическую ошибку
Internal error. Please refer to https://jb.gg/ide/critical-startup-errors

com.intellij.diagnostic.PluginException: Fatal error initializing '
com.github.kennedyoliveira.ultimatepastebin.component.UltimatePasteBin
' [Plugin: com.github.kennedyoliveira.ultimatepastebin]

Чё делать в таком случае? Я даже удалить плагин не могу.
Аноним 31/01/23 Втр 11:44:02 #365 №2594202 
>>2594101
Сносить идею, накатывать новую.
Аноним 31/01/23 Втр 13:34:07 #366 №2594319 
Три года работаю с Java в европе. Вроде все норм, чиловайя работа, сижу на двачах, слушаю подды, хуй пинаю итд все довольны моей работай. Но как же скучно. Сейм у когото? Хочется в фронт-энд ворваться чтобы хоть видеть что я програмигую
Аноним 31/01/23 Втр 14:11:46 #367 №2594363 
package lessons4;

class Student {

int ticket;
String firstname;
String lastname ;
int studing;
int math;
int economic;
int lang ;
String course ;






Student (int t1 , String firstname1 , String lastname1 , int studing1 , int math1 , int eco1 , int lang1, String course1 ) {

int ticket = t1 ;
String firstname = firstname1 ;
String lastname = lastname1 ;
int studing = studing1 ;
int math = math1 ;
int economic = eco1 ;
int lang = lang1 ;
String course = course1;
}



Student (int t2 , String firstname2 , String lastname2 ,String course2 ) {
this (t2 , firstname2 , lastname2 , 0, 0 , 0, 0, course2 ) ;




}
}

public class StudentTest {

public static void main(String[] args ) {




Student student1 = new Student (1 , "petr" , "iriiri" , 45 , 5, 5 , 8, "hhjL" );
Student student2 = new Student (2 , "ivan", "kokokoko" , 0, 0, 0, 0 , "literatura") ;


System.out.println(student2.firstname) ;



}
}



Почему компилятор вдаёт null ? когда должен выдавать ivan.

компилятор также не выдаёт никакой ошибки ю нихуя не понятно
Аноним 31/01/23 Втр 14:13:09 #368 №2594365 
>>2594319
Вообще не сейм. Вкатился в джаву, потому что не хочу на фронт.
Правда не три года, а полтора.
Хотел петик написать, чтобы потрогать кое-какие технологии на джаве. Но потом понял, что нормальному пету нужен фронт, а я пиздец как его не хочу писать.

>в европе
Правда, что в европе джава это не второй язык на беке, после пхп, как в рф? Тут кто-то приносил, что джаву и шарпы и нода и питон обгоняют.
Аноним 31/01/23 Втр 14:39:04 #369 №2594382 
>>2591893
bump
Аноним 31/01/23 Втр 14:42:45 #370 №2594387 
manga guide.png
>>2594319
Разве сложно ворваться во фронт, имея навыки Java?
Аноним 31/01/23 Втр 15:06:14 #371 №2594402 
>>2594363
У преподавателя своего спрашивай, хули к нам свое говно принес?
Аноним 31/01/23 Втр 15:16:13 #372 №2594411 
>>2594365
>нормальному пету нужен фронт
Кафка, эластик серч и идея ржут над вкатуноидом
Аноним 31/01/23 Втр 15:33:01 #373 №2594418 
>>2594387
Можно только вкатиться яйцами в твою мамашу.
Аноним 31/01/23 Втр 15:46:49 #374 №2594433 
Блядь, ПШП тред мёртв по этому спрошу у вас.
Как организовать лучше ветки в учёбном репозитории гита?
У меня два источника задачек(курсы/книги) которые я решаю и хочу закидывать в две разные папки в один реп.. Все просто скидывать в мейн? Или для каждой папки создать свою ветку, а потом, когда все задачки решу, слить в мейн? Как правильнее или лучше не заморачиваться?
Аноним 31/01/23 Втр 15:50:59 #375 №2594435 
vizit.png
>>2594418
катись нахуй ,сиротка
Аноним 31/01/23 Втр 16:15:30 #376 №2594469 
>>2594435
К чему твой пикрил, долбоеб?
Аноним 31/01/23 Втр 16:18:14 #377 №2594477 
>>2594402
>>2594402

System.out.println("забыл тебя хуесоса спросить , мать твоя шлюха а ты пидарас хуесос членодевка насадка для хуя пидарас ебал твою кошку " ) ;
Аноним 31/01/23 Втр 16:37:32 #378 №2594525 
>>2594433
мастер - то что сейчас на БОЕВОМ сервере
девелоп - главная ветка разработки
release/1.0 - релизы
feature/..
bugfix/... - ветки по таскам
Аноним 31/01/23 Втр 16:37:38 #379 №2594526 
>>2594411
Так я и хотел именно что-то такое и сделать. На с 3-4 сервиса, с кафкой, дискавери сервисом, апи гейтвеем, секурити провайдером, метриками в прометеусе, логами в эластике, трейсами в зипкине и распределенными кешами в редисе, потом кубер подрубить. Но с фронтом на сваггере это уныло очень. Нужно хотя бы пару табличек, три кнопочки и формочка. И с этого надо начинать.
Наверно начну и без фронта, как засяду за книжку по спринг секурити.
Аноним 31/01/23 Втр 16:37:58 #380 №2594527 
>>2594411
Так я и хотел именно что-то такое и сделать. На с 3-4 сервиса, с кафкой, дискавери сервисом, апи гейтвеем, секурити провайдером, метриками в прометеусе, логами в эластике, трейсами в зипкине и распределенными кешами в редисе, потом кубер подрубить. Но с фронтом на сваггере это уныло очень. Нужно хотя бы пару табличек, три кнопочки и формочка. И с этого надо начинать.
Наверно начну и без фронта, как засяду за книжку по спринг секурити.
Аноним 31/01/23 Втр 16:38:31 #381 №2594528 
.jpg
>>2594477
>>2594469
Аноним 31/01/23 Втр 16:41:52 #382 №2594537 
>>2594525
Понятно. Значит непринципиально т-к. решённую задачу можно как "боевую". Но чисто ради посмотреть как работает/попрактиковаться, можно считать, что решённой задачей считается прохождение всей книги.
Думал мб там с коммитами какая путаница
Аноним 31/01/23 Втр 17:38:50 #383 №2594632 
>>2594433
Мастер - прод ветка. Там рабочий и протестированный код.
Дев - ветка разработки там код тоже рабочий, но не протестированный и возможны баги.
Некоторые шизы вроде этого >>2594525 угорают по гитфлоу, остальные просто делают ветку от дева на каждую фичу и вливают ее в дев.

На учебном можешь оставить мастер, делать отдельные ветки на фичу и мержить их в мастер. Тогда и CI себе настроишь минимальный, и ебаться с ветками не придется.
Аноним 31/01/23 Втр 17:44:40 #384 №2594647 
>>2594363
>Student (int t1 , String firstname1 , String lastname1 , int studing1 , int math1 , int eco1 , int lang1, String course1 ) {
>
>int ticket = t1 ;
>String firstname = firstname1 ;
>String lastname = lastname1 ;
>int studing = studing1 ;
>int math = math1 ;
>int economic = eco1 ;
>int lang = lang1 ;
>String course = course1;
>}


Потому что ты в конструкторе наобьявлял бессмысленных локальных переменных, а в аттрибуты класса нихуя не присвоил. Переписывай.
Аноним 31/01/23 Втр 19:00:38 #385 №2594731 
Обязательно ли необходимо модульное и интеграционное тестирование к своему пет проекту?
Аноним 31/01/23 Втр 19:06:01 #386 №2594738 
>>2594731
В пет-проекте ничего не является обязательным.
Аноним 31/01/23 Втр 21:47:39 #387 №2594861 
>>2594731

Обязательно. Иначе не научишься.
Аноним 31/01/23 Втр 22:00:50 #388 №2594884 
В пет-проекте обязательно юзать asp.net. Иначе не научишься.
Аноним 31/01/23 Втр 22:36:16 #389 №2594934 
>>2594861
Я пару раз в предыдущих проектах написал и забил, в новых петах скипаю написание этих тестов унылых, пиздец можно со скуки сдохнуть пока этим занимаешься. На каждый метод по несколько сценариев, умножить это на количество классов, потом еще апишку протестить, базу и это минимум, пиздец короче.
Аноним 01/02/23 Срд 01:55:26 #390 №2595094 
Что спрашивают на собесе у мидлов по секьюрити?
Аноним 01/02/23 Срд 02:04:32 #391 №2595095 
>>2594934
Если ты для себя все уже решил, зачем спрашиваешь?
Аноним 01/02/23 Срд 02:16:33 #392 №2595096 
>>2595095
Я другой анон
Аноним 01/02/23 Срд 05:40:02 #393 №2595117 
КАКОЙ НАХУЙ 1000$ ЗА ИДЕЮ ВЫ ЧЁ ЁБНУТЫЙ?????????????
Аноним 01/02/23 Срд 06:03:53 #394 №2595125 
Что делает, если мавен очень долго инициализируется? Я нажимаю install, и проходит 9 секунд перед тем, как мавен тупо начнёт собирать, и эти 9 секунд тупо консольная строка висит в идее. У меня проект маленький, и эти 9 секунд это много, тестить неудобно.
Аноним 01/02/23 Срд 09:08:02 #395 №2595187 
>>2594934
Для пета который будешь демонстрировать они нужны, хотя бы для виду. Чтоб показать что хуе-мое чистый код, идеальная архитектура.

На реальном проекте то конечно похуй на них - только если заставляют писать. Да и то я ебал все кейсы покрывать - 100% покрытие есть и ладно, дальше пускай тестировщики ебутся и все проверяют.
Аноним 01/02/23 Срд 09:09:11 #396 №2595188 
idfead.JPG
>>2595117
Где ты там 1000$ увидел?
Аноним 01/02/23 Срд 09:27:20 #397 №2595197 
>>2595117
С таким отношением только Эклипс!
Аноним 01/02/23 Срд 12:18:05 #398 №2595307 
>>2595188
Мне 944 доллара показывало с НДС.
Аноним 01/02/23 Срд 12:57:01 #399 №2595337 
Аноны, какой стек нужен чтобы можно было идти на работку? Понятно что везде разные требования, но минималка должна ж быть какая то?

Какие у меня шансы?

Java Core,
PostgreSQL,
HIbernate
Spring ( MVC, Boot ) - Security в процессе, REST еще не начал.

Что еще надо обязательно выдрочить, чтоб на собес идти?
Аноним 01/02/23 Срд 13:15:33 #400 №2595358 
>>2595337
Java 8-17 (Collections, Stream API, Concurrent)
Maven/Gradle
JUnit, Mockito
Git
SQL
JDBC
POSTGRES
JDBC Template
Lombok
Hibernate
DB Migration (Liquibase, Flyway)
Spring Framework (Core, MVC, Boot, Data, Security (oAuth2), Test, Validation, AOP)
OpenAPI (API First)
Docker (Testcontainers)
K8ts
MB (Kafka)

И это я только технологии перечислил, еще надо знать паттерны и алгоритмы (хотя бы на базовом уровне).
Аноним 01/02/23 Срд 13:22:41 #401 №2595367 
>>2595358
Еще в обязательных забыл Jackson

А в найс ту хэв добавил Jooq и MapStruct

если че, дополняйте список аноны, может что-то забыл вписать
Аноним 01/02/23 Срд 13:30:22 #402 №2595378 
Талмуд на тыщу страниц про Lombok.
Аноним 01/02/23 Срд 13:34:32 #403 №2595382 
>>2595378
Ну меня как-то спрашивали про то, как он работает под капотом и некоторые редкоиспользуемые аннотации

Еще один раз спросили как его тестировать, лол
Аноним 01/02/23 Срд 13:57:37 #404 №2595430 
>>2595382
Устройство сетей и монга
Аноним 01/02/23 Срд 14:34:28 #405 №2595507 
>>2595367
Ну его можно и не выделять, это основная библиотека с которой работаешь при работе с Spring MVC.

Ну и по моему для сваггера скорее не api-first, а springdoc-openapi. api-first это типо круто и хороший тон, но с помощью аннотаций к готовому контроллеру сваггер прикручивают чаще.
Ну и кубер нужен не везде.
Аноним 01/02/23 Срд 14:45:11 #406 №2595538 
Как получить юникс время сегодняшнего дня в условные 5 часов?
Аноним 01/02/23 Срд 14:50:12 #407 №2595548 
>>2595538
Чат гпт ответил.

Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
calendar.set(Calendar.HOUR_OF_DAY, 5);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
long unixTime = calendar.getTimeInMillis() / 1000;
System.out.println("Unix time of today at 5 o'clock: " + unixTime);

Пиздец, я же с этой хуйнёй совсем думать разучусь.
Аноним 01/02/23 Срд 15:04:58 #408 №2595574 
>с помощью аннотаций к готовому контроллеру сваггер прикручивают чаще
Не спорю, но я сам сталкивался с тем, что меня спрашивали мол делал ли ты такую штуку и в чем преимущества такого подхода

>кубер нужен не везде
Ну и не требуется знать его на уровне девопса и уметь по памяти написать любой манифест, я думаю достаточно посмотреть курс от адвита на ютубе и задеплоить свой пет в кубер хотя бы локально.
Хотя для меня интереснее было в клауде, у мэила вроде неплохой клауд, только там регистрация 500р, у яндекса вообще интерфейс не понравился и гайды хуевые хуй знает для кого делались, но там регистрация бесплатная и он в целом дешевле.
Аноним 01/02/23 Срд 15:07:29 #409 №2595579 
>>2595507
>>2595574
Аноним 01/02/23 Срд 15:16:32 #410 №2595598 
>>2595378
Зачем он вообще нужен? Он только тормозит и баги всякие из-за него. Неужели так сложно сгенерировать геттеры и сеттеры!?
Аноним 01/02/23 Срд 15:49:41 #411 №2595641 
Я считаю, что к списку >>2595358 нечего добавить, скорее надо убавить немного. Разве что по диаганали почитать про монгу, кликхаус и редис, чтобы говорить в чем отличие nosql баз.

>>2595574
Ну кубер я бы из обязательного убрал, на совсем последнем месте поставил в твоем списке. И если нужны хотя бы поверхностные знания кубера, значит нужно еще понимание вообще микросервисной архитектуры и ее паттерны(service discovery, circuit breaker, распределенные транзации) - ну и пользоваться всякими штуками - например в api-gateway эндпоинты знать как и зачем прокидывать.

Spring Security может или не быть(вместо него какой-нибудь keycloak) или он есть, но к нему новичка не допустят. А если на тестовом будет авторизация, то хватит и http basic.

Concurrent в жава-коре не мастхевная тема, много где не спрашивают. Мастхев к коллекциям и стримам это иерархия исключений.

JDBC Template это тонкая обертка над jdbc, я бы не стал отдельно выделять.
Аноним 01/02/23 Срд 16:25:51 #412 №2595685 
>>2595598
Ломбок дает тот сахар, который не хотят дать разработчики языка. Как видишь, раз ломбок так популярен, значит спрос на этот сахар имеется.
Аноним 01/02/23 Срд 16:27:18 #413 №2595690 
>вместо него какой-нибудь keycloak
Так для того, чтоб понять как там все работает, надо бы сначала с ауфом в спринге посидеть и разобраться, настроить не дефолтный аусентикейшн провайдер, вк например, там ебли достаточно будет, чтоб начать в этом немного шарить. Я кейклок тоже вертел, но вот именно его можно опустить, он реально ненужон вкатышу. Ну и жвт простейший настроить будет не лишним перед всем вышеперечисленным для хоть какого-то понимания основных принципов.

На счет кубера не согласен, на поверхностном уровне лучше знать, как и то, что ты написал далее, давно уже мода на микросервисы, не стоит отсеивать немалую часть проектов, потому что лень почитать книгу по ним и покрутить кубер месяц максимум.
Аноним 01/02/23 Срд 16:27:59 #414 №2595693 
>>2595641
>>2595690
Да блять
Аноним 01/02/23 Срд 16:31:34 #415 №2595704 
>>2595641
Что вообще про секьюрити нужно знать?
Аноним 01/02/23 Срд 16:43:46 #416 №2595726 
>>2595382
Тестировать тул?

Вау.

Ну что тут сказать... Если сами джависты тулу не доверяют, это говорит многое о его качестве.
Аноним 01/02/23 Срд 16:46:54 #417 №2595731 
>>2595690
Ну конечно совсем лишним не будет, но это с одной стороны будет увеличивать time to vkat. А с другой стороны отнимет время у выучивания наизусть устройства хешмапы, принципов ооп, уровней изоляции транзакций, жизненных циклов бина и энтити хибера. И у написания петов.
Челика без опыта по куберу и микросервисным паттернам гонять не будут, даже если они на проекте во все поля. А вот по ооп в джаве и гоф-патернам - вполне.
Твой список скорее для собеседующегося на мидла, который до этого на легаси сидел или писал бек на другом языке.
Аноним 01/02/23 Срд 17:21:48 #418 №2595810 
>>2595726
Ну много же челов ноют про баги при использовании лобка, может у тех накипело.

Ну или я вопрос не так понял, хотя вроде переспрашивал.

Или мб вообще вопрос с подвохом.
ответом на него был харчок в камеру и дисконект из конфы, в последствии дают оффер сразу на мидла
Аноним 01/02/23 Срд 17:23:40 #419 №2595814 
>>2595810
>ответом на него был харчок в камеру и дисконект из конфы, в последствии дают оффер сразу на мидла
Как было на самом деле: ты промямлил "эээ ну а зачем тестировать ломбок? эээ ну не знаю ээээ" и тебе пообещали перезвонить.
Аноним 01/02/23 Срд 17:24:10 #420 №2595815 
>>2594526
Блядь чел, если тебе не лень поднимать всю описанную тобой парашу ради круда, то не найти силенок накидать простейший фронт - ну это хуй знает кем надо быть.
Аноним 01/02/23 Срд 17:25:38 #421 №2595821 
>>2595814
Ну да, я имел ввиду, каким был правильный
Аноним 01/02/23 Срд 17:41:08 #422 №2595844 
>>2595810
Не, ну ты понимаешь курьез ситуации? Тестировать. Тул. Внешний. Не свой. Тул, которому ты делегируешь поставленную перед ним задачу. Но при этом не можешь ему доверять, из-за чего тратишь время и тестируешь его высер. Но в то же время не можешь и выкинуть этот негодный тул потому что "ну еба, вы че, этож ломбок, ну как это можно - без ломбока в 2023м, пацаны ж засмеют".

Ебаный в рот, как же я порой кринжую с айтишки.
Аноним 01/02/23 Срд 18:09:21 #423 №2595884 
>>2595685
Почему любители сахара не идут в котлин или сишарп?
Аноним 01/02/23 Срд 18:16:20 #424 №2595892 
>>2595884
А почему ненавистники сахара не пишут на голом си?
Лобок есть в большинстве проектов на жабе. Это просто данность. И это не такой уж сахарный сахар, как в котлине.
Аноним 01/02/23 Срд 18:17:31 #425 №2595897 
>>2595884
Потому что это петушиное недоработкосодержащее поделие "Язык программирования".
Аноним 01/02/23 Срд 19:19:40 #426 №2595991 
>>2595892
Потому что Си - не ООП язык и сложно писать большие программы, а также не кроссплатформенный, нет сборщика мусора и безопасности при работе с памятью.
Аноним 01/02/23 Срд 19:50:05 #427 №2596022 
>>2595892
>>2595991
Странное сравнение вообще, может и сайты на ассемблере писать?
Си и жаба - языки для разных областей применений.
Си хорош для низкоуровневых вещей, для небольших библиотек, которые должны быть быстрыми, для системного программирования, вроде WinAPI или системных вызовов POSIX.
На жабе пишут крупные системы, где важнее поддерживаемый код, чем скорость.
Когда необходимо, си легко подключается к жабе через JNI.
Вот C++ непонятно зачем нужен - никто его толком не знает, по сравнению с сишкой много оверхеда, а по сравнению с жабой/шарпом недостаточно прост.
Аноним 01/02/23 Срд 19:51:52 #428 №2596026 
>>2595884
Зачем убогий котлин, если есть Scala со всем необходимым?
Аноним 01/02/23 Срд 19:55:48 #429 №2596031 
>>2595307
Это налог на тупость. Переключи с корпоративной на частную
Аноним 01/02/23 Срд 20:04:54 #430 №2596038 
>>2595337
В общих чертах круды умеешь писать - значит годен на ждуна. Дальше зависит от степени ебанутости собеседующего и качества конкурентов. Чем больше ты знаешь - тем выше шансы.
Вместо изучения новых слов, лучше углуби знания в перечисленном тобой. А то окажется что твой постгрес - это селект с джойном написать, а спринг - 3 аннотации поставить.
Аноним 01/02/23 Срд 20:08:44 #431 №2596042 
>>2595337
Какой смысл об этом спрашивать на двощах? Сходи на собес, да узнай, будь мужиком блять.

Те щас один портянку по рофлу выкатит такую что охуеешь учить, второй скажет "намана, бля" и ты потом все равно проебешься и разочаруешься.
Аноним 01/02/23 Срд 20:44:38 #432 №2596062 
>>2595358
Еще можно добавить grpc и soap сервисы сюда же, но это опционально уже, но повысят шансы прилично.

Еще периодически спрашивают про планировщик запросов, я сам его скипнул пока, так что хз, какой там обьем инфы надо знать, может аноны, которые с этим знакомы подскажут
Аноним 01/02/23 Срд 21:17:43 #433 №2596091 
Как называется паттерн, когда у тебя есть объекты в памяти в и базе данных одновременно, и когда ты читаешь, то читаешь из оперативы, а когда пишешь, то пишешь и туда, и туда?
Аноним 01/02/23 Срд 21:21:50 #434 №2596098 
Начинаю изучать Spring, отпишусь когда закончу !
Аноним 01/02/23 Срд 21:32:05 #435 №2596113 
>>2596098
Лол, я три года работаю, от спринга знаю только несколько волшебных аннотаций.
Аноним 01/02/23 Срд 21:32:33 #436 №2596116 
>>2596091
Active Record что ли???
Аноним 01/02/23 Срд 21:35:23 #437 №2596117 
>>2596113
Думаешь начинать розсылать резюме ? :/
1 вакансия блеат.
Аноним 01/02/23 Срд 21:44:10 #438 №2596130 
>>2596091
кеш
Аноним 01/02/23 Срд 21:49:21 #439 №2596136 
Вопрос уровня хибер,могу ли я вообще не загружать связанные сущности. Не лениво,а вообще не загружать. При этом в энтити указать связь?
Аноним 01/02/23 Срд 21:53:51 #440 №2596141 
>>2596117
Напиши пет-проект на спринге и рассылай.
Аноним 01/02/23 Срд 22:00:42 #441 №2596149 
>>2596141
Ты безусловно прав.
Аноним 01/02/23 Срд 22:26:25 #442 №2596162 
>>2596141
А если я половину напишу пет-проекта, можно рассылать резюме ?
Аноним 01/02/23 Срд 22:31:57 #443 №2596165 
>>2596136
Что означает "лениво" ?
Аноним 01/02/23 Срд 22:33:09 #444 №2596166 
>>2596162
Если чувствуешь уверенность, что понял основные принципы и можешь без особых трудностей закончить. Смысл написания такого пет-проекта в том, чтобы закрепить знания на практике, и не более.
Аноним 01/02/23 Срд 22:34:36 #445 №2596167 
>>2596165
Значит FetchType.LAZY. Загружать связанные сущности в тот момент, когда обратишься к списку, а не сразу при загрузке основной сущности.
Аноним 01/02/23 Срд 23:44:42 #446 №2596226 
Как лучше организовать связь между таблицами: есть сотрудник,специальность и военный билет. В военном билете хранится ссылка на специальность,это обязательно. Пока у меня сотрудник имеет ссылку на военный билет где лежит ссылка на специальность. Я считаю что нелогично хранить ссылку на специальность только в военном билете и подумываю добавить ссылку на специальность напрямую в сотрудника. Но тогда возникает проблема что у сотрудника может быть ссылка на одну специальность,а в военном билете ссылка на другую. Как бы вы разрешили эту ситуацию?
Аноним 01/02/23 Срд 23:51:18 #447 №2596240 
>>2596226
А вообще ебать,я так подумал,я же могу всегда держать специальность нулевой,не запрашивать ее у пользователя и тупо брать с военника,все равно в базу за ним лезть. Че скажете?
Аноним 02/02/23 Чтв 00:20:49 #448 №2596281 
>>2596226
Что понимается под специальностью? Только военно-учётная специальность, или может быть учебная или какая-нибудь рабочая в зависимости от должности? Может ли быть специальность при отсутствии военного билета? В любом случае ссылки могут быть разные, ещё и специальностей может быть несколько, может же человек два образования получить (хотя насчёт военно-учётной хз, может ли их быть несколько), но для такого случая лучше сделать таблицу связок (многие ко многим) с ID сотрудника и ID специальности.
Аноним 02/02/23 Чтв 00:28:03 #449 №2596284 
>>2596240
Скажем, что нужно больше инфы о контексте. Что конкретно разрабатываешь, какую задачу твоя система будет решать? Пока нет ответа на этот вопрос, любые предположения - твои и анонов - будут гаданием на кофейной гуще.

Любая модель данных всегда строится от бизнеса. Нефункциональные требоваения, вроде производительности выборок, имеют определенную свою роль в моделировании, но без биснес-контекста нет смысла даже начинать рассуждать.
Аноним 02/02/23 Чтв 00:35:30 #450 №2596288 
>>2596281
Гражданская специальность. Табличка с айди и названием пока.О ее отсутствии не подумал. Будет null по дефолту
Аноним 02/02/23 Чтв 00:36:05 #451 №2596289 
>>2596284
Система учета данных сотрудников
Аноним 02/02/23 Чтв 00:44:10 #452 №2596293 
>>2596226
>Но тогда возникает проблема что у сотрудника может быть ссылка на одну специальность,а в военном билете ссылка на другую. Как бы вы разрешили эту ситуацию?

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

На практике, иногда от нормализации отходят в угоду производительности, а консистентность (твой констрейнт, что специальность сотрудника должна быть равна специальности в военном билете) гарантируют иными средствами (или забивают и не гарантирують вовсе). Но денормализацию делают когда налицо пиздец с производительностью. Заранее ее делать - плохая идея.
Аноним 02/02/23 Чтв 01:21:32 #453 №2596306 
>>2596289

Ну так коли у тебя есть "военник" с ВУС, может имеет смысл пойти в том же направлении, и добавить "диплом" с гражданской специальностью?

В любом случае,

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

...пока что в этой идее не просматривается ничего логичного.
Аноним 02/02/23 Чтв 01:33:59 #454 №2596311 
>>2596306
Бля точняк, гражданская специальность и военная это ведь не одно и то же. Короче думаю да,добавлю еще одну сущность отдельно для военной специальности
Аноним 02/02/23 Чтв 01:38:38 #455 №2596315 
Нормальная ли тема в дто реквесте принимать айди дочерней сущности? На фронте ведь все равно дернут эндпоинт и им прилетит сущность с айди,откуда они сами по имени в реквест воткнут айдишник. Или нужно принимать что-то более человекочитаемое? Например имея сущности книги и авторы, нормально ли при создании книги прочить айдишник автора,тк на фронте эти данные есть и пусть сами ебутся с формированием запроса или же нужно сделать эту работу за них и дать им формат реквеста с именем автора и уже на бэке сходить в базу по имени и если есть присвоить,а если нет создать? Фронтендеры же все равно пидорасы хуйней занимаются весь день,пусть сами формируют запрос,да или нет?
Аноним 02/02/23 Чтв 01:46:30 #456 №2596318 
>>2596315
По всякому.

>На фронте ведь все равно дернут эндпоинт и им прилетит сущность с айди,откуда они сами по имени в реквест воткнут айдишник

Лично я думаю что терпимо, хотя знаю мнение что айдишник сущностей в БД через АПИ палить некошерно, и нужно вдовесок к первичному плодить еще и суррогатный ключ.

>Или нужно принимать что-то более человекочитаемое? Например имея сущности книги и авторы

С человекочитаемыми ключами есть одна засада: рано или поздно этот человекочитаемый ключ тебе придется использовать в запросах к БД. И может так оказаться, что индекс на этот человекочитаемый аттриут будет отрабатывать в разы говенней или занимать в разы больше места, чем на какой нить числовой айдишник. Проебешь производительность.

Плюс - никто ж тебе не гарантирует что этот человекочитаемый аттрибут у тебя не изменят из под ног в какой нить параллельной транзакции.
Аноним 02/02/23 Чтв 01:50:11 #457 №2596320 
>>2596318
Вот и я также подумал,во первых доп обработку этой хуйни делать,во вторых хуй знает сколько по этому имени будет результатов,в третьих эти пидоры и так нихуя там не делают,аниме смотрят и капчу двачуют суки
Аноним 02/02/23 Чтв 02:26:33 #458 №2596328 
>>2596315
Смотря как клиент эти данные использует.
Если дочерние сущности клиенту нужны сразу, а не при нажатии на какую-нибудь кнопку, я бы их сразу в ДТО передал. А то клиент при открытии страницы будет отправлять кучу запросов, в итоге и страница будет медленнее грузиться, и нагрузка на сервер возрастёт. Ещё можно передавать не всю дочернюю сущность, а добавить в ДТО нужные поля и заполнять их в конвертере при формировании ответа, к примеру, не класть AuthorDTO в BookDTO, а просто добавить в BookDTO поля authorId (для последующих запросов при нажатии на кнопки) и authorName (для отображения имени автора рядом с книгой). Но это только один из вариантов.
Аноним 02/02/23 Чтв 02:58:42 #459 №2596331 
Бывает ли такое, что создают несколько дто под одну энтити?
Аноним 02/02/23 Чтв 03:07:46 #460 №2596334 
>>2596331
Бывает
1. В энтити 50 полей, а нужно только три
2. Несколько разных потребителей - веб-клиент, мобилка, интеграции с другими системами.
Аноним 02/02/23 Чтв 05:09:05 #461 №2596342 
>>2585661 (OP)
Пришел на проект, а там дтошки гоняются туда-сюда. И ладно на выход просто передаются id связанных сущностей, а вот на вход прилетают эти же id и там в маппере начинается анал-карнавал с обращением в базу по каждому id, чтобы собрать объект воедино со всеми его полями/объектами. Это вообще норм? Как такую проблему решают?
Аноним 02/02/23 Чтв 09:02:01 #462 №2596401 
>>2596331
Это норма
Аноним 02/02/23 Чтв 09:12:28 #463 №2596404 
>>2593721
Чееееееееееел.... Никто на новом проекте не будет использовать хубирнейт. Сейчас эра микросервисов и клауд-нейтив приложений
Аноним 02/02/23 Чтв 09:45:06 #464 №2596412 
>>2596404
Почему тогда на всех курсах учат кибернейт?
Аноним 02/02/23 Чтв 09:45:36 #465 №2596413 
>>2596412
Чтобы было кому поддерживать легаси.
Аноним 02/02/23 Чтв 09:46:43 #466 №2596414 
>>2596412
>курсах
...
Аноним 02/02/23 Чтв 09:59:06 #467 №2596420 
>>2596414
Книг нет, поэтому приходится курсы смотреть.
Аноним 02/02/23 Чтв 10:20:43 #468 №2596436 
image
Какая мразь вот эту хуйню сделала??? Это что вообще такое нахуй?
Аноним 02/02/23 Чтв 10:22:17 #469 №2596439 
>>2596436
git blame включи
Аноним 02/02/23 Чтв 10:23:06 #470 №2596442 
>>2596439
Чего? Это класс String.
Аноним 02/02/23 Чтв 10:26:48 #471 №2596449 
>>2596442
ты еблан?)
Аноним 02/02/23 Чтв 10:28:08 #472 №2596453 
>>2596449
Псина ебливая, ты что сказать-то хотел? Причем тут гит блейм?
Аноним 02/02/23 Чтв 10:29:02 #473 №2596455 
>>2596453
а че для jdk не гит используется еблуша?
Аноним 02/02/23 Чтв 10:30:02 #474 №2596458 
>>2596455
Причем тут гит вообще? Я про неперенесённую на новую строку скобку с точкой с запятой.
Аноним 02/02/23 Чтв 10:30:08 #475 №2596459 
>>2596342
>норм?

Ебанистика какая то, как по мне. Звучит как та ситуация, где программисту хотелось срать монадами во что бы то ни стало, а на базу данных ему было похуй.

>как решают?

Грамотным построением sql запросов.
Аноним 02/02/23 Чтв 10:31:47 #476 №2596461 
Дежурно напоминаю, что баз кроме SQLite существовать не должно, и на одну JVM должна быть только одна база данных.
Аноним 02/02/23 Чтв 10:33:08 #477 №2596462 
не пынямаю. если jpa это спецификация только, а hibernate - реализация этой спецификации, то что такое spring data jpa???
Аноним 02/02/23 Чтв 10:33:40 #478 №2596464 
>>2596462
Это надстройка над спецификацией и реализацией, которая за тебя круды шлёпает.
Аноним 02/02/23 Чтв 10:34:34 #479 №2596465 
>>2596458
а че в гит блейм зайти посмотреть нельзя??? и спросить у автора по почте???
Аноним 02/02/23 Чтв 10:35:45 #480 №2596466 
>>2596464
что значит надстройка? ты хочешь сказать spring jpa использует под капотом hibernate?
Аноним 02/02/23 Чтв 10:36:30 #481 №2596467 
>>2596466
Это троллинг тупостью?
Аноним 02/02/23 Чтв 10:36:43 #482 №2596468 
>>2596462
сладкий шлебушек для автогенерации запросов по названию методов

getOrderByIdSortedByName - и оно это автоматом преобразует в hql

зумеры от этого прутся, по мне это чушь и говно
Аноним 02/02/23 Чтв 10:38:54 #483 №2596471 
>>2596467
>пук
по делу есть что сказать?
Аноним 02/02/23 Чтв 10:39:55 #484 №2596472 
image
>>2596471
Пожалуй скину это и сольюсь с этой жирноты.
Аноним 02/02/23 Чтв 10:41:56 #485 №2596473 
>>2596468
а че лучше строку передавать с запросом шириной 120+ символов?
Аноним 02/02/23 Чтв 10:43:13 #486 №2596477 
>>2596472
т.е. если я подключаю spring jpa, мне hibernate не надо подключать? а зачем тогда hibernate нужен?
Аноним 02/02/23 Чтв 10:44:46 #487 №2596480 
Не отвечайте ему, это очевидный троллинг тупостью. Наверняка из петушарп-треда прибежал опущенец.
Аноним 02/02/23 Чтв 10:45:44 #488 №2596482 
>>2596473
да, лучше писать нормальные запросы, а не надеяться на магию
Аноним 02/02/23 Чтв 10:45:52 #489 №2596483 
>>2596480
я на петушарпе не пишу, я пишу на ява
Аноним 02/02/23 Чтв 10:47:15 #490 №2596487 
>>2596482
Заебали со своей мантрой "магия". Никакой магии не существует. Существует только работающий код и не работающий.
Аноним 02/02/23 Чтв 10:47:38 #491 №2596489 
>>2596482
а зачем тогда спринг использовать? он весь на магии работает.
Аноним 02/02/23 Чтв 10:49:39 #492 №2596490 
>>2596489
спринг это элементарное управление зависимостями и всё. Можно и на фабриках сделать, ничего страшного.

А что это хуйня сгенерирует - хуй его знает
Аноним 02/02/23 Чтв 10:50:09 #493 №2596493 
>>2596490
Что написано в названии метода - то и сгенерирует.
Аноним 02/02/23 Чтв 10:50:48 #494 №2596496 
>>2596490
так он в консоль генерируемый запрос пишет, можно проверить
Аноним 02/02/23 Чтв 10:55:16 #495 №2596504 
>>2596496
обфусцированный, и то только если специально настроишь логирование
Аноним 02/02/23 Чтв 11:06:42 #496 №2596519 
а че тут за шиз шарпистов под кроватью ищет постоянно? кто его проткнул так
Аноним 02/02/23 Чтв 12:06:14 #497 №2596599 
>>2596458
Я тоже так пишу.
Аноним 02/02/23 Чтв 12:27:32 #498 №2596631 
>>2596490
>спринг это элементарное управление зависимостями и всё
Нет. На изучение всех особенных случаев и кишочков уйдет несколько лет. Если ты не понимаешь глубоко как работает он под капотом и как инициализирует бины, то тебя даже близко нельзя подпускать к разработке на спрэнг фримверке.
Аноним 02/02/23 Чтв 12:53:27 #499 №2596654 
image
>>2596599
Я надеюсь, твое кресло когда нибудь сломается и ты повторишь судьбу сидящего на кресле с пикрила.
Аноним 02/02/23 Чтв 12:54:43 #500 №2596656 
>>2596631
Шарпоблядь обнаружена.
Аноним 02/02/23 Чтв 13:04:09 #501 №2596670 
>>2596654
)));
Аноним 02/02/23 Чтв 13:32:03 #502 №2596714 
ПЕРЕКАТ >>2596713 (OP)
ПЕРЕКАТ >>2596713 (OP)
ПЕРЕКАТ >>2596713 (OP)
Аноним 02/02/23 Чтв 15:34:55 #503 №2596873 
>>2596714
Ураааа
Аноним 12/02/23 Вск 23:42:35 #504 №2609210 
>>2596462
Spring Data JPA автоматически конфигурирует и настраивает JPA за тебя.
Писал как-то проект без Spring (десктопное JavaFX приложение), так заебался просто подключать там JPA, миграции Flyway просто не брались.
В Spring просто прописал в пропертях пару строк, и все работает.

>>2596468
Spring не просто так используется - сравни сколько кода получается с ним, и сколько без него.
Можно, конечно, REST сервисы писать чисто на Empedded Jetty + Jersey JAX-RS, самому настраивать Hibernate и т.д.
Но заебешься с этим всем.
Для мазохистов-пердоликов существует C++, а в Java должно быть все просто и понятно, чтобы было легко поддерживать.
Аноним 16/02/23 Чтв 00:34:30 #505 №2612923 
>>2594033
Пошел нахуй
Аноним 30/03/23 Чтв 02:41:36 #506 №2656863 
>>2588892

- - - - 3. Аноны, есть две @Entity, скажем Person, с полями name и age, Payment с полями employeeName и amount. Как мне через JPA получить третий объект, представляющий джоин этих двух энтити?

Заинжекти ссылки на соответствующие репозитории в сервисный бин и используй булеву алгебру над элементами множеств для объединения, пересечения, вычитания и дополнения. Всякие предикаты помимо фильтрации по значениям сделают обходы коллекций допустимыми для лямбд и стрим апи. В теории можно сервис данных, выступающий издателем в реактивных взаимоотношениях с его клиентом запилить с целью перейти от транзакционной конкурентности к реактивности. В теории бля меня, находязегося в стадии обучения.
comments powered by Disqus

Отзывы и предложения