Можно ли объединить весь javafx проект в один толстый jar, чтобы он запускался без дополнительных параметров запуска? На JDK 19 не получается это сделать, хотя в pom.xml добавлены все зависимости.
При запуске командой java -jar target/combining-rent-receipts-javafx-1.0-SNAPSHOT.jar Выдает ошибку: Error: JavaFX runtime components are missing, and are required to run this application
Можно, конечно, в одну папку с jar закинуть javafx jdk и запускать из батника так: java --module-path "target\javafx-sdk-21.0.1\lib" --add-modules javafx.controls,javafx.fxml -jar target/combining-rent-receipts-javafx-1.0-SNAPSHOT.jar. Но я хочу чтобы вся программа была единым jar, который можно на любой оси запустить. Как это реализовать?
JavaFX Fat JAR
Аноним23/07/24 Втр 21:11:10№322915615
>>3229154 У javafx вообще говоря собственный сборщик, который идея кое как умеет обрабатывать. https://www.jetbrains.com/help/idea/packaging-javafx-applications.html Я лично до какого-то момента писал чисто на 8 жабе, по многим причинам, мол так привыкну к тому, с чем столкнусь. Но конечно главное преимущество, что в 8 и только 8 версии jfx был в стд, это дает много преимуществ, о чем отмечается даже в той статье выше. Поэтому ну.. Переходи со своей 21 и страдай))))
Как варик собрать в exe, но это как сам понимаешь не кроссплатформа.
К слову, нахуй тебе вообще jfx, это тооочно нельзя решить свингом и не ебать мозги?
>>3229225 Свинговский проект можно собрать в fat jar? Я просто новичок, перекатившийся с C#, и нихуя не понимаю. JavaFX первое что попалось в поиске десктопного гуи на джаве.
>>3229225 После создания пустого JavaFX проекта, intellij спокойно его запускает без проблем на любой JDK, но вот собрать в fat jar не получается. >В общем хз, кмк ты просто не тот яп для десктопа выбрал. Я вообще не для десктопа его выбрал, а для бекэнда. Просто захотелось сделать кроссплатформенный пет проект, чтобы локально с компа запускался, и JavaFX первое что попалось.
>>3229232 Одно дело запуск идеи, которая тебе самостоятельно все зависимости передаст, другое запуск из ос. Далеко не каждый юзер вообще жабу-то хочет на пеку ставить, а уж jfx и подавно. >для бекэнда Почему тебе не сделать морду/эндпоинт? Браузер есть у 100% пользователей, в идеале можно захостить и вовсе установка не потребуется. Вот как пример приложух, которые локально так и сделали https://syncthing.net/https://openwrt.org/ru/docs/guide-user/luci/start
>>3229258 А что тебе в нем так не зашло? Вроде хоть на него болтяру оракл положил, все еще лучше jfx, которая просто калька на gtk/qt, с этим псевдоцсс и xml.
>>3229266 >Почему тебе не сделать морду/эндпоинт? Браузер есть у 100% пользователей, в идеале можно захостить и вовсе установка не потребуется. Попробую, но мне этот вариант показался чрезмерно громоздким. Я раньше приложухи в C# WPF делал, там все по красоте - xaml написал, контроллеры написал и отправил компилиться, а потом запускай готовый ехешник на любой пеке. Вот мне JavaFX приглянулся почти схожим подходом, но вот такая подстава.
>>3229266 >А что тебе в нем так не зашло? То, что весь гуи на голой жаве пишется, и чтоб видеть результат, каждый раз надо проект собирать, в то время, когда на jfx все на виду. Попробую все же сделать морду/эндпоинт.
>>3229154 В джавафкс какой-то странный баг, из-за которого нужно написать отдельный класс-лаунчер для мейна, который не делает ничего кроме как вызывает твой основной мейн, и его уже прописывать в манифес, тогда заработает.
>>3229230 >не тот яп для декстопа Всё тот. Дегенеративный баг в джавафкс не мешает джаве быть лучшим языком. Да, неудобно, но это лучше чем гетсеты дрочить.
>>3229178 всмысле не будет фантом референсов? а почему? финалайз может заниматся некромантией и оживлять объекты которые идут в мусор и ты потом долго будешь искать где у тебя память течет, а повторно он не выполнится кстати никогда. и он может вообще не выполнится если программа завершится до сборки мусора, там у гк свои потоки выполнения ты на них не влияешь, кстати исключения он тоже не обрабатывает. лучше нахуй забыть про него и никогда не вспоминать
Никогда не понимал такую вещь. Вот есть double[] a = new double[5]; зачем писать double слева и справа, по сути дублирование одного слова, почему создатели языка просто не сделали как в си double a[5];
А что там в этом target\javafx-sdk-21.0.1\lib? Нативщина? Джарки?
Если второе, тебе нужно прописать их в свой помник, чтобы шейд плагин их тоже запаковал.
Если первое, надо смотреть как эти сошки подгружаются и думать, как вмешаться в этот механизм, но в теории, сошки тоже можно шейдить и грузить из ресурсов, видел такое с lwjgl.
>>3229994 >А что там в этом target\javafx-sdk-21.0.1\lib Да, джарки, но помимо них в target\javafx-sdk-21.0.1 есть другие файлы, в том числе dll, без которых не работает. Но мне помогло это >>3229382. По ссылке кстати предлагали такое решение, видимо я плохо искал.
>>3229731 >double a[5] Разве это не просто декларация указателя на ещё не данную ячейку памяти в 5 double слотов? Вообще не то же самое, что и new double[5], который именно создаёт массив, выделяет память. >>3229037 (OP) Я чего-то нихуя не понял. Вот есть супер-класс Анон, есть наследующий Двачер. И вот вопрос - содержат ли в себе объекты класса Двачер объекты класса Анон? А если есть класс Сосачер, наследующий Двачер, то в нём объекты и класса Двачер, и через него класса Анон?
>>3230063 ты имеешь ввиду может ли класс сосачер дернуть метод класса анон? да может, потому что все методы анона имеет класс двачер, если он их не переопределил, то есть по суперу все равно будет дергать из ближайшего родителя.
>>3229731 var a = new double[5] Один раз пишется. >создатели языка просто не сделали как в си Потому что такой дизайн. Джава старается не делать неявным создание объектов. Да и тем более в си это не объект вовсе. Там даже нет такой банальной вещи, как ArrayIndexOutOfBoundsException. Создал массив длиной 5, хуйнул на 100 вперед, если ос ничего не пукнула, что-то даже получил. >>3230063 Если ты имеешь ввиду, что существует некий скрытый иннер объект, через который и идет обращение к полям супер класса, то вроде как такого нет, но впрочем это детали реализации и в принципе кейворд super можно считать именно этим. >>3229385 Вот как можно считать язык лучшим в мире и при этом им не пользоваться, а использовать кривой косой его диелакт, под названием жавалобок? Противоречие не находишь? Ты или используй жаву или не говори, что лучший в мире именно этот диалект. Причем у тебя странная дихотомия шарп жава, будто блять других языков и не существует. Так нет, есть много языков и в них нет проблем с геттерами/сеттерами. Буквально кто о чем а вшивый о бане жаван о сеттерах.
>>3230148 С 9. >>3230136 Что блять? Он тут вообще причем, это дефолтная фича по выводу типов. Есть языки, которые могут много больше в этом плане, котлин не в их числе.
>>3230152 >это дефолтная фича по выводу типов >выбирают var а не auto >record классы это стандартная фича, котлин тут не замешан >var вообще взяли с паскаль abc
>>3230165 Шарп тоже не в числе этих языков. Блять у вас реально настолько замылено зрение, что существует буквально два языка? Вот тебе, к примеру вывод return type в функциях https://en.cppreference.com/w/cpp/language/auto >>3230167 Сами вар, если говорить за жвм мир, появились раньше в скале. Не удивлюсь, если рекорды тоже.
>>3230136 вар это скорее для анонимных классов, чтоб когда var x = new Object(){ int хуй } можно было потом получить x.хуй без выноса класса в именованный
>>3229731 Ускорение прямолинейнсти работы компилятора. Когда у тебя всё знание представлено в косвенном виде, гораздо сложнее проводить резолюцию этого всего.
>>3230240 Нет, это чтобы когда тебе генератор каких-нибудь апи стабов нагенерил SomeClass.SomeOtherClass.YetAnotherClass<OfYetAnotherClass> - не писать это по куче раз.
>>3229731 >просто не сделали как в си >double a[5]; Потому что в Си так и пишут с двух сторон, при аллокации на хипе, как и в джаве. А double a[5]; - это аллокация на стэке, которой в джаве нет
>>3230318 >нет, не В, а НА >"allocation on stack", НА стэке, конкретно в контексте аллокаций, в контексте структуры данных может быть по-другому Ты дурак? Ты реально собираешься предлоги калькировать? Они ещё говорят on the Internet - ты предлагаешь тоже на использовать? На Интернете? Вообще, on - это интересный предлог. Например, он используется с глаголом congratulate. Congratulations on your promotion! Поздравляю на повышение! Так?
>>3229037 (OP) Анончики, нахожусь в процессе закатывания в джаву. Была куплена и наполовину прочитана та сама книжка Герберта Шилдта (вторая половина это больше документация). В данный момент прохожу курс по алгоритмам и структурам данным (язык Java), который упоминался в пособии для вкатунов с гитхаба. Есть мысль прикупить книгу, на которую часто ссылаются в курсе (Алгоритмы на Java), но я не уверен что там будет какое-то полноценное введение в Collections Framework и Stream API, а мне хотелось бы узнать больше про них, т.к. по опыту понимаю, что без знания стандартной библиотеки никуда. На том же литкоде большинство решений быстрее, эффективнее и изящнее именно из-за этого. Конкретно книжки по стандартной библиотеке я не нашел, поэтому пока долго и мучительно сверяюсь с документацией на сайте docs.oracle.com. Хотелось бы узнать, как мне эффективнее и побыстрее освоить это.
>>3230387 а какие книжки по кору ты хотел? задача шилдта дать тебе понимание как оно работает если он будет перечислять всю доку там не 1300 страниц будет а 13к. >Хотелось бы узнать, как мне эффективнее и побыстрее освоить это. писать код
>>3230460 Ну самые распространенные кейсы использования - это структуры данных и стримы. Все. В библиотечках частенько встречаются вобщем.
В спринговом коде встретить дженерики маловероятно. Спринговый код - он как гондон: повторно не переиспользуется, поэтому и обобщать дженериками там редко что есть.
>>3230734 Чем это будет отличаться от видоскиов за 2к на юдеми + чатгопота. Ну я понимаю что вы скажите про юпуп за 0₽, но они не совсем актуальны, тут как повезёт.
>>3230802 Моя текущая работа иногда подзаебывает + нужен такой навык с которым я без проблем могу уехать куда угодно, если родина начнет ебать мозги.
>>3230809 Мне нужна система и стимул. Я-то в принципе не полный ноль в жаве. Но заставить себя чето писать вообще не могу. Не в последнюю очередь из-за того, что в голове нет четкой технологии написания кода.
Сап, что можете сказать о битовых операциях? Прошу, не кидайтесь за незнание камнями, попутно показывая пальцем. Являются ли эти операции обязательными для джуна или они на уровне "Знаешь - молодец, не знаешь - хуй с ним" ?
>>3230934 >Являются ли эти операции обязательными для джуна
Если бы не такая постановка вопроса, мне как интервьюеру бы было похуй. Но сейчас по этой формулировке в тредах отмечаю для себя, чем на собесах новичков надо обязательно дрючить. Так что - да, чел, учи битовую логику.
>>3230934 Для литкода нужна битовая арифметика. Всякие там штучки дрючки типа как быстро проверить, что число это степень двойки и т.д. Битовые карты, маски, трюки с простановкой флагов в числе. Если конечно ты будешь решать литкоды на собесе а не харкнешь интервьюеру в ебало
>>3230877 >Но заставить себя чето писать вообще не могу. Не в последнюю очередь из-за того, что в голове нет четкой технологии написания кода
Мне помогает TDD, когда не могу из себя выдавить код. Написал один красный тест, позеленил. Написал второй - позеленил. Вроде бы ебаниной занимаешься, но к концу дня смотришь, а написано-то дохуя, еще и тесты есть. Предварительно надо декомпозировать задачу, превратить хуй пойми что в четкий список. Для борьбы с прокрастинацией использую технику сеньоров помидоров. 50 минут кодишь, 10 минут щелкаешь еблом. 50 минут кодишь, 10 минут щелкаешь еблом. но чаще практикую дунасинг
>>3231046 я тебя возможно неправильно сейчас понял. То есть если я вместо решения литкода забью на него и харкну интервьюеру когда он попросит его решать, битовые операции нужны настолько редко, что лучше временно отложить их изучение/не нужны в принципе?
> я тебя возможно неправильно сейчас понял. > То есть если я вместо решения литкода забью на него и харкну интервьюеру в ебало когда он попросит его решать, то битовые операции нужны настолько редко, что лучше временно отложить их изучение/не нужны в принципе?
>>3230910 >больше языку ничего не надо ограниченная перегрузка операторов никак не поможет. Имею ввиду, что ее применение будет разве что в классах числодробилках. если и добавлять, то инфиксное применение методов https://www.baeldung.com/kotlin/infix-functions это хотя бы в минимальной степени позволит писать дслки.
нахуя нужна интерполяция строк мне вообще непонятно. что вы там интерполируете-то?
да и вообще в джаве на фундаментальном уровне куча проблем, которые решены никогда не будут, поскольку обратная совместимость. вот есть языки, где решения n летней давности неожиданным образом синергируют и развиваются в нечто большее. а есть джава, где куча говна в методах object, где ебаный нулл срет и тут и там. где есть jmm, но потом ее решили развить, но теорию не подбили и теперь есть ебанный varhandle. есть сообщество уебанов, которым говорили не использовать внутреннее апи, но они же лучше знают и теперь они же ноют, что у них эту возможность забирают. самое смешное, так тут то, что этот язык кто-то серьёзно считает лучшим. интересно в чем
>>3231190 Я согласен, джава, как язык в изоляции, давно уже изжил себя и живёт исключительно на огромной экосистеме JVM, которая и является настоящим достоянием, по эффективности дизайна который все еще применяется, и по объему оптимизаций JITа
> но теорию не подбили и теперь есть ебанный varhandle А как вархэндл противоречит jmm?
>>3231223 Главная цель - зарабатывать деньги, можно еще что-нибудь для собственного удобства сделать. Сам язык не важен, программировать нравится само по себе
>>3231221 >как язык в изоляции, давно уже изжил себя и живёт исключительно на огромной экосистеме JVM а какой крупный язык себя не изжил? кресты похожи на огромную кучу мусора из-за обратно совместимости где сам труп страуса не разберется уже, сисярп со своим clr брат близнец жабы, что там еще осталось goвно туда завезли женерики и он стал как все, жопаскрипт просто мрак. всякие нишевые руби я не беру
>>3230339 >Ты дурак? Ты реально собираешься предлоги калькировать? Я не собираюсь, так уже принято в русскоязычной литературе/сложилось исторически, можешь сам погуглить. Просто узкоспециальный термин, типо того же докУмента, не особо имеет связь с правилами русского языка.
>>3231221 >А как вархэндл противоречит jmm? Он не противоречит, а расширяет. Там вот приписка, мол скоро они спеку подобьют под эти методы. Но знаешь, почти десять лет прошло, чет не верится.
>>3231190 >вот есть языки, где решения n летней давности неожиданным образом синергируют и развиваются в нечто большее
Джаваскрипт чтоли?
>а есть джава, где куча говна в методах object
Finalize же выпилили. И то, до сих пор периодически какой нибудь залетыш по этому поводу бугуртит.
>где есть jmm, но потом ее решили развить, но теорию не подбили и теперь есть ебанный varhandle
Вот щас бы особо ЧСВшным двачерам диванным демонстрировать свой дохуя ум задним числом, ага. Ничего что до джавы самого понятия JMM не существовало как концепции? Кому кому, а джаве как первопроходцу можно было бы и простить. До вархендлов чего доебался - отдельный вопрос.
>самое смешное, так тут то, что этот язык кто-то серьёзно считает лучшим. интересно в чем
А ты что - настолько наивный дурачек что всерьез считаешь, что мелочевка, которую ты перечислил, перекроет все достоинства огромной экосистемы, которая умудряется двигаться вперед, при этом не обнуляя девелоперский опыт как тот же JS делал всю дорогу до появления реакта? Смешной - до нулей каких то вшивых доебался. Если бы людям было не похуй на бильон-доллар мистейк, если бы людям не похуй было на переусложненность мемори моделей императивных языков вроде джавы, отмерла бы не только джава, но и все императивное семейство языков, а на замену им пришел бы не гоу, и не шарп, и не котлин, а нечто похожее на хаскель, где проблема конкарренси в многопоточке решена на фундаментальном уровне. Но этого не произошло по простой причине: сколь бы тебе ни было неприятно этого признавать, частичка джавы живет в 95% программистов и наследуется из поколения в поколение. Живи с этим.
Как правильно, приписать себе лишний год опыта в резюме ? А то забеало, вроде и резюме есть не такое плохое, есть образование профильное (СПО), а на работу не берут. Как правильно описать задачи, которые ты делал на прошлом месте работы ?
>>3231260 >Ничего что до джавы самого понятия JMM не существовало как концепции? Ну это очевидно. Или ты имеешь в виду что модели памяти не существовало как концепции?
Я ничего не упустил из стека обязательных технологий для джунов? Spring (Boot, Security, Cloud, MVC) Maven Hibernate PostgreSQL Docker/Kubernetes REST/Client Protocol Junit и TDD Kafka/Rabbit MQ/Active MQ Cистемы трекинга Или кроме них и задрочки забесплатно на гитхабе год на рандом уважаемом проекте работадателям ещё что надо, чтобы взять хуесоса без ВО на 30к?
>>3232341 >из стека обязательных технологий для джунов Да нет никаких "обязательных технологий", это только у тебя в голове. Всё вышеописанное - это чья-то вкусовщина. Любой инструмент подбирается под конкретную задачу, а не наоборот. Задача не подбирается под инструмент.
>что надо, чтобы взять хуесоса без ВО на 30к? Тебя нахуй в любом случае, что бы ты не делал. Чтобы попасть на днищеработу за 30к нужно побороть конкуренцию человек 100, которые также хотят просто набить опыт, потому что их также не берут без опыта как и тебя. Чем хуже работа, тем больше на неё претендентов.
>>3232353 Ну кстати это не сложно Если это не была ирония над хрюшами, которые после того как вы слушают, дают задачу на перебор элементов и поиск дубля
>>3232359 это не хрюша спрашивает а рандомный сенька/лид. Меня джуном спрашивали многопоточку, оконные функции sql, устройство jmm, спроектировать сервис сокращения ссылок (на микросервисах, асинхронный), отличия линке и арэй листов и всякую такую рандомную поебень. Сенек спрашивают примерно тоже самое, только чуть глубже.
>>3232349 Если ты говоришь, что со знанием всего вышеперечисленного просто не будут смотреть резюме и соответсенно слать нахуй после 300-т пройденных собеседований вместе с остальной тысячей претендентов, то это одно. Если будут рассматривать, то это другое - тогда шанс есть, и если прокнет, мои проблемы с работой должны пройти. Я бы пошёл на вечерку или даже очку, но тут две проблемы. К 30 лвл хуесосу с ВО больше вопросов, чем к 25 лвл хуесосу без ВО, и за 5 лет срыночек пойдёт в ещё большее говно. За эти 5 лет я могу попробовать куда-то устроиться, получить опыт полдекады и сосать меньше хуёв. Надеюсь. что в связи с дислокацией в ДС должно получиться. >>3232353 >>3232359 Задрачиваемо, или и вовсе единственное требование выполнение задачи - постоянная практика. >>3232354 Спасибо за ответ, я тогда пошёл всю эту ебалу учить. >>3232371 Это я прикидываю предстоящую себе работу, но так-то уже две недели учусь (пока что только сам язык). Останавливаться не собираюсь.
В принципе пока не поздно перестаковаться в другую сферу, если отбор у Java работадателей слишком жёсток. Но я всё равно вернусь сюда, потому что по моим оценкам имеено здесь наибольшая стабильность (ну и язык нравится). Мб я ошибаюсь. Мне даже 300к/нс не надо, благодаря стечению обстоятельств мне 30к хватит на многие годы. Больше денег пойдёт семье на погашение кредитов, комп, и хз ещё куда.
Вот чего в джаве не хватает так это решения проблемы дублированиятриплирования кода объявления зависимостей, когда зависимость нужно объявить помимо поля ещё в сигнатуре конструктора и в теле конструктора написать её присвоение. Лобка не хватает, иногда нужно добавить собственную логику для какого-то одного поля, и тогда лобковый рекуйред аргс конструктор сливается и приходится все 100 полей ручками прокидывать. Если нужно работать с суперклассами лобок тоже мгновенно сливается.
>>3233298 Серьезно? Даже я как джавист вижу что джава серьезно отличима от котлина
>>3233154 >когда зависимость нужно объявить помимо поля ещё в сигнатуре конструктора и в теле конструктора написать её присвоение. Лобка не хватает, иногда нужно добавить собственную логику для какого-то одного поля, и тогда лобковый рекуйред аргс конструктор сливается и приходится все 100 полей ручками прокидывать. Идея -> Щелк по классу -> Alt + Insert -> Constructor -> Выбираешь какие поля прокинуть -> ОК Всё
Ну вот почему идея не предупреждает об утечке там, где предупреждает vscode с расширением, я реально не понимаю. Или это настолько незначительно, что в интелиж конфиге прописано "не выдавать варнинг". Вообще, странно наблюдать про утечки в языке, где есть сборщик мусора как киллерфича
>>3233561 > Вообще, странно наблюдать про утечки в языке, где есть сборщик мусора как киллерфича если ты по своей тупости оставляешь стронг ссылки или открытые потоки, то тебе ничего не поможет.
>>3234235 Чё за тупые вопросы? Очевидно как и обычный объект будет работать объект потока, разве что сам поток будет гарантировать жизнь своего объекта пока он сам живёт.
Сап. Создаю дефолтный JavaFX проект в идее, добавляю любую либу и такая хуйня начинается. В данном примере pdfbox. Так же и с lombok. requires static в module-info.java не помогает.
>>3233154 >Лобка не хватает, иногда нужно добавить собственную логику для какого-то одного поля
Добавлять логику в конструктор - сомнительная затея сама по себе. Что у тебя там такого, с чем не может справится биндефиниция в конфиге или постконстракт?
>>3234505 Сам ты долбоеб, по трем пунктам: хамло быдловатое, в конструкторах занимаешься неадекватной хуйней, и в постановку проблемы не способен. Поссал тебе на ебало, пошел нахуй, быдло.
Мне нужно передать с формы thymeleaf на контроллер объект, у когорого есть поле ArrayList<Double>. На страничке каждый элемент списка задается своим инпутом. Код на картинках вызывает ошибку Caused by: org.springframework.beans.NullValueInNestedPathException: Invalid property 'values' of bean class TestDTO. Could not instantiate property type [java.lang.Double] to auto-grow nested property path. Caused by: java.lang.NoSuchMethodException: java.lang.Double.<init>() Подскажите плз что не так.
Поясните вкатуну, загорелся выучить и войти через джаву, осознав, что лучше для обучения и последующих перспектив не найти. Но тут канеш началась джава во всей красе 1) Какую версию JDK нужно устанавливать для обучения и последующей работы ? Смотрю по вакансиям : Java 8+ частенько мелькает, чаще 11-17, у кого-то OpenJDK 11. На деле этих версий просто ебанешься, Кароче, как я допер то нужно качать либо СБОРОЧКУ пиздец... OpenJDK 17/21 LTS среди одних из поставщиков либо не ебать мозг и качать с сайта оракла сразу 21? 2) Какую IDE выбрать для учебы? Я думал все на идеа пишут, предвкушал как буду в этой красоте уже работать, а потом узнаю, что якобы она очень автоматизирует и за тебя все делает, девелоперам удобно (не всегда), а вот ньюфаг не может ничего без нее потом, приручает с беспомощности. Захожу на абучан - в шапке гайд, где его тоже говном поливают. Советуют эклипс - ну выглядит он, как будто из нулевых, ну да ладно. (Я даже видел, что один банк требует опыт в эклипсе) В шапке VS code - но это же редактор, а не IDE, это же не подходит для обучения, не? Наткнулся еще на GigaIDE от Грефа, но может это совсем мем. Или не ебать себе мозг и абузить триал/крякнуть идею?
>>3234867 >не ебать мозг и качать с сайта оракла сразу 21? this >а вот ньюфаг не может ничего без нее потом А где ты собрался без идеи писать код? >Наткнулся еще на GigaIDE Вот ее и качай. Лучшая иде на данный момент.
>>3234867 1) Грааль вм 22. 2) Вс код, от баганности идеи ебанёшься. Гигаиде не мем, насколько я понимаю, но вряд ли они занимались чем-то более крупным чем переименованием жидбрейнс в спёрбанк в файлах. По поводу привыкания к функциям идеи, да, есть такое, поэтому собирать, например, лучше через консоль, даже если ты уже спец.
>>3234867 Чел ты задаёшь такие вопросы которые влияют на +- 1% конечного результата. Ставь всё последнее и не еби мозги. Так спрашиваешь как будто от версии решиться судьба человечества. IDE вообще чисто вкусовщина. Как ты считаешь что тебе заебись, так и ставь. Не надо консилиум двача созывать по этому поводу. Мне лично по бороде как-то. Они отличаются мелкой хуитой типа где-то подсказки побогаче/победнее, где-то дебаг есть/где-то нет, где-то платное/где-то бесплатное. Где-то можно генирировать uml, где-то нельзя. Это всё имеет значение в каких-то высоких материях, типа какого-нибудь блять банковского модуля в 3 миллиона строчек кода. Тогда это будет как-то влиять. Но ты не дорос до такого уровня, тебе будет одинаково что vs code, что intellij idea, что какой-нибудь грефовский gigaide, лишь бы бесплатно было и не ебало мозги.
>>3234867 > Какую версию JDK 21. К тому моменту как ты выучишься, её потихоньку в прод будут внедрять. > Какую IDE выбрать для учебы? IDEA Community Edition. Учись писать на том на чём потом будешь работать. CE идёт без некоторых фишек под фремворки, но для обучения самое то.
>>3234997 Вечные "какая то фигня is null, поэтому лови отключенную подсветку синтаксиса и отключение автодополнения", вечнцй скан проекта просто потому что.
>>3234997 Примерно в 50% случаев добавления зависимостей мне приходится перезапускать идею чтобы она начала автодополнять классы из зависимости. Постоянно пропадают все файлы из файлового дерева, приходится выключать идею, сносить папку .idea и запускать её заново.
>>3234875 >А где ты собрался без идеи писать код? Ну вон же находил банк, где прям указан Эклипс. >Вот ее и качай. Лучшая иде на данный момент. Немного поизучав, выяснил, что это идеа комьюнити эдишон, немного допиленная с фишками грефа. Толку для вкатуна не вижу, может даже запутает, проще идею юзать имхо. >>3234883 >Грааль вм 22. А че это? Это обычная джава, но быстрее работает? А зачем оно мне? >Вс код, от баганности идеи ебанёшься Ну ладно, допустим есть там баги, но помешают ли мне - не понятны. А как мне в VS компилировать код? Плагин какой-то? Больше мне от IDE ничего не надо? >>3234923 Так я не спорю, просто на других ЯП как-то просто и понятно, а тут уже замудренно. Я бы выбрал идею визуально, но услышал, что она очень облегчает работу, что очень плохо на стадии обучения + здесь жалуются на баги. Вот и пытаюсь выбрать между идей, всратеньким эклипсом или мне и Vs code для учебы полностью хватит
>>3235087 Какие в идее баги омг, скачай себе взломку "премиума" 23 года последний стейбл и не еби мозг, упрощения всякие касаются статического анализатора и пр., обучению никак не мешает
>>3234944 А что нужно конкретно отрубить? Я прост даже не знаю что она там такого делает, что окажет медвежью услугу >>3234955 >21. К тому моменту как ты выучишься, её потихоньку в прод будут внедрять. Не лучше ли 17? Пока на ней остановился. Начинаю сейчас читать Шилдта и там 17, в вакансиях выше 17, понятное дело не видел, а в моем даже не миллионике, вряд ли технологии так прям быстро дойдут, насколько я слышал, весь энтерпрайз вообще на 8 пишут. А я сейчас все шишки набью на 21, читая про 17. Или там разницы для меня нет и нет смысла 17, сразу 21 можно?
>>3230523 У меня на проекте применяется (Java 8, монолит), могу только примерно описать - есть одна абстракция от которой наследуются около 3ёх абстракций, а от них в совокупности 40+ классов и там в паре мест где-то надо убедиться, что класс наследуется от самой верхней, иначе по другому обрабатывать
>>3234999 Вот этого удвою Постоянно пока прокидываю хуйню в вебфлаксе через Mono.zip(A, B, C).map(t->...) теряет типы и считает что там обжекты. Пока не заставишь принудительно перечитать. А через минуту опять код красный блять.
>>в 50% случаев добавления зависимостей мне приходится перезапускать идею чтобы она начала автодополнять классы из зависимости. мне помогает pom.xml -> maven -> reload project
>>услышал, что она очень облегчает работу, что очень плохо на стадии обучения Ты долбоеб что ли? Тебя идея буквально носом тыкает в твой говнокод и объясняет почему это говно и как исправить. Что в этом плохого? Опять же можешь отключить подсказки - учить по ошибкам компилятора тогда.
>>3230958 Лид, походу ради прикола/разминки, вместо использования библиотеки заюзал для написания валидатора ip и маски сети А вообще очень редко используется, только где надо прям супербыстро ответ отдавать, либо невероятную нагрузку на ноде держать, проблема битового сдвига в том, что железо невероятно сильно скакнуло вперёд
>>3235102 В 21 появился лум, который никто все равно не умеет и пару фишек со свичами. В 17 появились рекорды и доработка свичей. В 11 - var появился. Это по сути вся разница для тебя между 8 и 21 джавой
>>3235087 > услышал, что она очень облегчает работу, что очень плохо на стадии обучения странно, по-моему как раз на стадии обучения и должно быть легко Если ты пойдешь сразу в мясо ты ничего не поймешь и сразу надоест
>>3235133 тимлид (руководит нами), как я думаю из-за личной потребности в разминке, вместо использования для решения задачи библиотеки апача, эдак лет 6 назад, ручками написал класс и в нём методы, которые проверяют находится Ip адрес и его маску, с которого пришёл запрос, на то находится ли он в списке разрешённых IP адресов Маску на адрес он накладывает посредством битового сдвига
>>3235087 >А че это? Это обычная джава, но быстрее работает? А зачем оно мне? Блядь, что за тупые вопросы? Зачем выбирать из медленной и быстрой джавы быструю?
>>Вс код, от баганности идеи ебанёшься >Ну ладно, допустим есть там баги, но помешают ли мне - не понятны. А как мне в VS компилировать код? Плагин какой-то? Больше мне от IDE ничего не надо? У тебя шизофрения будет из-за этих багов. Помешает это твоему ментальному здоровью. Компилировать через консоль, в любом случае именно всегда так и надо делать.
>>3235146 нууууу "новой", но удобной - да да и почему сразу ебаться, там кода то строк на 100, плюс разминка и что-то интересное для человека уже 12+ лет пишущем на жабе
>>3235148 Под всех наркоманов не подстроишься. Кому-то может не понравится что он наоборот суёт вары куда не попадя, дескать, часть плюсов типизации теряются. И он будет несколько прав.
>>3235087 >но услышал, что она очень облегчает работу, что очень плохо на стадии обучения + здесь жалуются на баги Не имеет смысла слушать программистов. Ты 10 людей спросишь и получишь 10 разных мнений. Не знаю блять как она может "облегчать работу", ну типа, за тебя встаёт по утрам и пиздует на работу? Я лично никогда такой хуетой не руководствуюсь. Чем больше у ide всяких наворотов, прибамбасов, плагинов, хуягинов, тем больше она тормозит и жрёт памяти. Все эти ебучие умные подсказки постоянно чё-то блять сканируют, кешируют. Я просто бля хочу ёбанный редактор. Без всяких профайлеров, инспекторов, декомпайлеров, дебаггеров. Я фанат простоты. Чем проще редактор - тем лучше. Но если ты прям фанат космолётов, хочешь шоп каждый пук через кнопочку в редакторе совершался - да и флаг тебе в руки. Я же не навязываю. Если нравится - то пользуйся. Считает что облегчает - окей, нет вопросов, пользуйся.
>>3235087 >но услышал, что У неё две вещи во время обучения проявляются - автокомплит сгенерированным говном (для всяких геттеров и сеттеров, типичной инициализации переменных), говно потому что частенько обсирается; и то, что вместо запуска всего из сосноли с прописанием зависимостей в файл проекта градла/мавена тебе даются уже запиленные эти файлы и кнопочка "запустить проект", что конечно приятно, но системы проектные и как все запускается надо знать, чтобы не ебануть проект из-за банальной зависимости/спокойно менять опции виртуальной машины, на которой катается код. В остальном вроде иде как иде, жопу подтирает, за меня не учится, в целом больше помогает, чем мешает. тот анон, что ввязался читать курсы hyperskillа так себе, писали на пару индус и срусич, а с жалкости введения в операционки я аж проиграл на всю хату
>>3234999 >>3235003 >>3235006 Чет пиздеж какой-то, ни разу подобного не было. Вс код это говно неюзабельное,хуже даже нетбинса,хуже НЕТБИНСА,настолько это говно
>>3235363 Зачем под это заводить отдельный маппер? В дто пишешь метод: public static Entity of(EntityDTO dto) в котором пишешь свои несчастные 10 строчек сетов,не вижу какой-то проблемы
>>3235402 В чем проблема через основную,у тебя дочерние существуют в списке основной сущности. Логично что чтобы изменить список основной сущности нужно взаимодействовать со списком основной сущности
>>3235430 Тебе же все равно придется добавлять поля в класс дтошки раз контракт изменился,там же и маппинг поправляешь,как будто дто меняются не раз в три месяца
>>3235425 Выстави в настройках show sql в тру и смотри что тебе насрет жпа,также сразу советую N+1 проблему изучить, возможно тебе больше понравится работать с ждбс темплейтом и положить хуй на поделки индусов из хибернейта
>>3235486 Я терпеть не могу мапстракт потому что когда я с ним последний раз работал он вытворял абсолютную ересь, особенно если в дтошках есть вложенные объекты,плюс чтобы посмотреть что он там нахуевертил нужно лезть в сгенерированный коасс и если ты там нашел ошибку то крути верти анноташки в попвтках подобрать нормальное преобразование,мб сейчас все поменялось
>>3235498 Тебя заставляют использовать хибер напрямую? Впервые вижу такое прост лол. И проблема у тебя из-за имьютабл коллекции,замени List.of() на нормальную инициализацию
>>3235698 >>3235758 А что не так с гексагоналкой? Ну да есть оверхед, нужно писать маперы для портов и бизнес логики, но если у тебя интеграций больше двух, всё это отбивается сто раз.
>>3235803 >если у апки 100500 интеграций то хз как это правильно еще сделать >совать все интеграции в 1 сервис? Я помню мы делали что-то подобное и у нас просто бы ли отдельные модули для каждой интеграции, с общим интерфейсом к ядру. Обошлись без безумия мапперов.
>А что не так с гексагоналкой? Ну да есть оверхед Ну вот это и не так, что на каждый чих пул реквесты утопают в изменениях в мапперах >но если у тебя интеграций больше двух, всё это отбивается сто раз. Да не отбивается это нихера, тонны бойлерплейта - это тонны бойлерплейта, как ты не крути
>>3235833 Мапперы тебе при любом раскладе надо писать, тебе за это платят сотыги.
В обычном проекте (контроллер, сервис, репа условно) начинается пиздец: нихрена не понятно что наружу отдавать из сервиса, либо тот же боилпред плюс тонны говнокода из мешанины бизнес и прикладной логики.
А что бы ошибок с мапперами не ловить уже в проде, в мапстракте включаешь error в конфиге, при не смапленном поле и всё ок.
>>3235859 ну да были интеграционные тесты - неее сложна писать моки и поддерживать. давайте введем контракт-фест и контрактные тесты. ну охуеть теперь пишем в 2 раза больше кода зато у манагера зеленая ланпочка что апи интеграций соответствует
>>3235864 >>в мапстракте включаешь error в конфиге, при не смапленном поле и всё ок. пока не начинаешь использовать сгенерированные энтити от жпа или жука с кучей лишних полей
>>3236000 Если ты хочешь вкатиться, то забей, не получится уже. Если просто программировать хочешь то после книги можешь код писать. Но фреймворки потыкать стоит, с целью познакомиться с разными подходами к решению разных задач.
>>3234867 Бля, я ведь таким был, я реально думал, что от выбора иде мне будет хуже/лучше. Пиздец. Ставь последнее, пользуйся чем хочешь, можешь сразу двумя, вообще похуй. Осознай эти вопросы, пойми, что они тебя отвлекают и в следующий раз, если тебе покажется, что для обучения тебе надо выбрать среду разработки, спросить какой язык лучше, какой фреймворк выбрать, как составить себе график изучения и прочее - сразу по рукам себя бей и садись писать код. Это от лукавого. Вообще, в моём окружении джависты, шарписты, питонисты, плюсисты НИКОГДА не спрашивали у людей, какая иде круче и какую версию хуйни нужно качать. Они начинали свой путь спонтанно, их, как и меня, не ебало на чём писать, да хоть на листке ебта. Когда спросишь у них какая иде лучше, могут часами рассказывать про минусы и плюсы своей ИДЕ, но на этапе вката им было поебать. Я знаю, потому что вкатывался с ними. Я лично вкатывался сначала через пупон и пучарм, тупо скачав по совету первого попавшегося егэ блогера, лабы в вузе писал на нотпад++ и запускал через терминал, на что многие ахуевали и установили мне вскод, и уже на нём я вкатывался в жабу. Коллеги смеются и показывают свои крякнутые идеи от жидбрейнса, но мне по кайфу писать на том, на чём по кайфу и на чём я привык. Буквально из-за этого.
Это пиздец блять, gpt говорит идеально термин но не понимает что несёт, это как зубрила болван, термин выучил что говорит не ебёт.
Почему мы при вызове подклассов базового класса мы должны вызвать всегда конструторы? Он говорит ну чтобы все поля были иниицализрованы, я давай мне пример нормальный с логикой, он такой >пук.
Зачем нам это надо? Мы хотим неожиданно вызвать метод базового класса из подкласса? Почему он всегда крутит конструтор в холостую даже когда полей нет?
>>3236410 Научись пользоваться pastebin, чтобы не приходилось перепечатывать с картинки. И нормально описывать словами, что надо сделать и что не работает.
Надо принять дженерик аргумент с в одном методе и передать его в другой метод с более общим дженериком так, чтобы конпелятор не ебал мозг, ни в момент вызова, ни после. На скрине красным подчеркнуто где проблемы возникают.
>>3236443 Это абстрактный пример, в реальном коде ни числа, ни строки, но суть проблемы та же. Принимающему методу безразлично, какой именно подтип будет в опшионале, поэтому он более общий, и сужать его из-за того, что одна либа мне дает конкретный подтип как-то тупо. Думал, это можно как-то решить жонглированием самого дженерика.
>>3236038 хочешь решать задачки - решай, хоть на 5 разных сайтах одновременно. Хочешь сразу клепать проекты - клепай. Хочешь делать все одновременно - делай. Кто запрещает? При желании при всем этом можешь еще и на трапов дрочить
>>3236426 >Надо принять дженерик аргумент с в одном методе и передать его в другой метод с более общим дженериком так, чтобы конпелятор не ебал мозг, ни в момент вызова, ни после. На скрине красным подчеркнуто где проблемы возникают. Проблема у тебя возникает в другом месте. Принять какую-то коллекцию, проблем нет, что второй метод и показывает. Но ты не можешь принять что-то, а потом заменить его на emptyList() потому, что реальный тип может быть другим. Потому надо не ебать мозг пытаясь что-то там заменить на дефолт, а просто использовать ifPresent() https://pastebin.com/yEGnNvJH Или чтобы вызывающий код передавал дефолт.
>>3236521 Дома ебёшься как хочешь, на работе делаешь по методичке текущего проекта. В общем случае императивщина многословна, но примитивна как тапок и понятна всем, функциональщина лаконична и показывает исключительно сами шаги, но может быть непонятна непривычному глазу. Если нужен индекс, то лучше императивщина, во всяких деревьях переходы через функции. Пишешь код плохо - и там, и там будешь обсираться, но в императиве стэковерфлоу и индексотофбаундс, а в функционале либо не запашет, либо ты наклепаешь стопицот копий зазря и будешь по ним проходить тысячу раз, опять зря. В иператив хорошо ложится точечное изменение переменных по желанию левой пятки, в функционале данные обрабатываются по пайпу, что тоже хорошо. Хз чё тут можно ещё сказать. >>3236591 Тесты находятся в том же package, что и переменная, не? >>3236615 Просто взял и пришёл, без каких-либо говорящих голов курсоблядей.
>>3236639 Нет,код лежит в пакете src/main/java/yourpack/MyClass.java В нем лежит переменная с дефолтным скоупом и ты можешь обратиться к этой переменной по в тесте src/test/java/yourpack/MyClassTest.java
>>3236639 > Дома ебёшься как хочешь, на работе делаешь по методичке текущего проекта. В общем случае императивщина многословна, но примитивна как тапок и понятна всем, функциональщина лаконична и показывает исключительно сами шаги, но может быть непонятна непривычному глазу. Если нужен индекс, то лучше императивщина, во всяких деревьях переходы через функции. Пишешь код плохо - и там, и там будешь обсираться, но в императиве стэковерфлоу и индексотофбаундс, а в функционале либо не запашет, либо ты наклепаешь стопицот копий зазря и будешь по ним проходить тысячу раз, опять зря. В иператив хорошо ложится точечное изменение переменных по желанию левой пятки, в функционале данные обрабатываются по пайпу, что тоже хорошо. Хз чё тут можно ещё сказать. Пиздец насрал. Императивщина при правильной готовке может в качестве кода и лаконичности уйти гораздо дальше функциональщины.
>>3236642 у меня тоже подобная стори. Сначала вообще во фронт хотел, освоил верстку и пошел читать книгу с прикрепленного пика, пощупал там пыху и как она, так и ооп мне так понравились, что я теперь тут
>>3236410 так но вообще тут 2 проблемы: а) Set != Collection не имеет смысла, потому что Set - это всегда Collection, тебе тогда нужно принимать параметром функции Collection<String> и проверять, Set ли это - тогда сработает. б) Нет смысла использовать Optional для коллекций, просто передавай пустую коллекцию для обозначения отсутствия знанчения через Collections.empty*() если конечто только у тебя пустая коллекция не значит что-то особенное.
>>3236767 Отсутствие коллекции и пустая коллекция в этом контексте не равнозначны. >Set != Collection не имеет смысла Имеет, фактически это же два интерфейса. Понятно, что один расширяет другой, это пытался использовать в wildcard-варианте, без особого успеха.
>>3236626 >ты не можешь принять что-то, а потом заменить его на emptyList() потому, что реальный тип может быть другим Вот это и вызывает фрустрацию, потому что принимающему коду все равно, какого подтипа будет аргумент в рантайме, и приходится кастовать подтип к родителю, только чтобы компилятор не возбухал >>3236458
>>3236890 Сказано же, контракт метода, из которого приходит дженерик, менять нельзя. <? super X> в отдающем методе, конечно, упростил бы жизнь, но это сторонний код.
>>3236410 >>3236887 A<B> не всегда логически является подтипом A<B2>, где B — подтип B2. Optional<Integer> можно считать подтипом Optional<Set>, но List<Integer> подтипом List<Number> нет, так как List<Integer> даёт гарантии, что в нём будут лежать только интеджеры, и если где-то в него будет положен дабл, его могут попытаться прочитать как Integer, что вызовет ошибку типов в рантайме, чего в джаве обычно нет.
Компилятор не видит что из себя эти A, B, B2 представляют именно, поэтому для него оно никогда не является подтипом, и Optional<T> рассматривается с той же строгостью, с которой List<T>, а для решения этой проблемы, чтобы дать компилятору понимание о типах, нужно строить довольно мудрёные системы, намного более мудрёные даже чем ковариантность/контравариантность. Поэтому к компилятору здесь никаких вопросов быть не должно.
>>3236940 > нужно строить довольно мудрёные системы Не, высрал хуйню. Не нужно ничего строить. Нужно просто добавить кейворд upcast который бы применялся к объявлению дженерика и означал бы что этот дженерик можно спокойно апкастить. Его правильное применение возможно было бы в тех случаях когда поля данного дженерик типа являются неизменяемыми, например, и может быть, в других случаях (изменение при инициализации и невозможность изменения далее, или внутренние изменения гарантирующие сохранение типа, выглядят как возможные варианты когда изменяемость поля не будет мешать безопасному апкасту).
Таким образом объявление Optional выглядело бы вот так:
public final class Optional<upcast T> { ---/code/ }
>>3236887 >Вот это и вызывает фрустрацию, потому что принимающему коду все равно, какого подтипа будет аргумент в рантайме, и приходится кастовать подтип к родителю, только чтобы компилятор не возбухал Ты просто не понимаешь ковариантность и контравариантность. В инторнетах есть много статей на тему, почитай.
>>3236967 Как думаешь они вообще что то делали, или просто дунасили 10 лет рассказывая на митингах что щас вот вот будет, надо только немного причесать?
>>3237080 Мне кажется, очень близко ко второму. Если так, то тут проёб, как мне кажется, даже не в том, что они хуйнёй страдали, это простительно, люди по своей природе очень непродуктивны, особенно в возрасте, а в том, что они не дали возможности толпам молодых и шутливых за спасибо спроектировать и реализовать для джавы эту вальхаллу. Достаточно открыть масштабную дискуссию с чётко структурированными целями и проблемами, и очень скоро желающие накидают кучу идей и решений. Хотя я, возможно, переоцениваю порриджей, или недооцениваю сложность идеи.
Есть тут большие проёбщики, чем я? Работаю на проекте сбера как вендор уже почти 2.5 года. В неделю из 40 часов работаю в среднем где-то 4 нахуй, без преуменьшений. Если не считать созвоны всякие. Бывало, что за неделю работал 0 часов, тупо код не писал, ПРы не ревьювал. Формально вроде сеньор, а может и мидл, хуй знает, но ЗП 200 к.
>>3237077 Тебе делать нечего что ли, что о сраных терминах спорить начинаешь? Да, для разраба сет это коллекция. Для жвм это два самостоятельных интерфейса - иди сделай Set.class.squals(Collection.class) или присвой в Optional<Collection> значение с типом Optional<Set>, раз это одно и то же. Без читов с extends. >>3236984 >Ты просто не понимаешь сути /pr/. Был конкретный вопрос как сделать красиво и без бессмысленных плясок, ответ получен - в этой конкретной ситуации нельзя. Печально, но не смертельно. Но кому-то надо начинать душнить на анонимной имиджборде и сыпать томной литературой почему именно эти бессмысленные пляски нужны, как будто кому-то не похуй.
>>3237096 > Тебе делать нечего что ли, что о сраных терминах спорить начинаешь? Да, для разраба сет это коллекция. Для жвм это два самостоятельных интерфейса - иди сделай Set.class.squals(Collection.class) или присвой в Optional<Collection> значение с типом Optional<Set>, раз это одно и то же. Без читов с extends. Ты хуйню высрал. Сет это коллекция. Всегда. У тебя нет базы, нет понимания.
>>3237086 Я в альфе тоже хуи пинаю, работаю, от силы, 5 часов в МЕСЯЦ, остальное время играю/деградирую/полирую хуй резюме. Ни на какие созвоны не хожу, иногда выпердываю что-нибудь на статусе. Синька за ~450к
>>3237096 >Для жвм это два самостоятельных интерфейса - иди сделай Set.class.squals(Collection.class) Чел, если ты, как в своем примере, обозначил у своего параметра тип как set, то collection, который не set, там быть просто не может, иначе компилятор выдаст ошибку. Технически ты прав, это два разных интерфейса, но в твоём примере у тебя там в принципе всегда сет, а сет это всегда collection, так что это проверка смысла не имеет, другого варианта там и быть не может.
>>3237654 Знаешь, что все мы можем сдохнуть в один момент из-за распада ложного вакуума? Шанс там правда маленький. Здесь он сравнимый, если пользоваться синхронайзедами правильно.
>>3237096 >Был конкретный вопрос как сделать красиво и без бессмысленных плясок Конечно же пиздежь. Было какое-то говно - вот вам сигнатура, менять нельзя, хочу ковырять левое ухо првой ногой, как в вашей джаве это реализовать? Естественно ответ здорового человека - не еби мозг, ковыряй левой рукой, но говноед настаивает на ковырянии именно правой ногой.
>>3237474 >обозначил у своего параметра тип как set >три раза было сказано, что сет приходит из либы >в коде и на скрине методы и аргументы названы externalInterfaceMethod / someExternalVariable Ебать ты гений, чтец 80лвл просто. >так что это проверка смысла не имеет, другого варианта там и быть не может Какая проверка, что ты несешь, поехавший? В приложенном коде ровно ноль проверок, просто два метода, перекладывающие аргументы, и несовместимость дженерика, все.
>>3237734 >какое-то говно - вот вам сигнатура, менять нельзя вся идея интерфейсов: ну да, пошла я нахер >Естественно ответ здорового человека Ответ здорового человека уже прозвучал и другой здоровый человек принял его к сведению и сделал как считает нужным, вопрос исчерпан. Ты можешь продолжать исходить говном на пустом месте, и не таких клоунов сеть интернет видела.
Правду говорят, в жабатреде до бамплимита лучше не постить.
>>3237752 Какая мне разница откуда приходит сет? Я говорю конкретно от том как ты написала пример. >Какая проверка, что ты несешь, поехавший? В приложенном коде ровно ноль проверок Конечно, потому что это больше похоже на псевдокод, который нихера не делает. Но есть комментарии: //Set != Collection //Set extends Collection, OK Логично предположить что разумный человек так обозначает методы, которые должны выполнять эту проверку
>и несовместимость дженерика Потому что твой каст смысла не имеет. Ты конечно можешь сделать это вот так: Optional<Collection<String>> castedVariable = (Optional<Collection<String>>) ((Optional<?>) someExternalvariable); и это будет компилироваться, либо можешь добавить новый метод для конвертации:
но смысла от этого не прибавится, потому что а) если тебе нужно работать с сетом как с коллекцией - ты можешь это делать и без каста б) если тебе нужно куда-то дальше передать этот сет как абстрактную коллекцию - ты изменяешь тип параметра у того метода, куда ты передаёшь дальше этот сет
Ты просил объяснить как делать нормально - вот я тебе и объясняю как делать нормально и почему у тебя ненормально
>>3237783 >Я говорю конкретно от том как ты написала пример Аноны с решениями выше поняли, а ты не понял, это пример в 10 строк виноват. Понял принял.
>Логично предположить что разумный человек так обозначает методы, которые должны выполнять эту проверку Нет, не логично, где ты такие шизообозначения методов видел?
>если тебе нужно работать с сетом как с коллекцией - ты можешь это делать и без каста С кем споришь? Где обратное утверждалось?
>если тебе нужно куда-то дальше передать этот сет как абстрактную коллекцию - ты изменяешь тип параметра у того метода, куда ты передаёшь дальше этот сет Нет, не изменяешь, потому что ты не умеешь читать. Было сказано, что принимающему методу безразличен конкретный тип коллекции, и только ради одного стороннего интерфейса менять тип аргумента на более конкретный это верх тупости - придется всем вызывающим его методам конвертить свои листы и прочее говно в сет.
>Потому что твой каст смысла не имеет В изначальном примере нет ни одного каста...
>Ты просил объяснить как делать нормально - вот я тебе и объясняю как делать нормально и почему у тебя ненормально >(Полотно) кода <? с охуительными <кастами>> ...а в коде с рабочим решением проблемы - 1 каст в 0 лишних строк, и тот делегированный на готовый метод класса. Одним словом, твоя деятельность очень к месту и ко времени, мы вам перезвоним.
>>3237797 >С кем споришь? Где обратное утверждалось? В твоем оригинальном посте
>В изначальном примере нет ни одного каста... -> >>3236410 Это что на пике, ты мне ответь, "ни одного каста" шиз? Без верчения жопой, просто ответь что это отмечено, если не каст
>>3237798 >обратное утверждалось >В твоем оригинальном посте Где, пиздабол? Напротив, было сказано много раз, что нет разницы с какой именно коллекцией работать.
>Это что на пике Ты подебил, есть касты после передачи аргументов с несовместимыми дженериками. Иллюстрирующие проблему этой самой несовместимости. Можешь еще опечатки в постах поискать, если к сути вопроса доебаться не можешь. Угомони свой в-интернете-кто-то-неправ синдром, вопрос давно решен и все работает. Уже 3 года прошло, твоей вины в том инциденте нет, пора идти дальше.
Было у вас такое, когда знаешь как имплементировать что-то, но хочется написать "по-крутому", но "по-крутому" ты ещё не совсем опытный писать, и поэтому тратишь часы чтобы высрать из себя крутость кода ради крутости? Я имею ввиду применение шаблонов проектирования, лямбд и т.д.
Куда идти работать слабому мидлу скуф-вкатуну(2.5 года стажа), чтобы сытно, удаленочка, проект не совсем боль и более-менее строчка резюме? Ну чтобы до собеса дойти, чтобы не решать 10 секций алгосов и чтобы взяли. Пока сами пишут только из галер с аутстафом. Сам думал про штат в банки, ритейл, телекомы. Ну кроме тинька с его задроством. >>3237110 Как проходят собесы в альфе? Возьмут доходягу типа меня тысяч на 200-250?
>>3238771 Их и не нужно выкидывать. Нужно просто использовать правильно. Защищать ими только мгновенные мемори операции, для чего они и предназначены были с джавы 1.0.
>>3235390 А у тебя ДТО обновится в вакууме что-ли? Нет, оно обновится и это скажется на каких-нибудь лежащих в глубине @Entity. Т.е. тебе всё равно править ORM-слой, заодно и маппер поправишь. А чтобы не забыл - должны быть тесты.
>>3240725 Помню, как благодаря данному треду, на полном серьёзе в 2022 стал бугаенщиком, когда только учился программированию. Всем рекомендую пройти это для саморазвития.
>>3240725 Помню, как, благодаря данному треду, на полном серьёзе, в 2022 стал бугаенщиком, когда только учился программированию. Всем рекомендую пройти это для саморазвития. Главное в неизлечимую шизофрению не скатываться.
>>3240725 Помню, как, благодаря данному треду, на полном серьёзе, в 2022 стал бугаенщиком, когда только учился программированию. Всем рекомендую пройти это для саморазвития. Главное в неизлечимую шизофрению не скатываться.
>>3240725 Помню, как, благодаря данному треду, на полном серьёзе, в 2022 стал бугаенщиком, когда только учился программированию. Всем рекомендую пройти это для саморазвития. Главное в неизлечимую шизофрению не скатываться.
>>3240860 Кто тебе сказал, что это изучение обязательно должно быть последовательным? В джаве помимо спринга огромное количество тем, мастерство даже без учёта спринга стоит нескольких лет активной работы.
Дано: 0. Метод, имеющий плавающий баг и периодически выбрасывающий ошибку. 1. Строка, в которой есть два вызова этого метода. 2. Стектрейс, в котором сказано, что в строке N какой-то из этих методов блюванул.
Как без разделения строки на несколько других строк сделать так, чтобы в отчёте об ошибке содержалась информация о том, какой именно метод был вызван?
>>3240866 Я знаю, что тут в треде сидит если не сам скуфц, то знакомые с ним, скажите ему что в StackTraceElement нужно добавить поле int methodOrder которое бы указывало какой именно метод из одинаковых из строки был вызван.
Один сервис в процессе работы генерит рандомные айдишники. Мне надо написать на него тест. Для проверки я хочу сделать так, чтобы он генерил фиксированные айдишники по порядку. Как это лучше всего сделать?
>>3234867 > Какую IDE выбрать для учебы? Начинай в любом редакторе текста без подсветки и делай все в консоли. Можешь даже код писать в nano > Какую версию JDK нужно устанавливать для обучения и последующей работы ? Ставь все lts от 8, нет такого, что учат какую-то одну версию Там фич новых то на пять минут чтения в каждой версии
Почему у меня ебаная идея на пустом проекте(просто один класс) загружает проц на 60-70%? Из плагинов только sonarlint. Профайлер показывает нихуя. Как это фиксить?
>>3241683 >Жявы там минимум Хуйню сам себе придумал и рад. Никто нахуй не будет переписывать все эти ебучие сотни микросервисов с жабы на шарп. Жабы тут полно и с каждым днем больше, мигрируем на сб3, ждк 21 и тд и тп.
>>3242831 24-я идея, кроме последнего вызова в блядской жидеи № 2 твои проблем у себя не наблюдаю, и то это говно убирается через ctrl-alt-l. Хз чё там у тебя за хуйня.
Где читать про Spring, не уж-то только документация ?
Пока писал диплом, прочел Spring по быстрому и Spring в действии. Книги говна, они какую-то часть информации просто пропускают, а что-то просто уже устарело. Остаётся только сидеть и плакать
>>3229037 (OP) Тяжело собраться и вернуться к обучению Учил долго джаву через джавараш, потом занимался на курсах с ментором, под его руководством писал приложухи, все хорошо шло, но вдруг что-то пошло не так и я остановился, возможно сильно давил на газ ибо и джаве уделял дохуя времени и инглишу кстати в инглише прокачался прямо таки охуенно и все это 6 дней в неделю, хз короче. Вот уже 4 месяца не делаю НИ ХУ Я и каждый день у меня в голове мысль "долбоеб ебаный". Вероятно мне нужно собраться с силами и просто начать, напишу может быть ментору и попытаюсь вернуться с ним в колею.
Часть моего мозга уже ищет оправданий как-бы не пытаться продолжать. А все почему? А все потому что не хочется начать подаваться и обнаружить насколько сильно тебя не ждут и как это ебанет по моей хрупенькой самооценочке, вот этот страх и сидит в подсознании вот из-за него у меня и качели, хотя я понимаю что нужно просто продолжать, день за днем, чуть по чуть, делай что должен и будь что будет.
>>3243482 >джавараш Их бы забанить за незаконное использование персонажей футурамы, вообще если ты там продержался дольше первого вводного урока с игрой то ты конченный дегенерат.
>>3243527 >если ты там продержался дольше первого вводного урока с игрой то ты конченный дегенерат Ебать тряска чепушни, ну трясись еще, спидозная дура.
>>3243482 У меня та же проблема была, только не 4 месяца, а 7 лет. С 18 до текущих 25, много раз пробовал ВО, но не мог себя заставить дойти дальше первого курса. Если кто тут и долбоёб, то это я. Тебе, может, пиздят, что когда постоянно дела откладываешь на потом, время летит. Пиздёжь, вес времени прекрасно чувствуется, просто чем дальше откладываешь, чем дольше закукливаешься, тем меньше понимаешь, что можно по-другому. Наступает момент, когда кроме сычевания ты ничего больше не видишь, думать о дальнейшей жизни у тебя ни сил, ни желания - вот из этого болота выбраться самостоятельно почти невозможно. У тебя такого пока нет. Я тебе это гарантирую. Но ты благополучно на пути. Скажу даже, что в какой-то степени такая жизнь того стоит - к примеру, ни психически больным норми РАБ-отничком, ни охуевшей от жадности тварью, ходящей по головами, ни политически активной промыткой, ни ебанутым на всю голову доёбщиком до чужих дел и охуительных мелочей мне уже не быть, рнн стаж не позволяет опуститься до подобного уровня. Но ты а) превращаешься в импотентное говно, которое можешь только жить как амёба, б) ты это прекрасно осознаёшь, и это нахуй убивает покой, удовлетворение и счастье от сычевания, самооценка идёт на дно, с) рано или поздно тебя перестают кормить, и ты встречаешься с ирл, будучи полным ничтожеством, после чего тебя ждёт дно работа, высасывающая жизнь и душу, бутылка, глубокая депрессия, мрак, пиздец, гроб гроб кладбище пидор.
Лучше не надо, короче. Гнать себя и выгорать хуйня идея, но каждый день надо что-то делать, пока у тебя не будет при себе хоть какой-то, но заработок и материальная независимость. Потом ебись как хочешь - без замечательных перспектив долгосрочного рнн.
Покидайте видео(руководства, уроки, гайды) по java старых времён(до 2014), где фиговый звук из-за дешёвого микрофона, где ныне не используемые нигде технологии/классы (к примеру applet), где все происходит на win7/winXP.
Пару дней назад нашёл в ВК одно такое видео. Почему-то показалось, что такие видео более душевные(не как сейчас - подуреклама школ программирования)
>>3243482 >>3243599 Ебать вы шизики. Вам психиатр нужен, а не курсы. И как минимум задуматься о поиске более подходящего для себя занятия, если программирование не заходит. Нет интереса на начальном уровне - не будет его никогда. Если тебя не тянет ежедневно пердолить всё это не замечая времени, просто потому что интересно, можешь махнуть рукой и искать себе что-нибудь другое.
Инверсии управления (IoC): Упрощает создание и управление зависимостями объектов. Модульности: Разделяет функциональность на модули, позволяя использовать только необходимые компоненты. Простоты тестирования: Облегчает тестирование приложений благодаря слабой связанности. Упрощенной конфигурации: Поддерживает разные подходы для настройки (XML, аннотации, Java). Интеграции: Легко взаимодействует с другими технологиями (JPA, Hibernate и др.). Управления транзакциями: Обеспечивает простое управление транзакциями. Аспектно-ориентированного программирования (AOP): Позволяет отделять кросс-кумулятивные аспекты от бизнес-логики. Широкого сообщества: Обширная документация и поддержка сообществом. Эти возможности делают Spring отличным инструментом для разработки масштабируемых и легко поддерживаемых приложений.
>>3243628 Затем, чтобы решить проблему раздувания кода до невообразимых масштабов при использовании подхода внедрения зависимостей. Плохое это решение, правда.
>>3243630 У того анона интерес есть, но он трясётся. Я ему просто обозначил, что будет, если он тряске будет продолжаться поддаваться - произойдёт окукливание со всеми вытекающими подливами. Пусть осознаёт.
>>3243650 >не придумали Разве что не сделали стандартом. Создать хорошую концепцию гораздо легче чем добиться того чтобы эта концепция понравилась заплесневевшим скуфам и полоумным порриджам и привести её не просто к реализации, но и к становлению стандартом. Если копнуть, явно найдётся множество альтернатив спрингу с 20 звёздами на гитхабе.
>>3243652 Часто бывает так что "хорошая" концепция внезапно становится говном при попытке ее обобщить на разные проекты. Или в итоге становится ровном тем же что и так уже есть в спринге.
Да и дело не в скуфах, а скорее в индусах. Скуф может освоить что то новое по гайду, индус из манги - нет.
>>3243482 У меня тоже самое было. Периоды, когда вообще ничего делать не могу по пол года. Внезапно спас спортзал. Я хуею, что эту годноту от меня скрывали всю жизнь, но спорт реально дает дохуя энергии. Я по три дня в неделю тягаю штангу и потом на месте уседеть не могу, не делая что-то полезное для ума. Да еще тело стало здоровее и сильнее. Советую попробовать, может быть поможет
Почему Version Catalogs нет как в андроид студио для проектов gradle в intellij idea? Что я имею в виду, там по умолчанию в андроид студио ругается и подсвечивает жёлтым и предлагает автоисправление на version catalog , а в интеллидже нифига. https://docs.gradle.org/current/userguide/platforms.html
Есть ли у кого-то проекты, на которые вы дрочите? Вот какой-нибудь эталонный джава проект, на который смотришь и возбуждаешься от ахуенности кода. Поделитесь чем-нибудь таким годным
>>3244568 >Значит что-то есть всё-таки. Я в основном либы щас старые опенсорсные обновляю из опенсорсной активности, ничего нового и особо красивого там нет.
>>3244590 Есть такая поговорка, больше всех кричит и плачется после преступления сам преступник, а не жертва. Она уёбищная, поговорка, но тебе в самый раз.
>>3244852 Если ты вызываешь виртуальный метод, то всегда будет вызван метод текущего класса this. Если это не нужно вызывай не виртуальный метод, например приватный или final. Единственное исключение это когда ты делаешь вызов super.draw() тогда вызовется метод предка.
>>3239222 > Зачем вообще использовать затмение? Там же дизайн из 2010 года, а у интела дизайн 2023!!! Ты софтом пользуешься, чтобы он был красивым, или чтобы выполнял задачи? Ты тян что ли и к ноготочкам дизайн не подходит? Прекращай, это нелепо. Эклипс всегда был и остаётся самой ламповой иде
И почему вообще дизайн 10 года это плохо? Хорошо было в 10 году. Да и в нулевых было хорошо. Доллар по 30 рублей, группа тату, всё так свежо, и будущее светлым казалось. Уже не будет такого никогда. А в эклипсе все очень красиво.
>>3239222 >Зачем вообще использовать затмение? Контора отказалась решать проблему с подпиской на жейтбруйнс айдии и сказала всем перейти на бесплатные среды разработки
>>3244498 Это же тот лс-ный хуесос из тинька, перерассказывающий умные книшки еще более днищистым лс-ам? Потужно, очередно еблан из тинька по типу получленова клоун, проектирующий любую систему за 30 минут, правда почему-то ни одной системы он в жизни не писал, а программисты из петухунька не могут правильно перемножить 3 цифры, из-за чего их ебут клиенты на миллионы баксов на курсовой разницы, ох лол
>>3245283 >>Это же тот лс-ный хуесос из тинька, перерассказывающий умные книшки Так гости вполне валидные часто бывают и делятся опытом. Его то мнение ясен хуй никому не нужно.
>>клоун, проектирующий любую систему за 30 минут, правда почему-то ни одной системы он в жизни не писал Так он же рассказывает, чтоб собес на 400к+ пройти. Суй примерно тоже самое пишет.
>>программисты из петухунька не могут правильно перемножить 3 цифры, из-за чего их ебут клиенты на миллионы баксов на курсовой разницы, ох лол Так это бизнес аналитики делают. Программисту то хуле - как сказали так и сделал. Или ты из тех кто в свое личное время будет что то допиливать мимо жиры лишь бы лидер рынка не обосрался?
>Это же тот лс-ный хуесос из тинька, перерассказывающий умные книшки еще более днищистым лс-ам Ну, книжных клубов есть много. Например, у Devoxx тоже есть книжный клуб. Их смысл в обмене опытом на базе книжки. Эффективнее, чем читать одному.
>>3245980 А потом он этот ключ продаст еще десятку таких же лохов и ты словишь бан в рандомное время, когда жиды это спалят. Самые тупые и вовсе покупают ключи университетов, которые в открытую в инете выкладывают.
>>3246160 >учётка создаётся на стороне продована Еще хуже, лол. У тебя по кд синкаются всякие ключи, токены и креды в разные сервисы по типу гитхаба или ключи для доступа к репам в гит репазитариев. Тебя хэкнут в любой момент
>>3246342 >Object.clone() >отдельная библиотека >фабричный паттерн Охуенно. Решил свой интерфейс с клонирующим методом запилить и запрашивать его в аргументах конструктора.
Вот я выучил основные моменты Java (Синтаксис, ОПП), пошел учить фреймворк(Spring). Что-то ели ели понял, тяп ляп сделал свой первый CRUD проект. Но все мучает вопрос, как что-либо писать ?
Первый проект, я смотрел по видосам из ютуба, и они создавали архитектура проекта.
Но вот я захочу сделать например свой сетевой чат, и с чего начать ? Как научиться проектировать приложения ?
Прочитав Философию Java 4-изд. все равно остаётся осадок, как будто чего-то не хватает. И ты понимаешь, что ты не можешь применить все-то что знаешь, по тому что не можешь сформулировать задачу точно.
Или тут просто Алгосы помогут справиться с этой херней ?
>>3246850 В интернете полно статей и видосов с написанием своих проетиков на спринге. Посмотри 2-3 и сделай свое по аналогии. На русском самый популярный это sweater у letscode.