image.jpg135 Кб, 1024x1024
Java Thread №266 /java/ 3115562 В конец треда | Веб
💥🚀 Приведите свой код к уровню ВАУ с Java 22 - это просто обязательно!

🆕 Новые фичи:
— Супер-код: пишите код до super(); и this();. 💻
— Стрим-вечеринка: добавляйте свои собственные промежуточные операции, например, batch(). 🎊
— Запускайте Java как питона - в одну команду, без компиляции, даже если файлов море! 🐍

🔄 Обновления:
— Документация врубает короткую входную точку (void main() {}), заменяя неназванные классы на неявные - и это официально! 📄
— Встроенный кастрированный ASM, который ускорил сборщик мусора и освободил Java от зависимости от этой библиотеки. 🛠️
— Форейн функшен вылетает из превью, а Вальхалла уже вполне скоро будет на виду. 🌋

🔍 Изменения существующего:
— Обновлены шаблоны строк, переменные в лямбдах через _, структурированная многопоточность/скопед значения и вектор API - они прокачались, но остаются в превью/инкубаторе. 🎈

Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>3096681 (OP)
2 3115985
Какая инфа есть про T1 для стажеров ? ЗПхи, че за технику выдают, в целом мб чет рассказать можете
3 3116031
@SneakyThrows надо использовать только при чётком выставлении игнорируемых эксепшенов в value. В чём я не прав?
4 3116048
>>15562 (OP)
Шапку треда писал ДимСаул?
5 3116049
>>16048
Чат гптаул.
6 3116054
>>15562 (OP)

>Java 22


Уже 5 по счету компания пишет жава 22, а на собесе выясняется, что там JVM 22, а синтаксис до сих пор используется java 8 или максимум java 11, лул
7 3116055
>>16054
Ну и нахуй тут эти невыдуманные истории?
8 3116073
>>16054

кее. скуфы не могут выше жабы 8 прост
9 3116144
Уже, наверное, больше года применяю паттерн реставратор для организации работы с базами данных. Если понадобится сделать распределённую систему (пока что не понадобилось, одни копролиты пишу), просто налажу мессаджинг и постепенное обновление данных (в 99.9% случаев обновление с запаздыванием приемлемо).

До сих пор этот подход работает. В чём я не прав? Почему это сломается как только понадобиться сделать микросервисы? Нахуя нужны монго дб, спринг даты и прочий т.н. энтерпрайз кал если такой примитивный подход работает в т.ч. в энтерпрайз задачах и даже обеспечивает нихуёвый перформанс?
10 3116161
>>16144

>паттерн реставратор


Не существует такого.
11 3116175
>>16144
У меня тоже B2B калопровод на 0.00005 RPS, сижу судорожно изучаю кафку и изоляции транзакций, но не понимаю кому это может при-го-дит-ся, где...
12 3116192
>>16031
@SneakyThrows это костыль, которым контрят легасно помойное апи с чекедами.
13 3116194
>>16144

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


Это когда из бэкапов что то выковыриваешь что ли? Никогда не слышал о таком.
14 3116204
>>16192
Ну и смысл твоего высера? Как он хоть что-то мной сказанное опровергает, даже если бы был правдивым?
15 3116223
>>15985
ЗП нет, технику отбирают при входе в здание, ставят за станок.
16 3116330
>>16144
А применяю паттерн "калопровод" для управления обменом сообщениями между элементами распределенных систем
17 3116409
STICKY SCROLL НАКОНЕЦ-ТО
18 3116582
>>16048
как вы заебали с этим нонейм хуесосом из воронежа
19 3116585
>>16192
всё так
впрочем даже в Spring 6 дохуя таких мест с чекедами
20 3116609
>>16585
Пруф или пиздабол.
21 3116671
Правильно ли я понимаю, что в стеке хранится последовательность команд, которые выполняются в потоке?
22 3116734
>>16671
Нет, стек это абстрактная структура данных. Просто потоки используют её, в основном, таким образом.
23 3116769
Ссссссука, как же опшионал хорош. Бля, надо запретить нуллы нахуй, когда есть опшионал. Даже похуй на оверхед в перформансе, да, можно было бы и без него, но даже так это того стоит.
24 3116774
Так там ещё и оверхеда нет. Взял бенчмарк от растомана, что пару лет назад кукарекал про оверхед и написал статью, в которой призывал отменить злую медленную джаву за отсутствие зеро кост абстракций, и получилось что опшионал равен нуллу. Может он тупо в наглую результаты подредактировал, что возможно, может это развитие от 17 до 21 джавы, может грааль вм такой умный.

https://pkolaczk.github.io/overhead-of-optional/

Benchmark Mode Cnt Score Error Units
OptionalVsNull.sumNulls avgt 10 108,044 ? 0,102 us/op
OptionalVsNull.sumOptional avgt 10 108,042 ? 0,187 us/op
OptionalVsNull.sumSimple avgt 10 107,976 ? 0,071 us/op
25 3116994
>>15562 (OP)
Спринг бут приложение на локалхосте можно запустить без интернета?
26 3117016
>>16994

да только мавен клин не делай)
27 3117080
>>16769
Кек.

Ты просто не сталкивался еще со смешным пранком, где тебе надо сделать оверлодинг метода с опшеналом.
28 3117083
>>17080
В чём заключается пранк?
29 3117087
>>17080
>>17083
А, я перепутал оверлоадинг и думал про оверрайд. Ну да, забавный пранк. Только опшионал не для того, чтобы его в параметры методы ставить, он для ретурнов.
30 3117088
>>17016
Через mvn spring-boot:run можно же будет запустить со всеми зависимостями? Сори за долбоёбские вопросы, я студентота.
31 3117094
>>17087
В целом - резонно
32 3117152
>>17087

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


Он для чего угодно, не ставить его в параметры - это просто какой-то чел сказанул на SO и это возвели в ранг правила, якобы потому что это архитектурно плохой шаг, т.к. Optional сам может быть нул. То что он так же может быть нул на ретурне почему-то никто не вспоминает
dominating thonk.jpg115 Кб, 720x715
33 3117153
>>17088

чо блять

создаеш тег в битбакете с мастера

запускается пайплайн

в пайплайне девопс наговнякал mvn clean package; mv target/repo.version.jar ./

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

а в контейнере твое говно запустится командой java -Dfile.encoding=UTF-8 -Xms512m -Xmx1g -jar repo.version.jar
34 3117157
>>17152
Я не знаю, кто там что сказал, но ставить его в параметры смысла нет совершенно никакого.
35 3117162
>>17157
ну так тогда и в ретёрн ставить нет смысла, логика одна же
36 3117163
>>17162
В ретёрн смысл есть, так как в реальности встречается отсутствие значений.
37 3117178
>>17162
Если смотреть на опшеналы как на средство для null-free кодинга на говне и палках, ставить опшеналы в сигнатуры - оверкилл. Ты идеологически уже кодишь без нулей - ну так и дизайнь код блять без нулей. Пусть в сигнатуре твоих методов будут только нужные методу аргументы, а ненужные туда не суй даже как опшеналы. Всегда полагай, что аргументы твоих методов ненулевые. Если у метода есть опциональный аргумент, скорее всего его всегда можно разбить на два метода с аргументами обязательными.

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

Мимо
38 3117182
39 3117183
>>17178

>Пусть в сигнатуре твоих методов будут только нужные методу аргументы, а ненужные туда не суй даже как опшеналы.


Ну это было бы просто идеально, но к сожалению не всегда получается
40 3117193

> А вот ретерн - это другое.



Всего-то нужно вернуть простой советский "";
41 3117195
>>17193
Идея кстати при генерации заглушек реализаций методов возвращающих строку ставит автоматом возврат "" (и ещё для некоторых особых типов типо числа или опшионала свои значения, и нулл для всех остальных), вместо того чтобы выкидывать NotImplementedException() или вообще писать preventcompile;. Можно ли как-то эту хуйню отключить?
42 3117202
>>17193
Для стринги, допустим, отбрехался. А для всех остальных мыслимых типов, включая бизнесовые сущности, сможешь придумать такой же null-заменитель?
14460151941200.jpg46 Кб, 530x444
43 3117223
>>17202

Да я рофлил больше, бо сам уже вляпывался с npe в энтерпрайзных классиках с >1000 полей.
44 3117256
>>17083

>В чём заключается пранк?


https://pastebin.com/uywb2GPr
Bugayenko.jpg98 Кб, 400x400
45 3117259
>>17202

>>сможешь придумать такой же null-заменитель?


создавай лист с 0-1 элементом.
46 3117265
>>17259
Кстати Бугаенко то как раз топил за обьекты нуль-заменители, а опшеналы и полупустые листы хуесосил, если мне память не изменяет.
47 3117331
>>17265

>Кстати Бугаенко то как раз топил за обьекты нуль-заменители


А чем нуль-заменители отличаются от опшионал эмпти? Тем что там отдельный объект на каждый тип?
48 3117391
>>17331
Тем, что лучше годятся в роли шарика на носу клоуна Бугаенки.
49 3118244
>>15562 (OP)
Лид на проекте обезумел. Заставил всю команду писать тесты по классической (Детроитской) школе тестирования. Теперь воссоздаем весь граф объектов в тестах и пишем тесты. Старые тесты на моках все удалили, т.к. лид посчитал их хрупкими.. А как вы пишите тесты?
50 3118274
>>18244
Не знаю, насколько это хорошо для самой задачи тестирования, но, безусловно, очень хорошо для самоконтроля для предотвращения ООП-копролитизации, когда ни одну функцию нельзя вызвать в глобальном контексте без передачи ей всего приложения в качестве параметров.
51 3118279
>>18274

>функцию


Бля... куда ты лезешь, лол? Типичное приложение на джаве - это спринг круд из матрешки вида контроллер - сервис - репозиторий. Сервис при этом может вызывать дохуя других сервисов. Теперь дрочим new MyServiceImpl по 10 раз на тест..
Сама классическая школа тестирования утопия и говно. Работает онли на простых примерах из двух классов. В реальных энтерпрайз приложениях у тебя взаимодействие десятков классов на изи
52 3118281
>>18279
Ты хоть сам-то понял, что высрал?
53 3118295
>>18281
Успокойся, дебил. Вся команда страдает из-за таких как ты. Вместо понятно мокирования, теперь нужно дрочить весь граф зависимостей и все равно втыкать говностабы. Фу, блядь..
54 3118296
>>18295
Найс тупой анальник бахнул от того, что пришёл на сосач за поддержкой против злой мамклида, а его не поддержали, да так бахнул, что до сих пор ничего вразумительного не выдавил.
55 3118301
>>18296
Спок, кретин.. Я не собираюсь писать тесты по чикагски и воссоздавать весь граф объектов, лол. Ты никогда не работал на крупных энтепрайз проектах. Я просто как истинный лондонец замокирую зависимости и быстро все протещу
56 3118315
>>18301
Бессмысленное горение без единого аргумента по теме продолжается.
57 3118362
>>18244
У меня лид буллит тех кто пишет тесты. Говорит, что это трата времени для даунят. Надо фичи писать, а не тестовый кал

джава 5 кун
58 3118365
>>18362
Найс пидоран, сам-то он баги не фиксит и не страдает от них.
59 3118516
>>18244

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


А классика типа не хрупкая? Точно такое же говно вид сбоку.
Либо уж в ДДД упарываться как Хориков советовал, либо сразу интеграционные пишите.
60 3118520
Бля, недавно случайно наткнулся на Eclipse Collections либу. Оказывается можно иметь стримы без .stream,
вместо .map.collect писать сразу .collect,
можно иметь getFirst/getLast раньше 21й джавы!, можно иметь коллекции примитивов, просто более компактные коллекции, иммутабельность на уровне интерфейса. Странно что я раньше нигде не видел эту либу в проектах.

Жизненно, коллеги?
61 3118527
>>18520
ТЫ ЕБАНУТЫЙ ЛИБУ В ПРОЕКТ ТАЩИТЬ
62 3118528
>>18527
А в чём проблема? Не ом же собираем в этом треде. Строку в помник добавил и всё.
63 3118530
>>18528
Легитимейтли вижу проблемы с сериализацией.
64 3118533
>>18244
Никак нахуй, пишу код, меняю ветку в дженкинсе на свою, поднимаю свой под в аргосд, тесчу быстро пробегаюсь по своему говну, кидай юайщику делать и он там баги находит. Фичи горят, инвесторы недовольны, времени нет
65 3118535
>>18362
Двачую лида, надо либо писать компонентные/интеграционные, либо вообще не писать.
Моки хуеки показывают что все збс - на тестовом конутре все к хуям валится при первом же вызове. Оказывается в моки подсунули данные только для хэппи паса. Забыли что там бывают нулы и некорректные данные. А потом прилетает изменение фичи - и все тесты ломаются, половина времени уходит на их переписывание.
66 3118586
>>18535
Так это хуёвые тесты и написаны на отъебись.
Недостаточно в тикете описывать только фичу. Надо указывать список тестов.
67 3118591
Тупой спор. Тесты всего сразу помогают найти факт бага, юнит-тесты гораздо больше багов пропускают, но зато чётко показывают место и время фикса бага снижается до пары минут.
68 3118596
А ещё если у вас тесты ломаются часто, значит у вас по клавиатуре тыкают макаки, что не умеют сохранять обратную совместимость. Безусловно, иногда её ломать есть смысл, но тогда явно поломка тестов будет меньшей из проблем, и даже наоборот, она послужит хорошим индикатором того, что что-то сломалось.
70 3118657
>>18520
Ты только что Котлин.

map без stream череват, тем что он создает копию коллекции, и если у тебя серия map/filter/map/filter то у тебя будет ебовейший расход памяти на больших коллекциях
71 3118667
>>18520
Это всё полумера. Надо иметь поддержку экстеншен методов со стороны языка чтобы их так же легко было испортировать как просто класс, чтобы прям в идею был табкомплит этих экстеншен методов и предложение табкомплита. Вот это решение.

>>18657

> map без stream череват


Это тоже полумера, необходимо иметь поддержку implicit calls со стороны языка, чтобы list.map(mapperFunction) неявно разворачивалось чётко заданным в List (в т.ч. экстеншен методами) образом в list.stream().map(mapperFunction).toList().
72 3118701
>>18657

>Ты только что Котлин.


Не везде ты можешь притащить Котлин. У меня контора решила унифицироваться на джаве.

>Это всё полумера. Надо иметь поддержку экстеншен методов со стороны языка


С учетом того, что экстеншн методов не предвидится в джаве, я пожалуй возьму такую полумеру!
73 3118708
>>18657
Плюс к тому примитивы и коллекции примитивов в котлине невозможны, а это перформанс
74 3118715
Что если написать язык Java++, который будет надмножеством джавы (джава-код будет компилироваться его компилятором без проблем), но не будет иметь всех наболевших проблем jvm-копроязыков типо уродливого синтаксиса в петухлине, динамикодрисни как в груви и так далее? У кого-нибудь есть желание этим заняться?
75 3118753
>>18715
Стирание дженериков всё равно никуда не денется.
76 3118754
>>18753
Это меньшая из проблем джавы.
77 3118764
78 3118777
>>18715
Сама архитектура Java давно устарела. Виртуальная машина со сборкой мусора должна быть проще и не основываться на архитектуре фон Неймана, не должна подражать языкам C и C++, придуманным для низкоуровневого программирования.
79 3118778
>>18777
Да вроде наоборот всё очень хорошо на низком уровне. Джаве не хватает сахара.
80 3118787
>>18516

>А классика типа не хрупкая?


Нет, т.к. классика не использует моки и стабы, а только реальные классы приложения. Минусы такого подхода - нужно вручную инициализировать весь граф зависимостей. В типичном спринг приложении у тебя при попытке протестировать сервисный класс, нужно будет инициализировать 3-4 зависимости от которых зависит твой сервисный класс, а потом у каждого из этих классов может быть еще по 3-5 зависимостей, а у них еще по 3-5 зависимостей...
А лондонская школа ничего не тестирует и тесты суперхрупкие, т.к. ты просто затыкаешь все моками, которые потом будут падать при первом же рефакторинге
81 3118788
>>18657

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


Почитай обоснование методов в библиотеке коллекций котла и почему там так решили сделать. В 99.9999% случаев ты оперируешь небольшими коллекциями и дрочь со стримами ничего не дает. В котле есть сиквенсы сиречь стримы из джавы. Ну и то, что ты где-то у себя в джава коде обрабатываешь большие коллекции уже говорит о том, что ты пишешь лютый говнокод. Т.е. либо у тебя изначально стримы, либо ты написал говно и все тащишь в память
82 3118789
>>18596

>она послужит хорошим индикатором того, что что-то сломалось.


Нет, не послужит. Это лишь индикатор того, что ты используешь типичную лондонскую школу тестирования и обмазываешься каким-нибудь мокито. Это не проблема конкретной библиотеки, а проблема подхода. Там нельзя иначе. Ты подсовываешь мок и обрубаешь граф объектов, а потом дрочишь when thenreturn и т.д. При малейшем рефакторинге у тебя все посыпется как карточный домик. Ну и вишенка на торте (это ключевой момент, кста) - тесты твои говно-говна, т.к. тестируют внутреннее поведение, а не контракт. Т.е. ты литерально описываешь свою реализацию метода только в тесте и там видно, что твой код вызывает определенные методы зависимостей и т.д.
83 3118790
>>18591
Речь не про это. Если у тебя хэллоуворлд на три класса, то это кэл, чел.. Тут суровый энтерпрайз на спринге, где граф зависимостей какого-нибудь сервисного класса может содержать в себе по 15-20 других классов изи. Если писать по классике, то нельзя юзать моки - онли собственные классы
84 3118791
>>18535

>Двачую лида, надо либо писать компонентные/интеграционные, либо вообще не писать.


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

>Моки хуеки


Это легаси и от него отказываются. Моки сейчас дурной тон и от библиотек типа мокито отказываются, т.к. они плодят хрупкие тесты. Кроме того ты буквально тестируешь внутренне поведение, а не контракт, когда описываешь для мока какого-нибудь репозитория кейс, а потом этот мок дергает твой сервисный класс
85 3118792
>>18586
Нет, не так. Дело не в количестве тестов, а в их качестве. Тесты на моках - хрупкие. Тесты написанные по классике - устойчивые к рефакторингу. Но их писать значительно дольше
86 3118793
А кто заставляет с мокито тестировать внутреннее поведение? Мокито можно легко использовать и в классической школе.
87 3118794
>>18362

>Надо фичи писать, а не тестовый кал


У меня на проекте все точно так же. Катим фитчи без тестов, потом ручники месяц собирают баги, мы их кое как фиксим и выкатываем на бой. Затем уже клиенты начинают рвать анус от количества багов и мы их фиксим по ночам и в выходные
88 3118795
>>18790

> Тут вонючий кал на срыге

89 3118796
>>18794
То есть вы один раз сэкономили месяц на предварительном написании тестов, и теперь каждый раз с каждой новой фичей ваши клиенты рвут жопу. Ясн.
90 3118797
>>18793

>Мокито можно легко использовать и в классической школе


Нет, нельзя. В мокито ты описываешь конкретные вызовы методов и конкретные возвращаемые значения. В классике ты передаешь реальный объект класса со всей внутренней хурмой. В этом и отличие
91 3118798
>>18797

> и конкретные возвращаемые значения


Олигофрен, ты никогда не задумывался над тем, что значение может возвращаться в поля объекта, а сам метод может быть void?
92 3118799
>>18796

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


Не работает, если ты пишешь код по лондонской школе с моками. Тесты хрупкие и не учитывают реального поведения зависимости
93 3118800
>>18799
А я что-то про это говорил разве?
94 3118801
>>18798
Ты хуйню пишешь. Очевидно, что ты никогда не писал тесты на моках. Спокуху оформи, долбаеб. Значение у него в поле объекта возвращается, лол. Даун, у тебя классический кейс, это замокать метод, который возвращает значение
95 3118802
>>18801

>поток оскорблений


По делу что-то будет, срыг-инженер?
96 3118803
>>18802
Очевидно, что

>>18798

>значение может возвращаться в поля объекта, а сам метод может быть void



это типичный пример говнокода, который никогда не пройдет ревью. Ты хотя бы думал перед тем как это написать? Сейчас бы строить все приложение на подобных методах с сайдэффектами, лал
97 3118804
>>18803
Ну то есть теперь уже не нисущитсвуит врёёёти, а гавнакооодд рррррря. Логгинг у тебя тоже говнокод, да, срыг инженер?
98 3118805
>>18803
Ну и плюс докинь, петушок, каким образом то что это в твоём манямирке говнокод опровергает что-то по теме и доказывает, что метод всегда и только возвращает значение.
99 3118807
>>18805
Это ничего не меняет. Мокая даже воид методы, ты все равно пишешь по лондону и в конце это все равно приводит к хрупким тестам, которые нужно переписывать после каждого рефакторинга или добавления новой фитчи
100 3118808
>>18807

>ЯСКООООООООООЗАААААЛ!!!!!!!!!!!!!!!!!!


Может аргументацию какую-то притащишь?
101 3118811
>>18808
Тебе серьезно нужно объяснить почему моки и библиотеки для мокирования плодят хрупкие тесты? Сириоусли? Или ты курсовой вкатун и волчара?
102 3118812
>>18811
Да, объясняй. Потому что у меня за всё время использования мокито ничего хрупкого не получилось.
103 3118817
>>18812

>ничего хрупкого не получилось


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

Dependency dep = new Dependency();
ClassUnderTest cut = new ClassUnderTest(dep);

var result = cut.method();

// assert

или в дроченном мок стиле лондона -

Dependency dep = mock(Dependency.class);
ClassUnderTest cut = new ClassUnderTest(dep);

when(dep.someMethod(any())).thenReturn(...);

var result = cut.method();

//assert

Первый выдержит рефакторинг, если поменяется внутренняя реализация ClassUnderTest и контракт методов Dependecy. Второй - нет
104 3118818
>>18817
Дегенерат высрал портянку теста, но по заветам лондонской школы просто повторил уже написанное. Кто заставляет внутреннюю логику метода повторять, олень?

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


Так и в мок тоже можно подсмотреть, ёпта. Никогда не задумывался над тем почему any() не сделан по-дефолту? Потому что правильный юз-кейс это проверять, что было передано туда.
105 3118822
>>18817

> Dependency dep = new Dependency();


> ClassUnderTest cut = new ClassUnderTest(dep);



> var result = cut.method();



> Dependency dep = mock(Dependency.class);


> ClassUnderTest cut = new ClassUnderTest(dep);



> when(dep.someMethod(any())).thenReturn(...);



> var result = cut.method();


Ты похоже вообще не понимаешь задачу мокито. Если так просто инстанциировать Dependency бы было, никто бы не мокал. Мок нужен тогда когда для создания Dependency ты создаёшь ещё миллиард других объектов (в том числе тот случай когда ты вообще не можешь создать это из-за взаимодействия с копролит-апи на статиках).
106 3118823
Мок требует от тестируемого кода, только то что он тербует. Это по сути контракт. А в первом случае, без моков, ты от тестируемого кода требуешь подчиняться багам в зависимостях, потому что в случае фейла непонятно на ком ответственность лежит и что нужно править. Это не модульное тестирование.
Тогда говори, что не пишешь юниты, а пишешь e2e по спекам от кабана.
мимо
107 3118824
108 3118832
>>18818

>Кто заставляет внутреннюю логику метода повторять


Тесты на моках это и делают. Ты должен замокать методы зависимостей, которые дергает твой тестируемый класс. Иначе это не будет работать. А в классической школе ты не должен мокать и вытаскивать внутрянку зависимостей в тесты. Либо ты просто тупой, чел.. сорян..
109 3118833
>>18832
То есть ты должен повторить код потому что ты должен. Ясно, слив.
110 3118834
>>18822

> Если так просто инстанциировать


Боже... какой же ты тупой, блядь... Ну ясен-красен, что это просто пример. У твоего dependency может быть 100500 зависимостей. Сути дела не меняет - ты в тесте описываешь моки методов, которые дергает твой тестируемый класс и это приводит к протекающим абстракциям
111 3118835
>>18833
Бля, ты реально тупой? На моках ты по другому не можешь сделать, даун. У тебя тестируемый класс дергает определенные методы зависимости. Ты должен эти методы явно замокать в твоем тесте, чтобы тест прошел. Это подход лондона. В классике ты не используешь моки и просто передаешь зависимость как есть.
112 3118836
>>18834
Так каким образом это приводит ты когда-нибудь расскажешь?
113 3118838
>>18787
Хуита.
Во-первых, твой граф зависимостей в итоге упрётся в БД. Специальную тестовую БД делать для каждого теста? А ведь её ещё надо предзаполнить. В итоге это уже интеграционный тест получается, если не функциональный.
Во-вторых, при рефакторинге эти тесты тоже поломаются, граф зависимостей же изменится.
В-третьих, тесты с моками ломаются не так часто, если а) замокано общее поведение, а не специфичное и б) код сам по себе нормально написан.
У тестирования методов есть одна серьёзная проблема - не тестируются места на стыке методов. Если у тебя результат работы метода А передаётся в метод Б, то как ты их сам не затестируй, если А выдаёт данные в одном формате, а Б принимает в другом, то ты это никак не поймаешь. Это частично лечится только более жёстким ограничением типа возврата/параметра. Например, вместо инта передавать уинт, вместо строки enum или распарсивать в какой-то объект и.т.д., в каждом конкретном случае своё.
114 3118839
>>18835
Ну ладно, тейк про реимплементацию зависимостей принят, я понял, о чём ты. Я про другое. Я про чтение того что класс делает с помощью моков.
115 3118843
>>18836
У тебя в тесте явно описаны замоканые методы и их поведение, которые дергает твой тестируемый класс. В классике ты не мокаешь, а передаешь реальную зависимость и тестируешь онли вовзращаемое значение. Т.е. ты можешь поменять методы и их реализацию в зависимости, а тест не придется рефакторить, т.к. ты ничего не мокал и даже после смены контракта зависимостей все будет работать. В лондоне же ты мокаешь вызовы методов и при изменении контракта у тебя все в жопу летит
116 3118844
>>18838

>Специальную тестовую БД делать для каждого теста?


Для этого есть фейки и стабы. Фейк - это легковесная реализация какой-нибудь зависимости. Тем более не забывай, что БД это внешняя изменяемая зависимость, а она даже в классике заменяется на фейк или стаб
117 3118845
>>18844

> фейки


Ну и чем это отличается от моков?
118 3118846
>>18838

> Если у тебя результат работы метода А передаётся в метод Б, то как ты их сам не затестируй, если А выдаёт данные в одном формате, а Б принимает в другом, то ты это никак не поймаешь.


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

>Двачую лида, надо либо писать компонентные/интеграционные, либо вообще не писать


Ты не понял, чел. НИКАКИЕ тесты. Писать надо только ФИЧАКОД.
120 3118850
>>18849
Поддержу лида - зачем тесты? Чем больше багов, тем больше оплачиваемой работы. Писать тесты с фичей - это неоплачиваемая работа и претензии на перформанс ревью.
121 3118851
>>18850
Ну это уже в тред волоёбства и наёба кабанчиков.
122 3118852
>>18850

> Писать тесты с фичей - это неоплачиваемая работа


В смысле? Всё в рабочее время делается.
123 3118855
>>18852
Платят тебе за фичу, а не за тесты фичи и ждут, что ты сделаешь две фичи за отрезок времени, а не одну фичу и тесты. Васек, который рядом только пилит фичи, получит 5 за перформанс и премию х2 к твоей, а потом все баги закроет отдельными тасками и получит персональную премию от кабанчика.
База коммерческой разработки.
124 3118858
>>18855

>кабанчик-долбоёб спонсирует багодел


Опять же это вопрос не к тому полезно ли для разработки тесты писать, а к тупости кабанчика. Это немного разные вещи. Первый технический, второй в мвп или в б.
125 3118859
>>18855
За ci, контроль версий и ревью тоже заказчик не платит. Можно не тратить на это время и сразу деплоить в прод.
126 3118860
>>18858
Анальник, который выучил апи мокито (который в процедурном стиле на флюент инглише, чтобы даже макака разобралась) считает, что он то умный, а кабан дурак. Классика.
127 3118861
>>18860
Что-то по делу будет?
128 3118862
>>18859
Сразу на проде редактировать, компилировать, чо как маленький? Если коллега одновременно с тобой отредактировал тот же файл, надо написать на него жалобу, что он твою недельную работу похерил.
129 3118879
Есть три таблицы (сущности): company, employee, office.

Отношения: company-employee one-to-many, company-office one-to-many.

Представим, что в таблице company у нас 100 записей, в таблице employee 100 000 записей, в таблице office 1000 записей.

Вопрос:

1) Как в hibernate эффективнее всего настроить мэппинги?
2) Если у нас стоит задача вытянуть все данные, как бы мы построили эффективнее всего вопрос?

Спасибо за мнения. А ещё может кто-то знает годные книги по персистентности в джаве, и может порекомендовать — буду очень благодарен.
130 3118880
>>18879

> employee-company many-to-one

131 3118885
>>18879
Эффективнее всего, внезапно, писать sql руками и смотреть планы запросов. Хуебернейт за тебя не напишет.

>задача вытянуть все данные


Что значит все данные? SELECT * FROM table? Сделай три параллельных запроса, по одному на таблицу.
132 3118888
>>18879

>1) Как в hibernate эффективнее всего настроить мэппинги?


Никак. Надо ливать с легаси проекта. Сейчас бы в 2к24 хубирнейт использовать..
133 3118918
>>18777
То-то в суперпостооп языке го такая же сборка мусора и все круто.
134 3118919
>>18753
Котлин же решил эту проблему через инлайн инстанса Class<T>, гугл решил через TypeToken, из отдельный язык сможет
135 3118936
>>18778

> вжвжвжвжвжжвжвжв

136 3118939
>>18936
Был бы я мухой, я бы не предлагал развивать джаву, я бы сидел и обмазывался гетсетами.
137 3118943
>>18888
В прошлом треде анти-хибернейтовские вскукареки так и не выдвинули ни одного нормального аргумента или альтернативы для "2к24"
138 3118950
>>18888
Хорошо, что ты предлагаешь вместо хибера?
139 3118955
>>18885

>Эффективнее всего, внезапно, писать sql руками и смотреть планы запросов. Хуебернейт за тебя не напишет.


Как бы ты написал?
140 3118961
>>18943
JOOQ, jdbc
141 3118966
>>18879
Если ты беспокоишься об эффективности - пиши вручную запрос на аннотациях и отображай во проекции. Хибер достаточно криво делает запросы через иерархию, с кучей под запросов.
142 3118978
Блядь, как же я люблю оптимизировать. Я раньше дрочил на чистый код, но сейчас, мне кажется, для меня скорость работы важнее.
143 3118979

> Потом никакой cache и materialized view с индексами не поможет. С сотней many-to-many и еще полсотней many-to-one намапленных на SQL-ные селекты вместо JPAQL+ включен по умолчанию open session in view и ни одного @Transactional



Что тут имеется ввиду?
144 3119011
>>18667

>Это тоже полумера, необходимо иметь поддержку implicit calls со стороны языка, чтобы list.map(mapperFunction) неявно разворачивалось чётко заданным в List (в т.ч. экстеншен методами) образом в list.stream().map(mapperFunction).toList().


В скале были имплицитные параметры, наелись и сильно ограничили.

>>18788

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


Вас посетил Марти Фаулер, чистота кода удвоилась.
145 3119045
>>18978
Тогда рекомендую посмотреть Eclipse collections, они как раз оптимизированные по перформансу
146 3119267
>>18794
Если у вас так много багов то это либо ебать какая сложная система, либо у вас волчья стая с годом опыта на всех вместо разрабов.

>>ручники месяц собирают баги


Ну и процессы говно, они должны их сразу отдавать а не копить под релиз.
6030398192.jpg179 Кб, 750x1000
147 3119284
>>18791

>>время не сравнимо если сравнивать с юнит тестами


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

>>говно лучше чем моча


Читай пикрелейтед.
148 3119289
>>19284
Двачую. Пишу юниты в спринг калопроводах только на утил методы и на костюмные валидаторы.
149 3119303
>>18855

>>Васек, который рядом только пилит фичи, получит 5 за перформанс и премию х2 к твоей


Это уже от процессов зависит. Будь у меня помойка с КПИ я б тоже наверное забил бы на качество в угоду скорости...
Но у меня фикс зп и похуй как долго я делаю фичу, если я смогу обосновать что ТАК НАДО.
150 3119323
>>18943

>>анти-хибернейт


>>так и не выдвинули ни одного нормального аргумента или альтернативы для "2к24"


>>3100236 →
>>3100590 →
>>3101720 →
Там была целая ветка про жук, ты все пропустил

Сам его используй, но я хибером мало пользовался не могу однозначно сказать что удобнее.
151 3119441
>>19284

>для калопроводов - не подходят


Кто же виноват, что ты пишешь говнокод, который невозможно протестировать кроме как интеграционными тестами, которые можно часами гонять, лол

>Читай пикрелейтед.


Там типичная шарпомуха-говноежка, которая угорает по классической школе, но дрыщет в штаны показать пример где фигурирует больше 2 классов.
152 3119820
>>18791

> Работает на легких приложениях или микросервисах.


Ты долбоёб? Интеграционные тесты наоборот легче писать и они гораздо более лояльны к говнокоду.
153 3119833
>>18888

>Надо ливать с легаси проекта


>Java Thread


Я чуть кофе не подавился.
154 3119835
>>18979
Видимо то, что при таком раскладе хибернейт на каждом взаимодействии с иерархией энтити будет проворачивать огромное количество подзапросов, чтобы подтянуть все разветвления этой иерархии. И это просадит перформанс.
155 3119836
>>19833
Ну да, нужно ливать на го, там пишут как писали на джаве 20 лет назад, зато не джава, а значит не легаси, омномномном!
156 3120279
Чёт меня в последнее время подзаёбывают баги идеи. Куда съёбывать?
157 3120292
>>20279
Кроме жидеи есть только вскод.
158 3120303
Скачал вскод и что-то обзмеился с миникарты в правом верхнем углу. Хелсбар когда добавят?
159 3120360
>>15562 (OP)
Сегодня кросс платформенное десктоп приложение на javaFX писать плохая идея? Хотя из альтернатив c++ с qt бля...
160 3120367
>>20360
Отличная идея.
161 3120369
>>20360
Лучше электрон js. Ещё для котлина есть KMP, но он недавно появился.
162 3120409
>>20360
Сегодня да, в понедельник можно начинать.
163 3120591
Сегодня слил волка с собеса.
Жулик не пройдет.
164 3120598
>>20591
Пройдёт в соседней компании.
165 3120731
>>20591
Расскажи как это было
166 3120826
Читаете какие то блоги или новостные издания чтоб в теме быть?
167 3120841
>>20591
>>20598
У нас зепка ниже рынка, лучшая защита от волков.
168 3120842
>>20826
Блог спринга.
169 3120858
>>20841
Они заскакивают и на 50к ради опыта, только ничего не делают.
А делать придется тебе, потому что ты его нанял))

нанимаешь человека, платишь деньги а двойную работу делаешь ты.
170 3120959
173 3121603
>>21412
>>21415

> Asynchronous initialization of beans during startup


И нахуй это надо? На 10 секунд ускорит поднятие, и что?
174 3121606
>>21603
10 это уже дохуя. Теперь го еще более не нужен станет. Правда, ЦПУ на старте еще больше будет жрать. Да просто древнющие ишы запилили. Еще одна с 2008 года сделана наконец.
175 3121619
>>20858
Вот бы придумали способ платить человеку х0.5 первые 1-3 месяца и легально уволить его, если не перформит. Эх... но такого нет...
176 3121625
>>21606

>Теперь го еще более не нужен станет


Если писать как на го, то он и совсем не нужен будет. public static void main и вперед. Большинство различий в сравнении этих языков в подходах к написанию программ, а не в самих языках.
177 3121626
>>21606
Тем более кваркус же есть, там вообще старт мгновенный
178 3121633
>>20858

>>А делать придется тебе, потому что ты его нанял))


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

>>двойную работу делаешь ты.


А в чем сложность? ну будет 4 фичи в очереди, а не 2 - будут сделаны за 4 недели а не за 2.
179 3121636
>>21626
На кваркус переписывать надо, а спринг вот он, версию обнови - и полетели.
180 3121637
>>21606

>>10 это уже дохуя. Теперь го еще более не нужен станет


Если тебе надо поднимать за 0,3 секунды как в го - просто используй спринг натив с комплиляцией.
181 3121639
>>21636
Ну тогда как правильно сказали - Spring Native
182 3121640
>>21639
Он же еще не работает толком. Когда я последний раз пытался его на винде собрать, там куча лишних телодвижений требовалась.
183 3121644
>>21640
Ну то что нужно куча лишних телодвижений не значит что он не работает
184 3121695
>>21606

>10 это уже дохуя


Типичное приложение на спринге стартует +- за минуту-полторы. Твоя пердолька с "параллельной" инициализацией сэкономит ну максимум пару секунд. Именно поэтому все новые проекты пишутся исключительно на гоулэнге где сервис от момента старта до момента, когда он готов обрабатывать запросы тратит не больше 1 секунды
185 3121700
>>21639
Разве нативность не должна ускорить разве что запуск жвм, что и так практически мгновенный? А если тут идея в том, чтобы житу не приходилось прогревать, то какой смысл в ускорении запуска за счёт жита, если скорость запуска важна только разработчику и ему всё равну ту же компиляцию придётся выполнять, просто не при запуске, а, при, собственно, компиляции.
186 3121703
>>17331
Нуль-заменители - миф на самом деле.

Идея была - подобрать такой обьект, который по семантике как бы пустой, нулевой, но при этом это полноценный обьект с полноценным контрактом - ты можешь его передавать куда хочешь и не бояться NPE. А реальность такова, что не для каждого кейса такой нуль подобрать вообще возможно, не сломав семантику. А для каких то кейсов таких "нулевых" обьектов может быть вообще больше одного.
187 3121787
>>21633

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


>А в чем сложность? ну будет 4 фичи в очереди, а не 2 - будут сделаны за 4 недели а не за 2.



Сейчас ты берешь таску и делаешь ее, переходишь к другой. Все очевидно и просто. Получаешь свои деньги.

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

Если ты такое любишь, то к тебе тогда вообще вопросов нет. Есть много людей которые работают просто ради денег и будут делать любую грязную работу в it, лишь бы платили.
188 3121873
>>20858
Какой смысл волку идти на нищие 50к? Наоборот, явный красный флаг, когда специалист с годом+ опыта просится на 100к в третьесортную компанию.
Волк, по определению, мимикрирует под успешный успех, а опыт рисуют, поэтому ему не нужно на галеру "за опытом", ему нужно на галеру за деньгами.
189 3121912
>>21873

>Наоборот, явный красный флаг, когда специалист с годом+ опыта просится на 100к в третьесортную компанию


Это нормальная зарплата для человека с годом опыта. Я начинал с 15к в далеком 2012 году. Только год назад вышел на баснословные 200к
190 3121920
>>21912
Я бы сказал, что это минимально возможная зарплата для человека с годом опыта (и надеюсь, мы говорим о 100к, а не о 50). И тогда никаких шансов, что человек будет идти на те же 100к, а забрать готового специалиста с рынка можно за 150-200, за 100к работает человек, которого вырастили и то, уже начинает смотреть по сторонам, с улицы на такие деньги никто не пойдет, кроме проблемных.
Ну и жавист с опытом 8 лет, по определению, не может зарабатывать 200к, эту планку успешные берут уже в первый год, даже без волчизма, отсталые пересекают на 3.
191 3121935
>>21695

>>Типичное приложение на спринге стартует +- за минуту-полторы.


Зависитт от размера. Средний сервис у меня секунд 30. Но даже если там 10 минут, какая разница сервис обновит версию в 15-20 или в 15-30. Бизнесу похуй. Можно просто кнопку мержа раньше/позже нажать.

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


Таких сервисов, которые надо внезапно поднимать и потом опять тушить на дни/недели/месяцы - не так много. Это характерно для облачной структуры с наносервисами. Типичные сервисы работают всегда.
Да и то для этого есть нейтив. Запускается за секунды, но компилируется долго.
192 3121945
>>21935

>Но даже если там 10 минут, какая разница сервис обновит версию в 15-20 или в 15-30. Бизнесу похуй. Можно просто кнопку мержа раньше/позже нажать.


Нет, не похуй. Не знаю как у вас в жаве, но у нас сервисы крутятся в кубере и гибко масштабируются. Когда у тебя уходит всего 1 секунда от старта до приема первого запроса клиента, то скэйлинг сервисов проходит по щелчку пальцев. Появилась нагрузка - кубер автоматически запустил сервисы. Нагрузка спала - потушили сервисы.
193 3121946
>>21920

>>Ну и жавист с опытом 8 лет, по определению, не может зарабатывать 200к, эту планку успешные берут уже в первый год, даже без волчизма, отсталые пересекают на 3.


Коллега с 5 годами пока только приблизился к 200к, я с 3 тоже скорее всего не перепрыгну ее в этом году.
Но выходить из зоны комфорта тоже не хочется - удобные процессы, много свободы действий (выбираешь таки и технологии), ненапряженные условия, удаленка без какого-то контроля.
А я еще и не самый молодой и шутливый. Попал прям в ловушку скуфидона.
194 3121947
>>21945
А сколько у вас пользователей?
195 3121949
>>21920

>Ну и жавист с опытом 8 лет, по определению, не может зарабатывать 200к, эту планку успешные берут уже в первый год, даже без волчизма, отсталые пересекают на 3.


Зачем ты лжешь? Все зарплатные вилки открыты на то же гетмутче. 200к это зарплата сеньки. Даже я пропахав 10 лет в жаве-хуяве получал максимум 200к. Сейчас свичнулся в гоулэнг с понижением грейда и зарплаты до 150к. Время сытых зарплат прошло, а пороги того же мяскота оббивают вчерашние таксисты и курьеры
196 3121951
>>21700
Ну судя по бенчам нативные стартуют в 20 раз быстрее
https://www.baeldung.com/spring-boot-vs-quarkus
197 3121953
>>21700
Тут наверное влияет то, что Грааль создаёт большинство объектов на компиляции, всё что статический рантайм (static {})
198 3121954
>>21945

>>скэйлинг сервисов проходит по щелчку пальцев


Если нагрузка прям мгновенно и непредсказуемо появляется - ну ок, ебашь на спринг нейтив. Код даже переписывать не придется. Зачем искать пхпшников/гоферов и учить их писать бизнес логику ради этого?
199 3121955
>>21949
Ну это можно чисто российский рынок, за рубежом так-то больше платят
200 3121960
>>21955
Мы тут и обсуждает российский рынок в рублях. Зарубежка в рублях это про всякие какарачастаны - там и условиях жизни очень специфичные, обычно хуже. А зарубежка в доларах/евро - другой мир с которым нет смысла сравнивать.
201 3121966
>>21946
Я вот хз, в моей галере, несмотря на ученический договор, где тебе платят хлебными крошками со стола кабанчика, через год минимум зарплаты - 130, через два - 180, но люди либо уходят на 200+, либо перспективным сама контора вытягивает вилку.
Если раньше это можно было списать на региональные коэффициенты, то сейчас нет никаких проблем попердывать в диван в Мухосранске и работать на ДС.
>>21949

>>200к - сытая зарплата


Охуеть, при курсе бакса по 100р - это копейки, чтобы хватило чуть продержать до следующей подачки.
202 3121976
>>21966

>Охуеть, при курсе бакса по 100р - это копейки, чтобы хватило чуть продержать до следующей подачки.


Таковы реалии рынка. 300к и выше получают тимлиды и рукли отделов
203 3122005
>>21966

>Охуеть, при курсе бакса по 100р - это копейки, чтобы хватило чуть продержать до следующей подачки.



>Писать программы больше не выгодно. Российским программистам стали платить даже меньше, чем риелторам


https://www.cnews.ru/news/top/2024-04-13_sozdavat_programmy_v_rossii
Сдавай хату
204 3122016
>>21976
В моем манямирке - 300 вполне реально достижим на 3-5 годах опыта, ну а там уже можно и трактор заводить.
Да и возвращаясь к базовому комменту - волк не будет идти на 50, да и на 100 он тоже не пойдет, если уж накручивать, то накручивать, чтобы опыт выглядел солидно, а красивое резюме требует такой же красивой зарплаты в требованиях.
205 3122026
>>22016
Поинт в том, что таких зарплат нет

>а там уже можно и трактор заводить


Кому ты нахуй нужен, лол?
206 3122031
>>22026
Рак из ведра, ты?
207 3122050
>>22026

>Кому ты нахуй нужен, лол?


скуфидону ниприятна, лол
208 3122058
>>22050
Просто смирись, чел..
209 3122069
>>22026
Те, кто ковыряет копролит за <200к уже лет 10, точно не нужны.
210 3122071
>>22069
А кто нужен? Такие сейчас зарплаты, чел..
211 3122079
>>22058
Чего мне смиряться-то? Я уже там, лол) Смирись, если хочешь)
212 3122081
>>22079

>Я уже там


В Двугапуписе? Сириоусли, чел...
213 3122082
>>22071
Можно себя убеждать в чем угодно, оправдывая свое нищенское существование и отсутствие продаваемых навыков.
214 3122086
>>22082
Еще играет важную роль возраст. 30+ - ноухайр. А какие навыки продаются?
215 3122087
>>22081

>РЯЯЯЯ ВРИОТИ

216 3122095
>>22087
Ну так ты в Двугапуписе или в Амстердаме, Лондоне, Берлине?
217 3122099
>>22095
Достаточно сказать что я работаю на юникорна, чел
218 3122143
>>22099
Тебе из Двугапуписа виднее, чел..
219 3122416
>>22143
Скуф загорелся и горит, лол...
220 3122474
>>21951
Компиляция дольше в 65 раз (на 110 секунд), зато сэкономили 1,7 секунды на запуске. Вот это прогресс!
221 3122486
Почему контекст свитч не бесплатный?
222 3122544
>>22474
Что не так? Конпеляция делается один раз, а запуск много.
223 3122565
>>22486
нужно куда-то сохранить контекст, загрузить контекст
224 3122578
>>22544
На время запуска, когда оно меньше нескольких часов, не похуй только тогда, когда это время разработчика во время интенсивного цикла исправления и перезапуска. В таком случае комплируется и запускается примерно одинаковое количество раз.
image.png2 Мб, 1024x1024
225 3122610
226 3122612
>>22578
Чел, выше уже описали для чего это конпеляция нужна - мгновенно скалировать сервисы в облаках, где за нагрузку надо платить или запускать что то редкое. Там лишние 10 секунд запуска на каждом из тысячи сервисов - это счета на многие тысячи/миллионы долларов.

Если у тебя не гугл с хайлоадом - говно без задач.
227 3122626
>>22610

>спринг ботинок


Проиграл.
228 3122753
>>22612

>каждом из тысячи сервисов


вопрос только нужна ли тебе тысяча сервисов или там опять микросервисное безумие
так-то и миллион сервисов можно поднять, бешеной собаке семь верст - не крюк
image.png19 Кб, 560x120
229 3122778
>>22099

>я работаю на юникорна


Литералли who? Вот на этих что-ли?
https://unicorn.com/en/company-profile

Это же ноунейм галера, где нищие хохлы что-то там педалят на спринге за лоупрайс. ЕПАМ или Люкс и то солиднее в разы будут.
230 3122789
>>22778
Ну ты и скуфяра, конечно.
231 3122909
>>22778

>What Is a Unicorn?


>The term unicorn refers to a privately held startup company with a value of over $1 billion. It is commonly used in the venture capital industry. The term was first popularized by venture capitalist Aileen Lee. Unicorns are very rare and require innovation.


Скуф
232 3122965
Есть итт аноны, кто работал или работает на каких-то больших энтерпрайзах? Интересно как вы используете, и используете ли вообще аннотацию @Transactional.
233 3122985
>>22965

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

234 3123003
>>22985

> используем

235 3123004
>>22985

> используем

236 3123005
>>22965
Сру петушарперу на ебало.
237 3123064
>>22909

> $1 billion


Чё за нищеброды?
238 3123065
>>15562 (OP)
Есть какие-то библиотеки или приёмы для ускорения вычислений чисел с плавающей точкой?
239 3123068
>>23065
Да, библиотека называется C.
240 3123070
>>23065
В джаве оно из коробки ускорено до предела.

>>23068
Благодаря интринсикам и жиду на джаве скорость равна си.
241 3123079
>>23005
При чем здесь С#?
242 3123090
Есть здесь синьоры? Как часто вы кодите вне работы? Баланс в жизнь-работа соблюдаете, или вне работы ботаете книги профильные постоянно?
243 3123199
>>23090

> Как часто вы кодите вне работы?



Ну я крайний раз гирлянду на нг погромировал и переводил мониторинг с докер компоста на системд ибо заебало. Больше не припомню.
244 3123211
>>23064

>over $1 billion


сколько твоя компания стоит?
245 3123224
>>23065
Зависит, нужно смотреть конкретно твой код где ты считаешь эти числа.
Но стандартные приёмы - это конечно использование примитивных типов (float/double вместо Float/Double) и уменьшения использования указателей - то есть раскладывание твоил чисел (скорее всего) в массив, чтобы побольше влезло в кэш процессора.
Еще можно попробовать итерацию по этим массивам через индексированный цикл for (int i =0; ...; i++), иногда помогает, но нужно смотреть на твоём случае
246 3123228
>>23065
>>23224
Так же если ты в процессе вычисления очень часто вызываешь какие-то функции (скажем больше 100 раз за вычисление) - попробуй сделать их статическими, может помочь
247 3123232
>>23090
Баланс соблюдаю, кодю иногда, но просто потому что нравится. Книги не читаю, потому что по моему опыту абстрактное знание без конкретной цели применения 1) тяжело понимается 2) быстро забывается. Если что-то понадобится для конкретной цели - могу книгу почитать.
248 3123237
>>23232
Полностью с тобой согласен! НО, иногда без определённого теоретического знания, ты даже не будешь знать о неких возможностях.
249 3123240
>>23199
А основной свой опыт получал на практике, на проектах?
250 3123251
>>23237
Если такие знания и существуют, то за 10 лет нахождения в сфере и общения с коллегами я таких не встречал, но допускаю
251 3123256
>>23237
В основном все теоретические раскладки сводились к тому, что они либо все черезмерно усложняют на практике, либо вообще убивают производительность по единственной причине "так надо делать, умные люди сказали"
252 3123265
>>23065
>>23224
Кстати еще добавлю про раскладку в масивы - ОДНОМЕРНЫЕ массивы - это прям идеально (но не всегда удобно). Но это уже совсем хардкор, сначала попробуй попроще оптимизации

Кстати, ЯМР-анон, этот ты?
253 3123311
>>23065
Ещё конечно нужно использовать минимум аллокаций памяти. А это значит:
- если ты часто создаёшь какие-то объекты в процессе вычисления - старайся их создавать меньше и переиспользовать
- если работаешь с коллекциями - старайся резервировать их объем с запасом, чтобы лн гарантированно вмещал все ожидаемые данные и не расширялся по пути. Как пример для arraylist - ты ожидаешь 1000 значений - создаёшь new ArrayList(2000) на всякий случай. Для других можно что -то похожее. Для массива это просто new double [2000] (массивы быстрее очевидно)
254 3123438
>>23211
Нищий пидорюнь, причём тут я? Не способен в мышление без проекций?
255 3123446
>>23079
Видимо, пишешь вопросы в треде по делу.
256 3123472
>>22099

>Достаточно сказать что я работаю на юникорна, чел


Речь идёт о трехзначных суммах!
257 3123517
>>23438
А причем здесь проекции? Ты на простой вопрос не можешь ответить?
258 3123519
>>23472
Ну уверен у тебя-то речь идёт о больших суммах. О каких кстати?
259 3123520
>>23517
То есть причём тут я не скажешь? Слив принят.
260 3123532
Забавно смотреть как скуфидоны с визгами срываются в штопор отрицания, лол)
261 3123535
>>23520
Ты при том что ты собеседник в этом разговоре, разве это так сложно понять, скуфидзе?
262 3123544
>>23535
И что?
263 3123591
>>23544
Бля, реально трёхинтовый. Ну тогда ты был прав, такой скуф как ты за рубежом действительно никому не нужен.
264 3123597
>>23591
Не ворочайся, слитое.
265 3123673
>>23519
Ты тут уже десяток постов высираешь дёшевые понты, но так и не назвал его и не пруфанул.
ждём вскукареки про диванон
266 3124550
>>23068
>>23070
>>23224
>>23228
>>23265
>>23311
Спасибо, мне в итоге apache math имела всё необходимое.

>Кстати, ЯМР-анон, этот ты?


Не, я в треде вообще в первый раз.
267 3124555
>>24550

>Не, я в треде вообще в первый раз.


Как тебе у нас тут? Пожалуйста, поделись впечатлениями и поставь оценку.
pandemonica.png82 Кб, 260x374
268 3124718
>>24555

> Как тебе у нас тут? Пожалуйста, поделись впечатлениями и поставь оценку.

269 3124739
>>24550
Присаживайся, родной, сейчас добрый доктор Столяров пропишет уринотерапию.
270 3125046
>>16048
Отстаньте вы от Димки Соловьева, ему еще с хохлами в интернетике сражаться.
reactor.png69 Кб, 691x225
271 3125268
>>15562 (OP)
Может кто то объяснить как связаны фреймы реактора в дебаге с обычными фреймами пикрил
272 3125322
Tomcat 273 3125379
Блджад, помогите разобраться с Tomcat-ом. Поставил Eclipse, решил туториал по REST-API пройти, и там нужен Tomcat. Добавил его в Eclipse - написало, что Tomcat не установлен. Ок, скачал Tomcat с сайта, установил и тогда всё норм заработало.
Чего я не понимаю, так это почему, когда у меня Tomcat в Eclipse запущен, то Tomcat9w не распознаёт этого, и показывает статус "Stopped"? Это два разных Tomcat-а? Я правда запутался.
274 3125385
>>25379
Брачо,совет,забудь про ручную установку варника на томкат,спринг бут с встроенным томкатом бвл создан как раз для того чтобы ты не страдал,а мог сосредоточиться на написании своего супер сервиса,не противься прогрессу братка,пис,джа
275 3125389
>>25379
Я в идее томкатик запускал без проблем через плагин. Кстати, интересно, какой процент людей в этом треде сидит на эклипсе
1713286531914.jpg316 Кб, 1440x1028
276 3125427
Томкат пердолит в эклипсе
277 3125430
>>25385

Я не шарю в Спринг Бут (но как-раз собирался одним из следующих туториалов его пройти).
278 3125438
>>25430
Знать как все работает под капотом это всегда полезно,но я боюсь что ты на отладку и фикс подобных приколов потратишь столько же сколько на изучение сервлетов. Работать чисто с томкатом ты не будешь никогда
279 3125643
>>24550

>Спасибо, мне в итоге apache math имела всё необходимое.


О, спасибо кстати, хорошая либа, буду иметь в виду
280 3125672
>>25643
Мудрость апачей безгранична.
281 3125797
>>25379

Если что, я нашёл решение https://stackoverflow.com/questions/23655416/how-to-set-jvm-options-for-tomcat-instance-executed-from-eclipse
Похоже, что это всё-таки другой Tomcat, но непонятно, зачем тогда мне нужно было скачивать и устанавливать его отдельно...
282 3125801
>>25379
Томкат кал. Ставь стеклянную рыбу. Еще трендовый JSF + Primefaces изучишь.
283 3125832
>>15562 (OP)
А в вашей жабе есть нормальный клиент для редиса? Коллега посоветовал реддисон, но там забагованное говно написанное Никиткой Cockшаковым, который у себя на гитхабе плюется желчью и брызжет слюной, когда его в очередной раз макают в его говнокод и показывают, что он не работает. Проиграл с этого озлобленного уродца, который закрывает ишьюсы со словами "все работает!", лал!
284 3126073
>>25832
spring-data-redis
285 3126183
>>25832
Реддис темплейт бери и не еби себе мозги
286 3126290
>>25832
Проиграл с этого озлобленного уродца, который своими кривыми сальными ручонками не смог выполнить элементарнейшее действие — запустить реддисон, от чего побежал плакать разработчику и из-за чего был закономерно послан нахуй.
287 3126526
Есть тут динозавры, которые работали с Java Stored Procedures в базах оракла?

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

%еще могу извратиться и передавать параметры из массива, а дублирующийся код в цикле крутить, но это смешно%
288 3126550
>>26526

>Есть тут динозавры, которые работали с Java Stored Procedures в базах оракла?


Аж олдскулы свело.

>Насколько безопасно в них делать статические поля?


Что значит "безопасно"? Чего ты опасаешься?
289 3126558
>>26550
Да что откуда-то параллельно дернется то же поле и кривые данные будут. Или там похуй, оракл не даст?
image.png45 Кб, 300x168
290 3126576
>>26558
Не знаю как сейчас, но в 10 на каждую сессию создавался свой инстанс JVM. Если ты не будешь дергать процедуру из каких нибудь parallel query, то должно быть потоко-безопасно.

Но вообще, такой подход это говнокод, конечно же. Если статическая функция не имеет состояния, то и писать в статические поля она не должна. Всё должно передаваться в другие методы явно. Если параметров много: создай DTO или вынеси логику в отдельный класс и создавай новый инстанс на каждый запрос.
291 3126583
>>26576
Супер. Благодарю!
292 3126901
>>26526
Ну у меня сразу 2 вопроса:
- чего общего между статическими полями и переиспользованием кода?
- почему крутить код в цикле смешно?

если тебе нужен какой-то кэш на время работы функции, то закидывать его в статическое поле по-моему еще смешнее
293 3126939
Няши, такой вопрос. Нашел в спеке 9( https://gee.cs.oswego.edu/dl/html/j9mm.html ) жабы такое определение тотального порядка: In a (strict) total order each event is ordered with respect to every other event, resulting in a linear (sequential) chain of events.
Потом, смотрю на определение so: A synchronization order is a total order over all of the synchronization actions of an execution.

Правильно ли я понимаю, что это про одно и тоже? И SO линейна и точка?
294 3126942
>>25046
Литералли who? Чем знаменит, кем работает? Очередной провинциальный тимлид?
295 3126954
>>26939
У тебя в цитате ни о какой точке речи не идёт
296 3126957
>>26954
Ты не няша и даже не пупуня. Вот, что я тебе скажу.
297 3127017
>>21637

>Просто потрать несколько часов на компиляцию (которая в любой момент может отвалиться) чтобы сэкономить несколько секунд на старте

298 3127018
>>27017
Все компилируемые так работают. Но если тебе прям пиздец как надо запускать за 0,3 секунды - терпи.
299 3127019
>>27018
Проект на го собирается максимум за минуту с прогоном всех юнит тестов.
300 3127076
На моей галере начали переводить старые сервисы на Spring Boot 3.

Почитал ченжлог - не вижу особых преимуществ, когда можно и 2 версию на 21 ждк запускать.
301 3127158
В джаву надо добавить suspendable функции, но не для того, чтобы реализовать многопоточность в рамках одного запуска приложения, для этого совершенно хватает существующих методов, а для того, чтобы более удобно выполнять задачи, длящиеся несколько месяцев, имеющие стейт и прерываемые, например, каждую ночь на перезагрузку сервера. В чём я не прав?
302 3127162
>>27076
У тебя разве нет желания апдутить всё до последней версии просто потому что версия последняя?
303 3127167
>>27019
Если на джаве удалить все юнит тесты кроме двух то тоже будет собираться быстро.
304 3127186
>>27158
Это также можно реализовать в рамках существующей многопточки. Лучше жди structured concurrency.
305 3127187
>>27186
Каким образом? Я пока что вижу только убогое распиливание на миллион подфункций, сохранение стейта ручками после завершения каждой и восстановление при запуске.
306 3127213
>>27187

>Каким образом?


Используй прерывание, или вот такую штуку https://docs.oracle.com/cd/E17802_01/j2se/j2se/1.5.0/jcp/beta1/apidiffs/java/util/concurrent/CancellableTask.html#cancel(boolean)
Вообще без нормального тз я не понимаю в чем сложность.

>сохранение стейта ручками после завершения каждой и восстановление при запуске


Ну не надеятся жи на жидбренсов.

К слову, ответь и на мой вопросик~ >>26939
307 3127239
>>27213

> Используй прерывание, или вот такую штуку https://docs.oracle.com/cd/E17802_01/j2se/j2se/1.5.0/jcp/beta1/apidiffs/java/util/concurrent/CancellableTask.html#cancel(boolean)


И чем это поможет?

> Ну не надеятся жи на жидбренсов.


Я щас говорил не про фактический план действий, а про то, что хотелось бы видеть в джаве.
308 3127252
>>27239

>И чем это поможет?


Просто обертка.

>что хотелось бы видеть в джаве.


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

Сука и проигнорил мой вопрос. Ладно, в жопу этот тред.
309 3127285
>>27162
Да. Проблемы?
310 3127506
>>26942

>Очередной провинциальный тимлид?


Да, это все тот же форс хуилы с прошлых тредов.
311 3127566
>>27158

>В чём я не прав?


В том, что пишешь говнокод.

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

А так то, тулы для этого есть https://youtu.be/RLFQj2mPqUM?si=s6E2_CSSwQ6Zz1eQ
312 3127649
Есть тут ананасы, что проходили собес на сениора в Яндекс? Подскажите, какого рода задачку дают на системный дизайн?
313 3127987
>>27158
стейт переживающий перезагрузку сервера - это как-то выходит за рамки любого языка
314 3127991
>>27239

>И чем это поможет?


Не нужно распиливать функции обновляешь постепенно стейт в таске, когда приходит прерывание - сохраняешь стейт, потом восстанавливаешь.
1713470813871.mp43 Мб, mp4,
768x576, 0:27
315 3128043
Это пупуни?
316 3128405
>>28043
Да, только они куда-то пропали все
317 3128409
>>27566
Ты долбоёб? Я именно про это и говорил. Сейчас это решается нагромождением кучи ручных говносохранений, что, очевидно, ложат перформанс в сраку, а если бы была поддержка от языка этого, это было бы гораздо легче и быстрее
318 3128410
>>27987
Я тебе описал как это может быть решено в джаве...
319 3128412
>>27991

> потом восстанавливаешь


И как ты это собираешься делать с одной огромной функцией? С божьей помощью?
320 3128414
>>27566

> А так то, тулы для этого есть https://youtu.be/RLFQj2mPqUM?si=s6E2_CSSwQ6Zz1eQ


Это другое.
321 3128420
>>28412
Да хоть id в стейт пихать, а в функции, к слову в жабе нет функций, написать switch/case. У тебя фантазии вообще нет?
322 3128426
>>28420

> написать switch/case


И получишь кучу функций, просто запуск каждой будет ещё нагружен вычислением результата свич кейса.
323 3128429
>>28426

>нагружен вычислением результата свич кейса


Хуйню несешь.

>И получишь кучу функций


Пиши прям в кейсе. И я не понимаю, в чем проблема множества методов, если существует инлайн?
324 3128430
>>28429

> в чем проблема множества методов


Куча бойлерплейта.
325 3128434
>>28430
Множество методов = бойлерплейт? Ты ебнутый?
Вроде наоборот, йобаметоды антипаттерн. Или че там, мода поменялась уже
326 3128438
>>28434
Ты нарушение маняпаттернов и бойлерплейт не путай. Совершенно разные вещи. Бойлерплейт это когда ты пишешь объявление метода, потом в каждый метод хуяришь логику сохранения, потом при запуске выбираешь, какой метод запускать в зависимости от того, что насохранялось, и только потом пишешь свою логику.
327 3128442
>>28438
Пиздец ты шизофреник,страшно подумать что о тебе думают твои коллеги
328 3128443
>>28442
По делу-то что-то будет?
329 3128444
>>28438

>Бойлерплейт это когда ты пишешь объявление метода, потом в каждый метод хуяришь логику сохранения


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

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


Еще раз, это можно также выбирать в общем методе, который свитчкейсами. На самом деле я просто описал то, как в котлине это работает, не более. Хотя вот хз есть ли там прерываниия, но кейсы точно есть.
330 3128450
>>28444

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


И тебе уже ответили что получается ровно то же количество бойлерплейта, но ещё и нагрузка на обработку исключений.

> свитчкейсами.


Именно так это и работает прямо щас...
331 3128456
>>28450

>ровно то же


Верим.

>Именно так это и работает прямо щас...


И будет работать дальше. Изменений можешь не ждать. Нытье не поможет.
332 3128458
>>28456
Смысл твоего высера?
333 3128469
Вопрос от ньюфага, а где писать код? Как активировать intellij idea ???
334 3128473
>>28469

Ты из России?
335 3128475
>>28473
Да.
336 3128480
>>28475

Пизда.
337 3128482
>>28474 (Del)
Но мне нужна джава.
338 3128499
>>28469
Привыкать к eclipse
339 3128500
>>28469
Триалки регистрируй. Или ищи кряк на торрентах, но жидбрейсовое говно настолько баганое что лучше бы пользоваться последней версией.
340 3128512
>>28469
Ставь нетбинс, скотина.
341 3128541
>>28443
Нет,не будет
342 3128628
>>28409

>Я именно про это и говорил. Сейчас это решается нагромождением кучи ручных говносохранений, что, очевидно, ложат перформанс в сраку, а если бы была поддержка от языка этого, это было бы гораздо легче и быстрее.


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

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

И это, мы ещё не говорим про баги в коде, которые решаются рестартом процесса.
343 3128631
>>28499

>Привыкать к


земле
344 3128637
>>28628
И кто-то что-то говорил про необходимость это всё сохранять? Речь прямо шла про создание инструмента для автоматического преобразования компилятором функции в то, что можно легко приостановить и сохранить. Пускай все остальное как и раньше лежит на программисте.
345 3128717
>>28469

Eclipse, vs code, второе сильно пофичастее и поудобнее, а сделан vs code по сути на базе технологий эклипса.
346 3128721
>>28500

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


Очень, скачал с рутрекера какую-то 2022 версию - она рандомно примеры с книги запускает, то не запускает. В эклипсе/vs code все работает без проблем.
347 3128736
>>28721
Пример покажи хоть. Похоже на бред, поскольку непосредственно запускает жвм, а не поделие жидбрейнсов.
348 3128760
>>28736
примеры Хорстмана с его сайте 10 и 11 издание. Житбрейнс брал с ру-трекера.

Там первые главы - примеры без указания package. Вот на них оно спотыкается, как минимум. С эклипсом все без проблем работало.

> а не поделие жидбрейнсов.



Эта хуета игнорировала в системе java 21 настроенные переменные PATH и качала openjdk самостоятельно. Может инструмент и неплохой, может и лучший, но по началу разбираться что к чему мне не хотелось. Опять же нормальной справки по иделии, как дока vs code я в принципе не видел. Может хуево смотрел.
349 3128770
Это какой-то массовый псиоп нищих дидов с эклипсами? Ни разу за 3 года не испытал серьёзных багов, которые не решались бы простой перезагрузкой. И то бывало крайне редко
image.png22 Кб, 300x344
350 3128774
>>28760

>Там первые главы - примеры без указания package. Вот на них оно спотыкается, как минимум.


Ну т.е. фиксируем. Это ты запихнул некорректный код, а теперь руагешь иде, что она сама все не решила?

>Эта хуета игнорировала в системе java 21 настроенные переменные PATH и качала openjdk самостоятельно.


Ну я хз куда ты там тыкал, у меня все норм детектит. Рукожоп мб.

>как дока vs code


У мелкомягких очень хуевые доки. Типа ну там есть 100500 примеров для каких-то ситуаций, а в общем ничего не описано. Условно, там даже не написано, а где блять кнопка ран. А в примерах все через терминал. Нахуй мне тогда этот редактор собственно.
351 3128816
>>28760

>Житбрейнс брал с ру-трекера.


Зачем? Тебе комунити не хватает? Или тебе так понравился тул, что зажал 600 евро в год?
352 3128817
>>28469
Комунити версию ставь
353 3128881
>>28817
А как?
изображение.png278 Кб, 1920x1080
354 3128889
>>28774

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


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

> А в примерах все через терминал


Если честно - я ненавижу микрософт и это по сути главная причина почему я начал изучать java а не c#
Но ты сейчас врёшь и не краснеешь: https://code.visualstudio.com/docs/java/java-debugging#_configure

> У мелкомягких очень хуевые доки.


Буквально лучшая дока, что я видел за последние лет десять. И в редакторе и на этом сайте.
>>28770
>>28817
ПроцессорAMD Ryzen 5 5600H with Radeon Graphics, 3301 МГц, ядер: 6, логических процессоров: 12
16 гигов оперативы
И эта срань умудряется на этом лагать.
Спасибо, но я лучше и дальше на эклипсе и vs code поеду.
монгол.jpg37 Кб, 650x650
355 3128930
356 3129000
>>28889
Какие у тебя задачи, что ты выбрал джаву? Судя по коду на скрине тебе шарпы подойдут больше. Ты говоришь про ненависть к майкрософту, но
1) Сидишь на их игровой прошивке вместо ОС
2) Собрался писать код в их редакторе кода
357 3129011
>>29000
Игровая прошивка > безигровая прошивка
community.PNG161 Кб, 1574x835
358 3129039
359 3129053
>>28889

>ПроцессорAMD Ryzen 5 5600H with Radeon Graphics, 3301 МГц, ядер: 6, логических процессоров: 12


>16 гигов оперативы


>И эта срань умудряется на этом лагать.


>Спасибо, но я лучше и дальше на эклипсе и vs code поеду


Чел, у меня проц 10летний и на нем не лагает (3570k)
360 3129058
>>28930
что не так?
361 3129068
>>28889

>Но ты сейчас врёшь и не краснеешь:


Ты типа читать не умеешь? Это дебаггер. Не равно запуск как бы.
362 3129082
Оцените уровень команды, где """мидл""" не знает, как работает варарг.
363 3129091
>>29082
Так может он с другого языка пришел.
364 3129092
>>29091
Нет. Он года 3 уже работает у нас.
365 3129100
>>29092
Ну в любом случае не знать как работает та или иная конструкция в языке это наверное ОК, главное уметь быстро разобраться что к чему. Если эти варарги нигде не используются в проекте, то в памяти такие знания могут быстро забыться.
366 3129106
>>29082
Что такое варарг

мимо сеньор
367 3129107
>>29092
3 года на одном проекте = человек, который достиг своего потолка как по зарплате, так и по знаниям. Сразу вангую, что платят ему меньше 200к.
368 3129109
>>29082
Сколиоз ебаный.
image.png11 Кб, 400x176
369 3129114
>>29106
зис. Но я не оч понял, что значит знать, как он работает.
370 3129116
>>29114
Хуясе,у этой поеботы есть отдельное название
371 3129141
>>28770

> Это какой-то массовый псиоп нищих дидов на линуксе? Ни разу за 3 года не испытал серьёзных багов, которые не решались бы простой переустановкой шинды. И то бывало крайне редко

372 3129195
Мнение?
374 3129238
>>29196
>>29195
Просто какие-то попугайчики. Дальше что?
375 3129243
>>29106
variadic arguments
376 3129268
>>29106
Синтактический сахарок для отправки ArgumentType[] muhArgs методам. Учитывая, что так и так переменное количество переменных остаётся массивом, то вообще насрать. И если коллеги этого "мидла" не могут разобраться, что он имеет ввиду, посылая методу массивы, то мои соболезнования, они не лучше.
мимо безработный, штудирую книжку из шапки
377 3129297
>>29000

> Какие у тебя задачи, что ты выбрал джаву?


Бабок заработать.

> Судя по коду на скрине


Это не мой код, а Хорстмана.

> 1) Сидишь на их игровой прошивке вместо ОС


Линакс на десктопе потешная вещь:
1. Постоянная ебля с wi-fi. Все дрова что там есть - кривые.
2. Ебля с вайландом/гномом/ксоргом. Вечные проблемы с хибернейтом.
3. Ебля с wine.
4. Из десятка поддерживаемых fs - нормальной нет. Рассыпаются все.
5. Дистрибутивов нормальных нет.
378 3129397
>>29297
4. zfs.
5. арчик

>Бабок заработать.


Не заработаешь. Ты тупой и ленивый слишком.
379 3129399
>>29397

> 4. zfs.


Мусор для которого надо 4 гб оперативы и сторонний nongpl модуль ядра. А в линаксе апи в ядре такое штабильное ммм.

> 5. арчик


Прыщи выведи сначала, а потом эту хуетенюшку советуй, лолец малой.
380 3129400
>>29268

>малой


Ты еще и скуф, фу.
381 3129406
малой, ты ещё кодить на с++/qt или с/жтк посоветуй.
382 3129422
>>29406
Всяко лучше электрона. На котором вскод написан)
383 3129430
>>29297
Бабки сейчас в голанге, это новая игрушка у энтерпрайзных бумажных архитекторов.
384 3129471
>>29430

> Бабки сейчас в голанге


>сертифицирован 3 .net


>java 1.5 - 1.8


>микрософт машет хуем разрывает контракты на ms sql, закрывает azura, блочит комунити студию к загрузке.


>автокад блочит и перадки.


> голанг


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

Я лично жду когда венду заблочат удалённо на всех компах этой страны. Вот тогда можно будет бабок нарубить.
385 3129507
>>29196

>in OpenJDK 8


Дальше не стал читать.
386 3129509
>>29471
А какое отношение тут имеет автокад, микрософт и джава к голангу?
387 3129630
>>29471

>>сертифицирован 3 .net


>>java 1.5 - 1.8


это к чему? что никто ничего нового пробовать не хочет?
388 3129637
>>29471
все сейчас пишут на гоулэнге
389 3129670
>>29400

>имплаинг я отвечал итт до этого


Стихни, шиз.
390 3129682
Самое смешное, это смотреть на людей которые ругают джаву за бойлерлейт и одновременно нахваливают го за """простоту""".
391 3129719
>>29637
Это просто мода разгоняемая бигтехами. Под их нужды этот язык нужен, поэтому надо чтоб на него переходили и все остальные, чтоб не выращивать кадры самим из пхпшников.
392 3129776
>>29682

>которые ругают джаву за бойлерлейт


Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.

>>29719
ИМХО уровень в условном яндексе/вк/озоне/авито будет повыше чем например в тинькоффе или сбере. Не говоря уже про остальные банки.
Джава это нынче исключительно банки, финтех и энтерпрайз. Ну то есть бабки зарабатывать можно, но интересных инфра проектов, на которых можно хорошо качать технические скиллы, практически нет, это как раз на гоуленге делают нынче.
393 3129797
>>29776
что и зачем качать? Качаешь скиллы, чтобы зарабатывать бабки, если успешно уже это делаешь, то зачем идти в гоуленг?
394 3129824
>>29797

>что и зачем качать


Что качать?
- concurrency
- сетевой стек, сетевые протоколы
- общая инфра, кишочки докера, кубернетиса
- кишочки работы движков СУБД

Вот как минимум 4 направления для бекенд разраба.

>>29797

>Качаешь скиллы, чтобы зарабатывать бабки, если успешно уже это делаешь, то зачем идти в гоуленг



Дело не в гоуленге, а в том, что нужно искать себе хороший проект, где можно будет вырасти в знаниях по части инфраструктуры, а не просто стать очередным экспертом в бизнес-процессах очередного предприятия (с таким успехом можно в 1С вкатываться, так как область применения очень похожая).
И так уж случилось, что более технические инфра задачи решают на гоуленге, а автоматизация бизнес процессов ,электронный документ, финтех, системы всякого учета - это скорее жаба.
395 3129870
>>29637
я не пишу
396 3129874
>>29682
Именно так, я этому переобуванию в прыжке каждый раз удивляюсь. Go буквально обрезанная джава 1.4, но это круто, потому что не джава, хотя на джаве можно писать так же как на Го. Или например когда это кто-нибудь гордился что в джаве нет какой-то стандартной фишки? А Гоферы только выигрывают что в Го нет эксепшенов, нет банальных дженериков! и гоферы ноют что нужно копипастить все по 50 раз, но Го все равно круто, джава отстой. Это пиздец как это все в голове умещается.
397 3129875
>>29776

>Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.


Так язык тут причем? Не надо - не используй
398 3129878
>>29874
И там что GC - это прошлый век и слабая производительность. Но только не Го, потому что в Го тоже GC, но в Го GC - это удобство, скорость и безопасность.
399 3129881
>>29776

>Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.


Под Го уже написали свой спринг, всё жду когда окажется что это - другое
400 3129884
>>29881

>написали свой спринг


source?

>>29875
Ну а как не использовать, если оно чуть ли не в каждом проекте есть, куда не приди?
Сейчас я как раз работаю там, где этого всего говна нет - используем guice + jdbc, никаких хубирнейтов и спрингов, но в целом это исключение для индустрии (ну или для российских проектов во всяком случае).
401 3129885
>>29878
Причем у говнянга гц выкручен в частые сборки, из за чего пропускная способность ниже, чем у жабы. Но зачем рассказывать об этом снг-гоям? До них только сейчас дошел хайп говнянга (хотя прямо сейчас на западе говнянг помирает), лет через пять узнают, что из наебывали, будут переписывать на раст/etc
402 3129888
>>29884

>source?


https://github.com/uber-go/fx
https://github.com/google/wire

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


Ну так это вопрос к программистам, а не к языку. Видишь, и на Го спринг пишут
403 3129893
>>29682
Это мне тут недавно один затирал, что джава нравится консерваторам, что нет дефолтных значений для параметров и приходится кучу перегрузок писать, а джавистам и похуй, они не замечают. Когда я спросил а где в Го дефолтные значения, неужели Гоферам тоже похуй и они не замечают - он ушел в ступор.
404 3129912
>>29893

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


У меня очень мало перегрузок поэтому и вправду не особо напрягает. Это просто решается через дата-обжекты вместо 5+ параметров. Да и большое количество дефолтов считается скорее говнодизайном.
405 3129976
>>29888
Это не спринг, ну точнее это просто DI контейнеры с чего спринг и начинался когда-то в нулевые. Под спрингом понимают веб-фреймворк где у тебя все из коробки для перекладывания жсонов (Как asp.net core в c#, laravel в php, django в python). В го ничего такого нет, это не go way.
406 3129996
>>29776

>Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.


Можно подумать Гёц лично приходит и наворачивает абстрации и заставляет использовать Спринг. Я работал в проектах без Спринга и Хибера и не могу сказать, что есть какая-то разительная разница. Больше зависит от подхода к разработке, если писать хорошо то код на спринге будет и читаться хорошо и работать быстро.
407 3130073
>>29893

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



C 9ки в java https://docs.oracle.com/javase%2F9%2Fdocs%2Fapi%2F%2F/java/util/Objects.html#requireNonNullElse-T-T-
408 3130081
>>30073
Дебильное название.
requireNonNull - выбрасывает исключение
requireNonNullElse - уже нет.
Надо было назвать nonNullElse, nonNullOrDefault или defaultIfNull
409 3130092
>>30073
Интересная мысль, не думал об этом. Но этом можно просто на любой джаве самому написать
410 3130097
>>29976

>Это не спринг, ну точнее это просто DI контейнеры с чего спринг и начинался


Спринг Кор - это до сих пор DI и бин менеджмент

>В го ничего такого нет, это не go way.


Тоже самое говорили и про DI. Превращение в джаву неизбежно
411 3130104
>>30073
но это конечно не избавит от кучи нулов в конце списка параметров в вызове
412 3130126
>>30073
Тогда уж наверное идиоматичнее будет Optional.orElse делать, и короче и с 8ки доступно
413 3130167
>>30081
Хотя пизжу, nonNull тоже не подходит. getOrDefault должно быть.
414 3130369
Не ради срача. Но, думаю, оцените.
image.png303 Кб, 633x621
415 3130391
>>15562 (OP)
Доложите жизненность пикчи, коллегчики
416 3130427
>>30369
Серьезно, кто-то переписывает всё с нуля, если за час не нашёл решения проблемы?
trash.PNG801 Кб, 1069x655
417 3130432
>>30391
Сертифицированная жизненность, коллега
418 3130482
>>29824

>кишочки работы движков СУБД


Как в этом начать разбираться? Есть книги какие-то и т.д?
Вроде хочешь начать разбираться, а потом такой, да запрос вроде шустро выглядит, 1+N нет, ай да и похуй
419 3130535
Spring Integration где-то используется?
420 3130557
421 3130564
>>30369
Ну это я. Чё сказать-то хотел?
422 3130636
>>30073
Щас бы импортить целый говнокласс ради одного обосааного метода, который можно написать обычным тернарником. Хррр тьфу.
423 3130643
>>30636
У тебя в коммьюнити идее импорты платные или что?
424 3130691
>>30636
импорти говнофункцию, кто мешает?
425 3130872
>>30369
Поясни, что тут нужно оценить.
426 3131291
Как сделать вывод графики по пикселям в окно?
428 3131337
>>31322
Там же всё на английском!
429 3131415
>>31337
Сплошные плюсы.
430 3131440
Студенческие лицензии сред жыд брейнс запрещают использовать их на работе. Как они узнают что я так делаю и какие подводные?
431 3131470
>>31440

>>Как они узнают


никак

>>какие подводные


заблочат ключ, придется гуглить другой или использовать прокси
432 3131521
>>31440
В чём проблема использовать эклипс?
433 3131560
>>31521
Говно для бумеров
434 3131575
>>31560
Но на модное говно для зумеров денежек у тебя нет
435 3131586
>>31575
комунити версию?
436 3131599
>>31586
На комунити версию лицензия не нужна
437 3131608
Комьюнити вообще норм? Меня заебало с ключами ебаться,по описанию там только спринговых подсказок нет
438 3131611
>>31608
Там нет и подсказок по html с js и ии нет, даже лсп нельзя другое подключить. В общем-то только чистая жаба.
439 3131612
>>31608
Там кучи функционала нет. Например, нельзя томкат подвязать к зеленой кнопке.
440 3131670
>>31599
И это проблема?
441 3131692
>>31670
Эклипс лучше
442 3131725
>>31608

Я использую, мне - норм. Попробуй.

>>31612

Томкат нельзя, но спринг кстати вполне себе стартует.
443 3131751
>>31612
Есть плагин для этого, ровно то же самое делает
444 3131752
>>29976

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



Кто?

>asp.net core в c#, laravel в php, django в python



Так то по логике продолжателем списка со стороны джавы должен быть JSP/JSF, если бы оное было живо. Спринг - это все таки другое.

>Это не спринг, ну точнее это просто DI контейнеры с чего спринг и начинался когда-то в нулевые


>В го ничего такого нет, это не go way.



Если уже появился DI, появление экосистемы похожей на JavaEE или спринг - лишь вопрос времени. Программисты необучаемы.
445 3131811
>>31611

>даже лсп нельзя другое подключить


ох уж эти зумеры, вычившие буквы лсп)
поддержка языков в идее делается плагинами, то что нет возможности подключить лсп - не значит что другие языки не поддерживаются
446 3131815
>>31692
Только если ты индус. Ты индус?
image.png63 Кб, 821x367
447 3131867
image.png1,6 Мб, 960x960
448 3131882
>>31867
Ты.
449 3131896
>>31882
К чему это? Функция доступна только в ультимейт, доступна.
Ты же придумал за меня тезис, который я не утверждал, сам развил, сам разоблачил и сам же поржал. Хорош. На уровень мидла идешь, а то и сеньки.
450 3131908
>>31815
Сергею Немчинскому эклипс тоже нравится
451 3131915
>>31908
Он древний скуф, его мнению доверять себя не уважать.
452 3132026
>>31867
Чел, поддержка других языков есть и без лсп, проснись
453 3132084
>>31908
Так его и воспитывали индусы, он код писал в 2010 когда нахуячить абстрактные фабрики и Impl было чем то нормальным.
454 3132137
>>32084
Он коды писал в последний раз где-то в начале нулевых годов.
455 3132236
>>32084
А чем там Impl заменили с тех пор?
456 3132249
>>32236
Default
457 3132260
>>32026
Еще один гений. Я где-то утверждал обратное?
Я говорю про то, что я не могу подключить это например https://docs.oracle.com/en/graalvm/jdk/21/docs/tools/lsp/
То, что разработали оракл, а не жидбрейнс. Не могу сам навернуть любой яп, а довольствуюсь тем, что разрешили жидбрейнсы.
Сложный тезис, понимаю. Старость не радость все таки.
458 3132267
Без ультимейт идеи даже срать не сяду. Купите ключ - так и быть, вкачусь
таксист
51384566663.jpg28 Кб, 750x422
459 3132288
Сегодня на собесе собеседующий попросил рассказать, чем я занимался на последнем проекте. Ну я рассказал концептуально какие задачи были. Но ему что-то не понравилось, говорит больше подробностей надо. А чё рассказывать, если большинство задач сводится к тому, что надо достать данные, что-то с ними сделать и обратно положить? Что он блять ждал услышать от мидла?
460 3132293
>>32236
Интерфейсы больше не пишут если реализация только одна.
461 3132299
>>32288
Я б начал все детали рассказывать вплоть до названий классов. Если ему интересно слушать описание в полчаса как эта поебень работает - мне не трудно.
462 3132305
>>32299
Я ему так и сказал, типа "Мне рассказывать, как я создал репозиторий и сервис и т.д?", а он навёл аналогию про туалет и мытьё рук. Короче хз, чёт вроде он и прав, а чёт вроде и доебался по хуйни.
17117352820440.mp44,9 Мб, mp4,
550x450, 0:23
463 3132309
>>32288
У меня в команде типы в понедельник не могли рассказать, чем в пятницу занимались.
464 3132363
>>32236
>>32249
Нет, Default не пишут. Пишут Basic или Simple.
465 3132403
>>32363

>>Пишут Basic или Simple.


Название должно отражать чем каждая реализация отличается. Симпл хотя бы подразумевают что есть димпл хард.
466 3132439
>>32293
Но идея же типа в том, чтобы писать "ны вырост". Сегодня одна, а через три месяца срочно потребовалось ещё две
467 3132448
На самом деле бойлерплейт интерфейсы это чистейший бойлерплейт. Если бы каждый класс имел неявно созданный интерфейс по методам, то ничего писать не надо было бы. Ну или если бы нужно было для этого просто как-то обозначить что это надо создававать, например interclass место class писать.
468 3132449
>>32448

>На самом деле бойлерплейт интерфейсы это чистейший бойлерплейт.


Писал не перечитывая, тут, очевидно, имелся в виду интерфейс у которого одна реализация.
469 3132480
>>32305
Как аналогия звучит?
470 3132501
>>32439

>>писать "ны вырост"


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

>>Сегодня одна, а через три месяца срочно потребовалось ещё две


Когда понадобится, тогда и создавай. Интерфейс выделяется секунд за 10 в идее.
471 3132503
>>32501

> Апфронт дизайн


> расширяемую архитектуру


Одно и то же.
472 3132510
>>32503
Вот ещё по этой теме докину, одно из моих самых последних открытий в программировании — всё не предусмотришь. Как конкретный тезис я это вывел спустя 3 года программирования. Раньше задачу этого выполняло "нет времени щас этим заниматься", что подразумевало, что было бы время и что это, якобы, возможно.
473 3132582
>>32501

>Интерфейс выделяется секунд за 10 в идее.


8 сторипойнтов, полспринта минимум, тащ менеджер!
474 3132644
>>32449
Такой дилеммы впринципе не должно возникать.

Если встает постановка вопроса - "надо ли писать интерфейс, если заведомо известно что имплементация - одна", вы уже проиграли, спринг вас ебет в жопу, а дизайн приложения - говно.
475 3132772
Юзаю интерфейсы всегда, чтобы всегда можно было тыкнуть на зеленый кругляшок и понять контракт окружающего его модуля (пакета). Без интерфейсов все иконки сливаются в кашу.
476 3132831
>>32503
Расширяемость - это значит можно что то допилить без особых переделок. Например в бд пол сохранять в varchar, а не boolean. А апфронт - это нахуячить отдельную таблицу на 50 видов гендеров с возможностью добаления своего, когда в тз про них ни слова не было потом еще и извиняться придется.

>>32582
Курс сторипоинта обвалился, теперь в спринт влезает вдвое больше.
477 3132861
>>29682
Сейчас бы в 2к24 сидеть на одном проекте со джаваскуфидонами, которые кое-как осилили свой спринг бут и хубирнейт, а в проекте все обмазано публик клусс МайСервисИмпл имплементс Майсервис на 3к строк без тестов..
478 3132862
>>30535
Изначально мертворожденный проект как и большинство проектов спринга
479 3132864
>>32293
Пишут. Иначе ты нарушаешь СОЛИД, чел.. Читай дядюшку Боба. публик интерфейс МайСервис
публик клусс МайСервисИмпл имплементс МайСервис!
480 3132866
Двощ, подскажи.

купил я, значит, курс на джавараше, и все пока устраивает, но
Хочу писать код не только внутри их модуля, а в отдельном "своем" приложении. Как сейчас с этим дела обстоят? Обязательно ли качать Линукс, и что вообще делать?
481 3132867
>>32305

>"Мне рассказывать, как я создал репозиторий и сервис и т.д?"


Ты на джуна шел сюда по задачам которые ты решал, лол))
482 3132869
>>32403

>Название должно отражать чем каждая реализация отличается


Чел... Контроллер - Сервис - Репозиторий. Все! Говорит тебе Кабан добавить юзеров в систему. Ты создаешь ЮзерКонтроллер. Затем ЮзерСервисИмл. Затем ЮзерРепозитори. Все!
483 3132871
>>32866
Нормально обстоят. У меня 80% знакомых джавистов сидит на Винде (я бы удивлен). Качай Intelij IDEA Community edition
484 3132873
>>32772

>понять контракт окружающего его модуля (пакета)


Чего? Это и на классах прекрасно работает. А любителей с нихуя насрать интерфейсами и лепить Impl мы гоним с проекта на хуй
485 3132877
>>32869

>Контроллер - Сервис - Репозиторий



Брух

>Говорит тебе Кабан добавить юзеров в систему



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

И ещё вопрос - обилие фигурных скобок в if-else. Все пытаюсь понять, но не особо выходит. Или пока забить, и с практикой придет? Я пока делаю без них, так как не было нужды
487 3132885
>>32884
Вот что я имею ввиду

Scanner sc = new Scanner(System.in);
int i = 2;
System.out.print("Введите целое число: ");
if(sc.hasNextInt()) {
i = sc.nextInt();
System.out.println(i*2);
} else {
System.out.println("Вы ввели не целое число");
}

Здесь же спокойно можно без них обойтись
488 3132914
>>32831

>Курс сторипоинта обвалился, теперь в спринт влезает вдвое больше.


Совсем дурак?

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

Вот как надо!
489 3132945
>>32869

>>Затем ЮзерСервисИмл. Затем ЮзерРепозитори.


Просто создаешь ЮзерСервис без всякого импл и все.
490 3132963
>>32866
Чего? У них там какая-то своя иде прилагается к курсам?
491 3132967
>>32885
Зависит от кодстайла команды, но почти всегда тебе скажут что они нужны во избежание неявного поведения и багов.
492 3132975
>>32885
Нет конечно, и ты привел хороший пример почему нельзя. Если ты пишешь без фигурных скобок, то только следующее выражение считается принадлежащим к if блоку.
Во-первых без скобок с else это вообще не скомпилится, а если бы не было else, то без скобок выражение System.out.println(i*2); будет выполняться вне блока, то есть безусловно.
493 3133011
>>32885

>


>Здесь же спокойно можно без них обойтись


А ты попробуй, даун. Будешь послан компилятором нахуй в конкретно твоем случае.

Нахуя на двач со своей тупорылостью приходишь?
494 3133019
>>32884
Если одна строка после ифа или елса то можешь не ставить,в твоем примере в блоке елс будет выполнена только первая строка по условию а вторая будет воспринята компилятором как будто находится за блоком елс
495 3133023
>>33011

>пук


>>32975
>>33019
Да, я уже понял, но не отписался сюда. Добра, аноны
image.png69 Кб, 228x221
496 3133026
>>33023

>Да, я уже понял


)))
497 3133036
>>33011
Поглядите на потного сноба-синьора. Чувствует, что ему в жирную спину дышат упругие джависты
498 3133044
>>33036

>Чувствует, что ему в жирную спину дышат упругие джависты


Ждем следующий тред о вкате от неосилятора.
499 3133080
>>33036

>упругие джависты


Упругие жависты >>> скуфы
Надеюсь их все больше будет, а то уже неможно, одни душнилы старые неняшные.
image.png37 Кб, 714x437
500 3133087
>>32885
Пиши как хочешь, не нужны скобки - не пиши.
Я вот вообще ебошу прям внутри условий всякое.
501 3133090
>>33087
Ебало представили коллег, когда этого вкатуна наймут?
502 3133092
>>33090
Я больше этих коллег знаю, лол.
Знаааешь, так грустно осознавать, что вокруг одни дебилы.
503 3133097
>>33087
Эта отрыжка даже до ревью человеком не доберется. Банально сонар не пропустит.
504 3133098
>>33097
Начнем с того, что он со своей выебистостью школьника даже работу найти не сможет.
505 3133100
>>33097
Утютю. Сонар не допустит. Как же тебя трясет, лол.
>>33098
Хз, я факты сказал. Сколько дней назад вопрос задал, хоть один человек ответил? Нет. >>26939
Похоже до 17 главы спеки никто и не доходил, лол.
506 3133103

>Похоже до 17 главы спеки никто и не доходил, лол.


Может скажем ему?
507 3133105
>>33103
Удиви.
508 3133109
>>33092

>знаю


А уметь когда начнешь?
509 3133113
>>33109
Что именно уметь?
Круды писать? Это не сложно.
А так, у меня нет опыта написания всякой энтерпрайз хуйни, поэтому в этом плане особо не напираю.
Но честно, так не хочется, понимая что придется общаться со всякими тупыми дебилами душнилами, которые будут ебать по всему чему угодно, лишь бы самоутвердится.
51384566663.jpg28 Кб, 750x422
510 3133123
Парни, три года я проработал на проекте условно среднего уровня. Там ничего сложного не было: обычные круды, прикрутить какой-то сторонний сервис типа смс оповещений, и т.д.

У меня вопрос: что пишут настоящие кодеры? Потому что у меня стойкое ощущение, что я нихуя не умею практически проработав 3 года.
511 3133127
>>33113
А ты никому и не нужон, по тебе сразу видно, что ты неприятный человек.
512 3133133
>>33127
Что я неприятного сделал? Сказал факт, что я лучше знаю кор жабы, чем будущие коллеги? Или то, что в личном коде ты можешь придерживаться любого кодстайла, писать любую хуйню и никто тебя не в праве ограничивать? Ууу крамола, как можно)
513 3133192
>>33133

>чем будущие коллеги


Так а с чего ты взял что тебя кто то на работу возьмёт?
514 3133206
>>33192
Ну потому, что я ахуенный? И уже имею приглосы на стажерство
515 3133234
>>33206
Я конечно не опытный, но по-моему вот так >>33087 писать всё не стоит. Выглядит конечно круто и непонятно, но читается сложно.
516 3133251
>>33234
Пиши как хочешь в своих проектах. Я эту хуйню писал, какому-то студику на форуме, с целью чтобы если он кому-то ее сдал, то тоочно не повирили, что автор это он. Считай медвежья услуга)
517 3133264
>>33234
Я опытный, и проблема у этого чела не в говнокоде, а в его выебистости.
518 3133283
>>33264

> проблема не в коде


То есть это нормально в продакшн коде писать пре-кременты и побитовые сравнения?
51384566663.jpg28 Кб, 750x422
519 3133303
>>33087
Я правильно понимаю, что на сложных больших проектах пишут вот такой сложный и непонятный код?
520 3133324
>>33303
Он в либах обычно скрыт.
>>33264
Ряя, я няша
hacker-anonymous01-1.png542 Кб, 1200x600
521 3133340
>>33324
Так а какой код пишут настоящие синьоры хардкорные, кто из тетрадей и книжек по компьютерным наукам не вылазит? Какой сложности задачи? Я хочу понимать, в какую сторону развиваться.
523 3133353
>>33340
Исходники спринга почитай.
524 3133356
>>33340
Я даже не джун. Но вроде сеньки архитектуру в общем разрабатывают. Кружочки там с квадратиками рисуют, ну и зависимости проекта разрешают.

А так, можешь вместе со мной изучать многопоточку, знаешь какая она прикольная? Ухх просто.
525 3133364
>>33356
Да, многопот очка внатури сложная и интереса. Ты по чему изучаешь?
>>33353
Там какой-то кал в этих самых исходниках.
526 3133368
>>33364

>Там какой-то кал в этих самых исходниках.


А можт у тебя в голове кал?
528 3133376
>>33368
А может и у меня.
>>33372
Спасибо за ссылки.
Capture.JPG22 Кб, 846x178
530 3133381
>>33368
Вот это не кал что ли? Вот эти приведения какие-то нахуй. Выглядит как костыли.
531 3133409
>>33381
Где ты приведений увидел?
71JxcAC3guL.ACUF1000,1000QL80DpWeblab.jpg92 Кб, 773x1000
532 3133548
Пытался в пикрил, но чувствую, что ещё рано мне. Интересные вещи пишет, но всё же много информации про всякие оптимизаторы кверей, которые работают под капотом у баз данных, и это трудновато осознать и тем более применять эти знания на практике. Решил Java Persistence API и Hibernate почитать сначала, и потом возможно вернуться.
533 3133553
>>33377

>шипилеша


Бля...чел... Это, кстати, отличный пример, почему канкаренси в жвм и жабе сделано через такую задницу, что люди годами пишут книги, выдрачивают статьи и заучивают как стихи все хитровыебанные хуитки и прочее неочевидное поведение жмм.
Позабудешь какое-нибудь правило жмм и в лучшем случае, твой понос на жабе встанет колом
534 3133554
>>33548

>айбернейт


>2к24


https://youtu.be/OV_yO9YVITE?t=629

Бля...чел...ты скуфидон, который решил затащить айбернейт в проект? Зачем?
535 3133563
Кстати а правда, что у Хибернейта есть большие проблемы с LEFT JOIN?
536 3133586
Эрик Эванс за 20 лет не придумал второго примера, на котором можно объяснить DDD? Во всех лекциях Cargo, Itinerary, Log.
537 3133612
>>33554
Двачую. Есть же Spring Data JPA. Хибернейт сосать
538 3133614
>>33553
эм, тебе не надо заучивать повеленре, т.е. следствие. тебе всего лишь надо понять модель в общем, чтобы ты сам мог говорить, когда и какое поведение будет.
Да и чем тебе шипилев не нравится? Правильные вещи говорит и опыт у него уникальный.
539 3133620
>>33614
Хотяя, то, что модель сложная не отрицаю. Но где проще?
540 3133656
>>33612
Есть же хибернейт. JDBC сосать
541 3133710
>>33612

>Spring Data JPA


Это буквально Hibernate, хуеблядина ты тупорылая
542 3133731
>>33656
А хибернейт типа на святом духе работает. Там под капотом тот же JDBC.
543 3133732
>>33563
Какие проблемы? Не замечал.
544 3133739
>>33710
Именно, лалка ебучая. И эта хуйня в 90% проектов.
То, что руками больше не надо конфигурировать SessionFactory через persistence.xml не означает, что хуйбернет куда-то делся.
545 3133771
>>33739

>>руками больше не надо конфигурировать SessionFactory


Ты откуда вылез? Из 2007 что ли?
546 3133853
>>32084
А я наоборот думал, что абстрактные фабрики и имплы это полный хайп в 2024. А как грамотно писать тогда, чтобы в джава-треде уважали? Есть может статьи какие-то, или примеры конкретные с применением современных подходов, не 2010 года?
547 3133873
>>33771
По делу высрешь что-нибудь? Хуйбернет сейчас ВЕЗДЕ. Жук - только в твоем залупарии
548 3133951
>>33731
Я с того типа с data jpa рофлил просто, но и он скорее всего рофлил
549 3134295
>>33739
Я с CORBA работал чел...
550 3134896
>>33087
Ты - латентный хаскелит чтоли?
551 3134939
>>34896
Это очень императивный код, который только в путь использует побочные эффекты, мутабельность и прочее прочее.

И еще жаба менее выразительна в плане применения операторов. Были б у меня возможности с пика, я б такоооое написал, эх. А еще оптимизация хвостовой рекурсии, функции первых порядков, тайпклассы с параметризацией по контейнеру...
image.png77 Кб, 737x415
552 3134991
553 3134999
>>33873

>Хуйбернет сейчас ВЕЗДЕ. Жук - только в твоем залупарии


Spotify использует жук.
554 3135223
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

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