Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 249 17 49
Java Thread №281 /java/ Аноним 18/04/25 Птн 15:29:09 3434087 1
OIG1 (90).jfif 125Кб, 1024x1024
1024x1024
Аноним 18/04/25 Птн 15:38:02 3434102 2
так ракать яву в 2025 перспективно или нет?
прочитал весь тред и нихуя не понял
Аноним 18/04/25 Птн 15:44:25 3434112 3
>>3434102
Если ты няшный студент, готовый так сказать к глубокой проработке фреймворков - то вперед. Иначе очень трудно и лучше ракать в го или 1с там
Аноним 18/04/25 Птн 15:47:28 3434117 4
>>3434087 (OP)
Какие же вы все - молодцы! Как же джава хороша.

Всем добра.
Аноним 18/04/25 Птн 15:48:51 3434119 5
>>3434117
>Какие же вы все - молодцы!
Да! Так и есть. Ух, вот бы каждое утро просыпаться, а тебя хвалят и хвалят.
>Как же джава хороша.
Лучший язык на планете~~
Аноним 18/04/25 Птн 15:58:24 3434128 6
>>3434112
недавно знакомы с курсов залетел и вроде нормально все
Аноним 18/04/25 Птн 16:04:04 3434130 7
>>3434087 (OP)
Как изучить джаву без привязки к спрингу, если у меня уже есть опыт с другими ЯП? Чтобы мне не начинали в очередной раз пытаться рассказывать, что такое переменные, циклы, классы и прочее.
Аноним 18/04/25 Птн 16:06:59 3434136 8
Аноним 18/04/25 Птн 16:19:23 3434143 9
>>3434087 (OP)
Как выживать на проектах, которые писали лоускильные ноунеймы из провинции? В очередной раз попал в болото из Контроллер - МайСервисИмпл имплементс МайСервис - Рипазитари. Вся логика, разумеется, в сервисе. Сервис - файл на 3.5-5к строк. Тесты? Какие тесты? Сервис и бизнес-логика завязаны на другие сервисы, а они на другие сервисы, а они на друг... Юнит-тестов нет, интеграционных тестов нет. Обещают переписать на микросервисы и тогда все заверт.. но воз и ныне там. Релиз раз в полгода, ручной регрес и жалкие попытки энд ту энд со стороны куашников. Ливать?
Аноним 18/04/25 Птн 16:41:46 3434162 10
Аноним 18/04/25 Птн 16:50:15 3434175 11
>>3434130
Что тебя конкретно интересует? Синтаксис? Документация или кишочки какие-то?
Аноним 18/04/25 Птн 16:55:27 3434180 12
>>3434143
>Как выживать
А что тебя на таком проекте убивает - пойми это для начала?

Так то у тебя один из двух стульев:

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

Либо наоборот максимально лезь в залупу, но по умному. Общайся с стейкхолдерами, понимай что их устраивает не устраивает, предлагай инициативы, выбивай себе большие свободы и полномочия, подминай под себя лоускиллов и учи их хорошим практикам. Это путь high risk high reward - ибо инициатива ебет инициатора. Если ты сам лоускилльный, особенно это касается софт скиллов, тебя просто затраллят и либо ты сам выгоришь и сопьешься, либо тебя начальство отстрелит как токсика.
Аноним 18/04/25 Птн 17:04:40 3434187 13
>>3434175
Сейчас только синтаксис и кишки JVM. Для синтаксиса, как я понимаю, можно первый том Хорстманна проштудировать и первую половину второго?
Аноним 18/04/25 Птн 17:09:25 3434190 14
>>3434187
>Для синтаксиса, как я понимаю
Для именно синтаксиса ты можешь буквально что угодно открыть, начиная туториала оракла, хорстмана, шилдта, заканчивая вовсе жаварашем каким-нибудь. Вообще не приципиально как по мне, он учится в первую неделю, если ты уже имеешь опыт других яп.
По кишкам есть, например, конференции jpoint и вот у шипилева классные выходили https://youtube.com/playlist?list=PLecCTjz_4ylyyvYExhPAzB4Mqn3Q_kEj6
Можешь начать с этого, как по мне, если ты хоть что-то начнешь смотреть/читать, то источники по этой или смежной теме ты так или иначе найдешь через ссылки в этих же источниках. Просто типичная история, а вот подробнее об этом читайте туть, это не тема книги/конференции и тд.
Аноним 18/04/25 Птн 17:11:18 3434191 15
Selection173.jpg 59Кб, 797x438
797x438
>>3434143

> В очередной раз попал в болото из Контроллер - МайСервисИмпл имплементс МайСервис - Рипазитари.

Давай конкретный пример. В целом в этом нет ничего плохого.

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

Всё верно. А где ей ещё быть? Не в контроллере же. Не в репозитории же.

> Сервис - файл на 3.5-5к строк.

Многовато, но открой серьёзный проект, там одни интерфейсы по 1000 строк, правда 90% это документация. Если нет дублирования кода в классе на 5,000 строк нет ничего плохого.

> Сервис и бизнес-логика завязаны на другие сервисы, а они на другие сервисы, а они на друг...

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

А у тебя где находится бизнес логика?
Аноним 18/04/25 Птн 17:11:58 3434194 16
Аноним 18/04/25 Птн 17:34:02 3434211 17
Аноним 18/04/25 Птн 18:02:39 3434242 18
>>3434191
>Это и называется слой бизнес логики.

Есть нечто смешное в том, что в ответ на высокую связность ты слету ответил что это нормально, мол именно так и проектируется бизнес логика, а вот момент с отсутствием юнит тестов у анона вообще никак не прокомментировал.
Аноним 18/04/25 Птн 18:22:42 3434257 19
17448726949980.jpg 241Кб, 978x653
978x653
>>3434242

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

Заказчикам видимо тоже пофигу на это. Если у них чё-то не работает они просто поднимают трубку, звонят и им всё чинят.

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

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

В общем я бы избегал такой работы если хочется развиваться как специалист.

Ни какого CI/CD и прочих современных практик, ставших уже нормой во всём мире, там видимо тоже нет.

А значит опыт который там анон получает не является коммерческим опытом разработки. А значит в другой серьёзной компании этот опыт учитываться не будет.
Аноним 18/04/25 Птн 18:34:36 3434267 20
>>3434087 (OP)
Чем плох ЮВАО? Погулял по картам по Перово и Измайлово - лампово. Чистенько, пешеходная инфраструктура есть, все эти пандусы, тротуары, ровные дороги, чистые улицы. Дома в основном невысокие - мало панелек, рядом лесопарк.
Открыл престижные Раменки и Крылатское - ну такое. Куча хрущей, которые давят сверху и как-то неуютно..
Аноним 18/04/25 Птн 18:37:31 3434270 21
>>3434191
Ну, т.е. ты не в курсе про SRP, low coupling, high cohesion? То, что у тебя один такой сервис на 5к строк зависит от 3-5 еще таких же сервисов на 5к строк каждый, а те тоже зависят от сервисов..
Аноним 18/04/25 Птн 19:03:52 3434319 22
>>3434270

Дак он может через интерфейс зависит. Всегда можно поменять или замокать реализацию.
Аноним 18/04/25 Птн 19:09:23 3434330 23
>>3434319
>замокать реализацию
Ох уж эти "юнит тесты" где мокают все прямые зависимости и начинают "тестировать". А потом бегают и плачутся, что тесты у них хрупкие и их нужно переписывать на каждый чих
Аноним 18/04/25 Птн 19:09:54 3434331 24
Аноним 18/04/25 Птн 19:12:33 3434339 25
>>3434143
Ты на работу идёшь за деньгами. Пока твоё личное уважение к себе не ставят под сомнение я не вижу смысла воротить нос хоть от чего-либо. Говнокод это проблема кабанья, ты что с чистым, что с говном тратишь 8 часов в день.
Аноним 18/04/25 Птн 19:20:19 3434347 26
>>3434330

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

### 1. Тесты становятся хрупкими (fragile)
- Если замоканы все зависимости, то любое изменение в логике кода (даже корректное) ломает тесты, потому что моки жёстко завязаны на текущую реализацию.
- Пример: поменяли порядок вызовов методов или добавили новый – тесты падают, хотя бизнес-логика работает правильно.

### 2. Тесты не ловят реальные баги
- Моки подменяют реальное поведение зависимостей, поэтому тесты проверяют не "как код работает", а "как он представлен в голове тестирующего".
- Пример:
- Замокали базу данных → тест проходит, но в реальности SQL-запрос синтаксически неверен.
- Замокали внешний API → код работает с моком, но падает при реальном запросе из-за неучтённых полей в JSON.

### 3. Тесты превращаются в "ритуал"
- Вместо проверки логики тесты начинают просто верифицировать, что вызывались конкретные моки.
- Пример:
```python
# Плохо: тест не проверяет логику, только факт вызова мока
mock_db.insert.assert_called_once_with(data) # А если метод поменяет название?
```
Такой тест не упадёт, даже если код полностью сломан, но не вызвал именно этот метод.

### 4. Избыточная изоляция
- Юнит-тесты должны проверять логику модуля, но не обязательно изолировать все-все зависимости.
- Часто лучше использовать
real-объекты (например, настоящие классы-сервисы без I/O) или стабы (заглушки с предсказуемым поведением), а не моки.

###
Когда моки действительно нужны?
-
Внешние сервисы (API, базы данных, файловая система).
-
Опасные операции (например, удаление данных).
-
Сложные зависимости, которые трудно настроить в тестах (например, аутентификация).

###
Что делать вместо моков?
1.
Писать интеграционные тесты – для проверки взаимодействия между модулями.
2.
Использовать фейки (fake) – упрощённые, но рабочие реализации (например, in-memory база вместо PostgreSQL).
3.
Тестировать поведение, а не реализацию – проверять результат, а не "как именно он был получен".
Аноним 18/04/25 Птн 19:44:31 3434372 27
>>3434257
Правильно, хули, никто не спорит что отсутствие тестов это плохо. Другое дело что обычно в таких вот проектах с ебейшим транзитивным каплингом юнит тестов как раз и нету никогда, и нет их как раз из-за ебейшей связанности спроинговых компонент, из-за которой у анона просто не остается ручек, чтобы изолировать компонент под тесты. Но у культа такая связность - это норма, как ты отметил.

Но ты очень забавно ушел от темы, повеселил. Буквально свалил вину на всех - и начальство то виновато, и заказчик, и легасятина... Целое полотнище выводов вон настругал. Что называется, за деревьями леса не видать.

