Предыдущий: >>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
>>4320
На счет сервера, мне казалось, что вся работа там состоит в том, чтобы в сервере приложений заменить фабрику обычных тредов, на виртуальные. Усе, дальше изменений в код ты просто не заметишь.
>Просто нарисуй небо, и запланируй через пять секунд действие, которое исопользует метод выше.
Тот же самый результат. Пустое окно, через 5 секунд появляется полная картинка. А если оборачивать в вызов invokeLater метод repaint, то вообще окно ничего не отображает и не реагирует на события. Наверно, надо со Swing или JavaFX попробовать...
>Вообще вряд ли можно найти современный UI, который может в многопоточную отрисовку.
На Delphi (и WinAPI в целом) с этим не было никаких проблем, если на время рисования блокируешь в текущем потоке окно (без блокировки, понятно, все висло и падало).
Ты какую-то хрень делаешь. Во первых диспатч тред на целых 5 секунд занимаешь ничем, это полнейшая хуйня, во вторых именно в этом invoke должны быть все действия связанные с UI. Каждое измнение положения, цвета, репеинт и прочее.
>>4360
Это хуево. В том же JavaFX лучше поступили, если ты делаешь хуйню с UI вне EDT, то тебе ошибку кидает. Так хотя бы есть гарантия, что не будет проблем.
Смешно - это когда гоферы думают что гоу - это прогресс, в то время как гоу - просто новый виток замкнутого круга.
Это не виток круга, это попытка раввинов создать этот круг. Никому не выгодно чтобы гойскому скоту было хорошо. Поэтому надо заставить гоев страдать.
Думаю, насколько сложно вкатиться
Любой, кто не способствует смерти жидеи или даже наоборот помогает ей это преступник.
>преступник
И что же, ты накажешь меня в кроватке? :3
А если серьезно, то это для внутреннего пользования, энивей от рузьких закрыли возможность загрузки плагинов.
>Думаю, насколько сложно вкатиться
ЕБАТЬ как сложно. У них есть документация только по созданию простейшего плагина для кастомного языка. Все остальные части функционала, для которых можно делать плагины, никак не описаны. У них в документации буквально написано "просто смотрите код других плагинов, лол".
Мде, в таком случае точно больше недели понадобится, эх.
Хер знат, но Math использует это. Возможно не просто так.. А значит 3.
1) зачем именно виртуальные треды?
2) если нужно будет обработать что-то крупное, то будет беда при работе нескольких виртуальных тредов: они будут на одном ядре( один реальный тред) считаться.
Мимо один раз делал сервер на сокетах и обнаружил, что при переполнении числа запросов сервер весь летит.
>они будут на одном ядре
Они не 1:M, а N:M, т.е. N платформенных на M виртуальных. Так что не на одном ядре они будут. Но cpu intensive в любом случае не рекомендуется даже ораклом, конечно.
Чего? Нет.
>Я 3 года опыта, мидл, мидл+ как я думаю
Джун/Джун+. Мидл - это минимум 5 лет реального (без накруток) опыта нынче.
>>6908
>что вместо идеи
IDEA. Либо старые версии. Либо Community. Либо GigaIDE от сбера. Для джавы все остальные IDE попросту непригодны. На VS Code у нас джависты пробовали переходить, сказали, что хуита и пошли дальше в идее кодить. А причина в том, что для джавы нет LSP серверов нормальных, которые можно было бы прикрутить к vs code. Только какой-то заброшенная каловая реализация от эклипса и не более.
Довольно простая на первый взгляд задача. Но если копнуть в детали, то становится сложнее. Расписание - это что? Просто набор каких-то дат/времен, привязанных к конкретному пользователю, в которые надо запустить рассылку? Как вы ее у себя на беке сохраняете? Уже таблица есть какая-то для хранения этого расписания для каждого из юзеров или еще нет? Если расписание хранится только в куче запущенного процесса, то как быть, если вдруг придется порестартить сервер?
UPD. Перечитал описание и понял, что вроде все попроще должно быть. Просто нужна периодическая таска, которая будет всем юзерам отправлять отчеты за предыдущий период. Тогда проще. Осталось только с магией спринга попердолиться, чтобы динамический шедулинг сделать.
Лучше Eclipse/Netbeans ещё не придумали. Гавно типа Idea и подделки от Сбера сразу отбрось. В новых версиях Eclipse все идёт из коробки как в Visual studio.
Сам жабист, но недавно наняли пентесторов, которые поломали нашу либу написанную на жабе за день. На вопрос что делать ответили писать на плюсах. Когда нужна скорость в алгоритме всегда пишу на плюсах ладе уже не пытаюсь на жабе писать так как на плюсах всегда получается быстрее.
Жир. Плюсы и жаба по скорости равны, а в исключительных случаях джава быстрее. Только на джаве сегфолтов нет, а любое исключение в проде без убийства перформанса дебаггером аккуратно обосрётся в консоль стектрейсом.
> Сам жабист, но недавно наняли пентесторов, которые поломали нашу либу написанную на жабе за день. На вопрос что делать ответили писать на плюсах.
Как связан пентестинг и перформанс? Похоже на то что какой-то школьник по клавиатуре постучал, ей-богу. Плюсы гораздо менее безопасны, чем джава.
>Сам жабист
>Когда нужна скорость в алгоритме
Почему жаваны так помешаны на перфомансе? Это какое-то писькомерство? Мол, а вот в моем языке алгоритм сортировки быстрее твоего, хаха
Потому что в реальных условиях перформанс это если не главное, то второе после главного.
> Хз, у меня потоковая обработка видео и жаба не вытянул за 10 мс успевать обработать кадр, кресты вывезли.
Джава не умеет в зеро-кост абстракцию, плюсы в принципе в абстракцию не умеют особо. Если нужен перформанс на джаве как на плюсах, нужно писать на джаве как на плюсах, разница будет лишь в мемори сейфти. Наверняка ты навернул каких-то стримов и прочих модных штук, которые в джаве с перформанс точки зрения (в сравнении с плюсами) сосут.
> Жаба дезассемблируется в почти читаемый код. С++ дезасемблируется в нечитаемую хуйню.
Но это же буквально защита от школьника, лол. Вам стоит очень сильно подумать о ваших пентестерах, если они предлагают такое вместо концептуальной защиты.
>Потому что это требование в тз?
В каком тз блять? Это даже не функциональные требования. Максимально вторичная хуйня, которая обыкновенно решается покупкой 100500 планок.
>>7075
Реально, соответствие требованием заказчика, отсутствие багов, консистентность и прочие гарантии. Нахуй все это, зато сайтик быстро грузится.
> Максимально вторичная хуйня, которая обыкновенно решается покупкой 100500 планок.
Ну и чё когда в игре видишь 40 фпс не бежишь покупать rtx 5090 и 14900k, а когда спринг тормозит ноешь, что джава медленная хуйня, а не покупаешь 100500 планок? Простой коупинг дегенерата, что не умеет писать быстрый код.
> Реально, соответствие требованием заказчика, отсутствие багов, консистентность и прочие гарантии. Нахуй все это, зато сайтик быстро грузится.
И как всё это противоречит производительности?
Тебя уже обсирали по производительности с ног до головы, снова за порцией говна пришёл? Код можно написать любого уровня медленности. Любые ресурсы можно засрать. О производительности всегда нужно думать, иначе у тебя программа не выполнит вообще ничего.
>а когда спринг тормозит ноешь
Где я хоть раз про это ныл? Это вы ноете, не я. Мне похуй, это все равно меньше чем потребление обыкновенного бровузера. Пик.
>Ну и чё когда в игре видишь 40 фпс
Я не понимаю, почему ты мне со стороны конечного пользователя это описываешь? Как бы то, что фпс мало в играх, наборот правильной мою позицию делает, что кабанчику ПОЕБАТЬ на перфоманс. Почему тебе лично не похуй в таком случае? Тебе даже не заплатят за это.
>>7090
>Тебя уже обсирали
Когда?
>О производительности всегда нужно думать
Нет не нужно. Обычный процесс состоит так: пишешь просто хороший код, типа исключаешь квадрат, когда можно линейно. Потом, перфманс тесты выявляют ботлнеки и вот тогда можно начать немного думать. А если ты постоянно будешь делать грязные хаки ради какого-то там перфманса в коде, который вообще раз в никогда вызывается, то ты просто бесполезный сотрудник тратящий рабочее время вникуда.
> Но это же буквально защита от школьника, лол. Вам стоит очень сильно подумать о ваших пентестерах, если они предлагают такое вместо концептуальной защиты.
Что ты имеешь ввиду?
>>7086
> В каком тз блять? Это даже не функциональные требования. Максимально вторичная хуйня, которая обыкновенно решается покупкой 100500 планок.
Лол, интересно как это объяснить заказчику, чтобы он остался заказчиком, а не ушёл к другим поставщикам?
> Где я хоть раз про это ныл? Это вы ноете, не я. Мне похуй, это все равно меньше чем потребление обыкновенного бровузера. Пик.
Удачи выйти в прод, вкатотуся.
> Я не понимаю, почему ты мне со стороны конечного пользователя это описываешь? Как бы то, что фпс мало в играх, наборот правильной мою позицию делает, что кабанчику ПОЕБАТЬ на перфоманс. Почему тебе лично не похуй в таком случае? Тебе даже не заплатят за это.
А причём тут кабанчик? Речь идёт не о кабанчиках, а о том, нужна ли производительность в принципе. Зачем ты тезис подменяешь?
> Когда?
Докупи планку памяти в мозг, может помнить будешь.
> Нет не нужно. Обычный процесс состоит так: пишешь просто хороший код, типа исключаешь квадрат, когда можно линейно. Потом, перфманс тесты выявляют ботлнеки и вот тогда можно начать немного думать. А если ты постоянно будешь делать грязные хаки ради какого-то там перфманса в коде, который вообще раз в никогда вызывается, то ты просто бесполезный сотрудник тратящий рабочее время вникуда.
Это и есть "думать о перформансе", маня. Никто тебе не предлагает сразу же грязные хаки делать. А твоя пропаганда как раз подталкивает людей хуярить квадраты на похуях и не делать перформанс тесты, похуй же, чё.
Вроде бы ясно было сказано, что я имею в виду. Придёт не-школьник и вся ваша защита полетит в тартарары, потому что вы уделили внимание тому, чтобы школьники не смогли дизассемблировать, а настоящую, концептуальную защиту просто не смогли реализовать из-за отсутствия сейфти в плюсах.
>Удачи выйти в прод, вкатотуся.
Что ты имеешь ввиду? Я уже там.
>а о том, нужна ли производительность в принципе
Тем временем ответы:
>перфоманс это второе, нет НУЛЕВОЕ место, главный бог на которого нужно молится
>авот тз
Блять, ну да. Подменяю тезис я ебал.
>>7098
>может помнить будешь
Сложно все таки помнить чужие фантазии, да.
>Никто тебе не предлагает сразу же грязные хаки делать
>а я вот как вижу, что алгос требует скорости, сразу на плюсах пишу.
Ясн.
> Что ты имеешь ввиду? Я уже там.
Локальный запуск срыга из жидеи на шинде это не прод.
> >перфоманс это второе, нет НУЛЕВОЕ место, главный бог на которого нужно молится
> >авот тз
> Блять, ну да. Подменяю тезис я ебал.
И каким образом то, что перформанс нулевое место говорит, что нужно сразу же думать о грязных хаках? Когда пытаешься избавиться от багов, ты же не делаешь 100%-ное покрытие тестами сразу же, ограничиваешься 80%-ным.
Что за бред ты пишешь? Вот либа, вот хакер; первое, что он сделает попытается дезассемблировать либу, чтобы увидеть, что хукать.
И ты такой: хаха, защита от школьника, нужна концептуальная защита. Ты дурак?
> Сложно все таки помнить чужие фантазии, да.
Ну вот сейчас я тебя снова обоссал. Запомни это на подольше и не позорься.
> >Никто тебе не предлагает сразу же грязные хаки делать
> >а я вот как вижу, что алгос требует скорости, сразу на плюсах пишу.
> Ясн.
Ну и нахуй ты мне чужие слова приписываешь?
>>7107
Что ты вообще сказать хочешь? То, что первая защита это защита тем, что после компиляции код становится менее читаемым? И что? Его всё равно можно прочитать, дебил, даже на плюсах, и хакер прочитает, и уже после этого должна отработать концептуальная защита, которую невозможно обойти доказательно. Но её не будет, потому что ваши пентестеры понадеялись, что вас хакать пятиклассники будут.
> Что ты вообще сказать хочешь? То, что первая защита это защита тем, что после компиляции код становится менее читаемым? И что? Его всё равно можно прочитать, дебил, даже на плюсах, и хакер прочитает, и уже после этого должна отработать концептуальная защита, которую невозможно обойти доказательно.
Ясно. Ты шиз. Больше не пиши мне.
Чел... хацкерам похуй - джава у тебя или бинарь. Тебе сегодня денуву вскрывают на похуях. Сам по себе сишный компилятор общий расклад никак не меняет - помимо него тебе все равно придется обмазаться каким нибудь дерьмом типа обфускации, и все равно это не поможет. Ты просто щас отстаиваешь риторику не очень умного кабаныча, которому надо прикрыть свою жопку от нападок какого то доебистого стейкхолдера, про реальную защиту от дизассемблирования тут речи не идет. Это во первых.
Во вторых, джава в качестве десктопа не так сильно распространена, как джава в облаках или в качестве веб сервисов. Во втором случае ты просто не светишь исполняемыми файлами, и дизассемблировать нечего. В вебе другие векторы атак. В которых сишка и плюсовики обосрутся на порядок быстрее.
мее, ты типа просишь меня войти на прод сервер и сделать там free? У меня нет доступа, сорян
>ты же не делаешь 100%-ное
никогда про 80 процентов не слышал если честно, обычно делают даже больше 100% покрытие, типа юнит, интеграционнве и прочие ну и энивей это не даёт гарантии отсутствия багов.
>>7109
не заметил.
никто, значит никто, а не только ты. читай внимательнее собственные тезисы.
> мее, ты типа просишь меня войти на прод сервер и сделать там 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, вывод типов в жабе не должен так работать. Он не должен сука вообще знать никакой информации о типах и исходить из того, сможет ли вместить в него что-то.
Да я. Это только усложняет сам вывод, усложняет когнитивную нагрузку и не несет никакой пользы.
Почему во всех случаях без вывод опирается на иерархию, а тут такой, да впизду, я буду лонгом, хотя ты ЯВНО указал, какой тип хочешь видеть. Хули это говно игнорит МОИ указания.