Предыдущий: >>3328803 (OP)
Информация в этом вики хуёвая, написана гейткипером.
Тут на дваче слишком дохуя всяких шизов, психопатов-социопатов, садистов и прочих ебанутых.
Говорят где-то ближе к 29 ждк.
Разрабы джавы ненавидят ломбок и хотят его выпилить на уровне ждк, так что отвезут обратно.
Нет, но когда у тебя написание любого класса сопровождается гет сет гет сет гет сет гет сет гет сет гет сет гет сетаньем, то говорить в принципе не о чем.
Во первых, тебе не добавляли эту фичу в язык. Т.е. левая библиотека и ты просто пиздишь.
Во вторых, как только в твоем классе перестанет быть нужен хоть один сеттер у тебя код станет ровно таким же как на шарпе.
Я не понимаю, как можно на полном серьезном ебле гордится одной ебаной фичей по написанию сеттера над классом и сука гордится этим? Ты ебанутый, ну правда.
> Во первых, тебе не добавляли эту фичу в язык. Т.е. левая библиотека и ты просто пиздишь. Ниправильна ебёте!
> Во вторых, как только в твоем классе перестанет быть нужен хоть один сеттер у тебя код станет ровно таким же как на шарпе. Слабо ебёте!
> Я не понимаю, как можно на полном серьезном ебле гордится одной ебаной фичей по написанию сеттера над классом и сука гордится этим? Ты ебанутый, ну правда. Бля, хули пост в 11 раз в джава треде быстрее отправляется?
Ну в общем-то твою невероятная фича в шарпе уже есть - record. Они могут быть изменяемыми.
Теперь вот вопрос, а когда в жабе появится интерполяция строк, дефолтные значения для аргументов, чтобы не писать говнобилдеры, когда вальхалла и прочее прочее. Ну главное верить, что жава впереди планеты всей.
лучше бы async\await завезли
я конечно все понbмаю, что это ебаный сахар, но надо признать что весь "пердолинг из коробки" один хуй покрывают обертками\хуертками, что бы можно было писать async()
Можно ли носить воду в ведре, но без ведра?
> Ну в общем-то твою невероятная фича в шарпе уже есть - record.
А причём тут рекорды? Речь про геттеры и сеттеры для произвольных классов.
> а когда в жабе появится интерполяция строк,
А в петушарпе есть интерполяция что-ли? Или ты тот сахарок для плюса интерполяцией называешь? Лол, счастливого sql inject'а.
> дефолтные значения для аргументов реализованные способом А, чтобы не пользоваться дефолтными значениями реализованными способом Б
Я просто вкину @Builder и посмотрю на разрыв пердалища шарподебила.
> когда вальхалла и прочее прочее
А в петушарпе вальхаллу что-ли завезли? Не знал, не знал.
А теперь ответь на мой вопрос: когда петушарп не будет медленнее джавы в 11 раз, когда в петушарп завезут способ избавиться от гетсетов, когда в петушарп завезут теорию многопотока, когда в петушарп завезут нормальную систему сборки, когда в петушарп завезут нормальный инструментарий для бенчмарков, а не то искоробочное позорище, когда в петушарп завезут кроссплатформенность, и когда в петушарп завезут обратную совместимость? Ответ на все вопросы: никогда.
Слив.
Пёрнул с этого самоутешения вупсеня.
Создал PoolingHttpClientConnectionManager, прописал ему десяток коннектов в setDefaultMaxPerRoute, создал CloseableHttpClient с этим коннекшн менеджером, пытаюсь через ресттемлейт раз в секунду достучаться до одного эндпоинта (просто заглушка в wiremock), и получаю поочередно то 200, то "[read] I/O error: An established connection was aborted by the software in your host machine".
"Лечится", если не реюзать idle коннекты, а всегда создавать новые - но тогда теряется смысл пула. Все настройки уже облазил, пиздецъ.
Может удалённая машина закрывает соединение? Проверь там логи и настройки keep alive.
Собственно, для любителей сахара давно есть петушарп под JVM. Называется Kotlin.
Это еще GOвноеды сюда не залетали...
Нашел, спасибо: https://javarush.com/quests/lectures/jru.module2.lecture25
А средствами Спринга никак невозможно?
Аутстафф конторы с временными проектами разве не фриланс?
Скорее жизненным уроком.
Почему не работает анимация с помощью виртуальных тредов?
Хотел нарисовать небо и через 5 секунд на нем цветные шарики.
Эм. Код особо не читал, но вся отрисовка, по идее, должна быть в EDT https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/EventQueue.html#invokeLater(java.lang.Runnable)
Просто нарисуй небо, и запланируй через пять секунд действие, которое исопользует метод выше.
Хотел на кошках окнах потренироваться для понимания виртуальных тредов. Но видимо AWT не может в перерисовку с многопоточностью. В Delphi было достаточно оборачивать код рисования на форме в synchronized.
Для многопоточного сервера (пусть будет мессенджер вроде телеги) подойдут виртуальные треды?
Алгоритм примерно такой: прослушиваются сокеты, если приходят ответы от клиентов - запоминаем в список, создаем сессии (тред на каждую сессию), далее в каждой сессии выдаем ответы на запросы, пока клиент не отключится.
Плюс сохранять сообщения в базе данных.
Хотел с виртуальными тредами попробовать написать сервер с тысячами запросов в секунду, Erlang и Go позволяли подобное.
>видимо AWT не может
Вообще вряд ли можно найти современный UI, который может в многопоточную отрисовку. Слишком заебно и не стоит того.
>для понимания виртуальных тредов
Генератор напиши, тип того https://gist.github.com/slaymaker1907/9a12adc7eee311a8d8a5ce97d8737793
>>44320
На счет сервера, мне казалось, что вся работа там состоит в том, чтобы в сервере приложений заменить фабрику обычных тредов, на виртуальные. Усе, дальше изменений в код ты просто не заметишь.
>Просто нарисуй небо, и запланируй через пять секунд действие, которое исопользует метод выше.
Тот же самый результат. Пустое окно, через 5 секунд появляется полная картинка. А если оборачивать в вызов invokeLater метод repaint, то вообще окно ничего не отображает и не реагирует на события. Наверно, надо со Swing или JavaFX попробовать...
>Вообще вряд ли можно найти современный UI, который может в многопоточную отрисовку.
На Delphi (и WinAPI в целом) с этим не было никаких проблем, если на время рисования блокируешь в текущем потоке окно (без блокировки, понятно, все висло и падало).
Ты какую-то хрень делаешь. Во первых диспатч тред на целых 5 секунд занимаешь ничем, это полнейшая хуйня, во вторых именно в этом invoke должны быть все действия связанные с UI. Каждое измнение положения, цвета, репеинт и прочее.
>>44360
Это хуево. В том же JavaFX лучше поступили, если ты делаешь хуйню с UI вне EDT, то тебе ошибку кидает. Так хотя бы есть гарантия, что не будет проблем.
Смешно - это когда гоферы думают что гоу - это прогресс, в то время как гоу - просто новый виток замкнутого круга.
Это не виток круга, это попытка раввинов создать этот круг. Никому не выгодно чтобы гойскому скоту было хорошо. Поэтому надо заставить гоев страдать.
Думаю, насколько сложно вкатиться
Любой, кто не способствует смерти жидеи или даже наоборот помогает ей это преступник.
>преступник
И что же, ты накажешь меня в кроватке? :3
А если серьезно, то это для внутреннего пользования, энивей от рузьких закрыли возможность загрузки плагинов.
>Думаю, насколько сложно вкатиться
ЕБАТЬ как сложно. У них есть документация только по созданию простейшего плагина для кастомного языка. Все остальные части функционала, для которых можно делать плагины, никак не описаны. У них в документации буквально написано "просто смотрите код других плагинов, лол".
Мде, в таком случае точно больше недели понадобится, эх.
Хер знат, но Math использует это. Возможно не просто так.. А значит 3.
1) зачем именно виртуальные треды?
2) если нужно будет обработать что-то крупное, то будет беда при работе нескольких виртуальных тредов: они будут на одном ядре( один реальный тред) считаться.
Мимо один раз делал сервер на сокетах и обнаружил, что при переполнении числа запросов сервер весь летит.
>они будут на одном ядре
Они не 1:M, а N:M, т.е. N платформенных на M виртуальных. Так что не на одном ядре они будут. Но cpu intensive в любом случае не рекомендуется даже ораклом, конечно.
Чего? Нет.
>Я 3 года опыта, мидл, мидл+ как я думаю
Джун/Джун+. Мидл - это минимум 5 лет реального (без накруток) опыта нынче.
>>46908
>что вместо идеи
IDEA. Либо старые версии. Либо Community. Либо GigaIDE от сбера. Для джавы все остальные IDE попросту непригодны. На VS Code у нас джависты пробовали переходить, сказали, что хуита и пошли дальше в идее кодить. А причина в том, что для джавы нет LSP серверов нормальных, которые можно было бы прикрутить к vs code. Только какой-то заброшенная каловая реализация от эклипса и не более.
Довольно простая на первый взгляд задача. Но если копнуть в детали, то становится сложнее. Расписание - это что? Просто набор каких-то дат/времен, привязанных к конкретному пользователю, в которые надо запустить рассылку? Как вы ее у себя на беке сохраняете? Уже таблица есть какая-то для хранения этого расписания для каждого из юзеров или еще нет? Если расписание хранится только в куче запущенного процесса, то как быть, если вдруг придется порестартить сервер?
UPD. Перечитал описание и понял, что вроде все попроще должно быть. Просто нужна периодическая таска, которая будет всем юзерам отправлять отчеты за предыдущий период. Тогда проще. Осталось только с магией спринга попердолиться, чтобы динамический шедулинг сделать.
Лучше Eclipse/Netbeans ещё не придумали. Гавно типа Idea и подделки от Сбера сразу отбрось. В новых версиях Eclipse все идёт из коробки как в Visual studio.
Сам жабист, но недавно наняли пентесторов, которые поломали нашу либу написанную на жабе за день. На вопрос что делать ответили писать на плюсах. Когда нужна скорость в алгоритме всегда пишу на плюсах ладе уже не пытаюсь на жабе писать так как на плюсах всегда получается быстрее.
Жир. Плюсы и жаба по скорости равны, а в исключительных случаях джава быстрее. Только на джаве сегфолтов нет, а любое исключение в проде без убийства перформанса дебаггером аккуратно обосрётся в консоль стектрейсом.
> Сам жабист, но недавно наняли пентесторов, которые поломали нашу либу написанную на жабе за день. На вопрос что делать ответили писать на плюсах.
Как связан пентестинг и перформанс? Похоже на то что какой-то школьник по клавиатуре постучал, ей-богу. Плюсы гораздо менее безопасны, чем джава.
>Сам жабист
>Когда нужна скорость в алгоритме
Почему жаваны так помешаны на перфомансе? Это какое-то писькомерство? Мол, а вот в моем языке алгоритм сортировки быстрее твоего, хаха
Потому что в реальных условиях перформанс это если не главное, то второе после главного.
> Хз, у меня потоковая обработка видео и жаба не вытянул за 10 мс успевать обработать кадр, кресты вывезли.
Джава не умеет в зеро-кост абстракцию, плюсы в принципе в абстракцию не умеют особо. Если нужен перформанс на джаве как на плюсах, нужно писать на джаве как на плюсах, разница будет лишь в мемори сейфти. Наверняка ты навернул каких-то стримов и прочих модных штук, которые в джаве с перформанс точки зрения (в сравнении с плюсами) сосут.
> Жаба дезассемблируется в почти читаемый код. С++ дезасемблируется в нечитаемую хуйню.
Но это же буквально защита от школьника, лол. Вам стоит очень сильно подумать о ваших пентестерах, если они предлагают такое вместо концептуальной защиты.
>Потому что это требование в тз?
В каком тз блять? Это даже не функциональные требования. Максимально вторичная хуйня, которая обыкновенно решается покупкой 100500 планок.
>>47075
Реально, соответствие требованием заказчика, отсутствие багов, консистентность и прочие гарантии. Нахуй все это, зато сайтик быстро грузится.
> Максимально вторичная хуйня, которая обыкновенно решается покупкой 100500 планок.
Ну и чё когда в игре видишь 40 фпс не бежишь покупать rtx 5090 и 14900k, а когда спринг тормозит ноешь, что джава медленная хуйня, а не покупаешь 100500 планок? Простой коупинг дегенерата, что не умеет писать быстрый код.
> Реально, соответствие требованием заказчика, отсутствие багов, консистентность и прочие гарантии. Нахуй все это, зато сайтик быстро грузится.
И как всё это противоречит производительности?
Тебя уже обсирали по производительности с ног до головы, снова за порцией говна пришёл? Код можно написать любого уровня медленности. Любые ресурсы можно засрать. О производительности всегда нужно думать, иначе у тебя программа не выполнит вообще ничего.
>а когда спринг тормозит ноешь
Где я хоть раз про это ныл? Это вы ноете, не я. Мне похуй, это все равно меньше чем потребление обыкновенного бровузера. Пик.
>Ну и чё когда в игре видишь 40 фпс
Я не понимаю, почему ты мне со стороны конечного пользователя это описываешь? Как бы то, что фпс мало в играх, наборот правильной мою позицию делает, что кабанчику ПОЕБАТЬ на перфоманс. Почему тебе лично не похуй в таком случае? Тебе даже не заплатят за это.
>>47090
>Тебя уже обсирали
Когда?
>О производительности всегда нужно думать
Нет не нужно. Обычный процесс состоит так: пишешь просто хороший код, типа исключаешь квадрат, когда можно линейно. Потом, перфманс тесты выявляют ботлнеки и вот тогда можно начать немного думать. А если ты постоянно будешь делать грязные хаки ради какого-то там перфманса в коде, который вообще раз в никогда вызывается, то ты просто бесполезный сотрудник тратящий рабочее время вникуда.
> Но это же буквально защита от школьника, лол. Вам стоит очень сильно подумать о ваших пентестерах, если они предлагают такое вместо концептуальной защиты.
Что ты имеешь ввиду?
>>47086
> В каком тз блять? Это даже не функциональные требования. Максимально вторичная хуйня, которая обыкновенно решается покупкой 100500 планок.
Лол, интересно как это объяснить заказчику, чтобы он остался заказчиком, а не ушёл к другим поставщикам?
> Где я хоть раз про это ныл? Это вы ноете, не я. Мне похуй, это все равно меньше чем потребление обыкновенного бровузера. Пик.
Удачи выйти в прод, вкатотуся.
> Я не понимаю, почему ты мне со стороны конечного пользователя это описываешь? Как бы то, что фпс мало в играх, наборот правильной мою позицию делает, что кабанчику ПОЕБАТЬ на перфоманс. Почему тебе лично не похуй в таком случае? Тебе даже не заплатят за это.
А причём тут кабанчик? Речь идёт не о кабанчиках, а о том, нужна ли производительность в принципе. Зачем ты тезис подменяешь?
> Когда?
Докупи планку памяти в мозг, может помнить будешь.
> Нет не нужно. Обычный процесс состоит так: пишешь просто хороший код, типа исключаешь квадрат, когда можно линейно. Потом, перфманс тесты выявляют ботлнеки и вот тогда можно начать немного думать. А если ты постоянно будешь делать грязные хаки ради какого-то там перфманса в коде, который вообще раз в никогда вызывается, то ты просто бесполезный сотрудник тратящий рабочее время вникуда.
Это и есть "думать о перформансе", маня. Никто тебе не предлагает сразу же грязные хаки делать. А твоя пропаганда как раз подталкивает людей хуярить квадраты на похуях и не делать перформанс тесты, похуй же, чё.
Вроде бы ясно было сказано, что я имею в виду. Придёт не-школьник и вся ваша защита полетит в тартарары, потому что вы уделили внимание тому, чтобы школьники не смогли дизассемблировать, а настоящую, концептуальную защиту просто не смогли реализовать из-за отсутствия сейфти в плюсах.
>Удачи выйти в прод, вкатотуся.
Что ты имеешь ввиду? Я уже там.
>а о том, нужна ли производительность в принципе
Тем временем ответы:
>перфоманс это второе, нет НУЛЕВОЕ место, главный бог на которого нужно молится
>авот тз
Блять, ну да. Подменяю тезис я ебал.
>>47098
>может помнить будешь
Сложно все таки помнить чужие фантазии, да.
>Никто тебе не предлагает сразу же грязные хаки делать
>а я вот как вижу, что алгос требует скорости, сразу на плюсах пишу.
Ясн.
> Что ты имеешь ввиду? Я уже там.
Локальный запуск срыга из жидеи на шинде это не прод.
> >перфоманс это второе, нет НУЛЕВОЕ место, главный бог на которого нужно молится
> >авот тз
> Блять, ну да. Подменяю тезис я ебал.
И каким образом то, что перформанс нулевое место говорит, что нужно сразу же думать о грязных хаках? Когда пытаешься избавиться от багов, ты же не делаешь 100%-ное покрытие тестами сразу же, ограничиваешься 80%-ным.
Что за бред ты пишешь? Вот либа, вот хакер; первое, что он сделает попытается дезассемблировать либу, чтобы увидеть, что хукать.
И ты такой: хаха, защита от школьника, нужна концептуальная защита. Ты дурак?
> Сложно все таки помнить чужие фантазии, да.
Ну вот сейчас я тебя снова обоссал. Запомни это на подольше и не позорься.
> >Никто тебе не предлагает сразу же грязные хаки делать
> >а я вот как вижу, что алгос требует скорости, сразу на плюсах пишу.
> Ясн.
Ну и нахуй ты мне чужие слова приписываешь?
>>47107
Что ты вообще сказать хочешь? То, что первая защита это защита тем, что после компиляции код становится менее читаемым? И что? Его всё равно можно прочитать, дебил, даже на плюсах, и хакер прочитает, и уже после этого должна отработать концептуальная защита, которую невозможно обойти доказательно. Но её не будет, потому что ваши пентестеры понадеялись, что вас хакать пятиклассники будут.
> Что ты вообще сказать хочешь? То, что первая защита это защита тем, что после компиляции код становится менее читаемым? И что? Его всё равно можно прочитать, дебил, даже на плюсах, и хакер прочитает, и уже после этого должна отработать концептуальная защита, которую невозможно обойти доказательно.
Ясно. Ты шиз. Больше не пиши мне.
Чел... хацкерам похуй - джава у тебя или бинарь. Тебе сегодня денуву вскрывают на похуях. Сам по себе сишный компилятор общий расклад никак не меняет - помимо него тебе все равно придется обмазаться каким нибудь дерьмом типа обфускации, и все равно это не поможет. Ты просто щас отстаиваешь риторику не очень умного кабаныча, которому надо прикрыть свою жопку от нападок какого то доебистого стейкхолдера, про реальную защиту от дизассемблирования тут речи не идет. Это во первых.
Во вторых, джава в качестве десктопа не так сильно распространена, как джава в облаках или в качестве веб сервисов. Во втором случае ты просто не светишь исполняемыми файлами, и дизассемблировать нечего. В вебе другие векторы атак. В которых сишка и плюсовики обосрутся на порядок быстрее.
мее, ты типа просишь меня войти на прод сервер и сделать там free? У меня нет доступа, сорян
>ты же не делаешь 100%-ное
никогда про 80 процентов не слышал если честно, обычно делают даже больше 100% покрытие, типа юнит, интеграционнве и прочие ну и энивей это не даёт гарантии отсутствия багов.
>>47109
не заметил.
никто, значит никто, а не только ты. читай внимательнее собственные тезисы.
> мее, ты типа просишь меня войти на прод сервер и сделать там free? У меня нет доступа, сорян
Ты это сам просишь, лул. Ты же в качестве пруфа привёл какую-то хуйню.
> никогда про 80 процентов не слышал если честно, обычно делают даже больше 100% покрытие, типа юнит, интеграционнве и прочие ну и энивей это не даёт гарантии отсутствия багов.
Вкатись уже наконец-то, дебил. Покрытие у него выше 100%, пиздец.
> не заметил.
> никто, значит никто, а не только ты. читай внимательнее собственные тезисы.
Что-то по делу будет?
> Чел... хацкерам похуй - джава у тебя или бинарь. Тебе сегодня денуву вскрывают на похуях. Сам по себе сишный компилятор общий расклад никак не меняет - помимо него тебе все равно придется обмазаться каким нибудь дерьмом типа обфускации, и все равно это не поможет.
Пентестеры сказали, что
- жаба без обфускации это сложность 0 для взлома
- жаба с обфускациями это сложность 2 для взлома
- плюсы без обфускации это сложность 3 для взлома
- плюсы с обфускцией это сложность 10 для взлома
Где-то после сложности 7 большинство хакеров плюнуть пытаться поломать либу и будут к ней относится как к чёрному ящику. Shit on input, shit on output.
> Во вторых, джава в качестве десктопа не так сильно распространена, как джава в облаках или в качестве веб сервисов. Во втором случае ты просто не светишь исполняемыми файлами, и дизассемблировать нечего. В вебе другие векторы атак. В которых сишка и плюсовики обосрутся на порядок быстрее.
Какая разница на чем написан сервер? Хоть на питоне. Если обмазываешься стандартами защиты, то проблем не будет.
Твои пентестеры дебилы и тебе уже было сказано об этом. Что-то по существу скажешь?
По существует вопрос простой. Как защитить библиотеку написанную на жабе от взлома на уровне плюсов с обфускацией?
это не было пруфом, лол. ну тип да, у меня в процессе разработки большая часть оперативы уходит на браузер, иде, виртуализацию и кучу всего остального, но не на сервер. решил об этом сказать
>Покрытие у него выше 100%, пиздец.
Если по одной и той же строке тесты проходят дважды, то вполне можно считать покрытие и выше 100%. В любом случае это бессмысленная метрика как по мне. Какой смысл от этого покрытия, если тесты говно
>Вкатись уже наконец-то, дебил
>Что-то по делу будет?
лол. какое же отрицание реальности. ну не понимаешь ты ничего в логике и кванторах, глупый гуманитарий, ну бывает, что же)
так сказать в семье не без урода, все всё понимают))
> это не было пруфом, лол. ну тип да, у меня в процессе разработки большая часть оперативы уходит на браузер, иде, виртуализацию и кучу всего остального, но не на сервер. решил об этом сказать
И какое отношение тогда это имеет к теме? Никто не спорил что хром жрёт оперативу как не в себя, лол.
> Если по одной и той же строке тесты проходят дважды, то вполне можно считать покрытие и выше 100%. В любом случае это бессмысленная метрика как по мне. Какой смысл от этого покрытия, если тесты говно
А давайте одну строку прогоним миллиард раз, тогда покрытие будет тысячу процентов. Покрытие это доля пройденных строк, и все тулзы так считают, потому что иначе бы смысла в этом покрытии не было.
> лол. какое же отрицание реальности. ну не понимаешь ты ничего в логике и кванторах, глупый гуманитарий, ну бывает, что же)
> так сказать в семье не без урода, все всё понимают))
Слив.
>Shit on input, shit on output
Ты это вообще ни к селу ни к городу сказал. Признайся честно, ты просто школьник, который нагуглил умных слов и пришёл троллить в жаватред.
Процитировал пентестеров. Непонятно, что на входе, непонятно что на выходе. Чёрный ящик.
Это не про чёрный ящик вообще.
любой пример нерационального использования ресурсов и того, как кабанчики хуину на это клали имеют прямое отношение к теме.
сделай кап от минимума.
foreach a[i + 1] = sum += min(a, a[i + 1]);
percent = sum / (n * 100.);
А ты это в резюме отмечаешь? Вот в рабочее время слил N человек. Обнаружил в команде M шарпомух. Заставил не ворочаться H слитых.
Не ворочайся, слитое.
> - В ECS все данные доступны отовсюду, что для таких штук как структуры данных, где требуется максимальная консистентность, может быть крайне опасно. Любой мимокрокодил может изменить любые внутренние данные в обход вашей логики, что начисто поломает вам структуру данных.
Опять порриджи переизобрели тривильное программирование и назвали это умными именами.
Ох уже эти порриджи, которые писали игры 20 лет назад.
>Какая разница на чем написан сервер?
Ты первоначальное сообщение распарсил вообще? Или тебе похуй и те тупо лишь бы анонов своей тупостью заебать?
>Где-то после сложности 7 большинство хакеров плюнуть пытаться поломать либу и будут к ней относится как к чёрному ящику
Полная чушь. Нет такой абсолютной величины. Ломают все то, на что есть спрос. Денува по твоей шкале - все 500 нахуй, и ее ломают по КД, потому что дохуя кто любит в игорьки залипать. Будет спрос на твою либу - взломают и ее, на чем бы она ни была написана.
Поэтому практически никто уже и не продает либы как продукт. Продают в основном сервис - саму либу либо отдают под двойной лицкензией "коммьюнити/энтерпрайз эдишон", либо раздают конкретным единичным клиентам, обмазав их юридическими обязательствами. А продают в основном сервис. Консультации, коммерческую поддержку, гарантии, тренинги.
Обратные примеры тоже есть: сам щас наблюдаю один легасятный продукт, написанный 15 лет назад на плюсах: глючный как говно и неподдерживаемый - недавно уронил акции одного энтерпрайза из за двухдневного простоя. Зато с механизмом проверки лицензий, лол. В сумме - костыль на костыле костылем погоняет. И да - его почти и не пытаются ломать: сам по себе, без поддержки, он нахуй никому не сдался.
> Поэтому практически никто уже и не продает либы как продукт. Продают в основном сервис - саму либу либо отдают под двойной лицкензией "коммьюнити/энтерпрайз эдишон", либо раздают конкретным единичным клиентам, обмазав их юридическими обязательствами. А продают в основном сервис. Консультации, коммерческую поддержку, гарантии, тренинги.
Бтв есть подходы security by design даже для таких задач, чтоб прям либу продать и чтоб тоже не взломали. Очевидно это не на разделении функции проверки на лицензию на 10 разных функций в разных местах программы и обфускацией поверх основано. Я думаю ты представляешь о чём я говорю, но вслух я это проговаривать не буду, чтобы у дебила с защитой через обфускацию жопа спеклась.
мимо
Я наебался, текущая реализация всегда возвращает Long. Видимо из-за сигнатуры метода. Хз че делать с этим.
>хз че делать
Очевидно прорабатывать базу. У тебя компилятор боксингом и кастингом занимается. Так раз он это делает хуёво, сделай правильно сам.
Можно сделать так. Тогда кастинга к Long нибудет. Правда враппер все равно нужен, без оверхеда на него только через 100500 лет, когда вальхалла выйдет.
Зашивайся.
Они не няшные и требуют instaceof или default в саитче.
Да и вообще api Number в жебе сделан крайне отвратно.
Можно гораздо проще, потому что проблема именно из-за тернарника. А от боксинга нет смысла уходить, потому что числа все равно потом добавляются в List.
Чет орнул, как мне компилятор превратил условие в тернарник.
Это тебе точно помогло? Просто по идее не должно быть отличий вообще.
А в какой статье написан вывод типов для конкретно Number?
Я не понимаю нахуя сделана эта залупа, тут выбор наиболее общего типа исходит не из иерархии, а из того сколько он может в себя вместить. Такое чувство, что там алгоритм написан таким образом, чтобы поместить всё выражение в конструктор, тип того:
new Long(x ? y : z), только вот нахуя ломать механизм вывода типов-то.
Ну еще один повод не пользоваться говном под названием Number. Оно просто сломано впизду.
Number тут не при чем, дело в тернарнике, да, он все приводит к наиболее общему типу, даже если это не нужно.
Все, эта хуйня робит.
И давай статью JLS, вывод типов в жабе не должен так работать. Он не должен сука вообще знать никакой информации о типах и исходить из того, сможет ли вместить в него что-то.
Да я. Это только усложняет сам вывод, усложняет когнитивную нагрузку и не несет никакой пользы.
Почему во всех случаях без вывод опирается на иерархию, а тут такой, да впизду, я буду лонгом, хотя ты ЯВНО указал, какой тип хочешь видеть. Хули это говно игнорит МОИ указания.
/сервис-нейм/
А нужно чтобы стало
/сервис-нейм/ можно
/сервис-нейм//пук нельзя
Оказалось что ант матчер который умел такое делать на кой то хуй вырезалисами авторы пишут тип для лучшей производительности
Пришлось блядь идти рожать класс конфига чтобы создать там блядь один бин для этого ебаного фильтра, в итоге в ямле забито 30 роутов и ещё один в конфиге. Говнокод? Говнокод! И я что-то так загрустнел, как будто дело не в самом спринге, а хуй знает в чем. Есть ли на современном рынке язык/фреймворк который также пиздато избавляет разработчика рутинной ебли с настройкой,но неимеющий таких глупых косяков? Микронавт и кваркус пробовал кто?
Зато взамен jvm оптимизации идут и без ебли можно их отправить дальше куда угодно. А ты своё поделие всё равно будешь на выходе из своего кода раскрывать, в чём тут няшность решительно непонятно.
> jvm оптимизации идут
Эт какие? То что сверху, типа когда пишешь, что хочешь int, а тебе - пошел нахуй, держи лонг? Спасиб не нада.
>будешь на выходе из своего кода раскрывать
Лучше явно, чем неявно. Это всем очевидно, ну кроме спрингодебилов.
> Эт какие? То что сверху, типа когда пишешь, что хочешь int, а тебе - пошел нахуй, держи лонг? Спасиб не нада.
Элиминация боксинга.
> Лучше явно, чем неявно. Это всем очевидно, ну кроме спрингодебилов.
Чего блядь? Ты вообще понял смысл тебе сказанного? Когда ты нативным образом передашь Number куда-то дальше тут никакой неявности нет.
>This paper presents a new optimizing technique that eliminates the boxing code inserted by auto-boxing if the code is found redundant. Estimation using the SPECjbb2005 benchmark showed that this optimization improved performance by 3.6%.
4 процента. мощно. имхо лучше сразу юзать примитивы, если на таких спичках экономишь.
любые боксинги туда сюда неявные. ты как преимущество приводишь что мол проще, ака менее явно, значение взять.
да и инстейнсоф без гарантии полноты та еще хуита.
> 4 процента. мощно. имхо лучше сразу юзать примитивы, если на таких спичках экономишь.
Ну и нахуй ты победил соломенное чучело? В твоём примере разница будет в раза 3-4.
> любые боксинги туда сюда неявные. ты как преимущество приводишь что мол проще, ака менее явно, значение взять.
Ну иди добавляй Integer.valueOf(), Number.intValue() и так далее, лол. Суть вообще не в этом, гидроцефал.
> да и инстейнсоф без гарантии полноты та еще хуита.
Это ты сам выдумал потому что ты отсталый дегенерат которому не место в разработке что по какой-то причине продолжает выбирать дегенеративные варианты решения задачи вместо более быстрых и красивых. Никто тебе не предлагал заменить твой убогий свитч на ещё более убогий свитч, тебе сразу было сказано про нативную передачу Number.
>В твоём примере разница будет в раза 3-4.
Не будет. Все время в моем примере занимает метод println и запуск jvm. Твои оптимизации абсолютно никак это не затрагивают.
>которому не место в разработке
У тебя какой-то ресентимент на почве того, что ты так и не вкатился?
>сразу было сказано про нативную передачу Number.
Ради 4% терпеть говноапи намбера. Я откажусь пожалуй, ты можешь продолжать. Хоть всю кодовую базу нахуярь намберами и в конкретных местах касты хуярь. Только мне это не навязывай пж
> Не будет. Все время в моем примере занимает метод println и запуск jvm. Твои оптимизации абсолютно никак это не затрагивают.
Очевидно речь идёт про полезную работу.
> нет ти вкатунишко ти ти ти
Ясн.
> Ради 4% терпеть говноапи намбера. Я откажусь пожалуй, ты можешь продолжать. Хоть всю кодовую базу нахуярь намберами и в конкретных местах касты хуярь. Только мне это не навязывай пж
Ну и нахуй ты победил соломенное чучело? В твоём примере разница будет в раза 3-4.
>Очевидно речь идёт про полезную работу.
Типичный appeal to purity. Какой же ты клоун
>нет ти вкатунишко ти ти ти
Пруфай зп или бейджиком.
> Типичный appeal to purity. Какой же ты клоун
Вот так аргументация! Соответствует твоему интеллектуальному развитию.
> нет ти вкатунишко ти ти ти!!!!!!!
Ясн.
Не надо. Абсолютно бесполезный навык.
Литкод не имеет никакого отношения к реальному программированию. В литкоде ты решил задачу и через две секунды забыл о ней. В реальной жизни ты написал программу, а её ещё надо месяцами/годами поддерживать, писать документацию, фиксить баги, объяснять напарникам-программистам как это работает, расширять функционал. Различие между литкодом и обычным программированием - как между спринтом и марафоном. В жизни не стоит задача "решить головоломку за 15 минут" например. Задача - успешно реализовать проект на длинной дистанции.
Не только. Задачи с литкода просто очень редко встречаются в реальной практике. Очень редко на самом деле нужны алгоритмы, а там, где нужны, есть o3.
>Задачи с литкода просто очень редко встречаются в реальной практике
Ну естественно. Задачи специально составляются чтобы ебать мозги. Если бы всё решалось на изи - то он не назывался бы литкодом. Это же спортивное программирование. В жизни задача - заработать деньги, а не просто абстрактные алгоритмы решать.
Ежедневно, офкос, лол, что за вопрос? В период подготовки к собесам увеличить время до 3-5 часов в день. В нормальных компаниях ставят 2-3 алгосекции, если что. Это я еще не говорю про сисдиз и поведенченское собеседование
Жир.
>> поломали нашу либу написанную на жабе за день
Что они там поломали? У вас проприетарная либа, которая за нефтебаксы по ключу? Так ебани АОТ и пусть разминают себе очко в дебагере. Вин-вин как говорится.
Сама идея на постоянной основе заниматься написанием кода для поддержки скилухи, очень полезная.
Проблема литкода в том, что там оторванные от реальной жизни задачи с уроков математики, когда ты должен придумать как вкрутить какое-нибудь неравенство Коши́ — Буняко́вского для решения и потом это запрограммировать, т.е. по факту это мат.олимпиада с элементами программирования.
А тебе нужно двигаться в сторону грамотных построения абстракций и интерфесов, с соблюдением это ебучего солида и граспа, так чтобы любой джун со скилбокса в твоем коде мог разобраться за 1-2 часа и начать хуярить такски. вот это и есть скилл.
>чтобы любой джун со скилбокса в твоем коде мог разобраться за 1-2 часа и начать хуярить такски
Все верно. Ты должен писать код так, чтобы тебя можно было легко заменить более дешевым зумером
Мнение невкатившегося дебила, который верит, что вот щас щас порешает литкод и точно стажёром возьмут. И заметь, никто тебя тупым не называл, называли твой дроч бесполезным лишь, но ты сам правду матку смолвил.
https://youtu.be/elEp0kM8ta0?si=pnAQoNVIYq5CLgM8
Мне тебя жаль, если у тебя весь проект это сортировки пузырьком.
https://www.techempower.com/benchmarks
Используйте абстрактное мышление. Во многих алгоритмах есть сравнение чего-то с чем-то. То есть по этому тесту уже можно понять, что на длинной дистанции твои написанные алгоритмы будут в N раз медленнее на жабе по сравнению с С++.
Тебе по ссылке показан прямой пруф того, что как раз на длинной дистанции нихуя не будет.
Блядь, какой же дегенерат, это просто пиздец, откуда вы вообще берётесь? JIT тебе что-нибудь говорит? Запустил он один раз сортировку, пиздец умник.
Бля, ну вот я теперь смотрю видос на полтора часа про бенчмаркинг. Как же сложно и приятно быть программистом
>что вот щас щас порешает литкод и точно стажёром возьмут
Так взяли же.. Типа ты думаешь почему я не особо что-то сложное пишу итт? У меня времени банально нет.
>никто тебя тупым не называл
Большинство моих постов сопровождается целой вереницей оскорблений. Тупой это самое лайтовое еще.
Лучше шипилева глянуть, чем каких-то двух рандом скуфов.
Прайм тайм это известный клоун. Смотреть его это себя не уважать.
У тебя на бекграунде виден код, и в описании https://drive.google.com/file/d/1kzk_ITXyQchdwCYWLYWKXjAXQMriqQ5W/view
Нихуя он не учёл.
> Так взяли же.. Типа ты думаешь почему я не особо что-то сложное пишу итт? У меня времени банально нет.
Ну всё! Перемога! Чуть-чуть поднапрячься 100к стажёром, экономя на еде и жилье, и тогда, может быть, возьмут в команду джуном на 150к, если ты пройдёшь конкурс 2000 человек на место джуна! А потом!.... А потом!.... Может быть даже мидлом 250к после конкурса 1000 человек на место! Но это нужно работать много!
> Большинство моих постов сопровождается целой вереницей оскорблений. Тупой это самое лайтовое еще.
А теперь поищи, где конкретно в этом диалоге тебя назвали тупым.
Делать мне больше нехуй, как доказывать непонятным людям из интернета что я тру программист. Если убрать все эти понты про "настоящего" и "ненастоящего" программиста и вот это "фууууу даже решить не можешь". То в чём практическая ценность решения этой хуйни? Ну окей, представим что я решил 5000 задач. Ииииии? Что должно произойти? Мне пачки денег на голову свалятся?
Что плохого в конкуренции? То, что ты лошара, который или не может пройти даже первый барьер, или тот, кто запрыгнул до этих барьеров, говорит лишь о том, что ты никудышный пограмист, которого заменят в первую очередь.
>конкретно в этом диалоге
Я про в общем говорил.
>>48865
>Ну окей, представим что я решил 5000 задач.
Количество задач мало роляет. Есть неплохая метрика - рейтинг эло на кф.
>в чём практическая ценность решения этой хуйни
Не писать квадратичные решения там, где можно писать линейные. Ну и не писать хуйню про перфоманс там, где это вообще не имеет смысла.
Некоторые задачи про написание особых структур данных, ad-hoc. Иначе говоря ты должен настолько глубоко понимать какую-то из них, чтоб модифицировать её особым образом. Это тоже помогает выбирать в будущем более подходящие коллекции под задачу.
>Мне пачки денег на голову свалятся?
За победы в олимпиадках вполне..
> нет ти вкатунишко ти ти ти
Ясн.
> Я про в общем говорил.
Именно про это я и говорю. Ты сам решил, что ты тупой, на основании каких-то своих мыслей.
https://youtu.be/h1GjbtVkmc4?si=AOYXChqOiVHIlE3N
Go самый быстрый, С++ неоптимизированный на 20 % медленнее, Java медленнее всех и жрет много оперативной памяти.
Сайт с кучей языков, по словам авторов примеры сложные и приближенных к реальным условиями. Тыкнув на один из репортов обнаружил разницу в перфорацией между Java и С++ в два раза.
https://plummerssoftwarellc.github.io/PrimeView/?rc=100&rs=3700&fr=&sc=rc&sd=False
Понял :(
Чиво?
Используй BitSet и не еби мозгу
Иди нахуй, лахтодырый. Нагуглил какой то хуйни в интернете и носится с ней как пропагандон. Реальный опыт работы с ДНК был у меня в Натере. Знаешь на чем там былы пайплайны анализа? На джаве и питоне, бля. А до до того как быть написанными на джаве и питоне, алгоритмы обкатывались саентистами на R и прочем матлабе.
Пиздюк блять, попизди тут еще о "реальном попыте"...
Нет. Тема это сравнение перформанса Java vs C++. То что у него на работе использовали питон никакого отношения к теме не имеет.
Сейчас он напишет тебе "слит".
Ладно, зря я влез.
Говна пожри, гондон. Пиздуй со своим жалким набросом в срачетред, гнида.
720x1280, 0:09
Я зарабатываю бабки, пока ты дрочишь на линейную скорость, у меня уже капуста в кармане хрустит. И пользователи довольные. А ты нахуй зарабатывай на олимпиадах 🤡 глядишь медальку программист года отработаешь.
А нахрена это делать на дохуяразрядном процессоре? Ты от такого сжатия профит в теории получишь только если у тебя вся прога из этих буленов и чеков по ним будет состоять (когда несколько чеков идущих рядом можно схлопнуть до одной битовой операции). В подавляющем большинстве кейсов это даже близко не так, и такая "оптимизация" наоборот бы все ухудшила.
Ага, стажёрчик)
ой, заебал со своей суходрочкой, посмотри примитивный тести и успокойся уже
Что означают полоски на заднем фоне? Похоже как будто картинку делала нейросеть натренированная на результатах бенчмарка. Вроде какие-то полоски там есть, вот она полоски и нарисовала.
Конечно кодить на эзотерике типа Zig это дурка.
Однако, из такого простого теста можно сделать ряд выводов:
1. Нехуй спорить за производительность языков которые укладываются в +\- 0.5с, по большому счет это малоебущий фактор, который будет заметен на охуеть каких масштабах.
2. Если язык не укладывается в 1с, это уже не звоночек для разработчиков этого языка.
3. Если язык не может в 2с это ебаный наббат, что если разрабы продолжат в том же духе, то языку пизда.
хибер сам использует jdbc. и хибер даже с hql далеко не все позволяет сделать, особенно, что-то очень специфичное для конкретной субд.
А если нет необходимости делать нагруженный кучей всего проект? Использование java.sql позволяет сделать промежуточный небольшой класс или проект. + Не всегда удается сделать без танцев с бубнами набор классов для тех или иных баз данных, из-за чего тратится много времени.
>>Круд репозиторий
кстати, когджа надо наследоваться от круд репозитория а не от жпа?
еще видел наследуются от обоих сразу, зачем?
Обычная политика, когда надо и формальности соблюсти, и клиентов по максимуму сохранить.
Санкции, все дела, но мы не возражаем против их обхода самым банальным способом из возможных. Бизнес, ничего личного.
>>но мы не возражаем против их обхода
а ты запусти лицензионную идею на машинке без впн
и отпишись тут как они "не возражают"
Бро, ты полностью прав - я сам лет 5 где то лабал на нетбинсе вплоть до выхода джавы-девятки, и нетбинс был сука база. Но вишь ли в чем проблема: время и апдейты не пощадили и нетбинс. Хуй с ним что дохуя плагинов на нетбинсе или не существует или депрекатнулись - чай не соевые, не развалимся. Но с каждым апдейтом после девятки нетбинсу индекс срывает все чаще и чаще. Сейчас дошло до того, что у меня есть тупо проектик, который буквально стабильно роняет индекс нетбинсу при первом открытии.
Да вообще пиздец, сидим на винде с ключом с алика и кодим в ЖБ с ключом от украинских\польских студентов, смотрим вражеский ютуб через ВПН, который свои же пидоры заблочили.
> свои же пидоры
> свои же
Говори за себя. Меня с ними ничего не связывает.
А вообще барин дал тебе вк плей и рутуб. Ютубозаменитель неотличимый от оригинала.
Все ссылки для скачивания заблочить. Я же говорю, они вроде и заблочили, но если чучуть поменять домен третьего уровня...
Пока не одного публичного зеркала не видел, хотя сколько времени прошло. Еще не уверен, что в идее вообще есть проверка подписей, потому хууй знает, что на этих зеркалах зальют
Есть косяки в Netbeans, не спорю. Но за столько лет лично у меня данная среда работала как часы. Я ещё подумывал перейти на модный и молодежный vscode или idea, но что то не понравилось. Сижу на бобах и в ус не дую. Могу променять только на eclipse, на крайняк notepad/word. Просто недоумеваю что люди заплатили деньги, а инструмент для работы ещё какие то условия выдает и портит все своими обновлениями. Не хочется ещё на это тратить время.
>модный и молодежный idea
Эм, идее лет примерно столько же сколько и нетбинсу. Просто в отличии от последнего, разрабы пахали и кучу всего сделали. Откуда у тебя вообще компетенция сравнивать, если ты не пробовал кодить в идее? Типа пук пук, не читал, но осуждаю? Ахуенно.
Например, у меня есть модуль А, в котором все классы имеют дефолтный модификатор видимости на уровне пакета. У меня есть модуль Б, который зависит от модуля А. Чтобы модуль Б мог использовать классы из модуля А, классы модуля А нужно сделать публичными. Если сделать классы модуля А публичными, то они станут доступны конечного пользователю библиотеки. Я не хочу, чтобы они были доступны конечному пользователю библиотеки. Я хочу, чтобы они были доступны только модулю Б.
В С++ есть концепция friendly классов, который примерно позволяют реализовать подобное. В Java насколько я знаю подобного нет.
Единственное решение это объединять модули в один, но тогда это увеличивает сложность этого модуля. Вы не знаете альтернативные решения этой проблемы?
>Чтобы модуль Б мог использовать классы из модуля А
В модуле Б сделай пакет А и запихни в него публичный фасад для классов А, дальше работай с фасадом.
Я же правильно понимаю, что публичный фасад будет доступен конечному интегратору библиотеки? Если да, то это не решение проблемы потому что нужно чтобы у конечного пользователя не было доступа к API модуля A.
Можно, но зачем?
>> А вообще барин дал тебе вк плей и рутуб. Ютубозаменитель неотличимый от оригинала
Как же "ниболит"
Спасибо, загуглил и такое ощущение, что это не совсем то, но нужно написать пример проверить
Ну получается - никому не надо.
Без бузы - повезло тебе. В будущем году попробую вернуться к базе - может пофиксили все.
>архитектурные ошибки проекта.
ArchUnit - твой бро. Только тут уж придется в него вложиться как следует, и архитектурные рулы понаписать. Это не готтовое решение в один клик, а скорее либа. Но либа годная, гибкая, сам юзаю.
Спасибо!
>как решать проблему публичного апи между модулями
В джаве джарки не шибко гибки в плане обьявления публичного апи к себе (у джарки все что публичное внутри, публичное и снаружи). Это давно общепризнанная и известная проблема, и решалась она сначала OSGi, а позже JPMSом. Но модульный кодинг с использованием вышеперечисленного - скажем так: непрост. Не без подводных. Лекарство оказалась для спринголюбов горьче болезни, и не особо прижилось - всем похуй.
>Я не хочу, чтобы они были доступны конечному пользователю библиотеки. Я хочу, чтобы они были доступны только модулю Б.
Звучит как хуевая идея. Если что то должно принадлежать одному модулю, нет никакого смысла делать это отделенным от этого модуля. В целом, анон выше все верно те выше сказал - делай публичный фасад, остальное все прячь за него. Скорее всего "спрячь все за фасад" в твоем случае будет подразумевать обьединение модулей в одно целое.
>это увеличивает сложность этого модуля
Нихуяшеньки. Наоборот, если ты дробишь то, что cohesive по определению (а у тебя оно cohesive по определению), ты просто разгоняешь coupling без какого либо профита. Проблемы low-iq додиков aka "слишком страшна, маналитна и нечитабельна" рассматривать здесь тупо неконструктивно: единый модуль еще не значит единый неуправляемый сорц-файл на 10к строк.
> Если что то должно принадлежать одному модулю, нет никакого смысла делать это отделенным от этого модуля.
> единый модуль еще не значит единый неуправляемый сорц-файл на 10к строк.
У меня сейчас всё в одном модуле из-за проблемы обозначенной выше. И это выглядит сложно, потому что речь не про 10 000 строк, а про 100 000 строк. Новый разраб так и сказал, что не понял почему всё в одной куче валяется хотя очевидно, что какие-то части так и просятся их отделить от остального кода. Я ему объяснил проблему, он предложил редактировать байткод. Я ему предложил редактировать свой анус не усложнять ещё сильнее проект.
>Я ему объяснил проблему, он предложил редактировать байткод
Лол, бойкий товарищ. Человеческий язык программирования ему значит непонятен, а байткодный околоассемблер - заебись? Забавно.
>У меня сейчас всё в одном модуле
Мож я тя не так понял? Проясни, что ты имеешь ввиду под словом "модуль"? Maven-модуль? Джарка? Сорц-файл? Пакет? JPMS/OSGi-модуль?
> Человеческий язык программирования ему значит непонятен, а байткодный околоассемблер - заебись? Забавно.
Ага, я аж представил как придется это питчить техлиду и мне стало грустно.
> Проясни, что ты имеешь ввиду под словом "модуль"?
Gradle модуль...
>Gradle модуль...
Я с грыдлей не работал, но вроде бы грыдля не мешает в кучу концепцию джарки и модуля, как это у мавена? То есть, ты можешь свой модуль накромсать на несколько модулей поменьше, но по итогу из всех них собирать один джарник?
Насколько я знаю там такой же принцип как и в мавене и один модуль это один жарник. Нужно несколько модулей, подключай несколько жарников. Есть концепция fat jar, но это в сам gradle как фича не включено и нужно использовать опен соурнсные решения.
Хз, я помню когда мельком чекал сорцы котлина (который собирается грыдлей), был еще обескуражен тем что апишки для плагинов компилятора на тот момент времени не распрострянялись как джарки. Типа, компилятор и его кишки для плагинописательства были грыдлемодулями, но как будто бы они не собирались дальше компиляции класс-файлов. А потом эти класс-файлы просто подключались к плагину через грыдлю как зависимости: https://github.com/JetBrains/kotlin/blob/master/plugins/allopen/allopen.k2/build.gradle.kts#L9
Я канеш ненастоящий котлинист, и чекал это еще до ковида, может там уже изменилось все тыщу раз, но если нет, можно попробовать спиздить оттуда идеи для грыдлепайплайна.
>Насколько я знаю там такой же принцип как и в мавене и один модуль это один жарник.
Это даже в Мавене не так, и тем более не так в Градле. Градл это Ант на стероидах, в одном модуле можно навертеть сколько хочешь артефактов jar.
Так эндюзер точно так же может свой фасад для библиотеки А написать.
Но он вообще прав. Ант-то говно. А градл ещё большее говнище, говно на стероидах, как он и сказал.
Не в радость вкатунам. Вкатуны без самоуважения недискуссионно сосут калкурируя за вакансии с 1000 откликов, т.к. с тем, что нейросети повышают продуктивность спорить нельзя.
А каким образом они что-то повышают? Кодогенерацией шаблонного кода? Идея и так умеет это и с гарантией, что там не будет хуиты. Автокомплит, предлагаемый нейронкой, в большинстве случаев туфта. Нахуй эти нейронки вообще нужны?
Решают несложные алгоритмы довольно хорошо. Очень полезны когда нужно что-то написать на незнакомом языке или технологии.
За версту видно дебича не разу в жизни не пользовавшегося нейронками. Нейронки генерят идеальную документацию. Просто 10 из 10. Тесты тоже нормуль. Я как-то раз в чате попросил написать багрепорт по поводу того что в sdk класс стал deprecated, а новый класс абстрактный и его нельзя инициализировать. Так он мне ответил "так ты сам долбоёб, неправильно пользуешься классом. Надо было вызвать статический метод и всё." Я об этом вообще не подумал. А так... Claude уже генерирует неплохой код, на четвёрочку. Конечно его надо ещё напильником допиливать, но в целом как база сойдёт.
мимо
>Тесты тоже нормуль
А нормуль ли? Такие тесты действительно чето тестят, или просто показывают зеленые галочки в аллюре? Много багов такими тестами поймал по итогу?
Тестят. А ещё o1 охуенный код самый обычный пишет, а o3 обещают лучше людей будет в промтовом формате работать.
мимо
>> пока не будет создана полная замена человеку, ии-раб
это произойдет тогда, когда 90% кода будет генерится машиной, когда в 99% проектов все названия методов и классов будут идентичными, потому что генерились нейронкой, Вот тогда когда машина начнет учить человека програмировать и учить как правильно писать названия.
И даже это произойдет, никто не даст гарантии, что профессия вымрет, потому что производительность одной макаки будет равна 10 нынешним синькам.
Приложуху которую надо делать год, будут поднимать за месяц, соотвественно еще год будут ее накручивать свистоперделками, а значит кодовые базы вырастут, вырастет количество фичей, количество проектов вырастет, потому что каждый Оленчик сможет себе позволить личный озон\вайлберис на всех платформах, почти за нихуя, все что ему надо будет это ебаться с логистикой и прочей хуитой из реальной жизни.
И так по спирали до бесконечности, но вкатуны будут охуевать еще больше и больше на каждом витке этой спирали
И всю эту хуиту кто-то должен будет поддерживать, потому что
Оленчику
>> надо будет это ебаться с логистикой и прочей хуитой из реальной жизни
Да нормальные. Где-то плюс-минус такие тесты https://pastebin.com/7hQF65Ys на тайпскрипте. Он вначале анализирует код и предлагает тест-план, выбрать какие именно тесты добавить, а какие нет. Если тебе какой-то тест не нравится, его можно не добавлять. А ты что предлагаешь? Альтернатива между не иметь ничего и иметь НЕидеальные тесты, но сгенерированные за 10 секунд. Я не говорил, что они идеальные. Но зато лишний час-другой сэкономлен, не надо самому писать с нуля.
Так я уже 7 лет назад вкатился, мне че себя утешать.
Я смотрю на вещи реально, в отличие от тебя ИИ-фанатика)
Юзаю нейронку в разработке, в 80% он попадает в контекст, остальные 20 калят пиздец как.
Всем этим ЙОБА-АИ еще как далеко до:
"Построй мне отказоустойчивую микросервисную архитектуру социальной сети, аналог инстраграм, сделай к ней клиентский-фронтенд для всех платформ, а так же сделай ЦРМ-вэб-клиент, админ-вэб-панель. Так же добавь туда возможность продажи мерча, систему лояльности, управление загружаемым видео. Премодерацию.
Добавь метрики, хранени метрики в кликхаус, создай дашборды с MAU\DAU с возможностью выгрузки отчетов.
Создай дашборды и алерты (с увдеомлением в тг\почта) в графана\прометеус для всех существующих сервисов.
Так же сделай интеграции с существующими соц-сетями.
Настрой CI\CD, green\red деплой. Покрой все тестами. Реализуй все сервисы на Java."
дабл пиздеть не будет
А после того как он это все нагенерит, надо что этот ИИ в уже СУЩЕСТВУЮЩЕМ проекте исправил к примеру авторизацию с JWT на OAuth. Потому что так решил какой-нибудь менеджер
>"Построй мне отказоустойчивую микросервисную архитектуру социальной сети, аналог инстраграм..."
Так это твоя задача. Не задача нейронки снимать весь геморрой с твоей жопы. Может тебе за $10 долларов в месяц ещё бесплатную стриптизёршу в офис подогнать? Она своих $10 стоит. А ты стоишь своей зарплаты? Всё высокоуровневое проектирование лежит на тебе. Задача нейронки - просто быть удобным помощником и не более того. Если бы она всё за тебя делала, то нахуй ты нужен? Переводи всю зарплату ей и пиздуй нахуй.
А сам-то это ты можешь сделать, лол?
>> Шоп им нейросеть слепила космолёт и при этом требовала не более 10 баксов
>> Не задача нейронки снимать весь геморрой с твоей жопы.
>>пока не будет создана полная замена человеку, ии-раб
финиш
Один тут визжит что все пизда, всех ИИ заменит.
Я ему привел пример того, что этому ИИ до замены макак очень далеко и не близко, потому что он сейчас нихуя не способен создать адекватную кодовую базу из промпта и по факту это ебучий Т9 на стероидах
"Ряяяя, блять дохуя хочешь от 10 долларовой шлюхи нейронки"
Проиграл с такой биполярочки
Claude 3.5 Sonnet
Это действительно масштабный проект. Я предложу высокоуровневую архитектуру и основные компоненты:
1. Микросервисная архитектура:
Core Services:
- Auth Service (JWT, OAuth2)
- User Service
- Content Service (посты, истории)
- Media Service (обработка фото/видео)
- Feed Service
- Notification Service
- Moderation Service
- E-commerce Service (мерч)
- Loyalty Service
- Analytics Service
- Social Integration Service
Infrastructure:
- API Gateway (Spring Cloud Gateway)
- Service Discovery (Eureka)
- Config Server
- Message Broker (Kafka)
- Circuit Breaker (Resilience4j)
Хранилища:
- PostgreSQL (основные данные)
- MongoDB (контент)
- Redis (кэширование)
- ClickHouse (аналитика)
- MinIO (медиафайлы)
2. Клиентские приложения:
- Web (React)
- iOS (Swift)
- Android (Kotlin)
- Admin Panel (React)
- CRM (React)
3. Мониторинг:
- Prometheus + Grafana
- ELK Stack
- Jaeger (трейсинг)
- Alertmanager
4. CI/CD:
- GitLab CI/CD
- Docker
- Kubernetes
- Terraform (IaC)
- ArgoCD
5. Тестирование:
- Unit Tests (JUnit, Mockito)
- Integration Tests
- E2E Tests (Selenium)
- Performance Tests (JMeter)
Основные технологии для бэкенда:
- Java 17+
- Spring Boot
- Spring Cloud
- Spring Security
- Spring Data
Пример реализации некоторых компонентов:
// User Service
@Service
public class UserService {
private final UserRepository userRepository;
private final KafkaTemplate<String, UserEvent> kafkaTemplate;
@Transactional
public User createUser(UserDto userDto) {
User user = new User(userDto);
User savedUser = userRepository.save(user);
kafkaTemplate.send("user-events", new UserEvent(UserEventType.CREATED, savedUser));
return savedUser;
}
}
// Content Service
@Service
public class ContentService {
private final ContentRepository contentRepository;
private final ModerationClient moderationClient;
private final MediaClient mediaClient;
@CircuitBreaker(name = "createPost")
public Post createPost(PostDto postDto) {
// Обработка медиа
MediaResponse mediaResponse = mediaClient.processMedia(postDto.getMedia());
// Модерация
ModerationResult moderationResult = moderationClient.moderate(postDto);
if (moderationResult.isApproved()) {
Post post = new Post(postDto, mediaResponse);
return contentRepository.save(post);
}
throw new ModerationFailedException();
}
}
Для развертывания:
# docker-compose.yml
version: '3.8'
services:
api-gateway:
build: ./api-gateway
ports:
- "8080:8080"
user-service:
build: ./user-service
depends_on:
- postgres
- kafka
content-service:
build: ./content-service
depends_on:
- mongodb
- kafka
# kubernetes-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: user-service
spec:
replicas: 3
selector:
matchLabels:
app: user-service
template:
metadata:
labels:
app: user-service
spec:
containers:
- name: user-service
image: user-service:latest
ports:
- containerPort: 8080
Для мониторинга:
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'spring-actuator'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['user-service:8080', 'content-service:8080']
# grafana-dashboard.json
{
"dashboard": {
"panels": [
{
"title": "Active Users",
"type": "graph",
"datasource": "Prometheus",
"targets": [
{
"expr": "active_users_total"
}
]
}
]
}
}
Это базовая структура. Каждый компонент требует детальной проработки и реализации конкретной бизнес-логики. Важно также учесть:
1. Security (HTTPS, WAF, rate limiting)
2. Data backup strategy
3. Disaster recovery plan
4. Scaling strategy
5. Documentation
6. API versioning
7. Error handling
8. Logging strategy
Claude 3.5 Sonnet
Это действительно масштабный проект. Я предложу высокоуровневую архитектуру и основные компоненты:
1. Микросервисная архитектура:
Core Services:
- Auth Service (JWT, OAuth2)
- User Service
- Content Service (посты, истории)
- Media Service (обработка фото/видео)
- Feed Service
- Notification Service
- Moderation Service
- E-commerce Service (мерч)
- Loyalty Service
- Analytics Service
- Social Integration Service
Infrastructure:
- API Gateway (Spring Cloud Gateway)
- Service Discovery (Eureka)
- Config Server
- Message Broker (Kafka)
- Circuit Breaker (Resilience4j)
Хранилища:
- PostgreSQL (основные данные)
- MongoDB (контент)
- Redis (кэширование)
- ClickHouse (аналитика)
- MinIO (медиафайлы)
2. Клиентские приложения:
- Web (React)
- iOS (Swift)
- Android (Kotlin)
- Admin Panel (React)
- CRM (React)
3. Мониторинг:
- Prometheus + Grafana
- ELK Stack
- Jaeger (трейсинг)
- Alertmanager
4. CI/CD:
- GitLab CI/CD
- Docker
- Kubernetes
- Terraform (IaC)
- ArgoCD
5. Тестирование:
- Unit Tests (JUnit, Mockito)
- Integration Tests
- E2E Tests (Selenium)
- Performance Tests (JMeter)
Основные технологии для бэкенда:
- Java 17+
- Spring Boot
- Spring Cloud
- Spring Security
- Spring Data
Пример реализации некоторых компонентов:
// User Service
@Service
public class UserService {
private final UserRepository userRepository;
private final KafkaTemplate<String, UserEvent> kafkaTemplate;
@Transactional
public User createUser(UserDto userDto) {
User user = new User(userDto);
User savedUser = userRepository.save(user);
kafkaTemplate.send("user-events", new UserEvent(UserEventType.CREATED, savedUser));
return savedUser;
}
}
// Content Service
@Service
public class ContentService {
private final ContentRepository contentRepository;
private final ModerationClient moderationClient;
private final MediaClient mediaClient;
@CircuitBreaker(name = "createPost")
public Post createPost(PostDto postDto) {
// Обработка медиа
MediaResponse mediaResponse = mediaClient.processMedia(postDto.getMedia());
// Модерация
ModerationResult moderationResult = moderationClient.moderate(postDto);
if (moderationResult.isApproved()) {
Post post = new Post(postDto, mediaResponse);
return contentRepository.save(post);
}
throw new ModerationFailedException();
}
}
Для развертывания:
# docker-compose.yml
version: '3.8'
services:
api-gateway:
build: ./api-gateway
ports:
- "8080:8080"
user-service:
build: ./user-service
depends_on:
- postgres
- kafka
content-service:
build: ./content-service
depends_on:
- mongodb
- kafka
# kubernetes-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: user-service
spec:
replicas: 3
selector:
matchLabels:
app: user-service
template:
metadata:
labels:
app: user-service
spec:
containers:
- name: user-service
image: user-service:latest
ports:
- containerPort: 8080
Для мониторинга:
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'spring-actuator'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['user-service:8080', 'content-service:8080']
# grafana-dashboard.json
{
"dashboard": {
"panels": [
{
"title": "Active Users",
"type": "graph",
"datasource": "Prometheus",
"targets": [
{
"expr": "active_users_total"
}
]
}
]
}
}
Это базовая структура. Каждый компонент требует детальной проработки и реализации конкретной бизнес-логики. Важно также учесть:
1. Security (HTTPS, WAF, rate limiting)
2. Data backup strategy
3. Disaster recovery plan
4. Scaling strategy
5. Documentation
6. API versioning
7. Error handling
8. Logging strategy
Так он тебе по делу ответил. Ты сам не можешь за минуту с одного промта слепить космолёт. Это и не нужно чтобы тебя на мороз выкинуть, дохуя требуешь от нейронки, программистишка.
>Claude 3.5 Sonnet
Доступ к нему не получить из РФ, к сожалению.. Как и к ChatGPT. Потом возникнет проблема с подтверждением номера телефона и оплатой, т.к. карты больше не работают
>>ехать в
не знать как можно и бесплатно оформить виртуальную в 2к24 надо постараться, не для средних умов, не каждый справится
>оформить виртуальную
Лол, видел-видел. Скан твоего паспорта в мутную контору сливать? Нет, чел, сэнкс
>Доступ к нему не получить из РФ, к сожалению
Ты чё дурачёк штоле блять. Двачеры как всегда - пока пошаговую инструкцию не сделаешь, будут орать ПАМАГИТЕ НИДАСТУПНО!!!
1. Открываешь comss one, настраиваешь по инструкции https://www.comss.ru/page.php?id=7315 В линуксе можно просто прописать `sudo nano /etc/systemd/resolved.conf` туда вставить
DNS=83.220.169.155#dns.comss.one
DNSOverTLS=yes
2. Заходишь https://github.com/features/copilot жмёшь "Get Started for Free". Ставишь расширение в свой VS Code.
3. В настройках соглашаешься, авторизуешься, выбираешь "Claude 3.5 Sonnet Preview" вместо "o1".
4. По дефолту получаешь 50 бесплатных дополнений. Если тебе надо больше, то открываешь https://oplatym.ru/ говоришь "помогите пожалуйста оплатить github copilot", тебе выставляют счёт на 1370 рублей, ты плотишь и весь месяц можешь неограничено клаудом пользоваться.
Всё нахуй доступно.
> https://oplatym.ru/ говоришь "помогите пожалуйста оплатить github copilot", тебе выставляют счёт на 1370 рублей, ты плотишь и
и к тебе в 4 утра через окно заходит группа захвата, дверь выносят и входят люди из фсб. оставшуюся жизнь ты проводишь в черном дельфине
Ну не плати ёпта. Тебя никто не заставляет. Пользуйся free планом и не еби мозги.
production ready решение, запустил и работает
Хули, теперь только в наркокурьеры и осталось идти
такой сблев любая статья на хабрапомойке генерирует
>>52640
Двачеры вечно чем-то недовольны. То им хуёвые ответы генерирует. То наоборот слишком хорошие. То их заменят. То раб. То не раб блять. Да вы заебали уже. Даже всё то позитивное, что происходит в айти, нет всё равно надо обосрать! Даже в бочке мёда надо всё найти ложку говна и побрюзжать по этому поводу. Я охуеваю от способности двача везде находить какой-то негатив.
Для меня позитив внедрение ИИ, возможно в будущем я наконец-то смогу работать только над написанием бизнес логики, вместо пердолинга с NPE или заклинаниями асинхронщины
Дааа, конечно, искать нужно только позитив! Насрали в рот, ну так, хорошо, покушать можно! Лол.
И аналогичный вопрос как перехватить эту ошибку валидации при использовании @Valid @RequestBody в контроллере спринга?
Каким списком? Типа ты хочешь какой-то статический метод, который все ошибки тебе передаст? Такого нет, да и не будет. Вообще советую сразу спуститься на землю и понять, что лобок убогое говно, которое чуть ты вышел за рамки, того, что они предлагают, перестаёт нормально работать.
В апи валидации есть анноташки для NonNull они не совпадают с лобковыми.
Всех джавшутов с наступающим. Куда в 2025 будете перекатываться с джавы после увольнений в аутсорсе и закрытий направлений в бигтехе?
С наступающим. В мл инженеры понятное дело.
Утешай себя, срынкотерпила.
Я просил лишь развернуто ответить мне на конкретный вопрос, а не навалить мне на уши пуд продаванской лапши. Учись у этого анона (>>52479) диалог вести, блять, либо молчи нахуй.
Сука, что за люди пошли - вечно норовят свой карго-культ продать...
>>52479
>А ты что предлагаешь?
Я не то чтобы критикую, просто есть у меня определенный скепсис что оно адекватно себя показывает при поддержке таких тестов в долгосроке. Есть давно известный факт - плохо задизайненный код тупо непокрываем юнит-тестами. Тесты получаются перегруженными моками и слишком завязанными на кишки юнита. Из-за этого они получаются настолько ригидными и часто-фолспозитивящими, что проще просто отказаться от юнитов в пользу тестов более высокого уровня (вон как у тебя на пике - это же API-тест, верно?), нежели поддерживать такой всратый тест-сьют.
И вот чето нихрена мне не верится что нейронки эту проблему решают. От того что нейронки тесты генерят, декомпозиция компонент в коде лучше не станет. Вот меняешь ты код, и это изменение инвалидирует у тебя пачку бесконтрольно сгенеренных по всему тест сьюту моков. Что ты тогда делаешь? Просто зыришь и заново регенеришь?
Так тебе на вопрос и ответили, первым словом. Если ты не умеешь читать, это твои проблемы.
Ради jlink, как варик.
Никакого, у дедов из оракла старческий маразм начиная с 9 джавы попёр просто.
>у меня определенный скепсис что оно адекватно себя показывает при поддержке таких тестов в долгосроке
Не знаю, мне сложно ответить, потому что я не специалист по тестам. Мне они не так часто нужны, я редко пользуюсь тестогенерацией. Могу лишь сказать про кодогенерацию. Вот буквально вчера мне с нуля переписала все апи на формат опенапи. И написала инфраструктурный код для развёртывания этих апи. С первого раза ошиблась, выскочила ошибка cors. Я её тыкнул в говно, она тут же поправила. Потом я пишу - а теперь всё это задокументируй. Она хуяк-хуяк, тут же написала примеры использования, описание, возможные значения и так далее. Это cursor ai.
Короче, суммируя всё вышесказанное. Чтобы получить годный результат на выходе, нужно:
1) Знать чего ты хочешь. То есть говорить прямо "возьми библиотекунейм, переведи в формат такой-то, такие-то переменные вынеси туда-то". Тогда она точнее будет генерировать ответы.
2) Постоянно тыкать нейронку в говно. То есть говорить ей, "хуле здесь ошибка?", "сделай мне по-другому!" и так далее.
3) После того как она поняла что обосралась, правит и ты за ней дочищаешь напильником. Удаляешь лишнее говно, разносишь по файлам и потом коммитишь.
Надо прям говорить "возьми selenium, напиши интеграционный тест, сценарий такой: юзер переходит на страницу логина и вбивает имя пользователя admin123 и пароль pass123, после этого нажимает "логин". после этого должно появится сообщение "incorrect password"". Тогда будет результат заебись.
Всё так, жму руку.
Моё наблюдение: О1 решает задачи некоторые лучше/по другому просто О. Если появился в чем-то затык и нейронка стала сама себя повторять, то советую переключиться на О1.
Не, я не пользуюсь o1, лично моё мнение - claude sonnet 3.5 лучше гораздо. Обычно сразу переключаюсь на claude. Может я слишком мало пользовался o1, но мне он сразу не понравился. Какую-то дичь сгенерировал. Но это опять же вкусовщина. Может он и не так плох, категорично судить не буду.
На вкус и цвет. Думаю лет через 5 они сделают нечто такого уровня, что разницы между LLMками почти не будет. Сейчас золотая жила там где найдёшь способ применить нейронки. Те же 90-е, только не в России, а в США когда был дотнет бум.
Всё это звучит заебнее и дольше, чем просто взять и самому написать.
Хз, вкусовщина. Я бы просто скопипастил бы все это по старинке со стековерфлоу, кек.
Это у тебя манямирок - напридумывал обо мне невесть что. У меня проблем с нейросетками нет - только с хуеплетами навроде тебя.
Интересно, почему если это у меня манямир, а не у тебя, визги "ни гаварите ниприятное" без единого аргумента слышны именно с твоей стороны?
Вводные про сабжа (меня)
Закончил айтишный колледж
Заканчиваю айтишный вуз (бакалавр)
Знаю всё, что связано с джавой и котлином (вирт. Потоки, корутины, грэдл, вся фигня эта), немного спринга и сам андройд.
Хочу перекатиться в ближайшее время в спринг сразу на миддла, есть шансы? Как правильно оформить резюме, шоб шансов было больше? Тхэнкс, анонче.
О, расскажи почему с андроидом всё плохо? Мобильные приложения больше людям не нужны или что? И почему он катиться в канаву? Вроде как альтернатива толко айось и всякие кроссплатформенные технологии которые никогда нормально не работают.
Думаю развелось много flatter-долбоебов. Кабанам легче нанять одного раба чтобы писал сразу под две платформы.
Через чур много флаттер/реактодаунов, айось натив вообще подыхает из-за того, что swift по сути превратился в говно, а на obj-c положили хер. (по разговорам айосников)
Хрен бы с флаттер/реактодаунами. Появилось много проблем с самим андройдом. Сейчас сделать банальное приложение для прослушивание музыки становится нереально тяжело т.к. андройд всё больше и больше становится "распределенным". К примеру, есть либа viewmodel, которая предоставляет viewmodel, а есть viewmodel-ktx, которая предоставляет kotlinX дополнения. И так на каждый минимальный компонент.
Сами приложения тоже стали мало кому нужны т.к. большинство людей уже не хотят качать приложение, а ставят PWA или просто иконку с ссылкой на сайт. Качают либо супераппы типо Я.Гоу или Ютуб, которые ну просто невозможно перетащить в минимальную веб версию.
Хз, никогда не делал вот эту тему с иконкой если можно скачать приложение.
https://www.baeldung.com/java-archunit-intro
Охуенная тема если верить описанию. Прям то что нужно. Спасибо анон!
Ты настолько туп что даже посыл тебя нахуй правильно распарсить не можешь. Я хуесошу тебя не за то что ты якобы "гаваришь неприятное". Я хуесошу тебя за ебаный рекламный спам, который я с тебя не просил. Спам, сука, никто не любит, если ты об этом еще не знал, маня блять.
Конечно-конечно, всё, что неприятно, это реклама, убирити жопа грееца. Лул.
Учи матчасть касательно асинхронщины. Сам по себе ни флюкс, ни прочие рутины ничего не бустят, и бустить даже в теории не могут. Это просто альтернатива со своими сильныи слабыми сторонами
Да, спасибо, я так и подумал, что надо сначала с базой разобраться. Никогда с асинхронщиной не работал.
Эм, зачем использовать что-то кроме Executors?
Если TLDR - асинхронщина это не только кратно большие RPS, но и кратно большее количество проблем и способов ебануть себе в ногу. Если ты не гугл и у тебя нет в нефункциональных требованиях задачи обрабатывать параллельно миллион запросов в секунду, соваться в это дело имеет смысл разве что ради понтов на собесах, не более того.
Тем что это разные вещи как мягкое и теплое
Асинхронный код это
тыгыдык - тыгыдак - тыдыгык - тыгыдак
А параллельный код это
тыгыдык - тыгыдык - тыгыдык - тыгыдык
тыгыдак - тыгыдак - тыгыдак - тыгыдак
>Асинхронщина != Параллельность.
Глупо звучит в контексте запросов. Ведь ответы на запросы ожидаются паралельно. Но во время ожидания, делаются новые и обрабатываются готовые уже последовательно на цпу (или паралельно если асинхронность многопоточная). В любом случает запросов может быть много, потоков может много, а работающих ядер цпу ограниченное количество.
> Глупо звучит в контексте запросов
Да нифига. У тебя может быть асинхронность на одном ядре, но не может быть параллельности на одном ядре. Я же говорю мягкое и теплое анон.
Задача обработки запроса не только из работы цп состоит, но еще из ожидания байтов по сети. Во время ожидания цп другими запросами занят. Таким образом запросы обрабатываются паралельно. то же база.
Ну и я не согласен что это задача гугла. Даже десяток скл запросов к субд бывает нужно сделать паралельно.
> Таким образом запросы обрабатываются паралельно.
Да ничего подобного! Пока ядро ждет байтов из запроса 1 и начинает обрабатываеть запрос 2, оно не может обработать запрос 1. Какая же это паралелльность?
t1 - ждем байтов по сети от запроса 1
t2 - переключение контекста на обработку запроса 2
t3 - пришли байты по сети от запроса 1
t4 - заняты обработкой запроса 2
t5 - переключение контекста на обработку запроса 1
t6 - заняты обработкой запроса 1
Вот если бы мы бы в момент t3 начали обработку байтов от запроса 1, то это была бы паралелльная имплментация, но если вместо этого мы заняты в этот момент обработкой запроса 2, то это асинхронная имплементация. Согласен?
Ядро ничего не ждет от 1. Оно занято 2. А когда при приходят данные 2 они лежат в буфере сетевой карты пока ядро не сделает запрос 2. Потом ядро переключается на обработку пришедших данных 1
Опять долбоёб не разбирающийся в терминах суёт своё рыло туда куда не следовало и серет в штаны.
>но не может быть параллельности на одном ядре
Да щас. А зеленая многопоточка че тогда? В джавке 1.2 оная как раз и существовала для того, чтобы дать параллелизм там, где его не было нативно.
Ладно, я понял, что бесполезно, пусть у тебя будет асинхронность и параллельность одним и тем же.
>>55401
> В джавке 1.2 оная как раз и существовала для того, чтобы дать параллелизм там, где его не было нативно.
> одно ядро
> параллелизм
Боги программирования смеются над вами, даже Груг не столько узколоб, чтобы верить в параллельность на одном ядре. Сыны наивности.
> Если TLDR - асинхронщина это не только кратно большие RPS
> в нефункциональных требованиях задачи обрабатывать параллельно миллион запросов в секунду, соваться в это дело имеет смысл разве
Да.
Да я понимаю что это терминология. Более правильно говорить конкурентное выполнение, а не паралельное. Но когда про запросы говорят, обычно используют слово паралельное выполнение. Можешь просто погулить словосочетание паралельные запросы.
> обычно используют слово паралельное выполнение
Я всё ещё считаю, что взрыв это взрыв, а не хлопок, кто бы что не говорил в Интернете. Тоже самое и про асинхронное и параллельное.
> Более правильно говорить конкурентное выполнение
Снимаю шляпу перед вами, я не слышал термин конкурентный уже очень давно и вы полностью правы
Нихуя подобного. Из того, что слова "параллельный" и "асинхронный" в одном предложении стоят, не следует что я трактую их как одно и то же.
А ты походу из тех унылых одиноких душнил, кому лишь бы доебаться, я верно понял?
> А ты походу из тех унылых одиноких душнил, кому лишь бы доебаться, я верно понял?
Да, на нас цивилизация держится.
>Я всё ещё считаю, что взрыв это взрыв, а не хлопок
О, все, в тред "правильный" пришел. А я то думаю - че это говной запахло.
Это как? Государства заканчивают войны и создают альянсы,дабы дружно бить вам ваши доставучие ебала?
Да что ты до меня доебался? Ты походу один из тех унылых одиноких душнил, кому лишь бы доебаться, я верно понял?
>Снимаю шляпу перед вами, я не слышал термин конкурентный уже очень давно и вы полностью правы
Ну вот ты и попался. Параллелизм и конкурентность - не одно и то же, и не взаимодополняющие или заменяющие термины. А ты - долбоеб-демагог со снятой шляпой.
>>55418
Парирую твоим же методом, шлюха. Приятно?
Слив.
Пустые коллекции создаются через Collections.emptyList/set/map. По дефолту создаются с капасити 16
То есть в документации написано, что аллоцируется 16, а на самом деле 0? Ты долбоёб?
Стоит ли перекатываться в Java? Сколько времени займет вкат до джуна?
Есть ИТ-вышка, просто проебался и не устроился на стажировку, как одногруппники, теперь страдаю.
Накидайте книжек и список технологий, которые нужно знать пожалуйста.
Ой блядь, ну просто эталоннейший дебил-вкатоид. Бесполезная вышка, попытки вкатиться в 2024, питухон, в который все кому не лень вкатываются, ну и конечно же обвинение себя во всём этом, конечно, это ты виноват, что на стажировку дальше ПЫТАТЬСЯ не пошёл, это не рынок виноват в котором нужно сначала попытаться поступить, чтобы потом попытаться стажироваться чтобы потом попытаться получить возможность попасть на испытательный срок чтобы был стать шанс помойным 50к ждуном.
> Есть ИТ-вышка
> Накидайте книжек и список технологий, которые нужно знать пожалуйста
Какая у тебя странная вышка.
Выучить язык вопрос недели. Бери любой курс из Интернета. Другой вопрос: что ты писать на этом языке будешь?
Вспоминай почаще, что тебе за евангелирование чужого говноязыка не платят ни копейки.
Пиздец ты скотина все таки. Челик поддержки ищет, а ты взял и за просто так его в дерьмо макнул. Вот нахуя, а? Мне просто интересна мотивация.
Неприятно, срынкодаун? Я его в дерьмо не макал, я ему прямо сказал очень полезную и важную вещь, что не стоит продолжать быть долбоёбом и искать счастья в айти. Ты же всем вокруг пропагандируешь бесполезный вкат в никуда, просто растрату лучших годов пока ещё спина не болит и голова работает вникуда.
Неуважаемый долбоеб, не думай, что ты в своем сверхприбыльном (за счет загона в кредитное рабство обедневшее население) сбербанке в безопасности от экономических процессов.
Ты постом что-ли промахнулся? Причём тут это?
Ты какой то обиженный - агришься снихуя на на каждого встречного и поперечного, пропаганду у меня где то снихуя усмотрел... Какое нахуй ценное мнение у тебя вообще может быть? Тыж омежка по жизни, сразу по сообщениям видно. Нахуй тебя слушать вообще
>конечно же обвинение себя во всём этом, конечно, это ты виноват, что на стажировку дальше ПЫТАТЬСЯ не пошёл, это не рынок виноват в котором нужно сначала попытаться поступить, чтобы потом попытаться стажироваться чтобы потом попытаться получить возможность попасть на испытательный срок чтобы был стать шанс помойным 50к ждуном
В универе обычно практики есть, когда тебя за бесплатно берут на месяц-полтора на завод имени сралина и там ты чему-то учишься и что-то делаешь. Проходить собесы для этого не нужно. Я так во время универа потрогал кресты и питухон на таком заводе (ковырялся в помойном легаси), потом меня за 20 тысяч рублей устроили стажером на этот же завод, где я за эти 20 тысяч целый год работал, правда на полставки.
А анон вероятно просто два раза отправил анкету - в Яндекс и Тинькофф, получил отказы и после этого больше не пытался.
Слив, агрошкольник.
Что обычно подразумевается под "базовые знания языка"? Если ориентироваться по метаниту, то сколько глав следует знать с пик 3?
>Что обычно подразумевается под "базовые знания языка"?
Вообще все что угодно. Зависит от больной головы собеседующего. Просто проработай базенку
https://github.com/enhorse/java-interview
>>56825
Ну земля пухом, потом будет проклинать себя, что сразу не пошел в джаву или го
Все, лол
Обычно спрашивают про знание классов-интерфейсов-енамов и все что с ними связано (модификаторы доступа, наследование итд) collection framework, отличия примитивных типов данных от ссылочных, понимание equals-hashcode, хотя бы основы многопоточки (про атомарные операции, пул потоков, потокобезопасные коллекции, про валотайл итд), и про stream api.
И про исключения тоже (трай с ресурсами, виды исключений, проверяемые-непроверяемве-ерроры)
Practical API Java
> хотя бы основы многопоточки
А часто не основы спрашивают? И че там вообще можно выделить-то?
Про многопоточку можно спрашивать бесконечно, там столько подводных камней ебанешься сколько. Серьезно про архитектуру многопоточных приложух будут только суперсеньера дрочить. Тебе максимум могут дать какую нибудь задачку уровня изи из литкода на семафоры
> архитектуру многопоточных приложух
Ну это что-то другое, кмк. Типо решения треугольника, когда ты хочешь сделать взаимоскличающие вещи: тредобезопасно, перфомансно, так еще и расширяемо. Там обычно маразм уровня, пожертвовать одним во благо другого исходя из контекста задачи..
> там столько подводных камней ебанешься сколько
Ну ты расскажи, мне просто интересно снова ченить почитать.
>Тебе максимум могут дать какую нибудь задачку
Меня к сожалению даже не спрашивали.. Тааак хотел выбенутся, а хуй.
Ни, я её читал уже, там из интересного в основном последняя глава и очень вдохновляющее вступление. Мне оно настолько понравилось, что на время даже апатия пропала.
Ну а так я спрашиваю не по базе для бегениров, а что-то адвансед. Помимо спеки.
Спасибо, лучше проигнорирую.
Адванса в жабе нет. Адванс это многопоточка на сях когда ты можешь залочить два соседних физических ядра только для своего процесса и утилизировать эффективно каждый бит кэш линии между ними.
В жабе книжка Java Concurrency покрывает все возможности многопоточки.
>покрывает все возможности многопоточки.
Рофлишь? А это что по твоему?
>Адванса в жабе нет.
Ну и помимо этого, есть некоторые интересные вещи связанные с happen-before..
Причем тут название класса? У тебя какая-то ебанутая логика, раз нет слова канкаренси, ну значет не канкаренси. Короче мы вам перзвоним.
>> флаттер
таки жив получается?
>> Хрен бы с флаттер/реактодаунами.
Никогда не понимал, почему в ведроид нельзя завести html верстку и css, а обязательно надо ебаться с xml
>> а ставят PWA или просто иконку с ссылкой на сайт
таки браузер побеждает, чтож
> >> а ставят PWA или просто иконку с ссылкой на сайт
> таки браузер побеждает, чтож
Если нужно отобразить контент с сервера - да. Если нужно выполнять на клиенте вычисления, например работа с видеопотоком с камеры, то браузеры бесполезны.
>> Если нужно выполнять на клиенте вычисления, например работа с видеопотоком с камеры, то браузеры бесполезны.
wasm, жи
Ничего не даёт когда речь заходит про работу с девайсами подключёнными к браузеру. Васм будет также дёргать жс код, чтобы получить картинку с камеры или звук с микрофона. Васм всё так же будет ограничен одним потоком, то есть про паралелльную обработки забудь.
Проблема не в языке или компиляторе, а в том, что браузер это такая виртуальная машина сама в себе и чтобы прокинуть ресурсы из реальной машины в виртуальную тратится неприлично много времени.
Там, вроде, по договору, если ты захочешь ливнуть или они тебя пидорнут, ты должен им выплатить тысяч 300 или около того. Сам не знаю, слышал в Ютубе.
Ну короче, там подводный один, ты будешь работать за минимальную вилку, а продадут тебя как мидла минимум с резюме соответсвующим, и съебать тебе нельзя будет, иначе должен им будешь выплатить по котракту. Но зато найдешь первую работую. Короче если ты без опыта, то наверное не плохой вариант
> астон
Коротко - рабство. Когда доёдёт до ученического договора, дропай нахуй их.
Лучше пройди стажировку в бигтехе. Там и платят раза в 3-4 больше.
Я всегда думал, что они асинхронно выполняются в одном потоке, а по документации они похоже реально аналог тредов в других языках.
Я почему-то не удивлен. Учитывая, какие бабы-сраки и орки набежали в конфу, вообще нонсенс, что они за эту хуйню деньги не выбивают.
>Звучит очень заманчиво
Да блять, нет на свете халявы. Зачем коммерческой фирме ОБУЧАТЬ БЕСПЛАТНО если для ОБУЧЕНИЯ есть университеты, школы, курсы, книги, библиотеки, репетиторы, менторы и далее по списку. Чужой дядя же не просто так предоставляет этот курс. Он рассчитывает получить чмошника с низким самомнением себе в рабство. Чтобы чмошник работал за ценник в два раза ниже рыночной. А чтобы чмоня не сбежал, привяжем его кабальными условиями (например если тот увольняется, то платит 500к). В России дохера людей ментальных инвалидов, которые сами ничё не могут, им надо вот прям пошагово провести, рассказать, показать. И дохера людей готовых вкалывать 24/7 за копейки. Даже на дваче проскакивали мол готов за 30к, за 40к, за 50к. Вот такие люди ходят и всех доёбывают - "роадмап подскажите?", "а эта книга норм?", "а подскажите какой язык выбрать?" и так далее. По факту, чмоня будет делать всё тоже самое, что делают программисты за 150к, но по ценнику 40к. Короче, это комбо полной несамостоятельности + низкого самомнения, их нанимают за копейки, они и рады до усрачки.
Ботопостинг.
спасибо
Это нормально. В разработке всегда оценка не матчиться с реальным временем выполнения.
>>что не так?
на джаве не пишут сайты
но можно написать информационную систему с веб-интерфейсом, сложную, рассчитанную на десятилетия поддержки
из языков с которыми я работал, java показалась самой подходящей. На чем то вроде плюсов или си я точно не буду писать сайты, потому что слишком долго, а выигрыш в производительности будет незаметен. На питоне страшно, потому что я привык к тому что язык очень свободный и в основном используется в ситуациях, когда если запустилось и отработало - достаточный критерий качества. Всякие тесты писать классно, скрипты, но программу которая отвечает за аутентификацию пользователей, в которой должно быть несколько защит от типичых веб атак, я бы побояся писать на питоне. Но я веб не писал никогда, в вопросе не разбираюсь. На чем сейчас пишут веб?
Лох
>>На чем сейчас пишут веб?
Сейчас пишут отдельно бэкэнд + фронтенд
бэкэнд - пхп, питон, джаваскрипт(нода), джава, гоу
фронтенд - фреймворки реакт\вью\ангуляр(джаваскрипт\тайпскрипт)
просто портал скорее всего напишут на питоне(джанго) или пхп(фреймворки не помню)
Спасибо. Посмотрю тогда в сторону питона. Нашел это https://github.com/tornadoweb/tornado/blob/stable/demos/blog/blog.py
Либа судя по звездам на гитхабе на порядок более полпулярная чем многие веб фреймворки для java + есть целая демка с авторизацией. То что мне нужно.
Лол блять добро пожаловать в программирование! Тут каждый второй шапкозакидатель, да эт хуйня, за пару дней делается! Потом оказывается что там не пару дней, а пару месяцев. Там столько деталей и нюансов, что ахуеть можно. Аутентификация не такая простая штука как кажется на первый взгляд. Там нужно письмо с подтверждением отправлять. А вдруг захотят восстановить пароль, тогда надо придумать восстановление. А если мультифакторная авторизация - это ещё надо смс отправлять. А если с незнакомого устройства входит? Тогда надо device key генерировать и переходить на srp-авторизацию. А если пользователь в настройках поменял пароль? Тогда это надо чтобы токер режектился. И так далее и тому подобное. Надо быть упоротым, чтобы считать что авторизация за дня делается. На коленке? Возможно. Но качественную не сделать за 2 дня, особенно если ты нуб.
Подключил готовый сервер авторизации - меньше дня. Нахуя это все с нуля делать неясно.
Ну хватит тролить тупостью. У тебя нихуя не написано. Да и мне не интересно докаывать кому-то, что я не верблюд. Мне интересно было узнать по поводу многопоточки, выяснилось, что помимо попсы ты нихуя и не знаешь. Ну может и заткнешься тогда, раз нечего сказать?
Ну дау это развод гоев на деньги и есть. Нормальные люди вкатыаются либо через стажировки на 3 курсе вуза, либо накручивают себе опыт, занимаясь с нормальным ментором каждый день в течении полугода
>Ну дау это развод гоев на деньги и есть.
А более аргументировано? Там норм практика для базы, но после середины надо дропать так говорят.
Ну, я лет 5 назад что-то там проходил. В целом норм было. Но что там сейчас хз.
или
for (int i = 0, n = list.size(); i < n; i++) {...}
?
Допустим, foreach использовать нельзя, потому что нужен индекс.
Первый вариант. Первый раз в жизни вижу второй.
А в каких конкретно имплементациях вызов size не константа? Типа ты уверен, что тебе вообще нужна эта маняоптимизация на спичках?
Это во всех имплементациях вызов функции, который нужно диспетчеризировать. Да и у String, например, там вычисление есть.
>вызов функции, который нужно диспетчеризировать
Плевать. Ты не в cpp, чтобы страдать хуйней по оптимизации стека.
>Да и у String, например
Во первых стринг это не коллекция, поэтому у него даже нет метода size.
Во вторых в имплементации это константа. Вычисления не равно линейная и пр. Ты похоже даже базой для вычисления асимптотики не владеешь.
Пс: константа = O(1), линейная = O(n)
>Ты не в cpp, чтобы страдать хуйней по оптимизации стека.
В свободное от работы время можно и пострадать хуйней по оптимизации, не?
>Во вторых в имплементации это константа
Я думал ты про то, что там одно и то же значение возвращается, как у ArrayList. По сложности константа, но она на каждой итерации добавляется, а во втором моем варианте один раз при инициализации цикла.
>можно и пострадать хуйней по оптимизации
Лучше в литкоде алгосы порешай..
>а во втором моем варианте один раз при инициализации цикла
Это не имеет значения. У тебя в теле цикла наверняка будет тот же гет, а с ним и какие-то другие действия. И этот сайз не будет ничего весить. Плюс jvm сделает инлайн, если метод горячий.
> В свободное от работы время можно и пострадать хуйней по оптимизации, не?
Ты путаешь мягкое с тёплым. Если нужна оптимизация, то идёшь в С++. Это нормально: часть проекта, которая бутылочек горлышко, пересано на кресты.
Потому что продолжаешь путать мягкое с тёплым. Тёплое это писать на клевой жабе. Мягкое - это писать производительный алгоритм. Как не выебывайся, а жаба не будет такой же быстрой как С++. А значит если вопрос в скорости, то нужно писать на крестах и всё.
>Это во всех имплементациях вызов функции
Жид компилятор хитрит и вычисляет сайз один раз, только в мозгу гоя программиста ощущение что на каждой итерации
Вот бы ещё круглые скобки нахуй убрали
native в жабе ебаное гавно. На вызовы сишной хуйни из из жабы ты потратишь многократно больше времени, чем делать это сразу в жабе. Отдельно это ещё более муторно в поане архитектуры и точно не стоит того.
Да и у тебя кресты головного мозга, раз ты считаешь, что ну раз кресты значит бистра, а вм это медлина
>Да и у тебя кресты головного мозга, раз ты считаешь, что ну раз кресты значит бистра, а вм это медлина
Чудес не бывает. Хороший плюсовый код всегда будет быстрее джавы.
О, это я знаю, операция на сях 1 мс, вызов jni функции в жабе 15 мс.
> чем делать это сразу в жабе
Пиздеж. Жаба не умеет в SIMD до 17 версии, да и то, фича в экспериментальном статусе. Жаба не умеет в обработку больших байт массивов, потому что доступ к элементам только по индеесу, а не по указателю как в сях. Ну, и сравнивать предкомпилированный код с JIT в плане оптимизации компилятором просто смешно.
> Отдельно это ещё более муторно в поане архитектуры и точно не стоит того.
Хз, код как код. У тебя всё равно будет в jni апишка торчать и архитектурные линтеры будут её детектить.
> Да и у тебя кресты головного мозга, раз ты считаешь, что ну раз кресты значит бистра, а вм это медлина
Это не личное мнение. Это факт когда нужно обрабатывать какие-нибудь картинки.
https://youtu.be/ux1jWJgDRRs?si=mlV4Y7svbZCsN-8x
В двух словах: ради безопасности.
Если безопасности не надо, то можно оверхед убрать под ноль используя библиотеку автора:
https://github.com/apangin/nalim
>джава
>продакшен
>не надо безопасности.
>>59702
>Жаба не умеет в SIMD до 17 версии,
Умеет. https://static.linaro.org/connect/bud17/Presentations/BUD17-117%20Auto-vectorization-support-in-OpenJDK9-Hotspot-C2-compiler.pptx.pdf
>доступ только по индексу
По твоему указатели быстрее индекса? Ты хоть пруфай.
>Это факт
Ну я говорю, кресты головного мозга. От простой смены инструмента, алгоритм не станет магическим образом быстрее.
> Умеет.
Очень интересный источник. А теперь смотри в официальную документацию опенждк
https://openjdk.org/jeps/338
> По твоему указатели быстрее индекса? Ты хоть пруфай.
Лол. Это же самая база. Указатель буквально есть ссылка на элемент массива в то время как индекс это его порядковая репрезентация, которую сначала нужно умножить на размер элемента массива, потом прибавить к ссылке на первый элемент. Это кратно больше операций и когда ты работаешь с миллионами байтов, то это даёт существенный выигрыш.
https://stackoverflow.com/a/2305827
> Ну я говорю, кресты головного мозга. От простой смены инструмента, алгоритм не станет магическим образом быстрее.
Ты путаешь сложность алгоритма и его конкретную имплементацию в ассемблерных инструкциях.
Но учитывая, что ты и про указательную арифметику не знаешь, то ты видимо слева на пике.
Вектор апи и автовекторизация разные вещи. Странно это не знать..
>то ты видимо слева на пике.
Не челу который разницы между вектор апи и автовекторизацией не видит это говорить.
>которую сначала нужно умножить на размер элемента массива
Это детали реализации, которые не всегда работают именно так. Автовекторизация один из банальных примеров.
В общем-то картинка именно про тебя. Не знаешь даже базы в жабе, но с таким апломбом пиздишь, будто лично нахуй ее разработал.
> Вектор апи и автовекторизация разные вещи. Странно это не знать..
И где я говорил, что это одно и тоже? Мне нужно, чтобы я мог написать алгоритм используя SIMD, а не надеятся, что JIT додумается что превращать в вектор, а что нет. И внезапно это было добавлено только в 16 жабе как я и сказал.
> Не челу который разницы между вектор апи и автовекторизацией не видит это говорить.
Лол, тащи цитату где я говорю, что это одно и тоже.
> Это детали реализации, которые не всегда работают именно так.
И как же по другому это работает? Расскажи, очень интересно узнать как же ты получишь элемент массива по индексу без вычисления его адреса в массиве.
> В общем-то картинка именно про тебя. Не знаешь даже базы в жабе, но с таким апломбом пиздишь, будто лично нахуй ее разработал.
Во-первых, автовекторизация и вектор апи никак базой не являются. Во-вторых, я жду цитату где я говорю, что это одно и тоже.
Зависит от задач и компании. У меня андроид специфика в стартапе, там и с камерой и с микрофоном и с нейронками работаю. Мне норм. Коллега пришёл из банка, где за год одна выкатанная фича равно успех. Говорит очень разные рабочие процессы.
Да все как везде. Если устраиваешься в банк или на галеру, будь готов, что будешь жрать говно, вне зависимости от языка. Если устраиваешься в продуктовую разработку, то вне зависимости от языка все будет интереснее, чем на галере.
Внезапно, но инкубатор это не равно добавить. Ты не можешь пользоваться этим апи в проде. Ну если прод не говно конечно.
>Мне нужно
>Жаба не умеет в SIMD до 17 версии,
Ты давай формулировки не меняй, долбоеб. Ты написал, что не умеет, а не то, что ты сейчас пиздишь. Наверняка ты просто не знал про это, сейчас как уж крутишься, мол да я ни эта имел ввиду и пр пр.
>автовекторизация и вектор апи никак базой не являются
А вот дидовское говно на указателях является? Окей.
>И как же по другому это работает?
https://shipilev.net/blog/2015/black-magic-method-dispatch/
> Внезапно, но инкубатор это не равно добавить.
Я в курсе.
> >Мне нужно
> >Жаба не умеет в SIMD до 17 версии,
> Ты давай формулировки не меняй, долбоеб. Ты написал, что не умеет, а не то, что ты сейчас пиздишь.
Ты свое очко на глобус не натягивай. Жаба не умеет в SIMD, значит, что в API ты вызвать эти операции не можешь. Что там под капотом решает JIT тебя ебать не должно потому что оно в контракте не прописано.
> >автовекторизация и вектор апи никак базой не являются
> А вот дидовское говно на указателях является? Окей.
Да, является.
> https://shipilev.net/blog/2015/black-magic-method-dispatch
И нахуя ты это скинул?
>Я в курсе.
В курсе, что пишешь хуйню? Ладно.
> значит, что в API ты вызвать эти операции не можешь.
Ну это твое определение, которое ты опять же придумал, чисто чтобы остаться правым. Если ты подменяешь термины, делай это в момент их декларации, а не к месту.
В общем в итоге, жаба умеет в smid. Твои притензии, что ты не можешь заняться байтойбством на указателях хуйня, поскольку пруфов, где на перфоманс тестах ясно показано, что эти указатели дают прирост нет. Ты просто фантазер и клинический долбоеб, фанатик крестов.
> Твои притензии, что ты не можешь заняться байтойбством на указателях хуйня, поскольку пруфов, где на перфоманс тестах ясно показано, что эти указатели дают прирост нет.
Ахуеть. На каком моменте тебе стали интересовать перформанс тесты?
> От простой смены инструмента, алгоритм не станет магическим образом быстрее.
Узнаешь цитату? Кидай ссылку на перформанс тест, который показывает, что плюсы не дают прироста.
> Ну это твое определение, которое ты опять же придумал, чисто чтобы остаться правым.
> В общем в итоге, жаба умеет в smid.
Ага, представляю как тебе дают задачу написать векторизировпнный алгоритм и ты такой пишешь его на жабе и когда внезапно он не отличается по производительности от скалярного ты начинаешь пиздеть "конечно же жаба умеет в SIMD, 100 % умеет, но алгоритм такой я написать не могу потому что в жабе нет функций для того, чтобы его написать. А так-то конечно умеет, да-да. Ну, что, я молодец, да?". После такого я бы тебя первым бы в списки на увольнение отправил.
> Ты просто фантазер и клинический долбоеб, фанатик крестов.
Я всё ещё жду когда ты ответишь за свой гнилой пиздежь
> > Не челу который разницы между вектор апи и автовекторизацией не видит это говорить.
> Лол, тащи цитату где я говорю, что это одно и тоже.
Что такое? Неужели ты просто фантазер и клинический долбоеб?
> >Кидай ссылку на перформанс тест
> это ты начал тему, что cpp самый быстрый, тебе и пруфать.
Без проблем.
https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf
> this experience report we encode a well specified, compact benchmark in four programming languages, namely C++, Java, Go, and Scala. The implementations each use the languages’ idiomatic container classes, looping constructs, and memory/object allocation schemes.
> Ну и лальше опять какие-то фантазии.
Это ты про ту часть где я всё жду цитату? Неужели так больно, что просто делаешь вид, что не обсирался? Или это та часть где ты пиздишь про то что жаба может в simd, но написать алгоритм с его использованием ты не можешь?
А вообще пофиг, мне надоел этот спор. Мой алгоритм на крестах так и не ускорился за день попыток. Видимо остаюсь на 12 мс. На жабе было кстати 150 мс. Всё, пора идти отдыхать.
p.s.s. ты был прав, современным компиляторам уже пофиг на то через указатель или по индексу запрашивать элемент у массива. Но справедливости ради они просто конвертируют вызов по инедксу в вызов через указатель, так что технически я прав.
>Указатель буквально есть ссылка на элемент массива в то время как индекс это его порядковая репрезентация, которую сначала нужно умножить на размер элемента массива, потом прибавить к ссылке на первый элемент. Это кратно больше операций и когда ты работаешь с миллионами байтов, то это даёт существенный выигрыш.
Это не так, в x86 есть разные виды адресации, в том числе и для доступа к полю структуры в массиве (адрес в таком случае задается как "базовый адрес + размер структуры х индекс + смещение поля). Это все реализовано в железе, и по скорости не отличается от просто доступа по указателю.
Понял, спасибо
Очнись, на дворе 2025 год, не сытый 2021. Джава уже не ебёт.
Фпхуйня разве что, типо этой https://openjdk.org/jeps/468
Надейся, что в 25 жебе, скуфц таки выпустит погулять темплейты.
Но всерьез топить за джаву с точки зрения скорости? Ебанулись? Я пишу и на плюсах, и на жабе, если что.
Memory footprint ебейший, на конструирование всего говна в памяти расходуется сильно больше cpu, чем в плюсах. Время старта ебейшее. Монстры типа спринга - просто пиздец.
Да, на джаве можно угорнуть и по скорости написать очень близко по скорости к C++. Но это пиздец как геморно. Если мне надо упороться по скорости, я буду именно этот компонент писать на плюсах или расте, а не бороться с джавой
> Сразу оговорюсь, что те довены, которые выше топят за скорость плюсов, идут сразу нахуй по причине долбоебства.
> Топит за плюсы.
> Но всерьез топить за джаву с точки зрения скорости? Ебанулись?
> Называет остальных ебанутыми.
Иди нахуй.
А как же хотспот
Хуя се дегенерат ни с того ни с сего взял да рванул. Мань, на джаве легко писать со скоростью как на плюсах. Просто пользуйся только теми фичами, что есть в плюсах, лул.
Хз, будущее очевидно за виртуальными машинами и подходом джавы. Память будет дешевая как грязь в будущем. Скорость тоже вырастет, так что всякий оверхед на разыменования и промахи кэшей будут стремиться к нулю. Собственно это весь выигрыш в скорости от плюсов.
Что ты в таком случае под фичами понимаешь? Да и помойковость это не плохо. Джава тоже становится помойкой при добавлении 100 библиотек и 20 утилит, и ничё, только прихрюкиваем.
Плюсы это помойка. Из-за такого количества фичей они просто мешают друг другу и противоречат. Язык должен быть лаконичным, а не этим монстром с спекой на тысячи страниц и ub.
>будет
Алё гараж, 2025 на дворе, уже давно будущее наступило, уже эти мантры далеко не к лицу.
Аргументы чего? Ну вот есть в cpp define. Но пользоваться этим себе дороже, очень легко сделать нечто в край запутанное и сломанное. Есть goto. Есть фичи сука из сишки (типа говномассивов, которые даже не чекают, а подходят ли они по длине, это тупо ub). Есть фичи из ооп. Есть фпговно, есть асинки, есть барьеры. Молчу уж про метапрограммирование, это вообще ужас. Да это просто мешанина из всего нахуй, именно поэтому ты можешь десятки лет положить тупо на изучения синтаксиса cpp и то, знать не все.
Вот хорошо линус сказал, нахуя тебе нужны кресты, если ты используешь онли сишную хуйню, для перфоманса и тд? Используй сразу си. Нахуя тебе кресты, если ты не используешь сишное говно для управления памятью, а чисто в ооп обитаешь? Используй нормальные языки. Универсальные языки, которые могут все, но хуево - просто зло. Специализированные, которые могут что-то конкретное, но хорошо, за этим будущее.
Еще не наступило. Корпорации искусственно сдерживают прогресс картельным сговором. Но плюсы и джава - это как коробка на механике и автомат. Современные автоматы во всём превосходят механику, но раньше механика могла потягаться еще. В какой-то момент мы придем к тому, что виртуальная машина будет выигрывать полностью во всём.
>ввинтите мне сапог в жопу поглубже чтобы я точно не сделал ничего неправильного
То, что ты не умеешь программировать это исключительно твои проблемы. Не нравится фича — никто не заставляет пользоваться.
Да, главное верить, что в один-то день господа вывалят на рыло дешёвой памяти, и можно будет забыть про все проблемы с перформансом.
Феноменальный дебил. Когда они уже научатся, что любые ресурсы системы, какие бы они не были дешёвые, можно потратить...
А что плохого в том, что компилятор синтаксически защищал меня от всякой очевидной хуйни?
Хорошая цитата:
>When people say 'but most business logic bugs aren't type errors,' I just want to show them how to make bugs into type errors.
>Не нравится фича — никто не заставляет пользоваться.
Как я могу не использовать "фичу" связанную с массивами? Типа эта фича настолько ахуенна, что я банально не могу передать адекватно чисты массив в функцию. Там форич не будет работать, нельзя размер массива узнать нормально. Я еще раз повторюсь, ты так или иначе будешь использовать их часть, но каждый раз будешь ловить себя на том, что это просто мусор ебаный, который никак не синергирует, а только мешает друг другу. Вот нахуя мне в ооп языке ручное сука управление памятью? Почему ты не можешь не понять, что для байтойбства - си и пр. системные языки, для высокоуровневого, современные яп, их просто туча. Зачем пользоваться крестами? У них никаких преимуществ.
>Джава тоже становится помойкой
И добавлю, что пока у руля стоит скуфц, жаба не станет помойкой. В неё вообще практически нихуя особого не внедряется. Тут скорее подойдет шарп, который все скорее скорее, с пылу с жару в себя вмещает.
Ты не про защиту компилятором говоришь. Ты говоришь про вырезание фич дабы не дай бог никто ими неправильно не воспользовался.
Я говорю, что фичи должны не мешать друг дружке не надо их добавлять по принципу, вроде в языке X она хорошо выглядит, а давайте заберем без контекста себе. Будет очевидно хуйня.
Ну и собственно по такой логике, надо бы вернуть во все языки старый добрый longjmp. Напридумывали абстракций, непонятно зачем, хех.
А что в плюсах мешает друг другу? Ручное управление памятью? Так это не фича, а особенность языка.
Ну я же приводил пример уже. Вот есть фича форич, банально во всех языках. Дальше еще одна фича, это создание массивов, насколько я понимаю, в рамках функции, они какие-то особенные и имеют в себе информацию о размере. Не суть. Но. Передать ты такие массивы из функции не можешь, посольку они буквально сишные сука. Это тоже фича, называемая, пук пук, ну мы не хотим делать массивы медленнее, чем они были бы в сишке. Просто маразм какой-то, одно добавят, в другом убавят.
В любом случае, я не тратил много времени на кресты, он меня просто доебал своими ошибками номер хуй или пук, программа слоамлась, сегфаулт. В жопу такое.
Ну ок, допустим форич там кривой. Это проблема плохого дизайна, а не того, что в языке слишком много фич. Твоё предложение это удалить форич.
> Это проблема плохого дизайна
Одно и тоже. Когда у тебя сотни фич и ты их добавляешь пачками и не особо думая, как это будет выглядеть, понятно, что твой дизайн будет хуевый. И мое предложение это вырезать всю хуйню связанную с сишкой, а не смешать две противоречащие другу другу идеи. Нужна низкоуровневая хуйня - вперед в си.
Нет, не одно и то же. Ты привёл только один помойный пример, который тут же был обоссан, в том числе тем что в джаве и форич есть, и массивы нормальные. Хватит уже усираться, осёл, ты не прав.
А сколько мне примеров надо привести? Я сказал общее утверждение, что нельзя одновременно иметь и низкоуровневый и высокоуровневый язык. Нельзя смешивать без последствий фичи из разных парадигм. Ты же говоришь, ну игнорируй большую часть языка. Чел ну так может я изначально выберу язык, где будет определённый набор фич?
И причём тут джава? У нее гораздо лучше в этом плане все.
>сколько
Явно не один.
>смешивать низкоуровные и высокоуровныеуые фичи
Вот это уже что-то. Я могу отдалённо принять этот тейк. Хотя тут тоже дело в плохом дизайне.
>джава
Ты чем диагог читал-то? Пример помойки в которой усраться фич, но всё нормально по юзабилити.
>Явно не один.
Ну это надо что-то на плюсах поделать, чего я делать не хочу абсолютно.
>Пример помойки в которой усраться фич
В джаве мало фич, по сравнению с плюсами. Да и даже так, есть тот же Object, где практически все методы просто не нужны и мешают как разрабам jvm (привет wait/notify, finalize), так и разрабам либ (HashMap, как пример, где вообще синтаксически не очевидно, что нужен hash). Есть проблемы null-safety. Есть проблемы с типами из-за того же null. Кому-то вот не нравится, что дженерики не существуют в рантайме.
Джава в этом плане не самый лучший пример из-за шизы с обратной совместимостью, который не позволяет так просто убрать плохие решения, но её спасает общий консерватизм, не позволяющий вводить уж совсем дебильные и не нужные фичи.
Ну тв же понимаешь что это снова пример плохого дизайна, а не слишком большого количества фич. Я не понимаю, зачем тв продолжаешь позориться.
Я с самого начала сказал и повторял несколько раз, что в джаве нет большого количества фич, поэтому очевидно, что мой тезис не работает конкретно на джаву.
Искать для тебя частные примеров на кресты, которые вне зависимости от количества доказательством не являются, я не буду. Это пустая трата времени.
Это к тебе вопрос, это ты начал жабу приплетать, хотя я с самого начала декларировал, что твое мнение, что в жабе фич больше, чем в крестах, просто ошибочно и не соответствует действительности.
>Слив
Похуй
Ты и к этому не привёл доказательств.
>похуй
Было бы тебе похуй, ты бы не продолжал усираться, безпруфный осёл.
Хорстманн не устраивает тем, что там совершенно нет упражнений -- я считаю для учебника это дно.
Придумай упражнения себе сам. Синтаксис не особо концептуально сложная вещь, и большая часть упражнений - это тупо, повторение того, что написано в главе. А любой выход за рамки считается крамолой и вообще говнокод.
Bruce.Eckel.Thinking.In.Java
Чё перекат-то не объявил?
А твой заказчик не против того, что ты сливаешь код американским компаниям через чатгпт?
Блин, действительно(
GigaCode