Я просто поражаюсь иной раз тому, как спрингокульт любит пиздеть о важности юнит тестирования, но при этом никогда не писать юнит тесты.
Аноним 18/04/25 Птн 19:45:35 3434373 28
>>3434330
Вот этот - хотя бы честный.
Аноним 18/04/25 Птн 20:09:57 3434386 29
>>3434270
Забей. Солид в устах спрингофагов - инструмент демагогии, не больше. Чекни борисовский "спринг-построитель" на 15й минуте, его пук-среньк позорный по SOLIDу. А это - один из их главных гуру. Если спрингоблять раскрыла рот и начала перечислять при тебе принципы SOLID в контексте их фреймворка, она почти гарантированно не выкупает, какой шизоидный религиозный бред она несет.
Аноним 18/04/25 Птн 20:23:35 3434399 30
>>3434386
>какой шизоидный религиозный бред она несет
А разве так не со всеми этими принципами, которые произносят как мантру? SOLID, KISS, PIDOR вот если следовать умным советам из книг написанных кучу лет назад, то ну тооочно все станет лучше. Там ведь хуйни не напишут
Аноним 18/04/25 Птн 20:36:03 3434406 31
17373021276100.mp4 63Кб, 320x320, 00:00:02
320x320
>>3434372

Ну а как не плодить эти сервисы и не каплить? Вот я вчера решал задачу. Есть 30 установок программы в 30 разных организациях. Заказчик не может заставить их обновляться, хотят обновляются, не хотят не обновляются, их право. Соответственно есть 30 постгрес баз приложения и разброс версий этой базы 11 разных версий. Уплочено за поддержку всего этого и плотится ежегодно. А мне нужно сделать небольшую прогу, которая может подключиться к любой базе и делать кое-какие действия в ней. То есть мне нужно реализовать поддержку на данный момент 11 разных версий базы, в каждой версии какие-то таблицы есть, каких-то нет, какие-то поля в таблицах есть, каких-то нет.

Сделал СЕРВИС, который по версии базы из конфига возвращает имя роута, который ведёт к контроллеру, который отвечает за работу с той или иной версией базы.

Ну а как это ещё решить? Ну не делай сервис сделай switch чё легче станет что ли. А так хотя бы этот свич лежит отдельно в отдельном классе.

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

Да и будет теперь кругом лезть этот СЕРВИС и всё будут от него коуплится.

А потом ещё один и ещё.
Аноним 18/04/25 Птн 21:10:12 3434418 32
>>3434406
Ну ок, ты хотя бы не культист и в отрицалово не уходишь, есть надежда на конструктивный диалог.

>Ну а как это ещё решить?

А никак. В терминах спринговых реалий это тупо не решаемо. По совести, каждое из этих вот "кое каких действий", какие ты выполняешь в своей проге, хорошо было бы держать в таком виде, в каком их можно было бы черрипикать и переиспользовать независимо друг от друга. Не инжектить сервис из 5 тысяч строк, а затащить себе в клиентский компонент только ту часть, которая тебе нужна. Тогда количество зависимостей каждой из таких вот мини-компонент можно было бы свести к минимуму, и такой компонент можно было бы переиспользовать максимально гибко, не тащя за собой лапшу из остальных компонент. В терминах distance from main sequence меньше входящих транзитивных зависимостей == меньшая ригидность компонента == большая переиспользуемость и меньше риск того, что какие то из этих зависимостей изменятся и приведут к регрессиям в клиенте. В конечном итоге получилось бы нечто схожее с функциональной композицией, но на классах.

Но в спринге же так не принято - мы же в таком случае будем "плодить компоненты", айяйяй! Запутаемся, бедненькие, потеряемся! Мы попросту не можем не обьединять методы, которые хотим переиспользовать, по каким то абсурдным критериям типа "коли этот метод про пользователя, значит он должен быть частью UserService". А наобъединявшись, не можем потом переиспользовать то что наобьединяли. Вдовесок мы все это еще обвешаем аннотациями, чтобы компоненты приколотились друг к другу по декларациям инжекций и заодно вся бизнеслогика вендорлокнулась на фреймворк (слава богу эта мода потихоньку уходит в прошлое уступая место бутовым автоконфигурациям).

Я так то не оторванный от реалий идеалист, все могу понять. Просто в ебаном культе меня всю дорогу бесила вот именно эта пиздабольско-демагоговая манера. Нихуя такой дизайн не норма, и SOLIDом там даже близко не пахло. Это просто сложившаяся исторически говенная данность, где мы все варимся. Вот ты хотя бы признал что "да, хуево, но хуй знат как иначе", это я по человечески могу понять. А большинство долбоебов щас будет на говно исходить пытаясь доказать мне что это я просто не преисполнился и должен спринг выучить.
Аноним 18/04/25 Птн 21:23:11 3434420 33
163112128615204[...].jpg 118Кб, 700x523
700x523
154160564416187[...].jpg 40Кб, 640x480
640x480
Аноним 18/04/25 Птн 21:46:32 3434429 34
список вставить "мам я долбоёб" 0
Аноним 18/04/25 Птн 22:27:20 3434451 35
>>3434130
Тоже мне проблема. Как бы наоборот доучить спринг, уже зная просто джаву
Аноним 18/04/25 Птн 23:33:35 3434500 36
groovy тут?
Аноним 18/04/25 Птн 23:33:55 3434501 37
Аноним 18/04/25 Птн 23:51:35 3434517 38
Аноним 18/04/25 Птн 23:54:58 3434521 39
>>3434517
Сложно только из-за того, что некоторые вещи реализовали раньше, чем в джаве, а потом из в джаве реализовали по другому (замыкания - лямбды) и на стыке языков не очень удобно работать. А так обычный скриптовый язык. Есть аналог шарпового LINQ.
Аноним 19/04/25 Суб 03:00:45 3434583 40
Каким же гауном бесполезным джава 25 будет. Хоть бы блядь флексибл конструктор бодис в стейбл завезли, а то пиздец же, одни поломки совместимости и выпиливания.
Аноним 19/04/25 Суб 03:21:41 3434584 41
Java (до нового дерьма) это русский язык от мира программирования. Ну или русский язык это Java среди естественных языков. Так-то
Аноним 19/04/25 Суб 06:10:46 3434607 42
Почему mvnd даёт такой маленький прирост производительности в сравнении с правильно настроенным обычным мавеном? Вормап жи, волшебный JIT жи. Обычный параллельный 16 секунд, демон 12-13.

Кому эти 3 секунды всрались особенно когда добавляется ещё один источник непонятных багов?
Аноним 19/04/25 Суб 06:12:52 3434608 43
>>3434607
Причём я не вижу особо даже обещанной магической инкрементальности. Делаю изменения, компилирую, 13 секунд, не делаю, просто подряд компилирую, всё равно по 13 секунд. Что я делаю не так? Проект маленький относительно, но модулей много, параллелить и инкрементить есть что.
Аноним 19/04/25 Суб 06:24:36 3434611 44
>>3434607
>правильно настроенным
А что там, собственно, настраивать?
Аноним 19/04/25 Суб 06:34:13 3434612 45
>>3434611
Немного, но часто и этого не делают. Параллельность билда, плагины отпердолить чтобы с параллельностью работали, потом выбирать только нужное через -pl <name> -am. У меня так, мб что-то ещё можно.
Аноним 19/04/25 Суб 07:05:52 3434618 46
>>3434612
>Параллельность билда
Удачи потом логи компиляции/тестов смотреть на CI

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

>потом выбирать только нужное через -pl <name> -am
Экономия на спичках.

Просто нужно понять, что джава это не про экономию времени и быструю разработку. Тут в порядке вещей билды по часу-полтора и прочие приколдэсы
Аноним 19/04/25 Суб 07:12:20 3434621 47
>>3434618
> Удачи потом логи компиляции/тестов смотреть на CI
Так плагины просто не используй каловые.

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

> Экономия на спичках.
Если у тебя сильно горизонтальный проект или вообще монорепа то очень полезно.

> Просто нужно понять, что джава это не про экономию времени и быструю разработку. Тут в порядке вещей билды по часу-полтора и прочие приколдэсы
А, так ты очередной залётный школодегенерат с фантазиями и проекциями. Ясно.
Аноним 19/04/25 Суб 07:39:52 3434626 48
>>3434621
>Так плагины просто не используй каловые.
А других нет. Это же джава

>А тебе много плагинов нужно?
Те, что использую не умеют в параллель

>Если у тебя сильно горизонтальный проект или вообще монорепа то очень полезно.
Полезно кому? Выше анон сокрушался, что попал на каловый проект где хуй проссышь как код писать и архитектура говна. По факту этот все верно сказал >>3434339 - на работу нужно ходить за деньгами. Если тебе повезло с коллегами и проектом, то может чего-нибудь почерпнешь для себя и научишься новому. Нет? Просто лутай бабки и не отсвечивай. Все эти попытки "улучшить проект" до добра не доводят.
Аноним 19/04/25 Суб 07:43:35 3434627 49
>>3434626
> А других нет. Это же джава
По моему джава это как раз про 100500 способов пёрнуть в трубочку.

> Те, что использую не умеют в параллель
А ты хотя б пробовал их настраивать? Или обновлять. Или альтернативы искать. Или хотя бы понять какой конкретно плагин не могёт.

> Полезно кому? Выше анон сокрушался, что попал на каловый проект где хуй проссышь как код писать и архитектура говна. По факту этот все верно сказал >>3434339 - на работу нужно ходить за деньгами. Если тебе повезло с коллегами и проектом, то может чего-нибудь почерпнешь для себя и научишься новому. Нет? Просто лутай бабки и не отсвечивай. Все эти попытки "улучшить проект" до добра не доводят.
Блядь, ну это другой вопрос, что работнику на говноработе обосновано вола с суровым видом ебать. Тут речь идёт в принципе о том инструмент полезен или нет.
Аноним 19/04/25 Суб 08:02:46 3434633 50
>>3434627
>Или альтернативы искать
Зачем? У меня нет цели сделать проект кабана лучше, если я встречаю лишь агрессию и непонимание со стороны команды и руководства. Мне проще плыть по течению, а в свободное время ковыряться во всем этом.
Аноним 19/04/25 Суб 12:55:47 3434865 51
>>3434621
>Если у тебя сильно горизонтальный проект или вообще монорепа
То ты еблан и идешь нахуй
Аноним 19/04/25 Суб 16:45:19 3435055 52
>>3434517
Groovy охуенно сложнее джавы, бтв
Аноним 19/04/25 Суб 18:52:40 3435166 53
>>3434517
Groovy самый плохой язык программирования, который не пытались сделать плохим умышленно. Поэтому довольно сложно.
Аноним 19/04/25 Суб 19:09:58 3435175 54
>>3435166
А че по поводу скалы скажешь?
Аноним 19/04/25 Суб 19:12:50 3435181 55
>>3435166
Что в нем такого уж плохого? Просто не надо юзать весь тот безумный объем пиздеца, который туда напихали разрабы, и будет норм.
По сути, можно сказать что джава это подмножество груви. То есть и жава тоже кал говна получается?
Аноним 19/04/25 Суб 23:53:52 3435338 56
>>3435175
Очень сложный язык с огромным количеством фич, тремя парадигмами и мега фреймворками как ZIO, cats и akka, которые все еще сильнее усложняют и специализируют. На ней пишет очень мало людей, и все по-разному.

В скале много интересных идей, но язык очень непрактичный.
Аноним 20/04/25 Вск 00:40:49 3435359 57
>>3435338
Плюс переход с 2ой версии на 3ью, как в питуне...
Аноним 20/04/25 Вск 00:51:41 3435360 58
>>3434608
Прихожу с обновлениями. Мне напиздели, инкрементальности в мвнд и не было никогда. Зато есть в такари, старичок до сих пор работает. За 7,5 секунд теперь билдится без изменений и 9 с изменениями. 20 немаленьких модулей в проекте.

Ебало градлодебилов которые страдают со скриптобилдами из-за "скорости" (которой нет, потому что первый билд на градле это пиздец, можно чай уходить пить, а когда вернуться видеть build failed) к осмотру.
Аноним 20/04/25 Вск 05:28:56 3435388 59
>>3435360
Уже разобрался как читать поломанные логи при параллельной сборке модулей и запуске тестов?
Аноним 20/04/25 Вск 09:42:24 3435428 60
>>3435388
А что там читать? Вроде всё стабильно. Есть какая-то хуйня что мвнд хуеет когда сильно помник меняешь разом, но mvnd --stop спасает, даже читать не надо ничё, к тому же помник с полунуля ты редко переписываешь.
Аноним 20/04/25 Вск 10:16:00 3435454 61
>>3435388
Что вы с этими логами параллельной сборки носитесь? Упал билд - запусти однопоточный билд, делов-то. А если у вас каждый второй билд падает, то проблема не в мавене.
Аноним 20/04/25 Вск 10:24:19 3435462 62
Подскажите, на сколько распространённая практика мультимодульности? У вас лично это используется? Все модули лежат в одной репе или в нескольких разных?
Аноним 20/04/25 Вск 10:29:59 3435470 63
>>3435454
>>3435428
При параллельной сборке у тебя логи пишутся из нескольких потоков в терминал или лог файл на CI и по итогу у тебя там каша. Если билд упадет, то потом хуй разберешься где что зафейлилось
Аноним 20/04/25 Вск 10:31:34 3435473 64
>>3435462
Зависит от контекста. Если никакие артефакты наружу не нужно отдавать, то лучше все хранить в одном модуле и разделение сделать на уровне пакетов.
Однажды я попал на проект, где лид обезумел и начал нарезать модули внутри проекта. Когда я увольнялся, в проекте было больше 60 модулей и ни один из них не использовался вне проекта
Аноним 20/04/25 Вск 10:41:10 3435495 65
>>3435473

Не, речь именно о том, чтобы раздавать. Допустим есть модуль, в котором есть логика, позволяющая добавлять таски в информационную систему. Ты можешь этот модуль приделать к проекту графического приложения десктопного. Можешь приделать к веб-сервису. Можешь приделать к сайту. Добавление такски всегда одно и то же. Но проекты десктопного приложения, веб-сервиса и сайта это разные проекты.
Аноним 21/04/25 Пнд 10:14:19 3436331 66
>>3435470
В первую очередь при параллельной сборке демоном вообще нихуя никуда не пишется пока не собралось. Записывается уже после сборки. Наверняка что-то придумали для ошибок раз научились логами управлять, потому что пока я наворачивал эту параллельную сборку я миллион фейлов наловил и всё получалось читать.
Аноним 21/04/25 Пнд 10:28:35 3436346 67
>>3435470
>При параллельной сборке у тебя логи пишутся из нескольких потоков в терминал или лог файл на CI и по итогу у тебя там каша. Если билд упадет, то потом хуй разберешься где что зафейлилось
У тебя при паралельном чтении постов, фразы смешиваются и в голове полная каша, которую хрен поймёшь.
>Упал билд - запусти однопоточный билд, делов-то. А если у вас каждый второй билд падает, то проблема не в мавене.
Аноним 21/04/25 Пнд 10:30:49 3436351 68
>>3436331
Это все блажь и от лукавого. Хуй забей на эти улучшения.
Аноним 21/04/25 Пнд 10:59:59 3436390 69
>>3435462
Ты про какие модули спрашиваешь? Про JPMS? Или тупо про какие нибудь мавен-модули?

>У вас лично это используется?

Мавен проекты на модули обязательно делим - чтоб прям со старта корневой модуль был packaging=pom. Есть ряд монолитных проектов, но на пользу им эта монолитность нихуя не пошла, когда руки дойдут - поделим и их. Вообще, за packaging=jar в корневом помнике впору по рукам бить.

>Все модули лежат в одной репе или в нескольких разных?

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

Лично у нас - реп под один продукт либо реп под одну команду. Периодически бывает что ряд модулей переезжает в отдельный реп или из репа в реп.
Аноним 21/04/25 Пнд 11:02:49 3436396 70
>>3436390
> Вообще, за packaging=jar в корневом помнике впору по рукам бить.
Что за хуйню ты несёшь, долбоёб? Не из тех ли ты дегенератов что в десятых носились по всему интернету и орали о том какое зло instanceof?
Аноним 21/04/25 Пнд 11:12:36 3436407 71
>>3436396
Нет, не из тех. Против instanceof ничего не имею. А вот из-за долбоебизма предтеч, не сделавших элементарную вещь которая упростила бы все будущие рефакторинги, пару раз приходилось расхлебывать последствия.

Ты че порвался то? Руки зудят?
Аноним 21/04/25 Пнд 11:14:00 3436408 72
>>3436407
Каким образом превентивное разделение на модули упростит хоть какие-то рефакторинги? Максимально поверхностная хуйня.
Аноним 21/04/25 Пнд 11:30:17 3436423 73
>>3436408
>превентивное разделение на модули
Ты где про превентивные модули вычитал в фразе "за packaging=jar в корневом помнике впору по рукам бить"? Нет буквально ничего сложного в том, чтобы сделать корневой помник packaging=pom. Какие нахуй преждевременные модули?

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

С корневым помником у тебя хотя бы есть инструмент, через который ты можешь зависимости от билд пайплайна быстро и легко отделить, для начала. А если есть скилл, можно вообще весь билд пайплайн аккуратненько в руте по профайлам разложить так, что все помники по читабельности будут по читабельности грыдле давать пососать.
Аноним 21/04/25 Пнд 11:45:52 3436444 74
>>3436423
> Ты где про превентивные модули вычитал в фразе "за packaging=jar в корневом помнике впору по рукам бить"? Нет буквально ничего сложного в том, чтобы сделать корневой помник packaging=pom. Какие нахуй преждевременные модули?
Ты куда код будешь писать, когда сделаешь корень pom'ом, долбоёб? В один из modules. Или в твоём случае единственный, что терминальная стадия шизофрении.

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

> через который ты можешь зависимости от билд пайплайна быстро и легко отделить, для начала.
У тебя этим занимается разделение блоков build и dependencies. Ей богу олигофрен.

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

Блядь, какой же идиот, постоянно приходит в тред и несёт такую хуйню что появляются вопросы а не ии ли это серет. Буквально тот самый омеган что пытается "за компанию" в разговор встрять и несёт околесицу от которой всем (кроме него самого) стыдно.
Аноним 21/04/25 Пнд 11:55:19 3436457 75
>>3436444
>долбоёб
>терминальная стадия шизофрении.
>идиот
>олигофрен

Да хули я распинаюсь блять перед каким то двачевым недоноском. У меня на проекте ты бы тише травы ниже воды сидел, чмо, либо с переломанными руками. Не хошь вести конструктивный диалог - пошел нахуй. Можешь слив еще засчитать как вы, двачевые дегенераты любите.
Аноним 21/04/25 Пнд 11:58:36 3436467 76
>>3436457
Привыкай пропускать мимо ушей оскорбления, ты же на сосаче, а то всегда придётся грызтись вместо попыток в разговор по сути. К тому же заслужил, ты ж несёшь хуйню полную.
Аноним 21/04/25 Пнд 12:04:05 3436480 77
>>3436467
Да мне похуй, че решил для себя то и несу. Шарю свой опыт анону, который задал вопрос, ни больше ни меньше. Мне ни тепло ни холодно от того, что недоносок двачевый мой пойнт не выкупил - у меня на проекте помники от этого свой пэкеджинг не поменяют.
Аноним 21/04/25 Пнд 12:06:33 3436486 78
>>3436480
Какой опыт? Притащил хуйню какую-то уровня инстансоф зло, когда спросили за неё разнылся "мам миня аскарбляют(((".
Аноним 21/04/25 Пнд 12:09:41 3436489 79
>>3436486
Да ты шиз блять, тебе уже кругом гуки на деревьях мерещатся с инстанс офами. Сходи уже в окно проветрись, траву пощупай.
Аноним 21/04/25 Пнд 12:11:07 3436490 80
>>3436489
Да ничё не мерещится, отчётливо вижу посты этого гука с пакейджинг=джар перед собой.
Аноним 21/04/25 Пнд 12:14:10 3436492 81
image.png 71Кб, 721x718
721x718
В общем, ситуация такая, у меня две бд - эластик и постгря и из-за особенностей эластика мне нада сделать сагу.
Предметная область база знаний, записки там и тд, ничего интересного.

Долго лежал, плевал в потолок, как бы это получше организовать архитектурно. В итоге пришел к такой структуре:
Есть базовая табличка notes, куда я кладу иммутабельные или уникальные поля, типа владельца, пути до заметки и прочей поеботы. Эта заметка так или иначе имеет связь с состоянием.
Состояние - это жизненный цикл заметки, типа `CREATE -> UPDATE -> UPDATE -> ...`.
Т.е. если я захочу изменить контент внутри заметки мне сначала нада создать новый стейт в таблице note_states и перепривязать (закоммитить) это новое состояние заместо старого в таблицу notes. Поскольку у меня есть два состояния и новое и старое, предполагаю, что тут вполне можно ебануть оптимистик локи.

Так вот, тут я думаю и вступает в дело сага. Т.е. я сначала создаю новый стейт. А потом запись, что надо бы закоммитить вместо старого стейта, на новый такую-то запись в notes. А потом отправляю это в кафку, которая эвент создаст.
Теперь, в saga_logs будут созадаваться записи типа CREATE IN ELASTIC -> REINDEX -> COMMIT IN ELASTIC -> COMMIT IN DB -> DONE
На любом этапе, если выяснится, что state_old_id не совпадает с тем, что лежит в notes или просто произошел пиздец, можно легко откатить все действия.
Также я планирую создавать в elastic под каждый стейт новый документ и наделять его состоянием типа COMMITED/UNCOMMITED. Таким образом я не не закорапчу поиск, поскольку все незакоммиченные можно просто отфильтровать да и вообще можно будет удалять незакоммиченные документы. Также сначала получается будут этапы создания документов, а потом два этапа коммита сначала в эластике, а потом в бд, что +- атомарно.

Насколько ебанутая схема и далеко от бест практис?
Аноним 21/04/25 Пнд 12:54:33 3436549 82
>>3436492
>две бд - эластик и постгря
Земля пухом
Аноним 21/04/25 Пнд 13:12:15 3436564 83
>>3436492
Может проще навесить поисковые индексы на простгрю? Ты же эластику ради полнотекстового поиска хочешь?
Аноним 21/04/25 Пнд 13:15:04 3436568 84
>>3436564
У меня в эластике векторный семантический поисковик (rubert-tiny2). Не получится такое в постгрю запихнуть. Тут или наоборот все в эластик переместить, но.. У меня есть many-to-many связи в виде тегов.
Да и это чисто петпроектик, почему бы не попробовать научится писать сагу..
>>3436549
Мех
Аноним 21/04/25 Пнд 13:23:15 3436577 85
>>3436492
А для тебя прям критически важна согласованность поискового индекса с данными в базе? Может ну ее эту сагу? Ну выдаст те индекс несуществующую в базе сущность в моменте - выкинешь ее из выборки перед отдачей и норм. Гугл же тоже твой бложек не сразу проиндексирует.
Аноним 21/04/25 Пнд 13:55:32 3436608 86
>>3436577
Проблема в том что несогласованность будет только расти. А чтобы не росла нужно отменять, а лучшее время для отмены это сразу как только было понято что будет несогласованность, т.е. в саге.
Аноним 21/04/25 Пнд 14:18:26 3436629 87
>>3436492
Когда нужно коммитить в две базы, то просто пушат месседж в кафку, а оттуда уже читают и пишут в постгрю и прочие эластики. Ты просто не читал кабана, чел.. Ты слаб и тебе нужно тренироваться
Аноним 21/04/25 Пнд 14:22:23 3436637 88
>>3436608
Ну она будет расти если ты совсем хуй забьешь. Я просто веду к тому, что индекс можно и независимо от отдельных коммитов в дб делать. Грубо говоря: пусть круд крудит на базе + каким то образом ведет учет того, какие сущности следует переиндексировать (хотя бы теми же эвентами в кафке, или флагом в таблице - не суть). А параллельно с крудом - по скедулу, например - выгребаешь все что нужно индексировать и индексируешь.
Аноним 21/04/25 Пнд 15:21:53 3436668 89
>>3436629
>Ты слаб и тебе нужно тренироваться
Он хотя бы не общается штампами.
мимо
Аноним 21/04/25 Пнд 16:12:53 3436733 90
>>3436629
>Ты просто не читал кабана, чел..
Какая глава? Там про сагу не слова, а 2PC не подходит, потому что это эластик.
>>3436637
Хороший вариант, у меня получается, если пользователь сохранил новое состояние заметки, дождавшись подтверждения, то перезагрузив страницу он будет видить старое состояние страницы, до тех пор, пока не будет завершена индексация. В твоем варианте он сразу увидит нормальное состояние, но поиск будет выдывать иногда бред, пока не будет завершена индексация. По сути надо выбрать, где бы наебать пользователя, навернооое твой вариант все таки лучше.
Думаю оставить note_states, поскольку я хотел пристроить это также для функционала сохранения истории и отката к прошлым версиям.
Табличка commits, не нужна, а saga_logs по сути просто логи будет вести.
Т.е. в итоге, я создаю запись в note_states и коммичу её в notes и меняю поле indexed на false. Потом сабмичу эвент в кафку, мол надо заиндексировать такой-то note_states.id в такой-то notes.id с бэкофом.
Теперь она будет долбится до победного, пока не закончаться попытки или state_id сменится на другой. Также можно делать
`update notes set indexed=true where id=? and commit_to=?` и ну гарантировать в какой-то степени, что не будет ABA проблемы, типа когда во время индексации пользователь обновит табличку (false -> false), и индексатор запишет true = false -> false -> true, хотя в итоге должно быть false.

В сущности вся разница будет только в том, что я созаю индивидуальную тасочку для каждой индексации, а у тебя будет большая такая таска для всех записок сразу. Хрен знает что лучше, но я хотел с кафкой поработать хоть немного, поэтому выберу первый вариант. И пасиба за рекомендацию~
Аноним 21/04/25 Пнд 16:25:50 3436749 91
>>3436733
Ты блин, так сказал... как отрезал нах. "Поиск будет выдавать бред"... Ну гугл тащемто тоже иногда выдает бред. На это можно двояко смотреть. Обязательная перестройка индекса на каждый апдейт твоих ноутсов может быть как бенефитом архитектуры, так и изьяном. Второе возможно если у тебя эти ноутсы большие и часто обновляются - тогда апдейт индекса будет отжирать у тебя производительность - если есть вебморда, возможно она начнет лагать. В то время как откапли ты перестройку индекса, сделай ее отдельным батчем раз в минуту, и тогда если за минуту чувак накидал те пять обновлений, индекс один хер перестроится один раз по последнему апдейту, а чувак не факт что что-то заметит, либо ему будет похуй.
Аноним 21/04/25 Пнд 16:45:43 3436774 92
>>3436749
Хмм, может тогда совместить два подхода? Сделать большую таску раз в 5 минут и дать кнопочку пользователю, мол переиндексировать прям счас..
Аноним 21/04/25 Пнд 16:59:01 3436789 93
Что могут на собесе спросить про кафку? У меня на прошлом месте была кафка, но я ее просто отключал при дебаге, чтобы не мешалась, чё она делала хз. Что можно рассказать про нее? Как ее используют в реальности? Вот так?
@Autowired
private final KafkaTemplate<String, String> kafkaTemplate;
public void send(String topic, String message) {
kafkaTemplate.send(topic, message);
}
И вот тут шлем в нее и читаем
@RestController
public class MessageController {
private final Sender sender;
private final MessageConsumer consumer;

public MessageController(Sender sender, MessageConsumer consumer) {
this.sender = sender;
this.consumer = consumer;
}

@GetMapping("/send")
public ResponseEntity<String> sendMessage(@RequestParam String topic, @RequestParam String message) {
System.out.println("Sent message: " + message);
sender.send(topic, message);
consumer.listen(message);

System.out.println("Sent message: " + message);
return ResponseEntity.ok("Message sent to topic: " + topic);
}
Похоже на реальность?
Аноним 21/04/25 Пнд 17:20:10 3436807 94
>>3436774
Представь себе - ты двачер. Открываешь блокнот для заметок а там кнопка "перестроить индекс". Твое лицо в этот момент?
Аноним 21/04/25 Пнд 18:13:25 3436846 95
>>3436807
Нуу, можно абстрактно это как-нибудь обозвать. Типа "синхронизировать". Что синхронизировать, с кем синхронизировать вопрос третьестепенный. В общем спасиба еще раз, надо по быстренькому хоть что-то накидать..
Аноним 21/04/25 Пнд 18:26:15 3436859 96
Это же стандартное решение. Получение сущности по id должно возвращать всегда последнюю версию, но поиск по изменённым полям может немного запаздывать.
Та же монга так сделана, да и многие другие движки баз тоже.
мимо
Аноним 21/04/25 Пнд 19:09:46 3436939 97
>>3436846
Я те просто намекнул, что двачеру какбэ во первых похуй, во вторых не его собачье дело, че у тебя там за кухня на бэкенде творится. Ты щас петоводишь, молодой и шутливый - у тебя еще есть опция попытаться решить проблему типично программерским методом. А тем временем реальный проект может быть упорот по UI/UX, и вообще вся галера ориентирована на клиента. Тогда тебе эту странную кнопку попросту не дадут добавить.

Удачи.
Аноним 22/04/25 Втр 11:26:02 3437299 98
>>3436774
Перестройка чего-либо по таймеру это всегда дегенеративный подход ибо ты регулярно будешь обрабатывать данные что не нужно обрабатывать никоим боком. Нужно реагировать.

мимо
Аноним 22/04/25 Втр 11:48:31 3437316 99
>>3437299
Ну с моей т.з. это просто откладывание момента обработки, причем централизованным способом. Что-то типа гц, который по кд собирает мусор. Почему этот подход дегенеративный мне не совсем понятно, раскрой мысль.
В принципе-то, если разбивать все на сингл таски и пихать это в кафку, то можно более точечно контролировать потребление, поскольку это очередь же.
Аноним 22/04/25 Втр 11:51:15 3437318 100
>>3437316
Так гц (по крайней мере классические, не знаю про новые подходы типо zgc, мб там что-то поменялось коли обещают независимость от размера кучи кала) тоже дегенеративен. Обойти всю кучу чтобы понять что отвалилось, вместо того чтобы сигналить когда что отваливается, ну не пиздец ли же.
Аноним 22/04/25 Втр 11:54:41 3437322 101
>>3437318
Зато это значительно упрощает работу с памятью для языков. Трейдофф между простотой и перфомансом/красотой. Для тебя я так понимаю пик эволюции обработки мусора - это борроу чекер или эти умные указатели?
Аноним 22/04/25 Втр 14:04:19 3437450 102
>>3437316
>>3437318

Ору. Дегенеративные GC это прям хорошо.

Так то они называются "генеративные", что означает что они работают на основе поколений (generations)
Аноним 22/04/25 Втр 16:03:41 3437558 103
>>3437299

Иногда приходится делать задания по таймеру. Иного пути нет. Например, я делал интеграцию с системой, в которой в таблице в базе данных выставлялся статус что такой-то документ готов к отправке по api и мне нужно было его считать, сформировать запрос и отправить по api. Это нельзя никак решить иначе кроме как поллингом по таймеру где будет селект из этой таблицы. Никто никакого события тебе генерить не будет и колбеков ни каких вызывать тоже, обычная база данных MySQL 5.5 и в ней таблица. Всё. Делай.
Аноним 22/04/25 Втр 16:05:45 3437560 104
>>3437558
Э слыш, ты тут со своими реальными задачами по разбору куч говна не вылезай, здесь солидные фантазёры.
Аноним 22/04/25 Втр 16:17:27 3437568 105
>>3437558

Да забей - на том мимокроке какой то максималист мамкин сидит походу.
Аноним 22/04/25 Втр 16:51:57 3437592 106
>>3437558
Debezium какой нить можно прикрутить?
Аноним 22/04/25 Втр 17:11:57 3437602 107
>>3437568
Тащемто нет. Я прекрасно осознаю что есть ситуации в которых локально человек нихуя не сможет сделать. Смысл был в том что глобально всегда есть решение лучше, и подумать над тем на самом ли деле ты ограничен в возможностях или можно сделать получше стоит.

тот самый мимокрокодил
Аноним 22/04/25 Втр 17:55:12 3437617 108
image.png 52Кб, 632x499
632x499
Джава-господа, это правда? С этим надо что-то делать?
Аноним 22/04/25 Втр 17:57:29 3437619 109
>>3437617
>эквивалентность типов
>equals()
Этот долбоёб даже близко не понимает что несёт.
Аноним 22/04/25 Втр 18:04:07 3437621 110
image.png 11Кб, 654x142
654x142
>>3437619
Мне кажется это нейронка.
>>3437617
Ну жаба действительно не позволяет перегружать ==, причем чисто принципиально, поэтому для структурного сравнения, тебе надо equals. Но этот метод можно сгенерировать, через тот же record.
Не понимаю к чему тут вообще приплели делегаты, поскольку функциональный тип, как известно, одно из немногих исключений,к который в теории типов принципиально не обладает свойством эквивалентности = его нельзя сравинвать и к нему ты не сможешь написать корректный equals метод.
Ну и ты можешь неявно наследовать, пик.
Аноним 22/04/25 Втр 18:06:58 3437622 111
>>3437621
> в теории типов
В какой ещё теории типов? В твоей влажной?

> его нельзя сравинвать и к нему ты не сможешь написать корректный equals метод.
По моему он скорее не нужен. Написать то наоборот просто, сравнивай класс и всё.
Аноним 22/04/25 Втр 18:13:47 3437626 112
>>3437617

>сравнение по ссылкам vs эквивалентность

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

>делегаты vs функциональные интерфейсы

Вот уж на что похуй так похуй. Любая такая несовместимость решается простым переходом от прямой ссылки к метод-референсу на похуях.
Аноним 22/04/25 Втр 18:19:50 3437629 113
>>3437621
>его нельзя сравинвать и к нему ты не сможешь написать корректный equals метод.

Замыкания можно было бы сравнить, в теории... но на практике - хуй, конечно.
Аноним 22/04/25 Втр 18:22:56 3437631 114
image.png 53Кб, 731x265
731x265
>>3437622
>В какой ещё теории типов?
Хм.. Ну да, есть же альфа эквивалентность, ну и eta conversion, хотя имплементация подобного.. Ну немного затруднительна.
>сравнивай класс и всё
Этого не хватит, лямбда же может захватить что-то с разными значениями. Причем более того, тебе нигде в спеке не гарантируется, что лямбды и дальше будут имплементироваться через анонимные классы и также там есть приписка, что это вэлью классы, и поэтому пожалуйста, не используйте лямбды в synchronized и не используйте с ними ==, посколку они могут в будущем не иметь identity.
>>3437629
Ну да, но это в принципе и правда не нужно. Мне просто непонятно как мы от сравнения пришли к делегатам..
Аноним 22/04/25 Втр 18:26:55 3437633 115
>>3437631
>это в принципе и правда не нужно

Мне - очень нужно(

Но мне не повезло, потому что лямбды в джаве на уровне байткода вместо каноничных анонимных классов (в которые даже можно откатиться с помощью какой нить ретролямбды) выполнены в виде метафакторно-бутстрапной хрени на инвокдинамиках, и я никак не могу сгенерить для инстанса лямбды equals... а как сука хочется...
Аноним 22/04/25 Втр 18:30:11 3437634 116
>>3437633
А зачем, если не секрет? Просто не представляю даже задачу, где это может понадобится.
Аноним 22/04/25 Втр 18:51:05 3437644 117
>>3437634
Долго рассказывать. Делал я просто один экспериментальный тул... и все нравится в нем, но лямбды сука всю мазу ломают вот этой вот своей особенностью...
Аноним 22/04/25 Втр 19:32:43 3437666 118
>>3437644
>>3437633
Какой ты у мамы особенный. Продолжай заниматься бесполезной хуйнёй чтобы убедить себя что они все скуфы.
Аноним 22/04/25 Втр 19:41:06 3437670 119
>>3437666
Лол. Это че за рандомный рвоньк?
Аноним 22/04/25 Втр 21:05:13 3437733 120
Аноним 22/04/25 Втр 21:30:35 3437761 121
174534632424259[...].jpg 37Кб, 604x453
604x453
>>3437621
>функциональный тип, как известно, одно из немногих исключений,к который в теории типов принципиально не обладает свойством эквивалентности
Всё это как водится, был пиздеж.

В теории функциональные типы прекрасно сравниваются: если для любой комбинации входных параметров, они выдают одинаковый результат, то типы эквивалентны. Просто на практике такую проверку эквивалентности, за разумное время, реализовать пока не получается. Но в теории всё как раз работает.
Аноним 22/04/25 Втр 22:01:39 3437778 122
>>3437761
Ну да, ты прав, я сам про енто написал в следующем посте. Просто предположил из основания, что Eq тайпкласс в хачкеле не сделан для стрелок, ну и вот чет предположение построил.. Давно все таки теорию не пересматривал, год прошёл уже.. эх, даже грустно что-то..
Аноним 22/04/25 Втр 22:24:51 3437794 123
>>3437778
Петь, где костюм брал?
Аноним 22/04/25 Втр 22:35:20 3437795 124
>>3437794
Там же, где и юбочку.
Аноним 23/04/25 Срд 00:21:36 3437840 125
Screenshot20250[...].jpg 293Кб, 2728x1229
2728x1229
Сап, подскажите по зарплатам. Я, имея 2 года опыта, когда устраивался в компанию, запрашивал 100к. Несколько месяцев уже работаю, но корёжит от мыслей, что мог больше запросить. На хабре вообще заоблачные цифры, хотя там в фильтрах нельзя указать количество лет опыта, только ебанутые термины типа джун мидл, я судя по нему меньше джуна получаю. Однако я из Беларуси, тут поскромнее зарплаты, но не настолько же. Может ли работадатель спустя 9 месяцев на перформанс ревью зп где-то на 60% поднять или только работу новую искать? Хотя я даже хз 60% это я опять мелочусь или дохуя хочу
Аноним 23/04/25 Срд 00:40:51 3437845 126
>>3437840
мне работодатель на перфоманс ревью только хуй за щеку поднял пока что
Аноним 23/04/25 Срд 01:19:17 3437850 127
>>3437761
>Просто на практике такую проверку эквивалентности, за разумное время, реализовать пока не получается. Но в теории всё как раз работает.
Это в общем случае невозможно из-за проблемы остановки.
Аноним 23/04/25 Срд 07:21:22 3437876 128
>>3437850
Да чё ты этого школьника слушаешь. Кто заставляет его сравнивать по поведению? По непосредственному коду (ну и замыканиям, хули, хотя это выглядит как какой-то сахар который в типы не лезет) сравнить и всё, в реальности даже код сравнивать не надо потому что есть классы. Только это никому не нужно. Нахуй блядь сравнивать лямбды?
Аноним 23/04/25 Срд 11:23:29 3438025 129
>>3437876
>По непосредственному коду
Проблема такого подхода в том, что если в тупую сравнивать, то лямбды типа
_ -> 1 + 9
_ -> 5 + 5
Будут ну совершенно разными и как их вообще можно сравнивать-то
>даже код сравнивать не надо потому что есть классы
А это предложение еще лучше, поскольку даже полностью идентичные лямбды, но созданные в разных местах будут иметь разные классы.

В общем смысле, наверное надо привести к нормальной форме сначала, если нормальные формы совпадают, то они эквивалентны.
Аноним 23/04/25 Срд 11:26:33 3438026 130
>>3438025
> Будут ну совершенно разными
Ну и?

> и как их вообще можно сравнивать-то
Нахуй тебе их вообще сравнивать?
Аноним 23/04/25 Срд 11:30:41 3438029 131
>>3438026
>Ну и?
Это же не так.
>Нахуй тебе их вообще сравнивать?
Я не тот челик, но вон та же идея решала эту задачу для поиска дубликации кода.
Аноним 23/04/25 Срд 11:48:37 3438048 132
>>3438029
> Это же не так.
Смотря что считать равенством лямбды. Это уже зависит от задачи, которой у тебя нет.

> но вон та же идея решала эту задачу для поиска дубликации кода.
Нахуй тебе искать дубликацию кода? И каким образом лябмды к этому относятся?
Аноним 23/04/25 Срд 12:00:54 3438054 133
>>3437840
Как потопаешь, так и полопаешь. У тебя всегда есть опция сменить работу, другое дело - будут ли тебе вообще где либо платить столько, сколько ты хочешь. 2 года опыта - ниочем, некоторые сеньки и за 10 лет реальной экспертизы и кгомпетенций за душой не имеют. Так что я б на твоем месте как минимум не корежился в саморефлексии. Устроился - уже хорошо. Многие вон и устроиться не могут...
Аноним 23/04/25 Срд 13:20:20 3438136 134
>>3438054
А кто работу найти не может? Ни одного такого поста тут не видел
Аноним 23/04/25 Срд 14:02:36 3438163 135
Аноним 23/04/25 Срд 14:03:17 3438166 136
Аноним 23/04/25 Срд 14:15:34 3438176 137
>>3438166
В смысле вкатуны? А кому ещё работу искать?
Аноним 23/04/25 Срд 14:24:13 3438181 138
>>3437592

Там древняя как сам MySQL так и сервак, который к нему имеет доступ. Ну даже если получится пробить через безопасников что я к этой базе буду подключаться с другой виртуалки, более современной, то всё равно исходная база на 10 летней давности MySQL и обновляться там никто не хочет, слишком трудозатратно. Такие системы наверное обычно живут до конца а потом их выкидывают и делают новые. Так что while(true) sleep(timeout) ...
Аноним 23/04/25 Срд 14:27:15 3438182 139
>>3438136
Залетный чтоли?

Последние года на весь /pr/ стоит вой вкатунов. Не ебу кто все эти люди, но хз каким глухим и слепым надо быть чтобы эту хуету не замечать. Наверное все это ж-ж-ж - неспроста...
Аноним 23/04/25 Срд 14:29:04 3438184 140
>>3438182
Можно хоть одну ссылку на такой пост в тредах с джавой?

Где чувак ноет, что долго ищет работу и не может найти, и там, не знаю, совета просит по этому поводу какого.
Аноним 23/04/25 Срд 14:33:39 3438188 141
>>3438181
Самое рофляное там даже не подключение с другой виртуалки. Чтоб дебезиум работал, надо на БД бинлог включать, и вот здесь то уже и может встать во весь рост бюрократический аппарат, да и вопросики совместимости не исключены.

мимо
Аноним 23/04/25 Срд 14:35:03 3438191 142
>>3438184
Ныли в 2022, 2023, мб ещё немного в 2024, сейчас уже нет смысла ныть. Это как ныть что спина болит — все и так знают что у людей хуёвый позвоночник.
Аноним 23/04/25 Срд 17:46:39 3438359 143
>>3438184
Я не могу найти 3 года опыт. Откликнулся на 7 вакансий, 1 отказ, 6 не просмотрели. Одна эйчарка сама меня нашла из сбера, сказала, что в сбере сейчас четырехэтапный собес. 1-ый базаришь с хрю, 2-ой делаешь час какой-то рефакторинг, 3-ий лайвкодинг, 4-ый техническое интервью. Я скипнул после 1-ой ступени, т.к испугался, я слаб в олимпиадном программировании, и что за рефакторинг такой, она объяснить не смогла. Ну моя проблема в том что я не откликаюсь, пока не работаю, думаю что должен изучить webFlux, т.к. это супермодно, пока не знаю зачем он нужен, если есть restTemplate и feign.
Аноним 23/04/25 Срд 17:51:44 3438362 144
>>3438359
> Я не могу найти 3 года опыт.

> Откликнулся на 7 вакансий


Чёто аж в голос хрюкнул
Аноним 23/04/25 Срд 17:52:26 3438363 145
>>3437840
Чё тебе мешает работая походить по собесам, прося больше? Тем более они все в телемосте сейчас, без камер. И если нарисуется варик, свичнуться.
Аноним 23/04/25 Срд 17:53:27 3438364 146
>>3438362
Ну там чел просит поныть, вот я импровизирую. Помогайте мне, давайте думать
Аноним 23/04/25 Срд 18:14:21 3438387 147
Из-за этих гадов мы без работы сидим.
Аноним 23/04/25 Срд 18:15:16 3438390 148
Аноним 23/04/25 Срд 18:20:45 3438397 149
>>3438054
даже если
> 2 года опыта - ниочем
почему он должен получать в два раза меньше велокурьера?
Аноним 23/04/25 Срд 18:29:58 3438413 150
>>3438397
Эти велокурьеры с 200к зп с нами в одном треде? Я тебе секрет открою, но курьеры получают зп не за часы и у них нет оклада, да даже трудового нет.
Аноним 23/04/25 Срд 19:05:45 3438438 151
>>3438397

А почему должен соразмерно или больше?

Хочешь получать больше - пиздуешь крутиться и доказывать что стоишь больше велошкурьера. Пиздуешь торговать собой на рынок труда. Душишся о десятки гейткиперских собесов на сытное место, либо крутишся в потугах релокнуться туда, где лишних денег больше. Либо растешь и берешь на себя больше обязательств и ответственности, становишься незаменимым и торгуешь этой незаменимостью (тогда могут и на 60% поднять). На худой конец, переквалифицируешься в курьеры, если как ты гришь им платят больше. А пока не доказал обратное, не то что для локального кабана - для любого мимокрока-двачера ты никто и звать тебя никак, и денег своих ты не стоишь. такие дела.

А то раскатили саморефлексию блять, что аж FOMO и "от мыслей корежит". Ну сходи пополни собой коммьюнити потешных доходяг с another-it, фанфик напиши там о том, как стыдно быть программистом. Это точно повысит твои акции.
Аноним 23/04/25 Срд 19:47:39 3438463 152
>>3434112
> лучше ракать в го
Верим
Аноним 23/04/25 Срд 20:37:03 3438529 153
>>3438463
Как твои успехи в раканьи? Какое впечатление от языка, тулзов и прочего? Расскажи, мне действительно интересно~
Аноним 23/04/25 Срд 20:42:10 3438536 154
>>3438438
Ты из какого города? В ДС 100 т.р. даже на еду не хватит, не говоря уже о том чтобы снять, например, квартиру. Почему кодер должен быть полубомжом каким-то, я из простыни твоей не понял.
Аноним 23/04/25 Срд 21:03:06 3438557 155
>>3438536
Да че ты доебался с инфантильным бредом каким то - "должен, должен".

Никто ничего никому не должен. Работаешь - значит всем доволен. Какая кому разница из какого ты города.
Аноним 23/04/25 Срд 21:11:48 3438568 156
>>3438557
Ты должен мне минет! Что б завтра, к восьми, был у меня дома! И не опаздывать! Понял!?
Аноним 23/04/25 Срд 22:10:29 3438590 157
>>3437850
>Это в общем случае невозможно из-за проблемы остановки.
1. Аналитически задача доказательства равенства функций вполне себе решается путем преобразования или нахождения значений при который функции не эквивалентны.
2. В условиях компьютерной программы, все типы так или иначе конечны и можно просто перебрать все значения. И никакой проблемы останова тут нет, есть проблема что надо перебрать слишком много значений. Но множество всех значений функции конечно доказательство этого факта оставим читателям.
Аноним 23/04/25 Срд 22:40:50 3438603 158
Бля, а как в идее многострочный курсор сделать без мышки чисто с клавиатуры?
Аноним 23/04/25 Срд 23:01:56 3438611 159
>>3438603
google://idea column selection mode hotkey
Аноним 24/04/25 Чтв 05:33:43 3438676 160
>>3434087 (OP)
Перестали писать рекрутеры. Раньше регулярно получал предложения пройти собес в сбер, озон или яшку. Прилетали приглашения в линкедин и на почту с телегой. Но начиная с января этого года тишина. Почему так?
Аноним 24/04/25 Чтв 05:39:38 3438678 161
>>3438676
Вот почему: >>3433673 →
Когда пришли за тобой, защищать тебя было уже некому.
Аноним 24/04/25 Чтв 07:12:17 3438686 162
>>3438676
Айти обслуживает бизнес. Когда экономика рухнум на айтишниках это сказывается первыми.
Расслабься, через пару месяцев в других отраслях начнется тоже самое. Хорошо когда у соседа корова сдохла!
Аноним 24/04/25 Чтв 17:46:09 3439189 163
>>3438590
>>Это в общем случае невозможно из-за проблемы остановки.
>1. Аналитически задача доказательства равенства функций вполне себе решается путем преобразования или нахождения значений при который функции не эквивалентны.
У нас машина Тьюринга. Такое решение нерелевантно.
>2. В условиях компьютерной программы, все типы так или иначе конечны и можно просто перебрать все значения. И никакой проблемы останова тут нет,
f(x, y) {return x+y;}
g(x, y) {while(true) ; return 0; }

Докажи мне, что они не эквивалентны, не зная, что у них внутри.
Аноним 24/04/25 Чтв 18:05:31 3439200 164
image.png 28Кб, 724x332
724x332
>>3439189
На самом деле return 0 не нужен.

Более того индетичные функции, ведут себя по разному, если редуцировать их в разных порядках...
Аноним 24/04/25 Чтв 19:48:16 3439299 165
Где взять ключ на intellij idea? у меня через 3 дня триал заканчивается. кодить в notepad не предлагать.
Аноним 24/04/25 Чтв 20:22:41 3439337 166
Аноним 24/04/25 Чтв 20:36:01 3439352 167
>>3439299
Сбрось триалку, че ты как этот? Не ставь ты какие-то китайские вирусы.
Аноним 24/04/25 Чтв 20:47:50 3439363 168
>>3439352
>Сбрось триалку
В новых версиях (с 2023) уже не работает вроде, там привязка к аккаунту.
Аноним 24/04/25 Чтв 20:53:21 3439368 169
image.png 30Кб, 459x259
459x259
image.png 116Кб, 1121x704
1121x704
>>3439363
Да кому ты лечишь? Вон у меня зис версия и все робит, я когда вернулся на линупс, нихуя не менял в скриптах и о чудо.. Все робит. Проблемы виндусятников, у которых жидея срет в регедит. Скрипт пик ну или линка - https://gist.github.com/Hedgehogues/123eb27100608d248cf8370e666b29ce/

Единственный минус, что я так и не настроил нормально системд и приходится каждый блядский ребут протыкивать, что я согласен на триалку.
Аноним 24/04/25 Чтв 23:03:50 3439393 170
>>3439189
>У нас машина Тьюринга. Такое решение нерелевантно.
Дебил, блядь! Ты же не можешь дискуссию из 3-х постов уследить! Хули ты выебываешься?
>>функциональный тип, как известно, одно из немногих исключений,к который в теории типов принципиально не обладает свойством эквивалентности
>В теории функциональные типы прекрасно сравниваются: если для любой комбинации входных параметров, они выдают одинаковый результат, то типы эквивалентны.
Теория типов - математическая теория! Там нет никакой машины Тьюринга и проблемы останова.

>>3439189
>не зная, что у них внутри.
Как компилятор может не знать, что внутри функции которую он компилирует?
Аноним 24/04/25 Чтв 23:51:58 3439408 171
image.png 101Кб, 1110x595
1110x595
>>3439393
>Там нет никакой машины Тьюринга и проблемы останова.
Да-да, а вот когда компилятор можно сломать комбинацией женериков, это другое, пынямать надо. Проблем при сабтайпинге ну совершенно нет, это все выдумки шарпистов.
Аноним 25/04/25 Птн 09:08:31 3439480 172
Выпиливание финализаторов это такая тупость. "Ыыыыы из рандомного треда вызывается", как будто у нас нет огромного апи экзекуторов на любой вкус и цвет.
Аноним 25/04/25 Птн 13:54:45 3439741 173
>>3439393
>Дебил, блядь! Ты же не можешь дискуссию из 3-х постов уследить! Хули ты выебываешься?
Это ты дебил. Если ты сам отмотаешь наверх, то увидишь, что я писал про проверку на практике. Ты часто на теории типов программы пишешь?

>Как компилятор может не знать, что внутри функции которую он компилирует?
О боже. Конечно в прямом виде бесконечный цикл это тривиальный случай. Суть проблемы остановки в том, что ты не можешь реализовать алгоритм, который проверит любой другой алгоритм на конечность. На любой умный компилятор найдётся ещё более хитроумный код, который он не сможет разобрать.
Аноним 26/04/25 Суб 16:45:58 3440693 174
Как в спринге вернуть клиенту не все поля в энтити а только часть?

Вот допустим у меня есть
```java
@GetMapping("/api/things")
Iterable<ThingEntity> things(Pageable pageable) {
return thingRepository.findAll(pageable);
}
```

В ответе я вижу массив со всеми полями в БД. Как вернуть только некоторые?
Аноним 26/04/25 Суб 17:18:00 3440723 175
>>3440693
Замути DTOшку на респонз и мапь то, что выгрузил через findAll. Возвращать Entity прям из рестовых эндпойнтов в целом - крайне хуевая затея.
Аноним 26/04/25 Суб 17:20:48 3440727 176
>>3440723
и они называют хибернейт УДОБНЫМ. Потом ещё при маппинге будет N+1, а то и стековерфлоу

>>3440693
выкинь хибернейт, возьми простенький jdbi, из результата запроса мапь сразу в дтошку. В селекте не забудь прописать только нужные поля, чтобы не гонять все
Аноним 26/04/25 Суб 17:26:18 3440731 177
>>3440727
>и они называют хибернейт УДОБНЫМ.

Полностью согласен с тобой. Хибернейт не нужен.

>Потом ещё при маппинге будет N+1, а то и стековерфлоу

При прямой сериализации энтитей n+1 случится еще быстрее, при этом еще и неявнее, и больнее. Маппинг - меньшее из двух зол.
Аноним 26/04/25 Суб 18:05:34 3440760 178
>>3437840
А что за компания? У тебя к курсу рос рубля зп привязана или к баксу? А в каких компаниях до этого работал и как? Как кстати в рб айти сейчас? На работа бай вакансий чет мало, вообще собесов много прошел? А то я все собираюсь походить по собесам, но никак не соберусь, все лень.
1000$ наверное самый низ вилки на миддла в рб. +500$ можно смело просить на ревью. х2 от зп наверное тоже возможно, но зависит от жадности конторы, если и дадут, то со скрипом, может начнут предлагать взять еще проект на полставки или прочую хуйню ненужную.
Аноним 27/04/25 Вск 06:45:00 3441002 179
>>3440723
>Замути DTOшку на респонз и мапь
В этом весь рак джавы. Поэтому ее сейчас отовсюду выпиливают и вакансий по факту нет на рынке. Дтошки, мапперы написанные вручную, потом тесты на мапперы. Блядь, вы безнадежны. Неудивительно, что кабанам это осточертело и теперь новые проекты стартуют онли на гоулэнге
Аноним 27/04/25 Вск 08:38:22 3441017 180
>>3441002
а на гоуленге как это происходит?
Аноним 27/04/25 Вск 08:46:23 3441022 181
>>3441002
Какие ещё ручные мапперы? Ты опять говна объелся?
Аноним 27/04/25 Вск 11:04:58 3441055 182
>>3441002
Это тебя блять ничего уже не исправит, клешнерукий скрежетатель. Давай еще ченибуть про гетсеты проблей, захистничек корпоративных позиций.
Аноним 27/04/25 Вск 11:34:18 3441071 183
Аноним 27/04/25 Вск 11:38:41 3441075 184
>>3441022
Те, который ты ручками пишешь. А потом на них юнит-тесты пишешь, гандон. Как же я рад, что из индустрии начали увольнять жавасуфидонов. В бигтехе теперь онли гошка или сишарп))
Аноним 27/04/25 Вск 11:41:31 3441076 185
>>3441075
Иди проспись, шиз. Я никакие мапперы руками не пишу, а вот про тебя не знаю.
Аноним 27/04/25 Вск 11:48:41 3441082 186
>>3441075
В твоих маняфантазиях их увольняют, ципсотина ебаная. Пиздуй в котел и сдохни там.
Аноним 27/04/25 Вск 11:56:12 3441090 187
>>3441076
Нахуя ты оправдываешься перед этим ничтожеством? Не этой псины сутулой собачье дело что и как ты маппишь. Он пришел сюда не конструктивные диалоги вести, а за струей в ебало.
Аноним 27/04/25 Вск 11:59:40 3441092 188
>>3441071
Meh, даже лень смотреть. EO с его меметичностью кончился где то в 2018м.
Аноним 27/04/25 Вск 12:04:48 3441097 189
>>3441076
Дтошку уже оформил? Ну чтобы энтитю не кидать клиенту в спрэнге, лол!
Аноним 27/04/25 Вск 12:09:41 3441100 190
>>3441097
Чё, совсем нечего уже в ответ высрать, да?
Аноним 27/04/25 Вск 12:12:59 3441102 191
>>3441092
Там всё старое.

Статические методы - плоха.
null - плоха.
Наследование - плоха.
type casting и рефлексия - плоха.
Гетсеты - плоха.
Паттерны singleton, DTO, Factory, ORM и MVC - плоха.
Что делать чтобы было хорошо - никто не знает.
Всё.
Аноним 27/04/25 Вск 12:41:07 3441118 192
>>3441102

>Статические методы

Вполне себе артефакт процедурного программирования. 256й любит говорить что ПП - это плохо, но на самом деле ПП - это вполне себе путь, хоть и довольно устаревший.

>null

По billion-dollar mistake уже кто только не прошелся. Это такой бородатый мем что я хз зачем его повторять. Наверное затем, что разрабы необучаемы и продолжают зачем то оправдывать эту дырищу в системах типов. С другой стороны, котлин немного расшевелил джавовое болото, и в последнее время разгоняется движ вокруг JSpecify, так что может не все так плохо.

>Наследование

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

>type casting и рефлексия

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

>Гетсеты

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

>Паттерны

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

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

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

>Что делать чтобы было хорошо - никто не знает.

Дело не в знании...

>Всё.
Аноним 27/04/25 Вск 13:01:15 3441126 193
>>3441118
> гавно! пруфав не будет! все знают!
Что-то по существу будет?
Аноним 27/04/25 Вск 13:02:39 3441128 194
>>3441126
Лол.

Озвучь причину своего подрыва пожалуйста?
Аноним 27/04/25 Вск 13:04:29 3441129 195
>>3441128
>нет ты парвался
Ясн.
Аноним 27/04/25 Вск 13:05:35 3441132 196
>>3441129
Ой, все, иди траву потрогай. У тебя двач головного мозга.
Аноним 27/04/25 Вск 13:14:31 3441135 197
>>3441132
>нет тыыыы!!!!!
Найс дегенерата потрясывает с того что оказалось что его стена текста которую он усердно натыкивал это просто понос из слов без единого пруфа или аргумента. "все знают", "если б был пистолет", "кто только не прошёлся", лол.
Аноним 27/04/25 Вск 13:17:56 3441139 198
>>3441135
Ну про null и наследование действительно "все знают". Это уже больше 20 лет обсасывается.
Аноним 27/04/25 Вск 13:20:21 3441140 199
>>3441139
>щас как ещё раз насру поносом и тогда это точно аргументом станет
Я не знаю. У меня нормально и наследование, и нулл работают. Может у кого-то руки кривые просто?

Что-то по делу теперь пукнешь или будешь на говно исходить?
Аноним 27/04/25 Вск 13:21:31 3441142 200
>>3441140
Покежь своих иерархию классов с наследованием.
Аноним 27/04/25 Вск 13:22:27 3441146 201
>>3441142
А пизду твоей мамаши тебе не показать?
Аноним 27/04/25 Вск 13:23:51 3441149 202
>>3441146
Не, не надо. Иерархию давай показывай.
Аноним 27/04/25 Вск 13:27:35 3441151 203
>>3441149
Знаешь, вот если попытаться привести на ум человека что не понимает переносные значения это будет ребёнок. Дети обычно воспринимают всё буквально слишком. Пятилетний даун ты или просто умственно отсталый, не знаю, но в любом случае, для самых тупых давай без красоты речи тебе я скажу:
Что сказать-то хотел?
Аноним 27/04/25 Вск 13:36:03 3441157 204
>>3441151
Дружище, ты утверждаешь, что у тебя "нормально работает наследование". И я просто хочу посмотреть на пример нормальной иерархии в проде, где больше 100 классов хотя бы, и все наследуются друг от друга.
Аноним 27/04/25 Вск 13:37:24 3441158 205
>>3441157
Кто тебя заставляет все классы наследовать друг от друга? Я же говорю, руки кривые.
Аноним 27/04/25 Вск 13:39:25 3441160 206
>>3441157
Чел, забей. Неужто ты не видишь что это порватка, которая в данный момент времени находится в тотальном отрицалове? Не тыкай говно палочкой - вонять не будет. Ему реально стоит сходить в форточку пропердеться - дай анону время.
Аноним 27/04/25 Вск 13:41:17 3441164 207
>>3441160
Начался самоподдув после того как понял что не вывозит защиту своей религии.
Аноним 27/04/25 Вск 13:49:15 3441171 208
>>3441158
Ну то есть у тебя нет наследования всё-таки?
>>3441160
Ну а вдруг алмаз в куче говна найдётся, и нам принесут схему с идеальным наследованием. А то мы все врём оказывается, обманываем себя и друг друга со своими композициями.
Аноним 27/04/25 Вск 13:52:33 3441177 209
>>3441171
Та забей, этот паарноик давно и стабильно рвонькает по одному и тому же паттерну, ничего ты там не откопаешь.

Я даже не до конца понимаю с чего он в этот раз то порвался. Я тащемто и не гнал на наследование, и изначально отметил что несмотря на принцип "composition over inheritance" тут не все однозначно. И опять шиз рвонькнул, да штош ты делать будешь.
Аноним 27/04/25 Вск 13:52:38 3441178 210
>>3441171
А что, между "наследовать всё от всего" и "нет наследования" ничего нет?
Аноним 29/04/25 Втр 09:31:23 3442436 211
Короче понял что вкатиться нереально, после полтора годов обучения, в чем не прав ?
Аноним 29/04/25 Втр 09:59:01 3442469 212
>>3442436
Всё так, не надо вкатываться
Аноним 29/04/25 Втр 10:25:24 3442506 213
>>3442469
пойду в девопсы, а вам соболезную. рынок мертв, массовые сокращения, нейросети уже подменяют мидлов
Аноним 29/04/25 Втр 10:38:44 3442534 214
>>3442506
Да, всё так, медленно ползём в сторону кладбища
Аноним 29/04/25 Втр 23:20:56 3443180 215
>>3440760
Финтех, скажем так, зп не привязана к другой валюте, фиксирована в бел рублях. По вакансиям да, не густо, но на джаву штук 5 вакансий нормальных можно найти. На почту HR пару раз написали, хотя на хх у них нет вакансий. Я бы потом даже хотел в какую-нибудь российскую компанию устроиться, там и рынок и зп больше, только пока что хз как это юридически можно сделать, если я не хочу всякие СНИЛСы и ВНЖ в РФ оформлять
Аноним 30/04/25 Срд 09:39:47 3443304 216
>>3442506
>Малышка думает, что найдет работу девопсом без опыта в сисадминстве или разработке
>Малышка думает, что нейросеть не умеет писать ямлы и пердолить линукс
)
Аноним 30/04/25 Срд 09:46:34 3443305 217
>>3443304
Я сейчас сисадмин, но почему то делал упор на java(успех знакомых подстегивал) + всякие ебланы говорили что девопс в сто раз сложнее, что на самом деле не так
Аноним 30/04/25 Срд 09:50:50 3443307 218
>>3443304
а в чем сложность пердоленья линукс с чатгпт? Все терминальное, с учетом если это опенсорм, отлично пердолится. Так же, в чем сложность чатгопоте составить ямл, если ему все нормально объяснить че-куда?
Аноним 30/04/25 Срд 09:52:15 3443308 219
>>3443304
>>3443307
Неправильно прочел, согласен что нейросеть может пердолить все (кроме сетевых железок, почему-то)
Аноним 30/04/25 Срд 10:01:08 3443310 220
>>3443305
Ааа, ну тогда ты реально всрал полтора года на хуйню без негатива. Тебе осталось буквально изменить название резюме на девопса и развернуть локально гитлаб, куб, стек для мониторинга и прочие баззворды из вакансий. Поковыряться в этом на выходных и спамить резюме везде. Хуй знает зачем ты вообще связался с джавой, а не питоном/го которые в 10000 раз полезнее для девопса. Я если что мимо пхпшник который пытается влезть в джаву, но из-за сокращений джавистов зимой план пошел по пизде.
Аноним 30/04/25 Срд 10:43:49 3443339 221
Аноним 30/04/25 Срд 10:54:44 3443346 222
>>3443310
Спасибо за мнение, тут уже психологический фактор, что сложновато будет слезть с джавы, на которую я дал себе установку она или смерть нахуй, так как была еще маленькая надежда что знакомые к себе могут взять, хотя об этом никто и не говорил, но пошедший по пизде рынок трудоустройства заставил задуматься что я мудак. План был, да и есть, все таки допердолиться до собеса (с волчьей помощью) и после жестких попусков, уже со спокойной душой , выгоревшем нахуй нутром полностью кинуть все силы на девопс
Аноним 30/04/25 Срд 14:06:45 3443502 223
image2025-04-30[...].png 124Кб, 740x200
740x200
>>3443305
>что на самом деле не так
Чет не очень верится, там же куча подводных типа всяких юидов юзеров, сигроупс, маразматических расположений конфегов в etc, и системд еще логи читать и чинить хуй пойми что. Ну и зависимости чинить...
Вот когда-то давно ебался с тем, что мне надо было подтянуть gtk+ в lsp и сборку, а дистрибутив особенный и не позволяет это так просто сделать, поэтому нужно создавать что-то вроде отдельной развертки с собственным PATH, щитай недоконтейнер, ебань еще та и что самое грустное, в других дистрах ебань была бы вероятно еще больше. Ну или вот из совсем недавнего, мне блять подсунули сборку на мавене, где в процессе она качает ебаный бинарник в линукс. Не знаю, какому гению пришла в голову такая светлая идея, но мне че, пришлось ручками декомпилить вызовы dynamic lynk, чтобы персвязать все это добро нормальным образом.
Для меня это какая-то ну лютая дрочка, может поэтому и кажется, что это гораздо сложнее чем просто писать кодек в идешке.
Вкатываюсь в джаву Вкатунидзе 30/04/25 Срд 15:41:32 3443600 224
Сап, учу джаву уже около 2 месяцев, изучил кор более менее(много не знаю еще, но думаю по мере изучения закрою темы, которые не знал). Сейчас попердолил сервлеты и тыкаю хибернейт. В мае начну спринг. Как у вас дела?
Аноним 30/04/25 Срд 15:53:55 3443606 225
>>3443600
Почему сначала хибер и только потом спринг? Странный порядок
Аноним 30/04/25 Срд 15:56:10 3443608 226
>>3443600
Сру в офисном толчке прям ща, дела бывали и получше. Спасибо, что спросил
Аноним 30/04/25 Срд 15:59:51 3443614 227
Пацаны! Мне рекрутер в личку стучится!

Найм воскрес!
Вкатунидзе 30/04/25 Срд 16:11:48 3443624 228
>>3443606
А что не так?
Щас вот сначала сделал приложение с jdbc, потом все на hibernate переписал
Аноним 30/04/25 Срд 16:13:30 3443625 229
Вкатунидзе 30/04/25 Срд 16:15:24 3443628 230
>>3443625
Попробовать, разобраться с сервлетами, плюс как говорил писал на jdbc и решил переписать все с хибером
Аноним 30/04/25 Срд 16:16:32 3443629 231
>>3443600
алгоритмы начал задрачивать?
Аноним 30/04/25 Срд 16:17:12 3443630 232
>>3443625
А нахуй хибер юзать со спринг датой? Чтобы что?
Вкатунидзе 30/04/25 Срд 16:18:14 3443631 233
>>3443629
Нет, зачем? Может быть когда будут на собесы через месяца 3-4 звать посижу. Нужно технологии учить мне кажется
Аноним 30/04/25 Срд 16:22:04 3443636 234
>>3443631
Лучше начать сейчас чтобы потом не ахуеть, параллельно. мое мнение
Аноним 30/04/25 Срд 16:22:11 3443638 235
>>3443630
Чтобы @Query нормально писать, репозитории генерить. Иначе че там, придется самому EntityManager распихивать, каждый метод расписывать. Еще не дай боже, вообще Criteria API использовать. Просто ужс. Впрочем учитывая то, что он легко переписал с jdbc там наверное что-то уровня CrudRepository.
Аноним 30/04/25 Срд 16:25:17 3443642 236
>>3443638
>что-то уровня CrudRepository
Да 2 таблички, связаны между собой по одному столбцу.
За 2 вечера где-то переписал
Аноним 30/04/25 Срд 16:34:01 3443649 237
>>3443642
С помощью каких ресурсов учишься?
Вкатунидзе 30/04/25 Срд 16:42:52 3443654 238
>>3443649
google, youtube, фантазия в голове когда пишу что-то
В основном смотрю технологию, повторяю за индусом, потом сижу сам пишу, а так читал Эккеля когда кор учил, хорошая книга
Аноним 30/04/25 Срд 19:48:14 3443803 239
Посоветуйте лучший способ изучить Spring Boot, если я уже знаю Java, давно на ней пишу но ванильно, без фреймворков. Но при этом знаю веб фреймворки Джанго для питона и Ларавел для ПХП. Для веба делаю проекты только на Джанге и Ларе.

Но сейчас мне нужно будет делать проекты на Java тоже и я не хочу это делать на велосипедах, точнее это ваще не варик, такую работу не примут. Хочу делать на Spring Boot но не знаю как его лучше изучить, чтобы без лишней хуйни, коротко и по делу что куда.
Аноним 30/04/25 Срд 21:06:47 3443855 240
Мда, теперь понятно почему вакансий стало так мало, особенно нормальных.
>Во время беседы с главой Meta* Марком Цукербергом на конференции LlamaCon глава Microsoft рассказал, что ИИ пишет 20-30% кода в репозиториях компании, а «некоторые проекты, вероятно, полностью написаны» нейросетями. Он добавил, что этот объём «неуклонно растёт».
По наблюдениям Наделлы, ИИ лучше справляется с Python, чем с C++.
>В конце апреля 2025 года во время отчёта о доходах гендиректор Google Сундар Пичаи заявил, что ИИ пишет более 30% кода для компании. В 2024-м он сообщал о четверти сгенерированного кода.
Аноним 30/04/25 Срд 21:21:09 3443873 241
>>3443855
Пиздеть не мешки ворочать.
Аноним 30/04/25 Срд 22:12:23 3443895 242
>>3443855
Как же безработным вкатунам нечем заняться. Сидят и хайпуют.
Аноним 01/05/25 Чтв 11:14:43 3444097 243
>>3443855

Чего только не напиздишь, лишь бы акции твоей компании росли.
Вкатунидзе 02/05/25 Птн 16:11:34 3445045 244
>>3444097
Факт, тоже так считаю, что все кто говорят о замене рабочих мест и о том что скоро ии будет работать за всех имеют прямое или через 1 руку отношение к ии и их капитал от этих слов увеличивается соответственно

Как дела у вас? Не пишу ничего 2 дня. Уехал в архыз на отдых. Первую строчку кода в мае напишу только в воскресенье
Аноним 02/05/25 Птн 17:18:05 3445103 245
>>3445045
Останутся спецы высококвалифицированные\сеньорного плана, они будут настраивать ии, чтобы те делали мидловые\джуновские задачи, уже ведь такое практикуются
Аноним 02/05/25 Птн 18:10:08 3445137 246
>>3443803
Если времени много, то лучше учить с обычного спринга, где бины в xml файлах описываются. В спринг буте прям очень много магии по сравнению с ванильной джавой и он будет восприниматься как новый язык и глубокого понимания не будет.
Для меня лучший способ учить всякие фреймворки - это видосы, где кто-то пишет с нуля полное приложение, постепенно добавляя фичи. Смотрю видос и пишу код параллельно с автором, останавливаясь, чтобы что-то обдумать, понять. Так понимаешь вообще как мыслить в рамках нового фреймворка, с чего начинать и как вообще все запустить. На ютубе была серия видосов, где автор писал аналог твиттера. Можно еще поискать какие-то сливы курсов по спрингу с юдеми на рутрекере.
Вкатунидзе 02/05/25 Птн 19:51:28 3445260 247
>>3445137
Я кор смотрел от юдеми, такое говнище. Думаю спринг такой же будет.

А как совет с видосами это база, также изучаю сейчас. Индусы люто впереди по обучающему контенту
Аноним 02/05/25 Птн 23:44:21 3445419 248
>>3445260
юдеми это что там же их дохуя, dmdev?
Аноним 02/05/25 Птн 23:50:29 3445421 249
>>3445137

Окей, попробую. Но немного раздражают индусы, я им не доверяю. Больше нравится когда белый человек нормально объясняет всё в видосе.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов