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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 554 40 115
Java Thread №266 /java/ Аноним 07/04/24 Вск 18:23:50 3115562 1
image.jpg 135Кб, 1024x1024
1024x1024
💥🚀 Приведите свой код к уровню ВАУ с Java 22 - это просто обязательно!

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

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

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

Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>3096681 (OP)
Аноним 08/04/24 Пнд 02:15:06 3115985 2
Какая инфа есть про T1 для стажеров ? ЗПхи, че за технику выдают, в целом мб чет рассказать можете
Аноним 08/04/24 Пнд 06:41:18 3116031 3
@SneakyThrows надо использовать только при чётком выставлении игнорируемых эксепшенов в value. В чём я не прав?
Аноним 08/04/24 Пнд 07:29:59 3116048 4
Аноним 08/04/24 Пнд 07:30:17 3116049 5
Аноним 08/04/24 Пнд 07:39:44 3116054 6
>>3115562 (OP)
>Java 22
Уже 5 по счету компания пишет жава 22, а на собесе выясняется, что там JVM 22, а синтаксис до сих пор используется java 8 или максимум java 11, лул
Аноним 08/04/24 Пнд 07:40:48 3116055 7
>>3116054
Ну и нахуй тут эти невыдуманные истории?
Аноним 08/04/24 Пнд 08:38:27 3116073 8
>>3116054

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

До сих пор этот подход работает. В чём я не прав? Почему это сломается как только понадобиться сделать микросервисы? Нахуя нужны монго дб, спринг даты и прочий т.н. энтерпрайз кал если такой примитивный подход работает в т.ч. в энтерпрайз задачах и даже обеспечивает нихуёвый перформанс?
Аноним 08/04/24 Пнд 09:57:16 3116161 10
>>3116144
>паттерн реставратор
Не существует такого.
Аноним 08/04/24 Пнд 10:12:35 3116175 11
>>3116144
У меня тоже B2B калопровод на 0.00005 RPS, сижу судорожно изучаю кафку и изоляции транзакций, но не понимаю кому это может при-го-дит-ся, где...
Аноним 08/04/24 Пнд 10:41:26 3116192 12
>>3116031
@SneakyThrows это костыль, которым контрят легасно помойное апи с чекедами.
Аноним 08/04/24 Пнд 10:45:35 3116194 13
>>3116144
>>применяю паттерн реставратор для организации работы с базами данных
Это когда из бэкапов что то выковыриваешь что ли? Никогда не слышал о таком.
Аноним 08/04/24 Пнд 10:55:22 3116204 14
>>3116192
Ну и смысл твоего высера? Как он хоть что-то мной сказанное опровергает, даже если бы был правдивым?
Аноним 08/04/24 Пнд 11:25:50 3116223 15
>>3115985
ЗП нет, технику отбирают при входе в здание, ставят за станок.
Аноним 08/04/24 Пнд 13:52:55 3116330 16
>>3116144
А применяю паттерн "калопровод" для управления обменом сообщениями между элементами распределенных систем
Аноним 08/04/24 Пнд 15:47:13 3116409 17
STICKY SCROLL НАКОНЕЦ-ТО
Аноним 08/04/24 Пнд 21:16:00 3116582 18
>>3116048
как вы заебали с этим нонейм хуесосом из воронежа
Аноним 08/04/24 Пнд 21:16:57 3116585 19
>>3116192
всё так
впрочем даже в Spring 6 дохуя таких мест с чекедами
Аноним 08/04/24 Пнд 21:32:02 3116609 20
Аноним 08/04/24 Пнд 22:39:26 3116671 21
Правильно ли я понимаю, что в стеке хранится последовательность команд, которые выполняются в потоке?
Аноним 09/04/24 Втр 01:39:42 3116734 22
>>3116671
Нет, стек это абстрактная структура данных. Просто потоки используют её, в основном, таким образом.
Аноним 09/04/24 Втр 05:50:58 3116769 23
Ссссссука, как же опшионал хорош. Бля, надо запретить нуллы нахуй, когда есть опшионал. Даже похуй на оверхед в перформансе, да, можно было бы и без него, но даже так это того стоит.
Аноним 09/04/24 Втр 06:25:27 3116774 24
Так там ещё и оверхеда нет. Взял бенчмарк от растомана, что пару лет назад кукарекал про оверхед и написал статью, в которой призывал отменить злую медленную джаву за отсутствие зеро кост абстракций, и получилось что опшионал равен нуллу. Может он тупо в наглую результаты подредактировал, что возможно, может это развитие от 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
Аноним 09/04/24 Втр 10:07:13 3116994 25
>>3115562 (OP)
Спринг бут приложение на локалхосте можно запустить без интернета?
Аноним 09/04/24 Втр 10:20:50 3117016 26
>>3116994

да только мавен клин не делай)
Аноним 09/04/24 Втр 10:56:42 3117080 27
>>3116769
Кек.

Ты просто не сталкивался еще со смешным пранком, где тебе надо сделать оверлодинг метода с опшеналом.
Аноним 09/04/24 Втр 10:58:13 3117083 28
>>3117080
В чём заключается пранк?
Аноним 09/04/24 Втр 11:01:34 3117087 29
>>3117080
>>3117083
А, я перепутал оверлоадинг и думал про оверрайд. Ну да, забавный пранк. Только опшионал не для того, чтобы его в параметры методы ставить, он для ретурнов.
Аноним 09/04/24 Втр 11:01:49 3117088 30
>>3117016
Через mvn spring-boot:run можно же будет запустить со всеми зависимостями? Сори за долбоёбские вопросы, я студентота.
Аноним 09/04/24 Втр 11:11:15 3117094 31
Аноним 09/04/24 Втр 11:52:55 3117152 32
>>3117087
>Только опшионал не для того, чтобы его в параметры методы ставить, он для ретурнов.
Он для чего угодно, не ставить его в параметры - это просто какой-то чел сказанул на SO и это возвели в ранг правила, якобы потому что это архитектурно плохой шаг, т.к. Optional сам может быть нул. То что он так же может быть нул на ретурне почему-то никто не вспоминает
Аноним 09/04/24 Втр 11:53:27 3117153 33
dominating thonk.jpg 115Кб, 720x715
720x715
>>3117088

чо блять

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

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

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

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

а в контейнере твое говно запустится командой java -Dfile.encoding=UTF-8 -Xms512m -Xmx1g -jar repo.version.jar
Аноним 09/04/24 Втр 11:57:41 3117157 34
>>3117152
Я не знаю, кто там что сказал, но ставить его в параметры смысла нет совершенно никакого.
Аноним 09/04/24 Втр 12:01:35 3117162 35
>>3117157
ну так тогда и в ретёрн ставить нет смысла, логика одна же
Аноним 09/04/24 Втр 12:02:32 3117163 36
>>3117162
В ретёрн смысл есть, так как в реальности встречается отсутствие значений.
Аноним 09/04/24 Втр 12:18:09 3117178 37
>>3117162
Если смотреть на опшеналы как на средство для null-free кодинга на говне и палках, ставить опшеналы в сигнатуры - оверкилл. Ты идеологически уже кодишь без нулей - ну так и дизайнь код блять без нулей. Пусть в сигнатуре твоих методов будут только нужные методу аргументы, а ненужные туда не суй даже как опшеналы. Всегда полагай, что аргументы твоих методов ненулевые. Если у метода есть опциональный аргумент, скорее всего его всегда можно разбить на два метода с аргументами обязательными.

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

Мимо
Аноним 09/04/24 Втр 12:24:08 3117182 38
Аноним 09/04/24 Втр 12:25:10 3117183 39
>>3117178
>Пусть в сигнатуре твоих методов будут только нужные методу аргументы, а ненужные туда не суй даже как опшеналы.
Ну это было бы просто идеально, но к сожалению не всегда получается
Аноним 09/04/24 Втр 12:36:04 3117193 40
> А вот ретерн - это другое.

Всего-то нужно вернуть простой советский "";
Аноним 09/04/24 Втр 12:38:37 3117195 41
>>3117193
Идея кстати при генерации заглушек реализаций методов возвращающих строку ставит автоматом возврат "" (и ещё для некоторых особых типов типо числа или опшионала свои значения, и нулл для всех остальных), вместо того чтобы выкидывать NotImplementedException() или вообще писать preventcompile;. Можно ли как-то эту хуйню отключить?
Аноним 09/04/24 Втр 12:43:51 3117202 42
>>3117193
Для стринги, допустим, отбрехался. А для всех остальных мыслимых типов, включая бизнесовые сущности, сможешь придумать такой же null-заменитель?
Аноним 09/04/24 Втр 12:58:40 3117223 43
14460151941200.jpg 46Кб, 530x444
530x444
>>3117202

Да я рофлил больше, бо сам уже вляпывался с npe в энтерпрайзных классиках с >1000 полей.
Аноним 09/04/24 Втр 13:42:42 3117256 44
Аноним 09/04/24 Втр 13:47:35 3117259 45
Bugayenko.jpg 98Кб, 400x400
400x400
>>3117202
>>сможешь придумать такой же null-заменитель?
создавай лист с 0-1 элементом.
Аноним 09/04/24 Втр 13:57:53 3117265 46
>>3117259
Кстати Бугаенко то как раз топил за обьекты нуль-заменители, а опшеналы и полупустые листы хуесосил, если мне память не изменяет.
Аноним 09/04/24 Втр 15:27:26 3117331 47
>>3117265
>Кстати Бугаенко то как раз топил за обьекты нуль-заменители
А чем нуль-заменители отличаются от опшионал эмпти? Тем что там отдельный объект на каждый тип?
Аноним 09/04/24 Втр 17:16:54 3117391 48
>>3117331
Тем, что лучше годятся в роли шарика на носу клоуна Бугаенки.
Аноним 10/04/24 Срд 17:39:27 3118244 49
>>3115562 (OP)
Лид на проекте обезумел. Заставил всю команду писать тесты по классической (Детроитской) школе тестирования. Теперь воссоздаем весь граф объектов в тестах и пишем тесты. Старые тесты на моках все удалили, т.к. лид посчитал их хрупкими.. А как вы пишите тесты?
Аноним 10/04/24 Срд 18:01:43 3118274 50
>>3118244
Не знаю, насколько это хорошо для самой задачи тестирования, но, безусловно, очень хорошо для самоконтроля для предотвращения ООП-копролитизации, когда ни одну функцию нельзя вызвать в глобальном контексте без передачи ей всего приложения в качестве параметров.
Аноним 10/04/24 Срд 18:06:57 3118279 51
>>3118274
>функцию
Бля... куда ты лезешь, лол? Типичное приложение на джаве - это спринг круд из матрешки вида контроллер - сервис - репозиторий. Сервис при этом может вызывать дохуя других сервисов. Теперь дрочим new MyServiceImpl по 10 раз на тест..
Сама классическая школа тестирования утопия и говно. Работает онли на простых примерах из двух классов. В реальных энтерпрайз приложениях у тебя взаимодействие десятков классов на изи
Аноним 10/04/24 Срд 18:08:10 3118281 52
>>3118279
Ты хоть сам-то понял, что высрал?
Аноним 10/04/24 Срд 18:25:23 3118295 53
>>3118281
Успокойся, дебил. Вся команда страдает из-за таких как ты. Вместо понятно мокирования, теперь нужно дрочить весь граф зависимостей и все равно втыкать говностабы. Фу, блядь..
Аноним 10/04/24 Срд 18:26:57 3118296 54
>>3118295
Найс тупой анальник бахнул от того, что пришёл на сосач за поддержкой против злой мамклида, а его не поддержали, да так бахнул, что до сих пор ничего вразумительного не выдавил.
Аноним 10/04/24 Срд 18:32:11 3118301 55
>>3118296
Спок, кретин.. Я не собираюсь писать тесты по чикагски и воссоздавать весь граф объектов, лол. Ты никогда не работал на крупных энтепрайз проектах. Я просто как истинный лондонец замокирую зависимости и быстро все протещу
Аноним 10/04/24 Срд 18:49:11 3118315 56
>>3118301
Бессмысленное горение без единого аргумента по теме продолжается.
Аноним 10/04/24 Срд 19:23:12 3118362 57
>>3118244
У меня лид буллит тех кто пишет тесты. Говорит, что это трата времени для даунят. Надо фичи писать, а не тестовый кал

джава 5 кун
Аноним 10/04/24 Срд 19:26:20 3118365 58
>>3118362
Найс пидоран, сам-то он баги не фиксит и не страдает от них.
Аноним 10/04/24 Срд 21:19:13 3118516 59
>>3118244
>>Старые тесты на моках все удалили, т.к. лид посчитал их хрупкими.
А классика типа не хрупкая? Точно такое же говно вид сбоку.
Либо уж в ДДД упарываться как Хориков советовал, либо сразу интеграционные пишите.
Аноним 10/04/24 Срд 21:21:16 3118520 60
Бля, недавно случайно наткнулся на Eclipse Collections либу. Оказывается можно иметь стримы без .stream,
вместо .map.collect писать сразу .collect,
можно иметь getFirst/getLast раньше 21й джавы!, можно иметь коллекции примитивов, просто более компактные коллекции, иммутабельность на уровне интерфейса. Странно что я раньше нигде не видел эту либу в проектах.

Жизненно, коллеги?
Аноним 10/04/24 Срд 21:26:43 3118527 61
>>3118520
ТЫ ЕБАНУТЫЙ ЛИБУ В ПРОЕКТ ТАЩИТЬ
Аноним 10/04/24 Срд 21:28:09 3118528 62
>>3118527
А в чём проблема? Не ом же собираем в этом треде. Строку в помник добавил и всё.
Аноним 10/04/24 Срд 21:29:02 3118530 63
>>3118528
Легитимейтли вижу проблемы с сериализацией.
Аноним 10/04/24 Срд 21:31:58 3118533 64
>>3118244
Никак нахуй, пишу код, меняю ветку в дженкинсе на свою, поднимаю свой под в аргосд, тесчу быстро пробегаюсь по своему говну, кидай юайщику делать и он там баги находит. Фичи горят, инвесторы недовольны, времени нет
Аноним 10/04/24 Срд 21:34:06 3118535 65
>>3118362
Двачую лида, надо либо писать компонентные/интеграционные, либо вообще не писать.
Моки хуеки показывают что все збс - на тестовом конутре все к хуям валится при первом же вызове. Оказывается в моки подсунули данные только для хэппи паса. Забыли что там бывают нулы и некорректные данные. А потом прилетает изменение фичи - и все тесты ломаются, половина времени уходит на их переписывание.
Аноним 10/04/24 Срд 22:05:52 3118586 66
>>3118535
Так это хуёвые тесты и написаны на отъебись.
Недостаточно в тикете описывать только фичу. Надо указывать список тестов.
Аноним 10/04/24 Срд 22:09:49 3118591 67
Тупой спор. Тесты всего сразу помогают найти факт бага, юнит-тесты гораздо больше багов пропускают, но зато чётко показывают место и время фикса бага снижается до пары минут.
Аноним 10/04/24 Срд 22:12:52 3118596 68
А ещё если у вас тесты ломаются часто, значит у вас по клавиатуре тыкают макаки, что не умеют сохранять обратную совместимость. Безусловно, иногда её ломать есть смысл, но тогда явно поломка тестов будет меньшей из проблем, и даже наоборот, она послужит хорошим индикатором того, что что-то сломалось.
Аноним 10/04/24 Срд 22:29:05 3118621 69
Аноним 10/04/24 Срд 23:02:06 3118657 70
>>3118520
Ты только что Котлин.

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

>>3118657
> map без stream череват
Это тоже полумера, необходимо иметь поддержку implicit calls со стороны языка, чтобы list.map(mapperFunction) неявно разворачивалось чётко заданным в List (в т.ч. экстеншен методами) образом в list.stream().map(mapperFunction).toList().
Аноним 10/04/24 Срд 23:47:51 3118701 72
>>3118657
>Ты только что Котлин.
Не везде ты можешь притащить Котлин. У меня контора решила унифицироваться на джаве.
>Это всё полумера. Надо иметь поддержку экстеншен методов со стороны языка
С учетом того, что экстеншн методов не предвидится в джаве, я пожалуй возьму такую полумеру!
Аноним 11/04/24 Чтв 00:02:38 3118708 73
>>3118657
Плюс к тому примитивы и коллекции примитивов в котлине невозможны, а это перформанс
Аноним 11/04/24 Чтв 00:12:02 3118715 74
Что если написать язык Java++, который будет надмножеством джавы (джава-код будет компилироваться его компилятором без проблем), но не будет иметь всех наболевших проблем jvm-копроязыков типо уродливого синтаксиса в петухлине, динамикодрисни как в груви и так далее? У кого-нибудь есть желание этим заняться?
Аноним 11/04/24 Чтв 01:28:03 3118753 75
>>3118715
Стирание дженериков всё равно никуда не денется.
Аноним 11/04/24 Чтв 01:29:00 3118754 76
>>3118753
Это меньшая из проблем джавы.
Аноним 11/04/24 Чтв 01:43:26 3118764 77
Аноним 11/04/24 Чтв 02:57:30 3118777 78
>>3118715
Сама архитектура Java давно устарела. Виртуальная машина со сборкой мусора должна быть проще и не основываться на архитектуре фон Неймана, не должна подражать языкам C и C++, придуманным для низкоуровневого программирования.
Аноним 11/04/24 Чтв 02:58:21 3118778 79
>>3118777
Да вроде наоборот всё очень хорошо на низком уровне. Джаве не хватает сахара.
Аноним 11/04/24 Чтв 04:48:44 3118787 80
>>3118516
>А классика типа не хрупкая?
Нет, т.к. классика не использует моки и стабы, а только реальные классы приложения. Минусы такого подхода - нужно вручную инициализировать весь граф зависимостей. В типичном спринг приложении у тебя при попытке протестировать сервисный класс, нужно будет инициализировать 3-4 зависимости от которых зависит твой сервисный класс, а потом у каждого из этих классов может быть еще по 3-5 зависимостей, а у них еще по 3-5 зависимостей...
А лондонская школа ничего не тестирует и тесты суперхрупкие, т.к. ты просто затыкаешь все моками, которые потом будут падать при первом же рефакторинге
Аноним 11/04/24 Чтв 04:55:19 3118788 81
>>3118657
>у тебя будет ебовейший расход памяти на больших коллекциях
Почитай обоснование методов в библиотеке коллекций котла и почему там так решили сделать. В 99.9999% случаев ты оперируешь небольшими коллекциями и дрочь со стримами ничего не дает. В котле есть сиквенсы сиречь стримы из джавы. Ну и то, что ты где-то у себя в джава коде обрабатываешь большие коллекции уже говорит о том, что ты пишешь лютый говнокод. Т.е. либо у тебя изначально стримы, либо ты написал говно и все тащишь в память
Аноним 11/04/24 Чтв 04:58:34 3118789 82
>>3118596
>она послужит хорошим индикатором того, что что-то сломалось.
Нет, не послужит. Это лишь индикатор того, что ты используешь типичную лондонскую школу тестирования и обмазываешься каким-нибудь мокито. Это не проблема конкретной библиотеки, а проблема подхода. Там нельзя иначе. Ты подсовываешь мок и обрубаешь граф объектов, а потом дрочишь when thenreturn и т.д. При малейшем рефакторинге у тебя все посыпется как карточный домик. Ну и вишенка на торте (это ключевой момент, кста) - тесты твои говно-говна, т.к. тестируют внутреннее поведение, а не контракт. Т.е. ты литерально описываешь свою реализацию метода только в тесте и там видно, что твой код вызывает определенные методы зависимостей и т.д.
Аноним 11/04/24 Чтв 05:00:20 3118790 83
>>3118591
Речь не про это. Если у тебя хэллоуворлд на три класса, то это кэл, чел.. Тут суровый энтерпрайз на спринге, где граф зависимостей какого-нибудь сервисного класса может содержать в себе по 15-20 других классов изи. Если писать по классике, то нельзя юзать моки - онли собственные классы
Аноним 11/04/24 Чтв 05:03:08 3118791 84
>>3118535
>Двачую лида, надо либо писать компонентные/интеграционные, либо вообще не писать.
Работает на легких приложениях или микросервисах. Да и то, время не сравнимо если сравнивать с юнит тестами. Никто не будет ждать часы пока все тесты пробегут

>Моки хуеки
Это легаси и от него отказываются. Моки сейчас дурной тон и от библиотек типа мокито отказываются, т.к. они плодят хрупкие тесты. Кроме того ты буквально тестируешь внутренне поведение, а не контракт, когда описываешь для мока какого-нибудь репозитория кейс, а потом этот мок дергает твой сервисный класс
Аноним 11/04/24 Чтв 05:04:04 3118792 85
>>3118586
Нет, не так. Дело не в количестве тестов, а в их качестве. Тесты на моках - хрупкие. Тесты написанные по классике - устойчивые к рефакторингу. Но их писать значительно дольше
Аноним 11/04/24 Чтв 05:05:07 3118793 86
А кто заставляет с мокито тестировать внутреннее поведение? Мокито можно легко использовать и в классической школе.
Аноним 11/04/24 Чтв 05:05:32 3118794 87
>>3118362
>Надо фичи писать, а не тестовый кал
У меня на проекте все точно так же. Катим фитчи без тестов, потом ручники месяц собирают баги, мы их кое как фиксим и выкатываем на бой. Затем уже клиенты начинают рвать анус от количества багов и мы их фиксим по ночам и в выходные
Аноним 11/04/24 Чтв 05:05:37 3118795 88
>>3118790
> Тут вонючий кал на срыге
Аноним 11/04/24 Чтв 05:06:38 3118796 89
>>3118794
То есть вы один раз сэкономили месяц на предварительном написании тестов, и теперь каждый раз с каждой новой фичей ваши клиенты рвут жопу. Ясн.
Аноним 11/04/24 Чтв 05:06:48 3118797 90
>>3118793
>Мокито можно легко использовать и в классической школе
Нет, нельзя. В мокито ты описываешь конкретные вызовы методов и конкретные возвращаемые значения. В классике ты передаешь реальный объект класса со всей внутренней хурмой. В этом и отличие
Аноним 11/04/24 Чтв 05:07:47 3118798 91
>>3118797
> и конкретные возвращаемые значения
Олигофрен, ты никогда не задумывался над тем, что значение может возвращаться в поля объекта, а сам метод может быть void?
Аноним 11/04/24 Чтв 05:08:00 3118799 92
>>3118796
>на предварительном написании тестов
Не работает, если ты пишешь код по лондонской школе с моками. Тесты хрупкие и не учитывают реального поведения зависимости
Аноним 11/04/24 Чтв 05:08:28 3118800 93
>>3118799
А я что-то про это говорил разве?
Аноним 11/04/24 Чтв 05:09:17 3118801 94
>>3118798
Ты хуйню пишешь. Очевидно, что ты никогда не писал тесты на моках. Спокуху оформи, долбаеб. Значение у него в поле объекта возвращается, лол. Даун, у тебя классический кейс, это замокать метод, который возвращает значение
Аноним 11/04/24 Чтв 05:09:56 3118802 95
>>3118801
>поток оскорблений
По делу что-то будет, срыг-инженер?
Аноним 11/04/24 Чтв 05:16:21 3118803 96
>>3118802
Очевидно, что

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

это типичный пример говнокода, который никогда не пройдет ревью. Ты хотя бы думал перед тем как это написать? Сейчас бы строить все приложение на подобных методах с сайдэффектами, лал
Аноним 11/04/24 Чтв 05:17:36 3118804 97
>>3118803
Ну то есть теперь уже не нисущитсвуит врёёёти, а гавнакооодд рррррря. Логгинг у тебя тоже говнокод, да, срыг инженер?
Аноним 11/04/24 Чтв 05:18:16 3118805 98
>>3118803
Ну и плюс докинь, петушок, каким образом то что это в твоём манямирке говнокод опровергает что-то по теме и доказывает, что метод всегда и только возвращает значение.
Аноним 11/04/24 Чтв 05:23:27 3118807 99
>>3118805
Это ничего не меняет. Мокая даже воид методы, ты все равно пишешь по лондону и в конце это все равно приводит к хрупким тестам, которые нужно переписывать после каждого рефакторинга или добавления новой фитчи
Аноним 11/04/24 Чтв 05:24:04 3118808 100
>>3118807
>ЯСКООООООООООЗАААААЛ!!!!!!!!!!!!!!!!!!
Может аргументацию какую-то притащишь?
Аноним 11/04/24 Чтв 05:31:38 3118811 101
>>3118808
Тебе серьезно нужно объяснить почему моки и библиотеки для мокирования плодят хрупкие тесты? Сириоусли? Или ты курсовой вкатун и волчара?
Аноним 11/04/24 Чтв 05:32:33 3118812 102
>>3118811
Да, объясняй. Потому что у меня за всё время использования мокито ничего хрупкого не получилось.
Аноним 11/04/24 Чтв 05:54:21 3118817 103
>>3118812
>ничего хрупкого не получилось
Ты никогда не писал реальные приложения. Неужели так сложно понять, что когда ты мокаешь методы зависимостей, то у тебя протекают абстракции и детали реализации тестируемого метода класса? Т.е. ты буквально повторно описываешь логику метода, но уже в тестах через моки. Тогда как в классической школе, ты подсовываешь реальный объект зависимости и просто тестируешь нужный метод. Т.е. ты не видишь, какие методы он вызывает у зависимостей, а только проверяешь конечный результат - возвращаемое значение.
В случае сайд эффектов ты можешь подсмотреть в зависимость т.к. она реальная, а не мок. В этом плюс классческой школы тестирования. А моками ты просто пишешь хрупкое говно и у тебя в тестах все разваливается. Смотри, для тупых -

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. Второй - нет
Аноним 11/04/24 Чтв 05:59:08 3118818 104
>>3118817
Дегенерат высрал портянку теста, но по заветам лондонской школы просто повторил уже написанное. Кто заставляет внутреннюю логику метода повторять, олень?

> В случае сайд эффектов ты можешь подсмотреть в зависимость т.к. она реальная, а не мок.
Так и в мок тоже можно подсмотреть, ёпта. Никогда не задумывался над тем почему any() не сделан по-дефолту? Потому что правильный юз-кейс это проверять, что было передано туда.
Аноним 11/04/24 Чтв 06:05:14 3118822 105
>>3118817
> 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 ты создаёшь ещё миллиард других объектов (в том числе тот случай когда ты вообще не можешь создать это из-за взаимодействия с копролит-апи на статиках).
Аноним 11/04/24 Чтв 06:06:26 3118823 106
Мок требует от тестируемого кода, только то что он тербует. Это по сути контракт. А в первом случае, без моков, ты от тестируемого кода требуешь подчиняться багам в зависимостях, потому что в случае фейла непонятно на ком ответственность лежит и что нужно править. Это не модульное тестирование.
Тогда говори, что не пишешь юниты, а пишешь e2e по спекам от кабана.
мимо
Аноним 11/04/24 Чтв 06:07:18 3118824 107
Аноним 11/04/24 Чтв 06:33:26 3118832 108
>>3118818
>Кто заставляет внутреннюю логику метода повторять
Тесты на моках это и делают. Ты должен замокать методы зависимостей, которые дергает твой тестируемый класс. Иначе это не будет работать. А в классической школе ты не должен мокать и вытаскивать внутрянку зависимостей в тесты. Либо ты просто тупой, чел.. сорян..
Аноним 11/04/24 Чтв 06:34:30 3118833 109
>>3118832
То есть ты должен повторить код потому что ты должен. Ясно, слив.
Аноним 11/04/24 Чтв 06:35:05 3118834 110
>>3118822
> Если так просто инстанциировать
Боже... какой же ты тупой, блядь... Ну ясен-красен, что это просто пример. У твоего dependency может быть 100500 зависимостей. Сути дела не меняет - ты в тесте описываешь моки методов, которые дергает твой тестируемый класс и это приводит к протекающим абстракциям
Аноним 11/04/24 Чтв 06:36:25 3118835 111
>>3118833
Бля, ты реально тупой? На моках ты по другому не можешь сделать, даун. У тебя тестируемый класс дергает определенные методы зависимости. Ты должен эти методы явно замокать в твоем тесте, чтобы тест прошел. Это подход лондона. В классике ты не используешь моки и просто передаешь зависимость как есть.
Аноним 11/04/24 Чтв 06:36:29 3118836 112
>>3118834
Так каким образом это приводит ты когда-нибудь расскажешь?
Аноним 11/04/24 Чтв 06:39:52 3118838 113
>>3118787
Хуита.
Во-первых, твой граф зависимостей в итоге упрётся в БД. Специальную тестовую БД делать для каждого теста? А ведь её ещё надо предзаполнить. В итоге это уже интеграционный тест получается, если не функциональный.
Во-вторых, при рефакторинге эти тесты тоже поломаются, граф зависимостей же изменится.
В-третьих, тесты с моками ломаются не так часто, если а) замокано общее поведение, а не специфичное и б) код сам по себе нормально написан.
У тестирования методов есть одна серьёзная проблема - не тестируются места на стыке методов. Если у тебя результат работы метода А передаётся в метод Б, то как ты их сам не затестируй, если А выдаёт данные в одном формате, а Б принимает в другом, то ты это никак не поймаешь. Это частично лечится только более жёстким ограничением типа возврата/параметра. Например, вместо инта передавать уинт, вместо строки enum или распарсивать в какой-то объект и.т.д., в каждом конкретном случае своё.
Аноним 11/04/24 Чтв 06:40:51 3118839 114
>>3118835
Ну ладно, тейк про реимплементацию зависимостей принят, я понял, о чём ты. Я про другое. Я про чтение того что класс делает с помощью моков.
Аноним 11/04/24 Чтв 06:47:33 3118843 115
>>3118836
У тебя в тесте явно описаны замоканые методы и их поведение, которые дергает твой тестируемый класс. В классике ты не мокаешь, а передаешь реальную зависимость и тестируешь онли вовзращаемое значение. Т.е. ты можешь поменять методы и их реализацию в зависимости, а тест не придется рефакторить, т.к. ты ничего не мокал и даже после смены контракта зависимостей все будет работать. В лондоне же ты мокаешь вызовы методов и при изменении контракта у тебя все в жопу летит
Аноним 11/04/24 Чтв 06:48:40 3118844 116
>>3118838
>Специальную тестовую БД делать для каждого теста?
Для этого есть фейки и стабы. Фейк - это легковесная реализация какой-нибудь зависимости. Тем более не забывай, что БД это внешняя изменяемая зависимость, а она даже в классике заменяется на фейк или стаб
Аноним 11/04/24 Чтв 06:49:40 3118845 117
>>3118844
> фейки
Ну и чем это отличается от моков?
Аноним 11/04/24 Чтв 06:53:23 3118846 118
>>3118838
> Если у тебя результат работы метода А передаётся в метод Б, то как ты их сам не затестируй, если А выдаёт данные в одном формате, а Б принимает в другом, то ты это никак не поймаешь.
Для этого надо тестировать те методы, что вызывают более низкие методы, и так до самого верха. Постепенно при подходе от юнит тестов будет движение в сторону интеграционных тестов, и это нормально.
Аноним 11/04/24 Чтв 06:59:59 3118849 119
>>3118535
>Двачую лида, надо либо писать компонентные/интеграционные, либо вообще не писать
Ты не понял, чел. НИКАКИЕ тесты. Писать надо только ФИЧАКОД.
Аноним 11/04/24 Чтв 07:07:11 3118850 120
>>3118849
Поддержу лида - зачем тесты? Чем больше багов, тем больше оплачиваемой работы. Писать тесты с фичей - это неоплачиваемая работа и претензии на перформанс ревью.
Аноним 11/04/24 Чтв 07:09:05 3118851 121
>>3118850
Ну это уже в тред волоёбства и наёба кабанчиков.
Аноним 11/04/24 Чтв 07:10:39 3118852 122
>>3118850
> Писать тесты с фичей - это неоплачиваемая работа
В смысле? Всё в рабочее время делается.
Аноним 11/04/24 Чтв 07:14:36 3118855 123
>>3118852
Платят тебе за фичу, а не за тесты фичи и ждут, что ты сделаешь две фичи за отрезок времени, а не одну фичу и тесты. Васек, который рядом только пилит фичи, получит 5 за перформанс и премию х2 к твоей, а потом все баги закроет отдельными тасками и получит персональную премию от кабанчика.
База коммерческой разработки.
Аноним 11/04/24 Чтв 07:16:32 3118858 124
>>3118855
>кабанчик-долбоёб спонсирует багодел
Опять же это вопрос не к тому полезно ли для разработки тесты писать, а к тупости кабанчика. Это немного разные вещи. Первый технический, второй в мвп или в б.
Аноним 11/04/24 Чтв 07:24:43 3118859 125
>>3118855
За ci, контроль версий и ревью тоже заказчик не платит. Можно не тратить на это время и сразу деплоить в прод.
Аноним 11/04/24 Чтв 07:25:56 3118860 126
>>3118858
Анальник, который выучил апи мокито (который в процедурном стиле на флюент инглише, чтобы даже макака разобралась) считает, что он то умный, а кабан дурак. Классика.
Аноним 11/04/24 Чтв 07:28:55 3118861 127
>>3118860
Что-то по делу будет?
Аноним 11/04/24 Чтв 07:31:33 3118862 128
>>3118859
Сразу на проде редактировать, компилировать, чо как маленький? Если коллега одновременно с тобой отредактировал тот же файл, надо написать на него жалобу, что он твою недельную работу похерил.
Аноним 11/04/24 Чтв 08:22:16 3118879 129
Есть три таблицы (сущности): company, employee, office.

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

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

Вопрос:

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

Спасибо за мнения. А ещё может кто-то знает годные книги по персистентности в джаве, и может порекомендовать — буду очень благодарен.
Аноним 11/04/24 Чтв 08:23:27 3118880 130
Аноним 11/04/24 Чтв 08:48:49 3118885 131
>>3118879
Эффективнее всего, внезапно, писать sql руками и смотреть планы запросов. Хуебернейт за тебя не напишет.

>задача вытянуть все данные
Что значит все данные? SELECT * FROM table? Сделай три параллельных запроса, по одному на таблицу.
Аноним 11/04/24 Чтв 08:51:27 3118888 132
>>3118879
>1) Как в hibernate эффективнее всего настроить мэппинги?
Никак. Надо ливать с легаси проекта. Сейчас бы в 2к24 хубирнейт использовать..
Аноним 11/04/24 Чтв 10:06:55 3118918 133
>>3118777
То-то в суперпостооп языке го такая же сборка мусора и все круто.
Аноним 11/04/24 Чтв 10:11:46 3118919 134
>>3118753
Котлин же решил эту проблему через инлайн инстанса Class<T>, гугл решил через TypeToken, из отдельный язык сможет
Аноним 11/04/24 Чтв 10:53:05 3118936 135
>>3118778
> вжвжвжвжвжжвжвжв
Аноним 11/04/24 Чтв 10:56:08 3118939 136
>>3118936
Был бы я мухой, я бы не предлагал развивать джаву, я бы сидел и обмазывался гетсетами.
Аноним 11/04/24 Чтв 11:01:01 3118943 137
>>3118888
В прошлом треде анти-хибернейтовские вскукареки так и не выдвинули ни одного нормального аргумента или альтернативы для "2к24"
Аноним 11/04/24 Чтв 11:08:53 3118950 138
>>3118888
Хорошо, что ты предлагаешь вместо хибера?
Аноним 11/04/24 Чтв 11:13:07 3118955 139
>>3118885
>Эффективнее всего, внезапно, писать sql руками и смотреть планы запросов. Хуебернейт за тебя не напишет.
Как бы ты написал?
Аноним 11/04/24 Чтв 11:21:02 3118961 140
Аноним 11/04/24 Чтв 11:41:20 3118966 141
>>3118879
Если ты беспокоишься об эффективности - пиши вручную запрос на аннотациях и отображай во проекции. Хибер достаточно криво делает запросы через иерархию, с кучей под запросов.
Аноним 11/04/24 Чтв 12:07:00 3118978 142
Блядь, как же я люблю оптимизировать. Я раньше дрочил на чистый код, но сейчас, мне кажется, для меня скорость работы важнее.
Аноним 11/04/24 Чтв 12:07:28 3118979 143
> Потом никакой cache и materialized view с индексами не поможет. С сотней many-to-many и еще полсотней many-to-one намапленных на SQL-ные селекты вместо JPAQL+ включен по умолчанию open session in view и ни одного @Transactional

Что тут имеется ввиду?
Аноним 11/04/24 Чтв 12:54:13 3119011 144
>>3118667
>Это тоже полумера, необходимо иметь поддержку implicit calls со стороны языка, чтобы list.map(mapperFunction) неявно разворачивалось чётко заданным в List (в т.ч. экстеншен методами) образом в list.stream().map(mapperFunction).toList().
В скале были имплицитные параметры, наелись и сильно ограничили.

>>3118788
>Ну и то, что ты где-то у себя в джава коде обрабатываешь большие коллекции уже говорит о том, что ты пишешь лютый говнокод. Т.е. либо у тебя изначально стримы, либо ты написал говно и все тащишь в память
Вас посетил Марти Фаулер, чистота кода удвоилась.
Аноним 11/04/24 Чтв 13:25:10 3119045 145
>>3118978
Тогда рекомендую посмотреть Eclipse collections, они как раз оптимизированные по перформансу
Аноним 11/04/24 Чтв 16:17:45 3119267 146
>>3118794
Если у вас так много багов то это либо ебать какая сложная система, либо у вас волчья стая с годом опыта на всех вместо разрабов.
>>ручники месяц собирают баги
Ну и процессы говно, они должны их сразу отдавать а не копить под релиз.
Аноним 11/04/24 Чтв 16:34:34 3119284 147
6030398192.jpg 179Кб, 750x1000
750x1000
>>3118791
>>время не сравнимо если сравнивать с юнит тестами
Интеграционнные писать долго, но они редко меняются - для этого должна произойти смена контракта.
Юниты пишутся быстро, но меняются каждый раз при каждом изменении. Даже если просто сигнатуру метода где то сменили - надо и про тесты не забыть.
Для утилитных методов - они ок, для калопроводов - не подходят.

>>говно лучше чем моча
Читай пикрелейтед.
Аноним 11/04/24 Чтв 16:44:05 3119289 148
>>3119284
Двачую. Пишу юниты в спринг калопроводах только на утил методы и на костюмные валидаторы.
Аноним 11/04/24 Чтв 16:54:58 3119303 149
>>3118855
>>Васек, который рядом только пилит фичи, получит 5 за перформанс и премию х2 к твоей
Это уже от процессов зависит. Будь у меня помойка с КПИ я б тоже наверное забил бы на качество в угоду скорости...
Но у меня фикс зп и похуй как долго я делаю фичу, если я смогу обосновать что ТАК НАДО.
Аноним 11/04/24 Чтв 17:06:34 3119323 150
>>3118943
>>анти-хибернейт
>>так и не выдвинули ни одного нормального аргумента или альтернативы для "2к24"
>>3100236 →
>>3100590 →
>>3101720 →
Там была целая ветка про жук, ты все пропустил

Сам его используй, но я хибером мало пользовался не могу однозначно сказать что удобнее.
Аноним 11/04/24 Чтв 18:07:12 3119441 151
>>3119284
>для калопроводов - не подходят
Кто же виноват, что ты пишешь говнокод, который невозможно протестировать кроме как интеграционными тестами, которые можно часами гонять, лол

>Читай пикрелейтед.
Там типичная шарпомуха-говноежка, которая угорает по классической школе, но дрыщет в штаны показать пример где фигурирует больше 2 классов.
Аноним 12/04/24 Птн 00:24:59 3119820 152
>>3118791
> Работает на легких приложениях или микросервисах.
Ты долбоёб? Интеграционные тесты наоборот легче писать и они гораздо более лояльны к говнокоду.
Аноним 12/04/24 Птн 01:04:19 3119833 153
>>3118888
>Надо ливать с легаси проекта
>Java Thread
Я чуть кофе не подавился.
Аноним 12/04/24 Птн 01:09:55 3119835 154
>>3118979
Видимо то, что при таком раскладе хибернейт на каждом взаимодействии с иерархией энтити будет проворачивать огромное количество подзапросов, чтобы подтянуть все разветвления этой иерархии. И это просадит перформанс.
Аноним 12/04/24 Птн 01:11:14 3119836 155
>>3119833
Ну да, нужно ливать на го, там пишут как писали на джаве 20 лет назад, зато не джава, а значит не легаси, омномномном!
Аноним 12/04/24 Птн 14:19:04 3120279 156
Чёт меня в последнее время подзаёбывают баги идеи. Куда съёбывать?
Аноним 12/04/24 Птн 14:35:21 3120292 157
>>3120279
Кроме жидеи есть только вскод.
Аноним 12/04/24 Птн 14:54:10 3120303 158
Скачал вскод и что-то обзмеился с миникарты в правом верхнем углу. Хелсбар когда добавят?
Аноним 12/04/24 Птн 15:58:31 3120360 159
>>3115562 (OP)
Сегодня кросс платформенное десктоп приложение на javaFX писать плохая идея? Хотя из альтернатив c++ с qt бля...
Аноним 12/04/24 Птн 16:06:00 3120367 160
Аноним 12/04/24 Птн 16:08:45 3120369 161
>>3120360
Лучше электрон js. Ещё для котлина есть KMP, но он недавно появился.
Аноним 12/04/24 Птн 17:18:24 3120409 162
>>3120360
Сегодня да, в понедельник можно начинать.
Аноним 12/04/24 Птн 20:57:58 3120591 163
Сегодня слил волка с собеса.
Жулик не пройдет.
Аноним 12/04/24 Птн 21:06:09 3120598 164
>>3120591
Пройдёт в соседней компании.
Аноним 13/04/24 Суб 05:13:28 3120731 165
>>3120591
Расскажи как это было
Аноним 13/04/24 Суб 10:20:44 3120826 166
Читаете какие то блоги или новостные издания чтоб в теме быть?
Аноним 13/04/24 Суб 10:39:19 3120841 167
>>3120591
>>3120598
У нас зепка ниже рынка, лучшая защита от волков.
Аноним 13/04/24 Суб 10:40:04 3120842 168
Аноним 13/04/24 Суб 11:13:03 3120858 169
>>3120841
Они заскакивают и на 50к ради опыта, только ничего не делают.
А делать придется тебе, потому что ты его нанял))

нанимаешь человека, платишь деньги а двойную работу делаешь ты.
Аноним 13/04/24 Суб 14:18:24 3120959 170
Аноним 13/04/24 Суб 20:49:54 3121412 171
Аноним 13/04/24 Суб 20:50:41 3121415 172
Аноним 13/04/24 Суб 23:40:52 3121603 173
>>3121412
>>3121415
> Asynchronous initialization of beans during startup
И нахуй это надо? На 10 секунд ускорит поднятие, и что?
Аноним 13/04/24 Суб 23:44:15 3121606 174
>>3121603
10 это уже дохуя. Теперь го еще более не нужен станет. Правда, ЦПУ на старте еще больше будет жрать. Да просто древнющие ишы запилили. Еще одна с 2008 года сделана наконец.
Аноним 14/04/24 Вск 00:21:46 3121619 175
>>3120858
Вот бы придумали способ платить человеку х0.5 первые 1-3 месяца и легально уволить его, если не перформит. Эх... но такого нет...
Аноним 14/04/24 Вск 00:32:35 3121625 176
>>3121606
>Теперь го еще более не нужен станет
Если писать как на го, то он и совсем не нужен будет. public static void main и вперед. Большинство различий в сравнении этих языков в подходах к написанию программ, а не в самих языках.
Аноним 14/04/24 Вск 00:35:15 3121626 177
>>3121606
Тем более кваркус же есть, там вообще старт мгновенный
Аноним 14/04/24 Вск 00:52:26 3121633 178
>>3120858
>>А делать придется тебе, потому что ты его нанял))
Ну надо так надо, только количество тасок в день не изменится, мне ж за переработки не платят.
>>двойную работу делаешь ты.
А в чем сложность? ну будет 4 фичи в очереди, а не 2 - будут сделаны за 4 недели а не за 2.
Аноним 14/04/24 Вск 00:53:21 3121636 179
>>3121626
На кваркус переписывать надо, а спринг вот он, версию обнови - и полетели.
Аноним 14/04/24 Вск 00:54:10 3121637 180
>>3121606
>>10 это уже дохуя. Теперь го еще более не нужен станет
Если тебе надо поднимать за 0,3 секунды как в го - просто используй спринг натив с комплиляцией.
Аноним 14/04/24 Вск 01:01:08 3121639 181
>>3121636
Ну тогда как правильно сказали - Spring Native
Аноним 14/04/24 Вск 01:08:52 3121640 182
>>3121639
Он же еще не работает толком. Когда я последний раз пытался его на винде собрать, там куча лишних телодвижений требовалась.
Аноним 14/04/24 Вск 01:22:36 3121644 183
>>3121640
Ну то что нужно куча лишних телодвижений не значит что он не работает
Аноним 14/04/24 Вск 07:54:42 3121695 184
>>3121606
>10 это уже дохуя
Типичное приложение на спринге стартует +- за минуту-полторы. Твоя пердолька с "параллельной" инициализацией сэкономит ну максимум пару секунд. Именно поэтому все новые проекты пишутся исключительно на гоулэнге где сервис от момента старта до момента, когда он готов обрабатывать запросы тратит не больше 1 секунды
Аноним 14/04/24 Вск 08:14:10 3121700 185
>>3121639
Разве нативность не должна ускорить разве что запуск жвм, что и так практически мгновенный? А если тут идея в том, чтобы житу не приходилось прогревать, то какой смысл в ускорении запуска за счёт жита, если скорость запуска важна только разработчику и ему всё равну ту же компиляцию придётся выполнять, просто не при запуске, а, при, собственно, компиляции.
Аноним 14/04/24 Вск 08:41:13 3121703 186
>>3117331
Нуль-заменители - миф на самом деле.

Идея была - подобрать такой обьект, который по семантике как бы пустой, нулевой, но при этом это полноценный обьект с полноценным контрактом - ты можешь его передавать куда хочешь и не бояться NPE. А реальность такова, что не для каждого кейса такой нуль подобрать вообще возможно, не сломав семантику. А для каких то кейсов таких "нулевых" обьектов может быть вообще больше одного.
Аноним 14/04/24 Вск 11:08:46 3121787 187
>>3121633
>Ну надо так надо, только количество тасок в день не изменится, мне ж за переработки не платят.
>А в чем сложность? ну будет 4 фичи в очереди, а не 2 - будут сделаны за 4 недели а не за 2.

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

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

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

Аноним 14/04/24 Вск 12:42:22 3121873 188
>>3120858
Какой смысл волку идти на нищие 50к? Наоборот, явный красный флаг, когда специалист с годом+ опыта просится на 100к в третьесортную компанию.
Волк, по определению, мимикрирует под успешный успех, а опыт рисуют, поэтому ему не нужно на галеру "за опытом", ему нужно на галеру за деньгами.
Аноним 14/04/24 Вск 13:08:06 3121912 189
>>3121873
>Наоборот, явный красный флаг, когда специалист с годом+ опыта просится на 100к в третьесортную компанию
Это нормальная зарплата для человека с годом опыта. Я начинал с 15к в далеком 2012 году. Только год назад вышел на баснословные 200к
Аноним 14/04/24 Вск 13:14:21 3121920 190
>>3121912
Я бы сказал, что это минимально возможная зарплата для человека с годом опыта (и надеюсь, мы говорим о 100к, а не о 50). И тогда никаких шансов, что человек будет идти на те же 100к, а забрать готового специалиста с рынка можно за 150-200, за 100к работает человек, которого вырастили и то, уже начинает смотреть по сторонам, с улицы на такие деньги никто не пойдет, кроме проблемных.
Ну и жавист с опытом 8 лет, по определению, не может зарабатывать 200к, эту планку успешные берут уже в первый год, даже без волчизма, отсталые пересекают на 3.
Аноним 14/04/24 Вск 13:26:09 3121935 191
>>3121695
>>Типичное приложение на спринге стартует +- за минуту-полторы.
Зависитт от размера. Средний сервис у меня секунд 30. Но даже если там 10 минут, какая разница сервис обновит версию в 15-20 или в 15-30. Бизнесу похуй. Можно просто кнопку мержа раньше/позже нажать.

>>Именно поэтому все новые проекты пишутся исключительно на гоулэнге где сервис от момента старта до момента, когда он готов обрабатывать запросы тратит не больше 1 секунды
Таких сервисов, которые надо внезапно поднимать и потом опять тушить на дни/недели/месяцы - не так много. Это характерно для облачной структуры с наносервисами. Типичные сервисы работают всегда.
Да и то для этого есть нейтив. Запускается за секунды, но компилируется долго.
Аноним 14/04/24 Вск 13:34:45 3121945 192
>>3121935
>Но даже если там 10 минут, какая разница сервис обновит версию в 15-20 или в 15-30. Бизнесу похуй. Можно просто кнопку мержа раньше/позже нажать.
Нет, не похуй. Не знаю как у вас в жаве, но у нас сервисы крутятся в кубере и гибко масштабируются. Когда у тебя уходит всего 1 секунда от старта до приема первого запроса клиента, то скэйлинг сервисов проходит по щелчку пальцев. Появилась нагрузка - кубер автоматически запустил сервисы. Нагрузка спала - потушили сервисы.
Аноним 14/04/24 Вск 13:36:21 3121946 193
>>3121920
>>Ну и жавист с опытом 8 лет, по определению, не может зарабатывать 200к, эту планку успешные берут уже в первый год, даже без волчизма, отсталые пересекают на 3.
Коллега с 5 годами пока только приблизился к 200к, я с 3 тоже скорее всего не перепрыгну ее в этом году.
Но выходить из зоны комфорта тоже не хочется - удобные процессы, много свободы действий (выбираешь таки и технологии), ненапряженные условия, удаленка без какого-то контроля.
А я еще и не самый молодой и шутливый. Попал прям в ловушку скуфидона.
Аноним 14/04/24 Вск 13:36:33 3121947 194
>>3121945
А сколько у вас пользователей?
Аноним 14/04/24 Вск 13:38:41 3121949 195
>>3121920
>Ну и жавист с опытом 8 лет, по определению, не может зарабатывать 200к, эту планку успешные берут уже в первый год, даже без волчизма, отсталые пересекают на 3.
Зачем ты лжешь? Все зарплатные вилки открыты на то же гетмутче. 200к это зарплата сеньки. Даже я пропахав 10 лет в жаве-хуяве получал максимум 200к. Сейчас свичнулся в гоулэнг с понижением грейда и зарплаты до 150к. Время сытых зарплат прошло, а пороги того же мяскота оббивают вчерашние таксисты и курьеры
Аноним 14/04/24 Вск 13:39:26 3121951 196
Аноним 14/04/24 Вск 13:40:53 3121953 197
>>3121700
Тут наверное влияет то, что Грааль создаёт большинство объектов на компиляции, всё что статический рантайм (static {})
Аноним 14/04/24 Вск 13:40:57 3121954 198
>>3121945
>>скэйлинг сервисов проходит по щелчку пальцев
Если нагрузка прям мгновенно и непредсказуемо появляется - ну ок, ебашь на спринг нейтив. Код даже переписывать не придется. Зачем искать пхпшников/гоферов и учить их писать бизнес логику ради этого?
Аноним 14/04/24 Вск 13:41:54 3121955 199
>>3121949
Ну это можно чисто российский рынок, за рубежом так-то больше платят
Аноним 14/04/24 Вск 13:48:07 3121960 200
>>3121955
Мы тут и обсуждает российский рынок в рублях. Зарубежка в рублях это про всякие какарачастаны - там и условиях жизни очень специфичные, обычно хуже. А зарубежка в доларах/евро - другой мир с которым нет смысла сравнивать.
Аноним 14/04/24 Вск 13:50:53 3121966 201
>>3121946
Я вот хз, в моей галере, несмотря на ученический договор, где тебе платят хлебными крошками со стола кабанчика, через год минимум зарплаты - 130, через два - 180, но люди либо уходят на 200+, либо перспективным сама контора вытягивает вилку.
Если раньше это можно было списать на региональные коэффициенты, то сейчас нет никаких проблем попердывать в диван в Мухосранске и работать на ДС.
>>3121949
>>200к - сытая зарплата
Охуеть, при курсе бакса по 100р - это копейки, чтобы хватило чуть продержать до следующей подачки.
Аноним 14/04/24 Вск 13:57:34 3121976 202
>>3121966
>Охуеть, при курсе бакса по 100р - это копейки, чтобы хватило чуть продержать до следующей подачки.
Таковы реалии рынка. 300к и выше получают тимлиды и рукли отделов
Аноним 14/04/24 Вск 14:11:47 3122005 203
>>3121966
>Охуеть, при курсе бакса по 100р - это копейки, чтобы хватило чуть продержать до следующей подачки.

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

>а там уже можно и трактор заводить
Кому ты нахуй нужен, лол?
Аноним 14/04/24 Вск 14:20:37 3122031 206
Аноним 14/04/24 Вск 14:25:32 3122050 207
>>3122026
>Кому ты нахуй нужен, лол?
скуфидону ниприятна, лол
Аноним 14/04/24 Вск 14:27:11 3122058 208
>>3122050
Просто смирись, чел..
Аноним 14/04/24 Вск 14:30:53 3122069 209
>>3122026
Те, кто ковыряет копролит за <200к уже лет 10, точно не нужны.
Аноним 14/04/24 Вск 14:31:39 3122071 210
>>3122069
А кто нужен? Такие сейчас зарплаты, чел..
Аноним 14/04/24 Вск 14:34:21 3122079 211
>>3122058
Чего мне смиряться-то? Я уже там, лол) Смирись, если хочешь)
Аноним 14/04/24 Вск 14:35:19 3122081 212
>>3122079
>Я уже там
В Двугапуписе? Сириоусли, чел...
Аноним 14/04/24 Вск 14:35:23 3122082 213
>>3122071
Можно себя убеждать в чем угодно, оправдывая свое нищенское существование и отсутствие продаваемых навыков.
Аноним 14/04/24 Вск 14:36:45 3122086 214
>>3122082
Еще играет важную роль возраст. 30+ - ноухайр. А какие навыки продаются?
Аноним 14/04/24 Вск 14:37:15 3122087 215
Аноним 14/04/24 Вск 14:41:13 3122095 216
>>3122087
Ну так ты в Двугапуписе или в Амстердаме, Лондоне, Берлине?
Аноним 14/04/24 Вск 14:43:11 3122099 217
>>3122095
Достаточно сказать что я работаю на юникорна, чел
Аноним 14/04/24 Вск 15:04:16 3122143 218
>>3122099
Тебе из Двугапуписа виднее, чел..
Аноним 14/04/24 Вск 17:58:47 3122416 219
>>3122143
Скуф загорелся и горит, лол...
Аноним 14/04/24 Вск 18:32:03 3122474 220
>>3121951
Компиляция дольше в 65 раз (на 110 секунд), зато сэкономили 1,7 секунды на запуске. Вот это прогресс!
Аноним 14/04/24 Вск 18:43:38 3122486 221
Почему контекст свитч не бесплатный?
Аноним 14/04/24 Вск 19:14:52 3122544 222
>>3122474
Что не так? Конпеляция делается один раз, а запуск много.
Аноним 14/04/24 Вск 19:22:59 3122565 223
>>3122486
нужно куда-то сохранить контекст, загрузить контекст
Аноним 14/04/24 Вск 19:27:21 3122578 224
>>3122544
На время запуска, когда оно меньше нескольких часов, не похуй только тогда, когда это время разработчика во время интенсивного цикла исправления и перезапуска. В таком случае комплируется и запускается примерно одинаковое количество раз.
Аноним 14/04/24 Вск 19:43:15 3122610 225
image.png 2067Кб, 1024x1024
1024x1024
Аноним 14/04/24 Вск 19:43:21 3122612 226
>>3122578
Чел, выше уже описали для чего это конпеляция нужна - мгновенно скалировать сервисы в облаках, где за нагрузку надо платить или запускать что то редкое. Там лишние 10 секунд запуска на каждом из тысячи сервисов - это счета на многие тысячи/миллионы долларов.

Если у тебя не гугл с хайлоадом - говно без задач.
Аноним 14/04/24 Вск 19:52:21 3122626 227
>>3122610
>спринг ботинок
Проиграл.
Аноним 14/04/24 Вск 21:17:03 3122753 228
>>3122612
>каждом из тысячи сервисов
вопрос только нужна ли тебе тысяча сервисов или там опять микросервисное безумие
так-то и миллион сервисов можно поднять, бешеной собаке семь верст - не крюк
Аноним 14/04/24 Вск 21:36:10 3122778 229
image.png 19Кб, 560x120
560x120
>>3122099
>я работаю на юникорна
Литералли who? Вот на этих что-ли?
https://unicorn.com/en/company-profile

Это же ноунейм галера, где нищие хохлы что-то там педалят на спринге за лоупрайс. ЕПАМ или Люкс и то солиднее в разы будут.
Аноним 14/04/24 Вск 21:42:15 3122789 230
>>3122778
Ну ты и скуфяра, конечно.
Аноним 14/04/24 Вск 23:15:05 3122909 231
>>3122778
>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.
Скуф
Аноним 15/04/24 Пнд 00:50:37 3122965 232
Есть итт аноны, кто работал или работает на каких-то больших энтерпрайзах? Интересно как вы используете, и используете ли вообще аннотацию @Transactional.
Аноним 15/04/24 Пнд 02:29:08 3122985 233
>>3122965
> используете ли вы реляционные базы данных
Аноним 15/04/24 Пнд 05:02:09 3123003 234
Аноним 15/04/24 Пнд 05:02:47 3123004 235
Аноним 15/04/24 Пнд 05:45:52 3123005 236
>>3122965
Сру петушарперу на ебало.
Аноним 15/04/24 Пнд 09:20:19 3123064 237
>>3122909
> $1 billion
Чё за нищеброды?
Аноним 15/04/24 Пнд 09:21:45 3123065 238
>>3115562 (OP)
Есть какие-то библиотеки или приёмы для ускорения вычислений чисел с плавающей точкой?
Аноним 15/04/24 Пнд 09:23:16 3123068 239
>>3123065
Да, библиотека называется C.
Аноним 15/04/24 Пнд 09:25:41 3123070 240
>>3123065
В джаве оно из коробки ускорено до предела.

>>3123068
Благодаря интринсикам и жиду на джаве скорость равна си.
Аноним 15/04/24 Пнд 09:33:18 3123079 241
Аноним 15/04/24 Пнд 09:39:59 3123090 242
Есть здесь синьоры? Как часто вы кодите вне работы? Баланс в жизнь-работа соблюдаете, или вне работы ботаете книги профильные постоянно?
Аноним 15/04/24 Пнд 11:42:24 3123199 243
>>3123090

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

Ну я крайний раз гирлянду на нг погромировал и переводил мониторинг с докер компоста на системд ибо заебало. Больше не припомню.
Аноним 15/04/24 Пнд 11:53:32 3123211 244
>>3123064
>over $1 billion
сколько твоя компания стоит?
Аноним 15/04/24 Пнд 11:57:59 3123224 245
>>3123065
Зависит, нужно смотреть конкретно твой код где ты считаешь эти числа.
Но стандартные приёмы - это конечно использование примитивных типов (float/double вместо Float/Double) и уменьшения использования указателей - то есть раскладывание твоил чисел (скорее всего) в массив, чтобы побольше влезло в кэш процессора.
Еще можно попробовать итерацию по этим массивам через индексированный цикл for (int i =0; ...; i++), иногда помогает, но нужно смотреть на твоём случае
Аноним 15/04/24 Пнд 11:59:46 3123228 246
>>3123065
>>3123224
Так же если ты в процессе вычисления очень часто вызываешь какие-то функции (скажем больше 100 раз за вычисление) - попробуй сделать их статическими, может помочь
Аноним 15/04/24 Пнд 12:02:38 3123232 247
>>3123090
Баланс соблюдаю, кодю иногда, но просто потому что нравится. Книги не читаю, потому что по моему опыту абстрактное знание без конкретной цели применения 1) тяжело понимается 2) быстро забывается. Если что-то понадобится для конкретной цели - могу книгу почитать.
Аноним 15/04/24 Пнд 12:04:51 3123237 248
>>3123232
Полностью с тобой согласен! НО, иногда без определённого теоретического знания, ты даже не будешь знать о неких возможностях.
Аноним 15/04/24 Пнд 12:05:14 3123240 249
>>3123199
А основной свой опыт получал на практике, на проектах?
Аноним 15/04/24 Пнд 12:10:52 3123251 250
>>3123237
Если такие знания и существуют, то за 10 лет нахождения в сфере и общения с коллегами я таких не встречал, но допускаю
Аноним 15/04/24 Пнд 12:12:41 3123256 251
>>3123237
В основном все теоретические раскладки сводились к тому, что они либо все черезмерно усложняют на практике, либо вообще убивают производительность по единственной причине "так надо делать, умные люди сказали"
Аноним 15/04/24 Пнд 12:17:26 3123265 252
>>3123065
>>3123224
Кстати еще добавлю про раскладку в масивы - ОДНОМЕРНЫЕ массивы - это прям идеально (но не всегда удобно). Но это уже совсем хардкор, сначала попробуй попроще оптимизации

Кстати, ЯМР-анон, этот ты?
Аноним 15/04/24 Пнд 12:48:57 3123311 253
>>3123065
Ещё конечно нужно использовать минимум аллокаций памяти. А это значит:
- если ты часто создаёшь какие-то объекты в процессе вычисления - старайся их создавать меньше и переиспользовать
- если работаешь с коллекциями - старайся резервировать их объем с запасом, чтобы лн гарантированно вмещал все ожидаемые данные и не расширялся по пути. Как пример для arraylist - ты ожидаешь 1000 значений - создаёшь new ArrayList(2000) на всякий случай. Для других можно что -то похожее. Для массива это просто new double [2000] (массивы быстрее очевидно)
Аноним 15/04/24 Пнд 14:03:24 3123438 254
>>3123211
Нищий пидорюнь, причём тут я? Не способен в мышление без проекций?
Аноним 15/04/24 Пнд 14:07:54 3123446 255
>>3123079
Видимо, пишешь вопросы в треде по делу.
Аноним 15/04/24 Пнд 14:20:14 3123472 256
>>3122099
>Достаточно сказать что я работаю на юникорна, чел
Речь идёт о трехзначных суммах!
Аноним 15/04/24 Пнд 14:53:27 3123517 257
>>3123438
А причем здесь проекции? Ты на простой вопрос не можешь ответить?
Аноним 15/04/24 Пнд 14:55:02 3123519 258
>>3123472
Ну уверен у тебя-то речь идёт о больших суммах. О каких кстати?
Аноним 15/04/24 Пнд 14:55:06 3123520 259
>>3123517
То есть причём тут я не скажешь? Слив принят.
Аноним 15/04/24 Пнд 15:00:45 3123532 260
Забавно смотреть как скуфидоны с визгами срываются в штопор отрицания, лол)
Аноним 15/04/24 Пнд 15:02:00 3123535 261
>>3123520
Ты при том что ты собеседник в этом разговоре, разве это так сложно понять, скуфидзе?
Аноним 15/04/24 Пнд 15:06:44 3123544 262
Аноним 15/04/24 Пнд 15:32:05 3123591 263
>>3123544
Бля, реально трёхинтовый. Ну тогда ты был прав, такой скуф как ты за рубежом действительно никому не нужен.
Аноним 15/04/24 Пнд 15:35:40 3123597 264
>>3123591
Не ворочайся, слитое.
Аноним 15/04/24 Пнд 16:24:49 3123673 265
>>3123519
Ты тут уже десяток постов высираешь дёшевые понты, но так и не назвал его и не пруфанул.
ждём вскукареки про диванон
Аноним 16/04/24 Втр 10:42:33 3124550 266
Аноним 16/04/24 Втр 10:53:15 3124555 267
>>3124550
>Не, я в треде вообще в первый раз.
Как тебе у нас тут? Пожалуйста, поделись впечатлениями и поставь оценку.
Аноним 16/04/24 Втр 12:35:57 3124718 268
pandemonica.png 82Кб, 260x374
260x374
>>3124555
> Как тебе у нас тут? Пожалуйста, поделись впечатлениями и поставь оценку.
Аноним 16/04/24 Втр 12:53:45 3124739 269
>>3124550
Присаживайся, родной, сейчас добрый доктор Столяров пропишет уринотерапию.
Аноним 16/04/24 Втр 16:37:23 3125046 270
>>3116048
Отстаньте вы от Димки Соловьева, ему еще с хохлами в интернетике сражаться.
Аноним 16/04/24 Втр 18:23:54 3125268 271
reactor.png 69Кб, 691x225
691x225
>>3115562 (OP)
Может кто то объяснить как связаны фреймы реактора в дебаге с обычными фреймами пикрил
Аноним 16/04/24 Втр 18:58:26 3125322 272
Tomcat Аноним 16/04/24 Втр 19:33:07 3125379 273
Tomcatecllipse.png 7Кб, 605x94
605x94
Tomcat9w.png 54Кб, 613x735
613x735
17123222211610.jpg 368Кб, 900x960
900x960
Блджад, помогите разобраться с Tomcat-ом. Поставил Eclipse, решил туториал по REST-API пройти, и там нужен Tomcat. Добавил его в Eclipse - написало, что Tomcat не установлен. Ок, скачал Tomcat с сайта, установил и тогда всё норм заработало.
Чего я не понимаю, так это почему, когда у меня Tomcat в Eclipse запущен, то Tomcat9w не распознаёт этого, и показывает статус "Stopped"? Это два разных Tomcat-а? Я правда запутался.
Аноним 16/04/24 Втр 19:38:09 3125385 274
>>3125379
Брачо,совет,забудь про ручную установку варника на томкат,спринг бут с встроенным томкатом бвл создан как раз для того чтобы ты не страдал,а мог сосредоточиться на написании своего супер сервиса,не противься прогрессу братка,пис,джа
Аноним 16/04/24 Втр 19:39:32 3125389 275
>>3125379
Я в идее томкатик запускал без проблем через плагин. Кстати, интересно, какой процент людей в этом треде сидит на эклипсе
Аноним 16/04/24 Втр 19:55:33 3125427 276
1713286531914.jpg 316Кб, 1440x1028
1440x1028
Томкат пердолит в эклипсе
Аноним 16/04/24 Втр 19:56:53 3125430 277
>>3125385

Я не шарю в Спринг Бут (но как-раз собирался одним из следующих туториалов его пройти).
Аноним 16/04/24 Втр 20:00:10 3125438 278
>>3125430
Знать как все работает под капотом это всегда полезно,но я боюсь что ты на отладку и фикс подобных приколов потратишь столько же сколько на изучение сервлетов. Работать чисто с томкатом ты не будешь никогда
Аноним 16/04/24 Втр 21:58:41 3125643 279
>>3124550
>Спасибо, мне в итоге apache math имела всё необходимое.
О, спасибо кстати, хорошая либа, буду иметь в виду
Аноним 16/04/24 Втр 22:16:56 3125672 280
>>3125643
Мудрость апачей безгранична.
Аноним 17/04/24 Срд 01:24:33 3125797 281
Аноним 17/04/24 Срд 01:31:54 3125801 282
>>3125379
Томкат кал. Ставь стеклянную рыбу. Еще трендовый JSF + Primefaces изучишь.
Аноним 17/04/24 Срд 05:54:45 3125832 283
>>3115562 (OP)
А в вашей жабе есть нормальный клиент для редиса? Коллега посоветовал реддисон, но там забагованное говно написанное Никиткой Cockшаковым, который у себя на гитхабе плюется желчью и брызжет слюной, когда его в очередной раз макают в его говнокод и показывают, что он не работает. Проиграл с этого озлобленного уродца, который закрывает ишьюсы со словами "все работает!", лал!
Аноним 17/04/24 Срд 11:00:20 3126073 284
Аноним 17/04/24 Срд 12:04:37 3126183 285
>>3125832
Реддис темплейт бери и не еби себе мозги
Аноним 17/04/24 Срд 14:04:47 3126290 286
>>3125832
Проиграл с этого озлобленного уродца, который своими кривыми сальными ручонками не смог выполнить элементарнейшее действие — запустить реддисон, от чего побежал плакать разработчику и из-за чего был закономерно послан нахуй.
Аноним 17/04/24 Срд 17:01:47 3126526 287
Есть тут динозавры, которые работали с Java Stored Procedures в базах оракла?

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

%еще могу извратиться и передавать параметры из массива, а дублирующийся код в цикле крутить, но это смешно%
Аноним 17/04/24 Срд 17:22:46 3126550 288
>>3126526
>Есть тут динозавры, которые работали с Java Stored Procedures в базах оракла?
Аж олдскулы свело.

>Насколько безопасно в них делать статические поля?
Что значит "безопасно"? Чего ты опасаешься?
Аноним 17/04/24 Срд 17:34:43 3126558 289
>>3126550
Да что откуда-то параллельно дернется то же поле и кривые данные будут. Или там похуй, оракл не даст?
Аноним 17/04/24 Срд 17:52:52 3126576 290
image.png 45Кб, 300x168
300x168
>>3126558
Не знаю как сейчас, но в 10 на каждую сессию создавался свой инстанс JVM. Если ты не будешь дергать процедуру из каких нибудь parallel query, то должно быть потоко-безопасно.

Но вообще, такой подход это говнокод, конечно же. Если статическая функция не имеет состояния, то и писать в статические поля она не должна. Всё должно передаваться в другие методы явно. Если параметров много: создай DTO или вынеси логику в отдельный класс и создавай новый инстанс на каждый запрос.
Аноним 17/04/24 Срд 17:57:27 3126583 291
Аноним 17/04/24 Срд 22:30:31 3126901 292
>>3126526
Ну у меня сразу 2 вопроса:
- чего общего между статическими полями и переиспользованием кода?
- почему крутить код в цикле смешно?

если тебе нужен какой-то кэш на время работы функции, то закидывать его в статическое поле по-моему еще смешнее
Аноним 17/04/24 Срд 23:21:03 3126939 293
Няши, такой вопрос. Нашел в спеке 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 линейна и точка?
Аноним 17/04/24 Срд 23:26:18 3126942 294
>>3125046
Литералли who? Чем знаменит, кем работает? Очередной провинциальный тимлид?
Аноним 17/04/24 Срд 23:42:21 3126954 295
>>3126939
У тебя в цитате ни о какой точке речи не идёт
Аноним 17/04/24 Срд 23:49:09 3126957 296
>>3126954
Ты не няша и даже не пупуня. Вот, что я тебе скажу.
Аноним 18/04/24 Чтв 07:55:25 3127017 297
>>3121637
>Просто потрать несколько часов на компиляцию (которая в любой момент может отвалиться) чтобы сэкономить несколько секунд на старте
Аноним 18/04/24 Чтв 07:58:12 3127018 298
>>3127017
Все компилируемые так работают. Но если тебе прям пиздец как надо запускать за 0,3 секунды - терпи.
Аноним 18/04/24 Чтв 07:59:52 3127019 299
>>3127018
Проект на го собирается максимум за минуту с прогоном всех юнит тестов.
Аноним 18/04/24 Чтв 10:00:12 3127076 300
На моей галере начали переводить старые сервисы на Spring Boot 3.

Почитал ченжлог - не вижу особых преимуществ, когда можно и 2 версию на 21 ждк запускать.
Аноним 18/04/24 Чтв 11:03:30 3127158 301
В джаву надо добавить suspendable функции, но не для того, чтобы реализовать многопоточность в рамках одного запуска приложения, для этого совершенно хватает существующих методов, а для того, чтобы более удобно выполнять задачи, длящиеся несколько месяцев, имеющие стейт и прерываемые, например, каждую ночь на перезагрузку сервера. В чём я не прав?
Аноним 18/04/24 Чтв 11:04:24 3127162 302
>>3127076
У тебя разве нет желания апдутить всё до последней версии просто потому что версия последняя?
Аноним 18/04/24 Чтв 11:07:43 3127167 303
>>3127019
Если на джаве удалить все юнит тесты кроме двух то тоже будет собираться быстро.
Аноним 18/04/24 Чтв 11:23:57 3127186 304
>>3127158
Это также можно реализовать в рамках существующей многопточки. Лучше жди structured concurrency.
Аноним 18/04/24 Чтв 11:26:44 3127187 305
>>3127186
Каким образом? Я пока что вижу только убогое распиливание на миллион подфункций, сохранение стейта ручками после завершения каждой и восстановление при запуске.
Аноним 18/04/24 Чтв 11:38:20 3127213 306
>>3127187
>Каким образом?
Используй прерывание, или вот такую штуку https://docs.oracle.com/cd/E17802_01/j2se/j2se/1.5.0/jcp/beta1/apidiffs/java/util/concurrent/CancellableTask.html#cancel(boolean)
Вообще без нормального тз я не понимаю в чем сложность.
>сохранение стейта ручками после завершения каждой и восстановление при запуске
Ну не надеятся жи на жидбренсов.

К слову, ответь и на мой вопросик~ >>3126939
Аноним 18/04/24 Чтв 11:54:10 3127239 307
Аноним 18/04/24 Чтв 12:05:52 3127252 308
>>3127239
>И чем это поможет?
Просто обертка.
>что хотелось бы видеть в джаве.
Вообще суспенд это про вытеснительную многопоточку, в жабе кооператинвая. С последним выпиливанием суспенда из треда, мне кажется нихуя не будет сделано в этом направлении.

Сука и проигнорил мой вопрос. Ладно, в жопу этот тред.
Аноним 18/04/24 Чтв 12:26:00 3127285 309
Аноним 18/04/24 Чтв 14:41:42 3127506 310
>>3126942
>Очередной провинциальный тимлид?
Да, это все тот же форс хуилы с прошлых тредов.
Аноним 18/04/24 Чтв 15:25:28 3127566 311
>>3127158
>В чём я не прав?
В том, что пишешь говнокод.

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

А так то, тулы для этого есть https://youtu.be/RLFQj2mPqUM?si=s6E2_CSSwQ6Zz1eQ
Аноним 18/04/24 Чтв 16:27:07 3127649 312
Есть тут ананасы, что проходили собес на сениора в Яндекс? Подскажите, какого рода задачку дают на системный дизайн?
Аноним 18/04/24 Чтв 21:36:32 3127987 313
>>3127158
стейт переживающий перезагрузку сервера - это как-то выходит за рамки любого языка
Аноним 18/04/24 Чтв 21:41:40 3127991 314
>>3127239
>И чем это поможет?
Не нужно распиливать функции обновляешь постепенно стейт в таске, когда приходит прерывание - сохраняешь стейт, потом восстанавливаешь.
Аноним 18/04/24 Чтв 23:06:55 3128043 315
1713470813871.mp4 3109Кб, 768x576, 00:00:27
768x576
Это пупуни?
Аноним 19/04/24 Птн 12:12:59 3128405 316
>>3128043
Да, только они куда-то пропали все
Аноним 19/04/24 Птн 12:15:17 3128409 317
>>3127566
Ты долбоёб? Я именно про это и говорил. Сейчас это решается нагромождением кучи ручных говносохранений, что, очевидно, ложат перформанс в сраку, а если бы была поддержка от языка этого, это было бы гораздо легче и быстрее
Аноним 19/04/24 Птн 12:15:44 3128410 318
>>3127987
Я тебе описал как это может быть решено в джаве...
Аноним 19/04/24 Птн 12:17:12 3128412 319
>>3127991
> потом восстанавливаешь
И как ты это собираешься делать с одной огромной функцией? С божьей помощью?
Аноним 19/04/24 Птн 12:19:17 3128414 320
Аноним 19/04/24 Птн 12:21:44 3128420 321
>>3128412
Да хоть id в стейт пихать, а в функции, к слову в жабе нет функций, написать switch/case. У тебя фантазии вообще нет?
Аноним 19/04/24 Птн 12:24:08 3128426 322
>>3128420
> написать switch/case
И получишь кучу функций, просто запуск каждой будет ещё нагружен вычислением результата свич кейса.
Аноним 19/04/24 Птн 12:25:47 3128429 323
>>3128426
>нагружен вычислением результата свич кейса
Хуйню несешь.
>И получишь кучу функций
Пиши прям в кейсе. И я не понимаю, в чем проблема множества методов, если существует инлайн?
Аноним 19/04/24 Птн 12:26:26 3128430 324
>>3128429
> в чем проблема множества методов
Куча бойлерплейта.
Аноним 19/04/24 Птн 12:28:20 3128434 325
>>3128430
Множество методов = бойлерплейт? Ты ебнутый?
Вроде наоборот, йобаметоды антипаттерн. Или че там, мода поменялась уже
Аноним 19/04/24 Птн 12:29:46 3128438 326
>>3128434
Ты нарушение маняпаттернов и бойлерплейт не путай. Совершенно разные вещи. Бойлерплейт это когда ты пишешь объявление метода, потом в каждый метод хуяришь логику сохранения, потом при запуске выбираешь, какой метод запускать в зависимости от того, что насохранялось, и только потом пишешь свою логику.
Аноним 19/04/24 Птн 12:32:10 3128442 327
>>3128438
Пиздец ты шизофреник,страшно подумать что о тебе думают твои коллеги
Аноним 19/04/24 Птн 12:33:09 3128443 328
>>3128442
По делу-то что-то будет?
Аноним 19/04/24 Птн 12:33:21 3128444 329
>>3128438
>Бойлерплейт это когда ты пишешь объявление метода, потом в каждый метод хуяришь логику сохранения
Дурачек, тебе уже сказали про интерапт. Можно не ебать себе мозг логикой сохранения, а просто наверх все отпускать, а там уже разберутся.
>потом при запуске выбираешь, какой метод запускать в зависимости от того, что насохранялось
Еще раз, это можно также выбирать в общем методе, который свитчкейсами. На самом деле я просто описал то, как в котлине это работает, не более. Хотя вот хз есть ли там прерываниия, но кейсы точно есть.
Аноним 19/04/24 Птн 12:37:21 3128450 330
>>3128444
> Дурачек, тебе уже сказали про интерапт. Можно не ебать себе мозг логикой сохранения, а просто наверх все отпускать, а там уже разберутся.
И тебе уже ответили что получается ровно то же количество бойлерплейта, но ещё и нагрузка на обработку исключений.

> свитчкейсами.
Именно так это и работает прямо щас...
Аноним 19/04/24 Птн 12:41:33 3128456 331
>>3128450
>ровно то же
Верим.
>Именно так это и работает прямо щас...
И будет работать дальше. Изменений можешь не ждать. Нытье не поможет.
Аноним 19/04/24 Птн 12:42:25 3128458 332
>>3128456
Смысл твоего высера?
Аноним 19/04/24 Птн 12:53:42 3128469 333
Вопрос от ньюфага, а где писать код? Как активировать intellij idea ???
Аноним 19/04/24 Птн 12:56:14 3128473 334
Аноним 19/04/24 Птн 12:57:05 3128475 335
Аноним 19/04/24 Птн 12:58:08 3128480 336
Аноним 19/04/24 Птн 12:58:29 3128482 337
>>3128474
Но мне нужна джава.
Аноним 19/04/24 Птн 13:12:41 3128499 338
Аноним 19/04/24 Птн 13:13:47 3128500 339
>>3128469
Триалки регистрируй. Или ищи кряк на торрентах, но жидбрейсовое говно настолько баганое что лучше бы пользоваться последней версией.
Аноним 19/04/24 Птн 13:16:46 3128512 340
>>3128469
Ставь нетбинс, скотина.
Аноним 19/04/24 Птн 13:33:24 3128541 341
Аноним 19/04/24 Птн 14:19:23 3128628 342
>>3128409
>Я именно про это и говорил. Сейчас это решается нагромождением кучи ручных говносохранений, что, очевидно, ложат перформанс в сраку, а если бы была поддержка от языка этого, это было бы гораздо легче и быстрее.
Спокойно, мы уже поняли что ты дебил, не усукабляй.

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

И это, мы ещё не говорим про баги в коде, которые решаются рестартом процесса.
Аноним 19/04/24 Птн 14:20:28 3128631 343
Аноним 19/04/24 Птн 14:23:23 3128637 344
>>3128628
И кто-то что-то говорил про необходимость это всё сохранять? Речь прямо шла про создание инструмента для автоматического преобразования компилятором функции в то, что можно легко приостановить и сохранить. Пускай все остальное как и раньше лежит на программисте.
Аноним 19/04/24 Птн 15:54:07 3128717 345
>>3128469

Eclipse, vs code, второе сильно пофичастее и поудобнее, а сделан vs code по сути на базе технологий эклипса.
Аноним 19/04/24 Птн 15:55:52 3128721 346
>>3128500
> но жидбрейсовое говно настолько баганое что лучше бы пользоваться последней версией.
Очень, скачал с рутрекера какую-то 2022 версию - она рандомно примеры с книги запускает, то не запускает. В эклипсе/vs code все работает без проблем.
Аноним 19/04/24 Птн 16:11:44 3128736 347
>>3128721
Пример покажи хоть. Похоже на бред, поскольку непосредственно запускает жвм, а не поделие жидбрейнсов.
Аноним 19/04/24 Птн 16:35:11 3128760 348
>>3128736
примеры Хорстмана с его сайте 10 и 11 издание. Житбрейнс брал с ру-трекера.

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

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

Эта хуета игнорировала в системе java 21 настроенные переменные PATH и качала openjdk самостоятельно. Может инструмент и неплохой, может и лучший, но по началу разбираться что к чему мне не хотелось. Опять же нормальной справки по иделии, как дока vs code я в принципе не видел. Может хуево смотрел.
Аноним 19/04/24 Птн 16:47:54 3128770 349
Это какой-то массовый псиоп нищих дидов с эклипсами? Ни разу за 3 года не испытал серьёзных багов, которые не решались бы простой перезагрузкой. И то бывало крайне редко
Аноним 19/04/24 Птн 16:52:36 3128774 350
image.png 22Кб, 300x344
300x344
>>3128760
>Там первые главы - примеры без указания package. Вот на них оно спотыкается, как минимум.
Ну т.е. фиксируем. Это ты запихнул некорректный код, а теперь руагешь иде, что она сама все не решила?
>Эта хуета игнорировала в системе java 21 настроенные переменные PATH и качала openjdk самостоятельно.
Ну я хз куда ты там тыкал, у меня все норм детектит. Рукожоп мб.
>как дока vs code
У мелкомягких очень хуевые доки. Типа ну там есть 100500 примеров для каких-то ситуаций, а в общем ничего не описано. Условно, там даже не написано, а где блять кнопка ран. А в примерах все через терминал. Нахуй мне тогда этот редактор собственно.
Аноним 19/04/24 Птн 17:23:49 3128816 351
>>3128760
>Житбрейнс брал с ру-трекера.
Зачем? Тебе комунити не хватает? Или тебе так понравился тул, что зажал 600 евро в год?
Аноним 19/04/24 Птн 17:24:32 3128817 352
>>3128469
Комунити версию ставь
Аноним 19/04/24 Птн 18:10:24 3128881 353
Аноним 19/04/24 Птн 18:16:10 3128889 354
изображение.png 278Кб, 1920x1080
1920x1080
>>3128774
> Это ты запихнул некорректный код, а теперь руагешь иде, что она сама все не решила?
Во прикол челику который видит первый раз java-код разбираться что-там и как в специализированном редакторе, а не изучать программирование.

> А в примерах все через терминал
Если честно - я ненавижу микрософт и это по сути главная причина почему я начал изучать java а не c#
Но ты сейчас врёшь и не краснеешь: https://code.visualstudio.com/docs/java/java-debugging#_configure
> У мелкомягких очень хуевые доки.
Буквально лучшая дока, что я видел за последние лет десять. И в редакторе и на этом сайте.
>>3128770
>>3128817
ПроцессорAMD Ryzen 5 5600H with Radeon Graphics, 3301 МГц, ядер: 6, логических процессоров: 12
16 гигов оперативы
И эта срань умудряется на этом лагать.
Спасибо, но я лучше и дальше на эклипсе и vs code поеду.
Аноним 19/04/24 Птн 18:55:48 3128930 355
монгол.jpg 37Кб, 650x650
650x650
Аноним 19/04/24 Птн 20:33:24 3129000 356
>>3128889
Какие у тебя задачи, что ты выбрал джаву? Судя по коду на скрине тебе шарпы подойдут больше. Ты говоришь про ненависть к майкрософту, но
1) Сидишь на их игровой прошивке вместо ОС
2) Собрался писать код в их редакторе кода
Аноним 19/04/24 Птн 20:46:59 3129011 357
>>3129000
Игровая прошивка > безигровая прошивка
Аноним 19/04/24 Птн 21:19:28 3129039 358
community.PNG 161Кб, 1574x835
1574x835
Аноним 19/04/24 Птн 21:27:21 3129053 359
>>3128889
>ПроцессорAMD Ryzen 5 5600H with Radeon Graphics, 3301 МГц, ядер: 6, логических процессоров: 12
>16 гигов оперативы
>И эта срань умудряется на этом лагать.
>Спасибо, но я лучше и дальше на эклипсе и vs code поеду
Чел, у меня проц 10летний и на нем не лагает (3570k)
Аноним 19/04/24 Птн 21:29:24 3129058 360
Аноним 19/04/24 Птн 21:37:52 3129068 361
>>3128889
>Но ты сейчас врёшь и не краснеешь:
Ты типа читать не умеешь? Это дебаггер. Не равно запуск как бы.
Аноним 19/04/24 Птн 21:53:58 3129082 362
Оцените уровень команды, где """мидл""" не знает, как работает варарг.
Аноним 19/04/24 Птн 22:01:33 3129091 363
>>3129082
Так может он с другого языка пришел.
Аноним 19/04/24 Птн 22:02:47 3129092 364
>>3129091
Нет. Он года 3 уже работает у нас.
Аноним 19/04/24 Птн 22:05:56 3129100 365
>>3129092
Ну в любом случае не знать как работает та или иная конструкция в языке это наверное ОК, главное уметь быстро разобраться что к чему. Если эти варарги нигде не используются в проекте, то в памяти такие знания могут быстро забыться.
Аноним 19/04/24 Птн 22:08:22 3129106 366
>>3129082
Что такое варарг

мимо сеньор
Аноним 19/04/24 Птн 22:09:32 3129107 367
>>3129092
3 года на одном проекте = человек, который достиг своего потолка как по зарплате, так и по знаниям. Сразу вангую, что платят ему меньше 200к.
Аноним 19/04/24 Птн 22:11:07 3129109 368
Аноним 19/04/24 Птн 22:12:18 3129114 369
image.png 11Кб, 400x176
400x176
>>3129106
зис. Но я не оч понял, что значит знать, как он работает.
Аноним 19/04/24 Птн 22:13:15 3129116 370
>>3129114
Хуясе,у этой поеботы есть отдельное название
Аноним 19/04/24 Птн 22:30:54 3129141 371
>>3128770
> Это какой-то массовый псиоп нищих дидов на линуксе? Ни разу за 3 года не испытал серьёзных багов, которые не решались бы простой переустановкой шинды. И то бывало крайне редко
Аноним 19/04/24 Птн 23:51:11 3129195 372
Мнение?
Аноним 19/04/24 Птн 23:51:26 3129196 373
Аноним 20/04/24 Суб 00:45:44 3129238 374
>>3129196
>>3129195
Просто какие-то попугайчики. Дальше что?
Аноним 20/04/24 Суб 00:52:00 3129243 375
Аноним 20/04/24 Суб 02:15:52 3129268 376
>>3129106
Синтактический сахарок для отправки ArgumentType[] muhArgs методам. Учитывая, что так и так переменное количество переменных остаётся массивом, то вообще насрать. И если коллеги этого "мидла" не могут разобраться, что он имеет ввиду, посылая методу массивы, то мои соболезнования, они не лучше.
мимо безработный, штудирую книжку из шапки
Аноним 20/04/24 Суб 04:50:04 3129297 377
>>3129000
> Какие у тебя задачи, что ты выбрал джаву?
Бабок заработать.
> Судя по коду на скрине
Это не мой код, а Хорстмана.
> 1) Сидишь на их игровой прошивке вместо ОС
Линакс на десктопе потешная вещь:
1. Постоянная ебля с wi-fi. Все дрова что там есть - кривые.
2. Ебля с вайландом/гномом/ксоргом. Вечные проблемы с хибернейтом.
3. Ебля с wine.
4. Из десятка поддерживаемых fs - нормальной нет. Рассыпаются все.
5. Дистрибутивов нормальных нет.
Аноним 20/04/24 Суб 09:32:21 3129397 378
>>3129297
4. zfs.
5. арчик
>Бабок заработать.
Не заработаешь. Ты тупой и ленивый слишком.
Аноним 20/04/24 Суб 09:37:41 3129399 379
>>3129397
> 4. zfs.
Мусор для которого надо 4 гб оперативы и сторонний nongpl модуль ядра. А в линаксе апи в ядре такое штабильное ммм.
> 5. арчик
Прыщи выведи сначала, а потом эту хуетенюшку советуй, лолец малой.
Аноним 20/04/24 Суб 09:39:41 3129400 380
>>3129268
>малой
Ты еще и скуф, фу.
Аноним 20/04/24 Суб 09:50:34 3129406 381
малой, ты ещё кодить на с++/qt или с/жтк посоветуй.
Аноним 20/04/24 Суб 10:15:43 3129422 382
>>3129406
Всяко лучше электрона. На котором вскод написан)
Аноним 20/04/24 Суб 10:34:44 3129430 383
>>3129297
Бабки сейчас в голанге, это новая игрушка у энтерпрайзных бумажных архитекторов.
Аноним 20/04/24 Суб 11:27:10 3129471 384
>>3129430
> Бабки сейчас в голанге
>сертифицирован 3 .net
>java 1.5 - 1.8
>микрософт машет хуем разрывает контракты на ms sql, закрывает azura, блочит комунити студию к загрузке.
>автокад блочит и перадки.
> голанг
В озоне если только. А другие врядли туда покатятся с такими то условиями.

Я лично жду когда венду заблочат удалённо на всех компах этой страны. Вот тогда можно будет бабок нарубить.
Аноним 20/04/24 Суб 12:27:10 3129507 385
>>3129196
>in OpenJDK 8
Дальше не стал читать.
Аноним 20/04/24 Суб 12:28:32 3129509 386
>>3129471
А какое отношение тут имеет автокад, микрософт и джава к голангу?
Аноним 20/04/24 Суб 14:21:41 3129630 387
>>3129471
>>сертифицирован 3 .net
>>java 1.5 - 1.8
это к чему? что никто ничего нового пробовать не хочет?
Аноним 20/04/24 Суб 14:25:05 3129637 388
>>3129471
все сейчас пишут на гоулэнге
Аноним 20/04/24 Суб 14:59:33 3129670 389
>>3129400
>имплаинг я отвечал итт до этого
Стихни, шиз.
Аноним 20/04/24 Суб 15:09:22 3129682 390
Самое смешное, это смотреть на людей которые ругают джаву за бойлерлейт и одновременно нахваливают го за """простоту""".
Аноним 20/04/24 Суб 16:10:46 3129719 391
>>3129637
Это просто мода разгоняемая бигтехами. Под их нужды этот язык нужен, поэтому надо чтоб на него переходили и все остальные, чтоб не выращивать кадры самим из пхпшников.
Аноним 20/04/24 Суб 17:14:53 3129776 392
>>3129682
>которые ругают джаву за бойлерлейт
Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.

>>3129719
ИМХО уровень в условном яндексе/вк/озоне/авито будет повыше чем например в тинькоффе или сбере. Не говоря уже про остальные банки.
Джава это нынче исключительно банки, финтех и энтерпрайз. Ну то есть бабки зарабатывать можно, но интересных инфра проектов, на которых можно хорошо качать технические скиллы, практически нет, это как раз на гоуленге делают нынче.
Аноним 20/04/24 Суб 17:44:00 3129797 393
>>3129776
что и зачем качать? Качаешь скиллы, чтобы зарабатывать бабки, если успешно уже это делаешь, то зачем идти в гоуленг?
Аноним 20/04/24 Суб 18:06:31 3129824 394
>>3129797
>что и зачем качать
Что качать?
- concurrency
- сетевой стек, сетевые протоколы
- общая инфра, кишочки докера, кубернетиса
- кишочки работы движков СУБД

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

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

Дело не в гоуленге, а в том, что нужно искать себе хороший проект, где можно будет вырасти в знаниях по части инфраструктуры, а не просто стать очередным экспертом в бизнес-процессах очередного предприятия (с таким успехом можно в 1С вкатываться, так как область применения очень похожая).
И так уж случилось, что более технические инфра задачи решают на гоуленге, а автоматизация бизнес процессов ,электронный документ, финтех, системы всякого учета - это скорее жаба.
Аноним 20/04/24 Суб 19:09:35 3129870 395
Аноним 20/04/24 Суб 19:14:11 3129874 396
>>3129682
Именно так, я этому переобуванию в прыжке каждый раз удивляюсь. Go буквально обрезанная джава 1.4, но это круто, потому что не джава, хотя на джаве можно писать так же как на Го. Или например когда это кто-нибудь гордился что в джаве нет какой-то стандартной фишки? А Гоферы только выигрывают что в Го нет эксепшенов, нет банальных дженериков! и гоферы ноют что нужно копипастить все по 50 раз, но Го все равно круто, джава отстой. Это пиздец как это все в голове умещается.
Аноним 20/04/24 Суб 19:14:51 3129875 397
>>3129776
>Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.
Так язык тут причем? Не надо - не используй
Аноним 20/04/24 Суб 19:18:16 3129878 398
>>3129874
И там что GC - это прошлый век и слабая производительность. Но только не Го, потому что в Го тоже GC, но в Го GC - это удобство, скорость и безопасность.
Аноним 20/04/24 Суб 19:19:34 3129881 399
>>3129776
>Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.
Под Го уже написали свой спринг, всё жду когда окажется что это - другое
Аноним 20/04/24 Суб 19:21:50 3129884 400
>>3129881
>написали свой спринг
source?

>>3129875
Ну а как не использовать, если оно чуть ли не в каждом проекте есть, куда не приди?
Сейчас я как раз работаю там, где этого всего говна нет - используем guice + jdbc, никаких хубирнейтов и спрингов, но в целом это исключение для индустрии (ну или для российских проектов во всяком случае).
Аноним 20/04/24 Суб 19:22:08 3129885 401
>>3129878
Причем у говнянга гц выкручен в частые сборки, из за чего пропускная способность ниже, чем у жабы. Но зачем рассказывать об этом снг-гоям? До них только сейчас дошел хайп говнянга (хотя прямо сейчас на западе говнянг помирает), лет через пять узнают, что из наебывали, будут переписывать на раст/etc
Аноним 20/04/24 Суб 19:25:23 3129888 402
>>3129884
>source?
https://github.com/uber-go/fx
https://github.com/google/wire

>Ну а как не использовать, если оно чуть ли не в каждом проекте сть, куда не приди?
Ну так это вопрос к программистам, а не к языку. Видишь, и на Го спринг пишут
Аноним 20/04/24 Суб 19:33:51 3129893 403
>>3129682
Это мне тут недавно один затирал, что джава нравится консерваторам, что нет дефолтных значений для параметров и приходится кучу перегрузок писать, а джавистам и похуй, они не замечают. Когда я спросил а где в Го дефолтные значения, неужели Гоферам тоже похуй и они не замечают - он ушел в ступор.
Аноним 20/04/24 Суб 19:50:43 3129912 404
>>3129893
>>джава нравится консерваторам, что нет дефолтных значений для параметров и приходится кучу перегрузок писать
У меня очень мало перегрузок поэтому и вправду не особо напрягает. Это просто решается через дата-обжекты вместо 5+ параметров. Да и большое количество дефолтов считается скорее говнодизайном.
Аноним 20/04/24 Суб 21:12:54 3129976 405
>>3129888
Это не спринг, ну точнее это просто DI контейнеры с чего спринг и начинался когда-то в нулевые. Под спрингом понимают веб-фреймворк где у тебя все из коробки для перекладывания жсонов (Как asp.net core в c#, laravel в php, django в python). В го ничего такого нет, это не go way.
Аноним 20/04/24 Суб 21:39:25 3129996 406
>>3129776
>Ругают за лишние абстракции + многослойную тяжелую машинерию в виде спринга и хубирнейта.
Можно подумать Гёц лично приходит и наворачивает абстрации и заставляет использовать Спринг. Я работал в проектах без Спринга и Хибера и не могу сказать, что есть какая-то разительная разница. Больше зависит от подхода к разработке, если писать хорошо то код на спринге будет и читаться хорошо и работать быстро.
Аноним 20/04/24 Суб 23:31:20 3130073 407
Аноним 20/04/24 Суб 23:38:46 3130081 408
>>3130073
Дебильное название.
requireNonNull - выбрасывает исключение
requireNonNullElse - уже нет.
Надо было назвать nonNullElse, nonNullOrDefault или defaultIfNull
Аноним 20/04/24 Суб 23:49:52 3130092 409
>>3130073
Интересная мысль, не думал об этом. Но этом можно просто на любой джаве самому написать
Аноним 20/04/24 Суб 23:56:28 3130097 410
>>3129976
>Это не спринг, ну точнее это просто DI контейнеры с чего спринг и начинался
Спринг Кор - это до сих пор DI и бин менеджмент
>В го ничего такого нет, это не go way.
Тоже самое говорили и про DI. Превращение в джаву неизбежно
Аноним 21/04/24 Вск 00:03:23 3130104 411
>>3130073
но это конечно не избавит от кучи нулов в конце списка параметров в вызове
Аноним 21/04/24 Вск 00:25:18 3130126 412
>>3130073
Тогда уж наверное идиоматичнее будет Optional.orElse делать, и короче и с 8ки доступно
Аноним 21/04/24 Вск 01:39:43 3130167 413
>>3130081
Хотя пизжу, nonNull тоже не подходит. getOrDefault должно быть.
Аноним 21/04/24 Вск 11:24:00 3130369 414
Screenshot20240[...].png 397Кб, 720x1520
720x1520
Screenshot20240[...].png 339Кб, 720x1520
720x1520
Не ради срача. Но, думаю, оцените.
Аноним 21/04/24 Вск 11:51:27 3130391 415
image.png 303Кб, 633x621
633x621
>>3115562 (OP)
Доложите жизненность пикчи, коллегчики
Аноним 21/04/24 Вск 12:31:53 3130427 416
>>3130369
Серьезно, кто-то переписывает всё с нуля, если за час не нашёл решения проблемы?
Аноним 21/04/24 Вск 12:35:33 3130432 417
trash.PNG 801Кб, 1069x655
1069x655
>>3130391
Сертифицированная жизненность, коллега
Аноним 21/04/24 Вск 13:19:25 3130482 418
>>3129824
>кишочки работы движков СУБД
Как в этом начать разбираться? Есть книги какие-то и т.д?
Вроде хочешь начать разбираться, а потом такой, да запрос вроде шустро выглядит, 1+N нет, ай да и похуй
Аноним 21/04/24 Вск 13:56:51 3130535 419
Spring Integration где-то используется?
Аноним 21/04/24 Вск 14:16:11 3130557 420
Аноним 21/04/24 Вск 14:20:40 3130564 421
>>3130369
Ну это я. Чё сказать-то хотел?
Аноним 21/04/24 Вск 15:03:01 3130636 422
>>3130073
Щас бы импортить целый говнокласс ради одного обосааного метода, который можно написать обычным тернарником. Хррр тьфу.
Аноним 21/04/24 Вск 15:12:37 3130643 423
>>3130636
У тебя в коммьюнити идее импорты платные или что?
Аноним 21/04/24 Вск 16:02:23 3130691 424
>>3130636
импорти говнофункцию, кто мешает?
Аноним 21/04/24 Вск 19:10:40 3130872 425
>>3130369
Поясни, что тут нужно оценить.
Аноним 22/04/24 Пнд 07:55:30 3131291 426
Как сделать вывод графики по пикселям в окно?
Аноним 22/04/24 Пнд 08:45:18 3131322 427
Аноним 22/04/24 Пнд 09:23:41 3131337 428
>>3131322
Там же всё на английском!
Аноним 22/04/24 Пнд 11:20:06 3131415 429
Аноним 22/04/24 Пнд 11:47:22 3131440 430
Студенческие лицензии сред жыд брейнс запрещают использовать их на работе. Как они узнают что я так делаю и какие подводные?
Аноним 22/04/24 Пнд 12:06:59 3131470 431
>>3131440
>>Как они узнают
никак
>>какие подводные
заблочат ключ, придется гуглить другой или использовать прокси
Аноним 22/04/24 Пнд 12:22:59 3131521 432
>>3131440
В чём проблема использовать эклипс?
Аноним 22/04/24 Пнд 12:43:25 3131560 433
Аноним 22/04/24 Пнд 13:00:28 3131575 434
>>3131560
Но на модное говно для зумеров денежек у тебя нет
Аноним 22/04/24 Пнд 13:07:53 3131586 435
Аноним 22/04/24 Пнд 13:17:52 3131599 436
>>3131586
На комунити версию лицензия не нужна
Аноним 22/04/24 Пнд 13:26:53 3131608 437
Комьюнити вообще норм? Меня заебало с ключами ебаться,по описанию там только спринговых подсказок нет
Аноним 22/04/24 Пнд 13:30:07 3131611 438
>>3131608
Там нет и подсказок по html с js и ии нет, даже лсп нельзя другое подключить. В общем-то только чистая жаба.
Аноним 22/04/24 Пнд 13:30:27 3131612 439
>>3131608
Там кучи функционала нет. Например, нельзя томкат подвязать к зеленой кнопке.
Аноним 22/04/24 Пнд 14:12:39 3131670 440
Аноним 22/04/24 Пнд 14:30:22 3131692 441
Аноним 22/04/24 Пнд 14:45:25 3131725 442
>>3131608

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


>>3131612

Томкат нельзя, но спринг кстати вполне себе стартует.
Аноним 22/04/24 Пнд 14:57:41 3131751 443
>>3131612
Есть плагин для этого, ровно то же самое делает
Аноним 22/04/24 Пнд 14:57:44 3131752 444
>>3129976

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

Кто?

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

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

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

Если уже появился DI, появление экосистемы похожей на JavaEE или спринг - лишь вопрос времени. Программисты необучаемы.
Аноним 22/04/24 Пнд 15:35:59 3131811 445
>>3131611
>даже лсп нельзя другое подключить
ох уж эти зумеры, вычившие буквы лсп)
поддержка языков в идее делается плагинами, то что нет возможности подключить лсп - не значит что другие языки не поддерживаются
Аноним 22/04/24 Пнд 15:37:23 3131815 446
>>3131692
Только если ты индус. Ты индус?
Аноним 22/04/24 Пнд 16:04:20 3131867 447
image.png 63Кб, 821x367
821x367
Аноним 22/04/24 Пнд 16:18:52 3131882 448
image.png 1628Кб, 960x960
960x960
Аноним 22/04/24 Пнд 16:28:06 3131896 449
>>3131882
К чему это? Функция доступна только в ультимейт, доступна.
Ты же придумал за меня тезис, который я не утверждал, сам развил, сам разоблачил и сам же поржал. Хорош. На уровень мидла идешь, а то и сеньки.
Аноним 22/04/24 Пнд 16:34:17 3131908 450
>>3131815
Сергею Немчинскому эклипс тоже нравится
Аноним 22/04/24 Пнд 16:36:52 3131915 451
>>3131908
Он древний скуф, его мнению доверять себя не уважать.
Аноним 22/04/24 Пнд 18:13:59 3132026 452
>>3131867
Чел, поддержка других языков есть и без лсп, проснись
Аноним 22/04/24 Пнд 18:55:44 3132084 453
>>3131908
Так его и воспитывали индусы, он код писал в 2010 когда нахуячить абстрактные фабрики и Impl было чем то нормальным.
Аноним 22/04/24 Пнд 19:27:11 3132137 454
>>3132084
Он коды писал в последний раз где-то в начале нулевых годов.
Аноним 22/04/24 Пнд 20:56:24 3132236 455
>>3132084
А чем там Impl заменили с тех пор?
Аноним 22/04/24 Пнд 21:10:03 3132249 456
Аноним 22/04/24 Пнд 21:21:31 3132260 457
>>3132026
Еще один гений. Я где-то утверждал обратное?
Я говорю про то, что я не могу подключить это например https://docs.oracle.com/en/graalvm/jdk/21/docs/tools/lsp/
То, что разработали оракл, а не жидбрейнс. Не могу сам навернуть любой яп, а довольствуюсь тем, что разрешили жидбрейнсы.
Сложный тезис, понимаю. Старость не радость все таки.
Аноним 22/04/24 Пнд 21:31:39 3132267 458
Без ультимейт идеи даже срать не сяду. Купите ключ - так и быть, вкачусь
таксист
Аноним 22/04/24 Пнд 22:05:54 3132288 459
51384566663.jpg 28Кб, 750x422
750x422
Сегодня на собесе собеседующий попросил рассказать, чем я занимался на последнем проекте. Ну я рассказал концептуально какие задачи были. Но ему что-то не понравилось, говорит больше подробностей надо. А чё рассказывать, если большинство задач сводится к тому, что надо достать данные, что-то с ними сделать и обратно положить? Что он блять ждал услышать от мидла?
Аноним 22/04/24 Пнд 22:10:34 3132293 460
>>3132236
Интерфейсы больше не пишут если реализация только одна.
Аноним 22/04/24 Пнд 22:14:25 3132299 461
>>3132288
Я б начал все детали рассказывать вплоть до названий классов. Если ему интересно слушать описание в полчаса как эта поебень работает - мне не трудно.
Аноним 22/04/24 Пнд 22:16:49 3132305 462
>>3132299
Я ему так и сказал, типа "Мне рассказывать, как я создал репозиторий и сервис и т.д?", а он навёл аналогию про туалет и мытьё рук. Короче хз, чёт вроде он и прав, а чёт вроде и доебался по хуйни.
Аноним 22/04/24 Пнд 22:19:34 3132309 463
17117352820440.mp4 5039Кб, 550x450, 00:00:23
550x450
>>3132288
У меня в команде типы в понедельник не могли рассказать, чем в пятницу занимались.
Аноним 23/04/24 Втр 00:23:00 3132363 464
Аноним 23/04/24 Втр 01:39:01 3132403 465
>>3132363
>>Пишут Basic или Simple.
Название должно отражать чем каждая реализация отличается. Симпл хотя бы подразумевают что есть димпл хард.
Аноним 23/04/24 Втр 05:57:02 3132439 466
>>3132293
Но идея же типа в том, чтобы писать "ны вырост". Сегодня одна, а через три месяца срочно потребовалось ещё две
Аноним 23/04/24 Втр 06:28:51 3132448 467
На самом деле бойлерплейт интерфейсы это чистейший бойлерплейт. Если бы каждый класс имел неявно созданный интерфейс по методам, то ничего писать не надо было бы. Ну или если бы нужно было для этого просто как-то обозначить что это надо создававать, например interclass место class писать.
Аноним 23/04/24 Втр 06:29:35 3132449 468
>>3132448
>На самом деле бойлерплейт интерфейсы это чистейший бойлерплейт.
Писал не перечитывая, тут, очевидно, имелся в виду интерфейс у которого одна реализация.
Аноним 23/04/24 Втр 08:19:17 3132480 469
>>3132305
Как аналогия звучит?
Аноним 23/04/24 Втр 09:12:25 3132501 470
>>3132439
>>писать "ны вырост"
Апфронт дизайн - это антипаттерн. Надо делать расширяемую архитектуру, а не городить классы на все случаи жизни. Все равно не угадаешь как оно пойдет.

>>Сегодня одна, а через три месяца срочно потребовалось ещё две
Когда понадобится, тогда и создавай. Интерфейс выделяется секунд за 10 в идее.
Аноним 23/04/24 Втр 09:13:54 3132503 471
>>3132501
> Апфронт дизайн
> расширяемую архитектуру
Одно и то же.
Аноним 23/04/24 Втр 09:29:35 3132510 472
>>3132503
Вот ещё по этой теме докину, одно из моих самых последних открытий в программировании — всё не предусмотришь. Как конкретный тезис я это вывел спустя 3 года программирования. Раньше задачу этого выполняло "нет времени щас этим заниматься", что подразумевало, что было бы время и что это, якобы, возможно.
Аноним 23/04/24 Втр 10:42:45 3132582 473
>>3132501
>Интерфейс выделяется секунд за 10 в идее.
8 сторипойнтов, полспринта минимум, тащ менеджер!
Аноним 23/04/24 Втр 11:43:02 3132644 474
>>3132449
Такой дилеммы впринципе не должно возникать.

Если встает постановка вопроса - "надо ли писать интерфейс, если заведомо известно что имплементация - одна", вы уже проиграли, спринг вас ебет в жопу, а дизайн приложения - говно.
Аноним 23/04/24 Втр 13:05:19 3132772 475
Юзаю интерфейсы всегда, чтобы всегда можно было тыкнуть на зеленый кругляшок и понять контракт окружающего его модуля (пакета). Без интерфейсов все иконки сливаются в кашу.
Аноним 23/04/24 Втр 13:48:51 3132831 476
>>3132503
Расширяемость - это значит можно что то допилить без особых переделок. Например в бд пол сохранять в varchar, а не boolean. А апфронт - это нахуячить отдельную таблицу на 50 видов гендеров с возможностью добаления своего, когда в тз про них ни слова не было потом еще и извиняться придется.

>>3132582
Курс сторипоинта обвалился, теперь в спринт влезает вдвое больше.
Аноним 23/04/24 Втр 14:32:53 3132861 477
>>3129682
Сейчас бы в 2к24 сидеть на одном проекте со джаваскуфидонами, которые кое-как осилили свой спринг бут и хубирнейт, а в проекте все обмазано публик клусс МайСервисИмпл имплементс Майсервис на 3к строк без тестов..
Аноним 23/04/24 Втр 14:34:59 3132862 478
>>3130535
Изначально мертворожденный проект как и большинство проектов спринга
Аноним 23/04/24 Втр 14:37:37 3132864 479
>>3132293
Пишут. Иначе ты нарушаешь СОЛИД, чел.. Читай дядюшку Боба. публик интерфейс МайСервис
публик клусс МайСервисИмпл имплементс МайСервис!
Аноним 23/04/24 Втр 14:38:32 3132866 480
Двощ, подскажи.

купил я, значит, курс на джавараше, и все пока устраивает, но
Хочу писать код не только внутри их модуля, а в отдельном "своем" приложении. Как сейчас с этим дела обстоят? Обязательно ли качать Линукс, и что вообще делать?
Аноним 23/04/24 Втр 14:39:00 3132867 481
>>3132305
>"Мне рассказывать, как я создал репозиторий и сервис и т.д?"
Ты на джуна шел сюда по задачам которые ты решал, лол))
Аноним 23/04/24 Втр 14:40:32 3132869 482
>>3132403
>Название должно отражать чем каждая реализация отличается
Чел... Контроллер - Сервис - Репозиторий. Все! Говорит тебе Кабан добавить юзеров в систему. Ты создаешь ЮзерКонтроллер. Затем ЮзерСервисИмл. Затем ЮзерРепозитори. Все!
Аноним 23/04/24 Втр 14:42:43 3132871 483
>>3132866
Нормально обстоят. У меня 80% знакомых джавистов сидит на Винде (я бы удивлен). Качай Intelij IDEA Community edition
Аноним 23/04/24 Втр 14:44:03 3132873 484
>>3132772
>понять контракт окружающего его модуля (пакета)
Чего? Это и на классах прекрасно работает. А любителей с нихуя насрать интерфейсами и лепить Impl мы гоним с проекта на хуй
Аноним 23/04/24 Втр 14:48:55 3132877 485
>>3132869
>Контроллер - Сервис - Репозиторий

Брух

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

Сходил в админку и навалил юзеров, лол.
Аноним 23/04/24 Втр 14:54:03 3132884 486
>>3132871
Спасибо, чуть позже гляну

И ещё вопрос - обилие фигурных скобок в if-else. Все пытаюсь понять, но не особо выходит. Или пока забить, и с практикой придет? Я пока делаю без них, так как не было нужды
Аноним 23/04/24 Втр 14:56:58 3132885 487
>>3132884
Вот что я имею ввиду


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("Вы ввели не целое число");
}

Здесь же спокойно можно без них обойтись
Аноним 23/04/24 Втр 15:22:53 3132914 488
>>3132831
>Курс сторипоинта обвалился, теперь в спринт влезает вдвое больше.
Совсем дурак?

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

Вот как надо!
Аноним 23/04/24 Втр 15:44:54 3132945 489
>>3132869
>>Затем ЮзерСервисИмл. Затем ЮзерРепозитори.
Просто создаешь ЮзерСервис без всякого импл и все.
Аноним 23/04/24 Втр 15:52:39 3132963 490
>>3132866
Чего? У них там какая-то своя иде прилагается к курсам?
Аноним 23/04/24 Втр 15:53:45 3132967 491
>>3132885
Зависит от кодстайла команды, но почти всегда тебе скажут что они нужны во избежание неявного поведения и багов.
Аноним 23/04/24 Втр 15:59:16 3132975 492
>>3132885
Нет конечно, и ты привел хороший пример почему нельзя. Если ты пишешь без фигурных скобок, то только следующее выражение считается принадлежащим к if блоку.
Во-первых без скобок с else это вообще не скомпилится, а если бы не было else, то без скобок выражение System.out.println(i*2); будет выполняться вне блока, то есть безусловно.
Аноним 23/04/24 Втр 16:17:13 3133011 493
>>3132885
>
>Здесь же спокойно можно без них обойтись
А ты попробуй, даун. Будешь послан компилятором нахуй в конкретно твоем случае.

Нахуя на двач со своей тупорылостью приходишь?
Аноним 23/04/24 Втр 16:20:20 3133019 494
>>3132884
Если одна строка после ифа или елса то можешь не ставить,в твоем примере в блоке елс будет выполнена только первая строка по условию а вторая будет воспринята компилятором как будто находится за блоком елс
Аноним 23/04/24 Втр 16:21:28 3133023 495
Аноним 23/04/24 Втр 16:22:38 3133026 496
image.png 69Кб, 228x221
228x221
Аноним 23/04/24 Втр 16:32:26 3133036 497
>>3133011
Поглядите на потного сноба-синьора. Чувствует, что ему в жирную спину дышат упругие джависты
Аноним 23/04/24 Втр 16:37:25 3133044 498
>>3133036
>Чувствует, что ему в жирную спину дышат упругие джависты
Ждем следующий тред о вкате от неосилятора.
Аноним 23/04/24 Втр 17:35:23 3133080 499
>>3133036
>упругие джависты
Упругие жависты >>> скуфы
Надеюсь их все больше будет, а то уже неможно, одни душнилы старые неняшные.
Аноним 23/04/24 Втр 17:38:39 3133087 500
image.png 37Кб, 714x437
714x437
>>3132885
Пиши как хочешь, не нужны скобки - не пиши.
Я вот вообще ебошу прям внутри условий всякое.
Аноним 23/04/24 Втр 17:48:54 3133090 501
>>3133087
Ебало представили коллег, когда этого вкатуна наймут?
Аноним 23/04/24 Втр 17:53:33 3133092 502
>>3133090
Я больше этих коллег знаю, лол.
Знаааешь, так грустно осознавать, что вокруг одни дебилы.
Аноним 23/04/24 Втр 18:00:50 3133097 503
>>3133087
Эта отрыжка даже до ревью человеком не доберется. Банально сонар не пропустит.
Аноним 23/04/24 Втр 18:03:09 3133098 504
>>3133097
Начнем с того, что он со своей выебистостью школьника даже работу найти не сможет.
Аноним 23/04/24 Втр 18:05:40 3133100 505
>>3133097
Утютю. Сонар не допустит. Как же тебя трясет, лол.
>>3133098
Хз, я факты сказал. Сколько дней назад вопрос задал, хоть один человек ответил? Нет. >>3126939
Похоже до 17 главы спеки никто и не доходил, лол.
Аноним 23/04/24 Втр 18:07:54 3133103 506
>Похоже до 17 главы спеки никто и не доходил, лол.
Может скажем ему?
Аноним 23/04/24 Втр 18:10:14 3133105 507
Аноним 23/04/24 Втр 18:17:17 3133109 508
>>3133092
>знаю
А уметь когда начнешь?
Аноним 23/04/24 Втр 18:26:51 3133113 509
>>3133109
Что именно уметь?
Круды писать? Это не сложно.
А так, у меня нет опыта написания всякой энтерпрайз хуйни, поэтому в этом плане особо не напираю.
Но честно, так не хочется, понимая что придется общаться со всякими тупыми дебилами душнилами, которые будут ебать по всему чему угодно, лишь бы самоутвердится.
Аноним 23/04/24 Втр 18:42:40 3133123 510
51384566663.jpg 28Кб, 750x422
750x422
Парни, три года я проработал на проекте условно среднего уровня. Там ничего сложного не было: обычные круды, прикрутить какой-то сторонний сервис типа смс оповещений, и т.д.

У меня вопрос: что пишут настоящие кодеры? Потому что у меня стойкое ощущение, что я нихуя не умею практически проработав 3 года.
Аноним 23/04/24 Втр 18:48:49 3133127 511
>>3133113
А ты никому и не нужон, по тебе сразу видно, что ты неприятный человек.
Аноним 23/04/24 Втр 19:00:54 3133133 512
>>3133127
Что я неприятного сделал? Сказал факт, что я лучше знаю кор жабы, чем будущие коллеги? Или то, что в личном коде ты можешь придерживаться любого кодстайла, писать любую хуйню и никто тебя не в праве ограничивать? Ууу крамола, как можно)
Аноним 23/04/24 Втр 20:32:44 3133192 513
>>3133133
>чем будущие коллеги
Так а с чего ты взял что тебя кто то на работу возьмёт?
Аноним 23/04/24 Втр 20:42:47 3133206 514
>>3133192
Ну потому, что я ахуенный? И уже имею приглосы на стажерство
Аноним 23/04/24 Втр 20:56:36 3133234 515
>>3133206
Я конечно не опытный, но по-моему вот так >>3133087 писать всё не стоит. Выглядит конечно круто и непонятно, но читается сложно.
Аноним 23/04/24 Втр 21:02:36 3133251 516
>>3133234
Пиши как хочешь в своих проектах. Я эту хуйню писал, какому-то студику на форуме, с целью чтобы если он кому-то ее сдал, то тоочно не повирили, что автор это он. Считай медвежья услуга)
Аноним 23/04/24 Втр 21:07:51 3133264 517
>>3133234
Я опытный, и проблема у этого чела не в говнокоде, а в его выебистости.
Аноним 23/04/24 Втр 21:19:59 3133283 518
>>3133264
> проблема не в коде
То есть это нормально в продакшн коде писать пре-кременты и побитовые сравнения?
Аноним 23/04/24 Втр 21:27:45 3133303 519
51384566663.jpg 28Кб, 750x422
750x422
>>3133087
Я правильно понимаю, что на сложных больших проектах пишут вот такой сложный и непонятный код?
Аноним 23/04/24 Втр 21:42:16 3133324 520
Аноним 23/04/24 Втр 21:59:12 3133340 521
hacker-anonymou[...].png 542Кб, 1200x600
1200x600
>>3133324
Так а какой код пишут настоящие синьоры хардкорные, кто из тетрадей и книжек по компьютерным наукам не вылазит? Какой сложности задачи? Я хочу понимать, в какую сторону развиваться.
Аноним 23/04/24 Втр 22:07:05 3133351 522
Upload.S02E01 ([...].jpg 23Кб, 704x400
704x400
Upload.S02E01.jpg 25Кб, 704x400
704x400
Аноним 23/04/24 Втр 22:07:11 3133353 523
>>3133340
Исходники спринга почитай.
Аноним 23/04/24 Втр 22:07:42 3133356 524
>>3133340
Я даже не джун. Но вроде сеньки архитектуру в общем разрабатывают. Кружочки там с квадратиками рисуют, ну и зависимости проекта разрешают.

А так, можешь вместе со мной изучать многопоточку, знаешь какая она прикольная? Ухх просто.
Аноним 23/04/24 Втр 22:08:58 3133364 525
>>3133356
Да, многопот очка внатури сложная и интереса. Ты по чему изучаешь?
>>3133353
Там какой-то кал в этих самых исходниках.
Аноним 23/04/24 Втр 22:10:28 3133368 526
>>3133364
>Там какой-то кал в этих самых исходниках.
А можт у тебя в голове кал?
Аноним 23/04/24 Втр 22:12:31 3133372 527
Аноним 23/04/24 Втр 22:14:13 3133376 528
Аноним 23/04/24 Втр 22:14:18 3133377 529
Аноним 23/04/24 Втр 22:16:00 3133381 530
Capture.JPG 22Кб, 846x178
846x178
>>3133368
Вот это не кал что ли? Вот эти приведения какие-то нахуй. Выглядит как костыли.
Аноним 23/04/24 Втр 22:36:26 3133409 531
>>3133381
Где ты приведений увидел?
Аноним 24/04/24 Срд 04:10:04 3133548 532
71JxcAC3guL.ACU[...].jpg 92Кб, 773x1000
773x1000
Пытался в пикрил, но чувствую, что ещё рано мне. Интересные вещи пишет, но всё же много информации про всякие оптимизаторы кверей, которые работают под капотом у баз данных, и это трудновато осознать и тем более применять эти знания на практике. Решил Java Persistence API и Hibernate почитать сначала, и потом возможно вернуться.
Аноним 24/04/24 Срд 04:48:29 3133553 533
>>3133377
>шипилеша
Бля...чел... Это, кстати, отличный пример, почему канкаренси в жвм и жабе сделано через такую задницу, что люди годами пишут книги, выдрачивают статьи и заучивают как стихи все хитровыебанные хуитки и прочее неочевидное поведение жмм.
Позабудешь какое-нибудь правило жмм и в лучшем случае, твой понос на жабе встанет колом
Аноним 24/04/24 Срд 04:49:34 3133554 534
Аноним 24/04/24 Срд 05:46:40 3133563 535
Кстати а правда, что у Хибернейта есть большие проблемы с LEFT JOIN?
Аноним 24/04/24 Срд 07:23:37 3133586 536
Эрик Эванс за 20 лет не придумал второго примера, на котором можно объяснить DDD? Во всех лекциях Cargo, Itinerary, Log.
Аноним 24/04/24 Срд 08:35:19 3133612 537
>>3133554
Двачую. Есть же Spring Data JPA. Хибернейт сосать
Аноним 24/04/24 Срд 08:41:54 3133614 538
>>3133553
эм, тебе не надо заучивать повеленре, т.е. следствие. тебе всего лишь надо понять модель в общем, чтобы ты сам мог говорить, когда и какое поведение будет.
Да и чем тебе шипилев не нравится? Правильные вещи говорит и опыт у него уникальный.
Аноним 24/04/24 Срд 09:00:44 3133620 539
>>3133614
Хотяя, то, что модель сложная не отрицаю. Но где проще?
Аноним 24/04/24 Срд 10:17:59 3133656 540
>>3133612
Есть же хибернейт. JDBC сосать
Аноним 24/04/24 Срд 11:08:36 3133710 541
>>3133612
>Spring Data JPA
Это буквально Hibernate, хуеблядина ты тупорылая
Аноним 24/04/24 Срд 11:26:49 3133731 542
>>3133656
А хибернейт типа на святом духе работает. Там под капотом тот же JDBC.
Аноним 24/04/24 Срд 11:27:50 3133732 543
>>3133563
Какие проблемы? Не замечал.
Аноним 24/04/24 Срд 11:40:00 3133739 544
>>3133710
Именно, лалка ебучая. И эта хуйня в 90% проектов.
То, что руками больше не надо конфигурировать SessionFactory через persistence.xml не означает, что хуйбернет куда-то делся.
Аноним 24/04/24 Срд 12:08:26 3133771 545
>>3133739
>>руками больше не надо конфигурировать SessionFactory
Ты откуда вылез? Из 2007 что ли?
Аноним 24/04/24 Срд 13:20:25 3133853 546
>>3132084
А я наоборот думал, что абстрактные фабрики и имплы это полный хайп в 2024. А как грамотно писать тогда, чтобы в джава-треде уважали? Есть может статьи какие-то, или примеры конкретные с применением современных подходов, не 2010 года?
Аноним 24/04/24 Срд 13:37:18 3133873 547
>>3133771
По делу высрешь что-нибудь? Хуйбернет сейчас ВЕЗДЕ. Жук - только в твоем залупарии
Аноним 24/04/24 Срд 14:44:37 3133951 548
>>3133731
Я с того типа с data jpa рофлил просто, но и он скорее всего рофлил
Аноним 24/04/24 Срд 20:57:12 3134295 549
>>3133739
Я с CORBA работал чел...
Аноним 25/04/24 Чтв 12:48:52 3134896 550
>>3133087
Ты - латентный хаскелит чтоли?
Аноним 25/04/24 Чтв 13:25:56 3134939 551
image.png 10Кб, 266x169
266x169
image.png 9Кб, 282x172
282x172
>>3134896
Это очень императивный код, который только в путь использует побочные эффекты, мутабельность и прочее прочее.

И еще жаба менее выразительна в плане применения операторов. Были б у меня возможности с пика, я б такоооое написал, эх. А еще оптимизация хвостовой рекурсии, функции первых порядков, тайпклассы с параметризацией по контейнеру...
Аноним 25/04/24 Чтв 14:50:45 3134991 552
image.png 77Кб, 737x415
737x415
Аноним 25/04/24 Чтв 15:01:51 3134999 553
>>3133873
>Хуйбернет сейчас ВЕЗДЕ. Жук - только в твоем залупарии
Spotify использует жук.
Аноним 25/04/24 Чтв 17:29:51 3135223 554
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов