24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Нужно быть душевнобольным хуесосом без малейшей симпатии к программированию, чтобы в 2022 писать на жабе. Просто сравните яву с .NET (https://devblogs.microsoft.com/dotnet/announcing-net-6/), который создавался как клон джавы и превратился в прекрасного лебедя
>>2262779 Там до сих пор полная привязка к винде. Они даже купили Моно, чтобы задушить его. Нет кор - обрубок от фреймворка и появился только благодаря Моно.
>>2262969 Ну у меня в планах, но надо же с чего-то начинать. Вот когда буду в джаве более менее уверено себя чувствовать, тогда и на фреймворки смотреть буду. >>2263128 >>2262779 Да, на максоси анальная боль писать на шарпе. Я сначала там пытался, теперь перешел на джаву. Раз они такие пиздатые, че тогда они не могут банально один и тот же visual struido на две разные разные ОС написать.
Вот я вставил первую запись: HashSet<Listtags> tags = new HashSet<Listtags>(); tags.add(new Listtags("tag1")); tags.add(new Listtags("tag3")); notebookLogic.save(new Notebook("n2", LocalDate.parse("12.12.2000", dtf), "t1", tags));
Теперь в notebook 1 n2 12.12.2000 t1 В listtags 1 tag1 2 tag3 В tags id_nb tag_id 1 1 1 2 Но при вставке новой записи, в которой теги будут повторяться: HashSet<Listtags> tags = new HashSet<Listtags>(); tags.add(new Listtags("tag1")); tags.add(new Listtags("tag3")); notebookLogic.save(new Notebook("n1", LocalDate.parse("14.08.2000", dtf), "t2", tags));
Вылетит ошибка ОШИБКА: повторяющееся значение ключа нарушает ограничение уникальности "listtags_tag_key
Кто-нить сталкивался в работе с Hibernate с такой проблемой? Как мне сделать так, чтобы после 2й вставки было: Теперь в notebook 1 n2 12.12.2000 t1 2 n1 14.08.2000 t2 В listtags 1 tag1 2 tag3 В tags id_nb tag_id 1 1 1 2 2 1 2 1
>>2263366 > tag varchar(16) UNIQUE); > при вставке новой записи, в которой теги будут повторяться: > нарушает ограничение уникальности "listtags_tag_key Чел
>>2263418 > tags.add(new Listtags("tag1")); Я не работаю с хибером, но по моему тебе во второй раз нужно не создавать тэг, а загружать его из таблицы, потому что у этого объекта нет айдишника и хибер пытается его создать и падает с исключением, потому что тэг unique
>>2263152 >че тогда они не могут банально один и тот же visual struido на две разные разные ОС написать
Потому что Visual Studio, которая на винде, разрабатывается с очень давних времен, когда сишарпа еще даже не существовало. Естественно там наверняка много кода написано на С/С++ с завязкой на системные функции винды, winAPI, MFC, вот это все. Да и интерфейс у студии написан на WPF и винформах. А их портировать на другие платформы невозможно в принципе. Вот поэтому вижуалстудию вряд ли когда-либо портируют на линукс или мак ось. Да и вообще, знал бы ты, как долго в MS пилили 64 разрядную версию студии. Вроде бы только к 2020 году осилили, до этого была только 32 битная версия, лол.
А так, чем плох райдер? Работает под всеми платформами и всегда был 64 битным, спасибо jetbrains.
>>2263492 Asp.net core под кестрелом работает, да, EF тоже. А вот всякие окошки, винформы, впф - нет. И очень жаль, я всегда хотел бы писать гуи под линкус используя понятные и простые винформочки. Авалония далеко не на том уровне удобства по сравнению с винформами.
Многие нахваливают IntellJ Idea, но на деле так куча багов и неудобств. Если в VS Code настраиваешь какую-то функцию, то она стабильно работает. В IJ же настройки постоянно сбрасываются, иногда стоит галочка, что настройка применена, но на деле не работает. К примеру, нажал галочку soft-wrap, чтобы текст переносился, если строка слишком длинная. Но при перезаходе в IJ с вероятностью 50% галочка снова отжата, а с вероятностью 50% она нажата, но настройка всё равно не применяется. И это говно повсеместно. И они ещё требуют деньги за этот кал!
>>2263630 Зато очень много всего, что нужно и из коробки. Вскод вообще не конкурент, если джава основная платформа. Нетбинс/эклипс иногда используют старперы/жлобы. В вскоде есть плагины: для спринга, джава ее, мавена, градла, клиент для бд, хттп сервер, джава профайлер, ломбок, jpa-buddy?
>>2263672 Эта книжка с учетом шрифта в 5 раз больше. И ее нет на русском. То есть мне нужно в 10 раз больше времени на нее. У меня нет столько времени. Прокомментируй, почему не стоит читать ту книжку.
>>2263689 > Нужно в 10 раз больше времени на неё That's where you're wrong kiddo Всё зависит от того как ты читаешь, какие главы и какие упражнения делаешь. Не бывает такого, чтобы одинаковые знания за 10 страниц и за 100 усвоились одинаково
> Почему не стоит читать ту книжку А тебе зачем вообще книжка по структурам данных? Если тебе хочется ложное ощущение того, что ты всё знаешь и понял читай свою книгу на здоровье. Если ты хочешь разбираться в структурах данных и не обосраться на собесе, то тебе нужно читать нормальную и потом ещё по сорцам пробежаться основным
>>2263726 Мне нужно создать ощущение у интервьюера, что я что-то знаю по алгосам и знаю коллекции джавы. У меня уровень достаточно низкий и мне придется прочесть всю твою книгу. А это месяц только на нее. У меня его нет. Ну вот мне задали вопросы. В какой мап/сет нельзя класть нулы и почему? Чем отличаются линкедлист и ArrayDeque? И еще что-то. Я это потом нагуглил, но хотелось бы вот на такие простые вопросы иметь представление, а глубже особо не копать.
>>2263745 Тогда просто походи по собесам. Я когда работу искал так и сделал, в начале походил на собесы в говнокомпании всякие, в итоге после десятого вопросы начали повторяться и стало совсем легко
>>2263770 В говнокомпании меня берут без собесов почти. Вчера спросили с чем работал, что трогал в петах, про что просто читал, что такое ооп и скуэль, вы приняты. Но там просто супер дно. До этого было еще одно такое место, я у них даже постажировался за зп. А в норм места и даже средние галеры просто не зовут на собесы. Наверно слишком старый. И я пока чекал удаленку. Из 200 откликов было 2 собеса. И еще 6 раз мне писали херки, обещали собес. Но потом, поговорив с представителями отдела - слали нахуй.
>>2263777 Ну так поработай в супер-дне с годик, потом вкатывайся в нормальное место. С >1 годом опыта вкатиться как нехуй. Ну и смотря насколько ты старый. Для кого-то это важно сейчас, мол, не хотим работать с 25+ вкатышами.
>>2263745 >Мне нужно создать ощущение у интервьюера, что я что-то знаю по алгосам и знаю коллекции джавы
Смотрел лекции Тагира Валеева? Там достаточно подробно разобраны коллекции. Про нуллы в мапах тоже он рассказывал. Зачитываться талмудами смысла нет ровным счетом никакого.
>>2263781 Отметенный вариант. Я же писал по стажировку. На деле я устроился на фултайм по тк и свалил через 2 недели. Начало нагнетать, что мне не нравится этим заниматься. Не помогло, что мне сходу дали соротыгу, хотя раньше я 20 получал. Вчера предложили 50, можно было до 60 добазариться. Но там проект еще больший кал. Например там нет исходников и придется варник декомпилировать. И быть единственным бекедером в совсем неайтишной конторе. >>2263782 По той же причине, почему я свалил с неайтишной работы. Надоело жрать говно и ненавидеть работу. >>2263785 >Зачитываться талмудами смысла нет ровным счетом никакого. Я так и считаю и та брошюрка с сорокой на 200 страниц очень крупным шрифтом. От Тагира посмотрю, но что-то странно,чтобы подробности двухчасовой лекции.
>>2263793 >но что-то странно,чтобы подробности двухчасовой лекции А конкретно какие подробности коллекций тебе нужны, да еще и такие, чтобы в два часа не уложиться? Всякие concurrent структуры данных? Неблокирующие списки, очереди, хэшмапы, вот это все? Для понимания многопоточных коллекций нужно открывать Java concurrency in practice вместе с The art of multiprocessor programming и прямо зачитываться этими талмудами с теорией про эти коллекции и их способы реализации. Ну и статьи на баелдунге тоже ничего, во всяком случае их статья про лок-фри очередь мне понравилась. А если еще в wait-free структуры данных копнуть, то там вообще можно несколько месяцев потратить на изучение папиров.
А так, тебе вероятно нужно эту статью разобрать https://habr.com/ru/post/599045/ Тут как раз про внутренне устройство всевозможных коллекций, можно попускать вкатунов этим материалом.
Для большинства собеседований как на стажера, так и на сеньора, этого материала вместе с лекциями Тагира и баелдунгом будет достаточно.
Однако если тебя очень сильно заинтересуют lock-free очереди в самых глубоких деталях, то есть цикл статей с различными бенчмарками и обзором научный статей по этой теме http://psy-lob-saw.blogspot.com/p/lock-free-queues.html
>>2263816 Спасибо тебе, анон. Твоими ссылками воспользуюсь. Пономарев клевый, смотрел сего лекции мфти. Тагировскую лекцию прямо сегодня наверну. От многопоточки пока воздержусь. Тоже долгая тема, требующая талмудов, но когда-то хочу освоить. Может через годик-два. Вот вопрос так, чтобы примерный роадмап про многопоточку составить. Java concurrency in practice это база, я понимаю. А что наcчет поздних нововведений из 7-9? CompletableFuture или Reactive Streams. Только статьи всякие или тоже есть талмуды? >>2263672 Тебе тоже спасибо на самом деле, эту книжку добавил в облако с личной библиотекой по кодингу.
Еще неплох пикрил, там 3-4 главы посвящено фьючам и реактивным стримам. А так смысл залезать в реактивщину есть только при знакомстве с Spring webFlux. Да и то, я бы не рассчитывал сильно, что реактивщина еще очень долго будет популярна. После выхода Loom будет в разы проще писать обычный блокирующийся код с виртуальными тредами, не используя реактивщину. Но на вебфлюхе уже достаточно проектов, их нужно будет кому-то поддерживать, поэтому ознакомиться можно, но залезать в глубины имхо смысла нет. Для вкатуна имхо важнее в принципе понять что такое асинхронность и какие проблемы она решает. На работе скорее всего у тебя будет обычный спринг на классическом томкат сервере без реактивщины и асинхронности.
>>2263934 Ну вот мне теоретически интересна вообще многопоточка, не реактивщина. Ну просто прикольной эта тема кажется. Ну а ради просто прикольности тратить месяцы на тему это такое. А многопоточка вообще может быть где-то реально нужна на спрингокрудовом стеке? Ты вот читал книжки, смотрел докладики. А ручками это потрогать где-то приводилось? Я вот за время изучения спринга вообще многопоточный код сам не писал. Он весь под капотом. Самому, как я видел, в свинге нужно создавать треды и организовывать общение между ними. В других гуи библиотеках и в андроиде думаю примерно тоже.
>>2263953 Я по сути такой же вкатун, как и ты, только опыта может чутка побольше. Многопоточный код в проде ни разу не видел. Все действительно под капотом спрятано обычно.
Но вообще наверняка где-то и нужна, раз уж иногда проскакивают вакансии, где нужно и JMM знать и многопоточные коллекции. Хайлоад какой-нибудь или алготрейдинг. Хотя последнее для джавы довольно редкое явление.
>>2263963 Думал может ты подскажешь идею для пета, в котором нужна многопоточка не в гуе. Ну чтобы через пет-проект и учить эту самую многопоточку. Может подкинет кто-то другой идею. Тут же все помидоры дохуя.
>>2263974 В основном дрочится синхронизация между потоками (бывает что даже на разных машинах). Т.е. один пользователь делать что-то, что затрагивает A, другой пользователь делает что-то, что затрагивает A. Соответственно, нужно парковать второго пользователя, пока первый не закончит. Т.к. неграмотная синхронизация бьёт по производительности, то основная задача состоит в том, чтобы понять, где нужно лочиться.
Для пета могу посоветовать написать обработчик долгих задач. Например, пользователь нажал кнопку - выгрузить всех пользователей из паблик вк апи, и посортить/отфильтровать/сохранить/etc. куда-либо. После нажатия кнопки мы говорим пользователю, что все ок, мы работаем, но он не висит и не ждет выполнения задачи. В это время он идёт заниматься другими делами. А через 5-10 минут спросить: что там с задачей, которую я стартовал?
>>2263995 Да не, лум пилят активно, сейчас проект #1 для команды разработчиков openjdk, это по коммитам видно. Другой вопрос, что начали его пилить в 2018 году, а сейчас уже 2022 начался. Как-никак, но запилить виртуальные потоки с планировщиком тяжко. А если еще учесть, что вирутальная машина теперь должна определять вызовы блокирующего IO внутри виртуальных тредов, после чего выносить их в какой-нибудь аналог гошного netpoll'а чтобы не заблокировался системный поток, то сразу становится понятно, что работы там явно не на год-два даже при минимальном функционале.
Пытался учить джаву (до этого имел небольшой опыт изучения жабаскрипта). Словил дикий депрессняк с количества требуемого для вката и так и не пытался сделать свои пет проекты и копнуть глубже.
Есть ли тут успешные вкатуны? что вы изучали, в какой последовательности? Какие книжки, может ресурсы? В шапке хуйня какая-то написана. К примеру по спрингу - предлагается выучить спринг стэк полностью по курсу какого-то австралийца. Но это разве возможно? Я пытался читать доку, но она там какая-то ебанутая. Скачат от темы к теме.
>>2264399 Успешно вкатился в жаву. Сначала делай учебную хуйню, типа там ввести количество букв и вывести в консоль. Потом читаешь книжку по структурам данных и алгоритмам, кодишь их. Параллельно ещё изучаешь ооп с базами данных. После этого делаешь какой-нибудь уже сложный проект с архитектурой и ооп, в моём случае это была андроид приложуха. После этого можно вкатиться в Java ЕЕ немного с вебом, понять сервлеты, рест, клиент серверное взаимодействие и прочее. И после этого спокойно врываешься в спринг и за неделю осваиваешь всю хуйню, потому что все базовые принципы (ООП, паттерны, Java EE, коллекции, веб) ты изучил и всё понятно. Как-то так
>>2264414 >После этого можно вкатиться в Java ЕЕ немного с вебом, понять сервлеты, рест, клиент серверное взаимодействие и прочее. ну все что ты перечислил я примерно себе представляю (рест трогал еще на этапе жабаскрипта - небольшой проектик учебный под курс какого-то португальца запилил,но даже исходников не осталось), сервлеты жпа трогал (пытался даже читать доку по таймлифу, хз нужно ли это вообще) Плюс я и на спринге все это потрогал уже.
Получается мне сейчас нужно освежить знания по спрингу и жаба кору, порешать задачки на кодеварс, сделать петпроект(ы) и пытаться кидаться своей резюмешкой с гитхабом на хх ру?
А то блядь читаю вакансии, а там JMS докеры хуёкеры спринг клауды. Я в душе не ебу как все это блядь учить и по каким книжком и чтоб струткурировано было
>>2264426 Ну вообще чисто теоретически докер важная штука, но полно проектов без него. Но чтобы изучить докер по хорошему нужны знания устройства линукса какие-то, затем просто проходишь туториалы на сайте докера, они хорошие, там даже playground есть
Оч проектно-специфично, есть шанс что ни разу не пригодится, не парься по нему.
>докеры
ОСНОВЫ знать надо, это КЛАССИКА уже. Основы на офф сайте учатся. Все сотни параметров и ключей знать не надо, только основные моменты - как устроена ФС, как пробарсывать порты, подрубать volume, писать докерфайлы. Хуйня учится за неделю.
>спринг клауды. Нахуй не надо если ты не сеньер с запросом > 400k
Ну и вообще на мидла/ждуна больше задач по языку/алгоритмам обычно, меньше по фреймворкам и архитектуре, поэтому дрочи сайты вроде этого: https://itsobes.ru/JavaSobes/
стоит ли вкатываться в джава? или попробовать другой стэк (не хочу фронт)? насколько в джава толерантное коммьюнити? в какие вообще компании можно устроиться на джава, кроме сбера и ему подобных (на бэк)? не погонят ли с работы, когда условно начну приходить в чулочках и менять паспорт?
>>2264498 Пик.1 >>2264499 И то и то используется в довольно равной степени, но тебе если что ничего кроме запуска тасков и добавления зависимостей оттуда. Так что глянь на то и на другое немного, но сильно не вдавайся
>>2264498 Я вышеотписавшийся вкатун на депрессии, но рискну предположить, что за подобными условиями вам стоит обратиться к node.js стэку (правда, придется потрогать все же фронт, ибо там это неделимо). Там куча хипстеров в свитшотах, девочек смузи и максимально дружелюбное к ЛГБТ коммьюнити (отчасти потому, что само коммьюнити на половину или больше состоит из пидарков). В джаве натуралы задроты с красными глазами.
Такой вопрос пацаны. Касается веб разработки. Я уже год пишу код на джаве , есть пару проектов на спринге. Есть друг фронтендер , с которым проекты пилил , советует мне перекатиться на питон. Суть в том что я как бы не хочу , мне нравится джава. Есть ли у питона и его фрэймворков реальные преимущества что бы учиться писать бэк на нем ? Ну и объективно что лучше/хуже.
>>2264513 > Пик.1 Смешнявка шутливая, но непонятно, воспринимать как иронию, или как правду, или как и то и то
>>2264516 > в раст Работы на него очень мало, джуну вообще нет
>>2264537 > к node.js стэку На хх "junior nodejs backend" всего 30 вакансий, по всей рф, без фильтрации нерелевантных. Это мало будет. А на фронтенд не хочется.
В целом хорошая, главное помнить, что на джуна, например, спринг и не спрашивают зачастую, поэтому залезать в дебри не рационально. Только если тебе это интересно
В целом стратегия такая - чем раньше ты устроишься в коллектив и начнеш обучаться за счет работодателя - тем лучше. Пусть даже это будет стажерство или типа того. Этой и не только стратегией я уже помог джвум людям дойти до мидла с нуля после 30лвл.
>>2264941 >>2264942 Ну с версиями джавы действительно плохой пример. Слишком много невалидного в просто цифрах. Но с фреймворками все должно быть норм.
>>2263441 >А так, чем плох райдер? Работает под всеми платформами и всегда был 64 битным, спасибо jetbrains. Интерфейсы на макоси это боль. Нет никаких windows forms, только обоссаный xcode.
>>2265303 Ты ведь никогда не использовал настоящую VS? То что на маке - это просто с нуля переписанный огрызок, который просто использует имя продукта.
>>2265551 Да проверяли. Когда работал на оборонку, у нас была сборка проверенная на отсутствие закладок. Ну и понятно, что вся критическая инфраструктура работает в изолированных сетях не подключенных к интернету.
как думаете, как быстрее всего погрузиться в жаву? вот эти все ваши спринги-буты-клауды, хибернейты, спарки? какие еще ключевые слова ожидаются от норм жава разраба?
>>2265612 Если с нуля, то укради курсы от отуса. Сперва по джаве, потом по спрингу. Самое главное, что весь стек есть. Но многие преподы деревянные. И как на любых курсах нужно будет гуглить и читать сверху стековерфлоу и баелдунг.
когда в универе учил жаву плюс есть несколько лет опыта на питонах и жыэсах
но просто доков мне недостаточно, у меня легкая зубная боль начинается от их чтения, где класс-классом погоняет в болоте xmlин. но все-равно хочется научиться актуальной жаве и евонным фреймворкам.
>>2265984 Думаю месяцев 8 это минимум. У меня почти 2 года ушло до первого собеса. Но я дико ебланил. Без спринга ты таки нахуй никому не нужен, разве что на стажировку, студентом из профильного вуза. Кроме джавакора нужно обязательно: - maven - sping core, spring boot - sql(на постгрес будет легче всего), jdbc. - html/css/http/rest + spring mvc - junit базовый не обязательны, но очень желательны: - hibernate + spring data - js, хотя бы fetch для rest запросов - spring test - gradle - основы docker
Анон фриланс на джаве вообще существует ? Заканчиваю 2й курс пытаюсь стучаться в различные стажировки чтоб получить более внятный опыт работы. Но чет перспектива работать дома более заманчивая.
>>2266416 Как ты себе это представляешь? html-парсер это не полноценный браузер, там нет видимой части экрана. getBoundingClientRect() это не просто жс, а апиха браузера.
>>2266427 > Как ты себе это представляешь? не знаю мне просто по top/right/left/bottom, margin'ам и куче дивов вложений входят символы в промоугольник или нет посчитать надо как-то.. это https://github.com/google/elemental2 тогда тоже левое для меня что-то тогда
Привет. Хочу взломать джава игру (3д модельку поменять например), какой прогой можно открыть и редактировать готовую прогру на джаве? А то мод на джава игры выглядит как файл который просто сунул и ниче перекомпилировать не нужно.
Прогал на с и использовал винапи, с джавой разберусь, просто нужен инструментарий для открытия готовых файлов.
>>2266465 Я для себя спрашиваю, потому что не хочу учить всякие vuex и redux. По моему проще на сервере сделать страницу, чтобы всё состояние сразу было в html без говняка всякого.
>>2265514 Жесть, оказывается это не шиз-школьник, а настоящая журнашлюха из телеграмма так хуйню пишет. Просто пиздец. Оракл отключит джаву, а Торвальдс Линукс вырубит.
>>2266465 В смысле, ты не в курсе про server side rendering для реакта и прочих фреймворков? Выгоднее на сервере отрендерить всё, потому что скорость загрузки решает
>>2266469 Чего там учить? Один раз принцип понять, потом по документации сможешь и с Vue, и с React разобраться
>>2266663 >Хотя могли бы уже дано кроме js разрешить другие интерпретаторы в браузерах. Старый IE позволял использовать VBScript, Хром умеет Дарт исполнять. Только это все одно никто не пользует.
Почему в 17 жабе из сорцов класса Object пропал метод registerNatives()? Я понимаю, что он был private и для внутренних нужд, но все же. Механизм JNI поменяли?
>>2267077 С++ как правило компилируется в нативный двоичный исполняемый код, тогда как у исходного java-кода есть множество вариантов исполнения. В приемущественном большинстве, у С++ больше бенефитов чем у java именно по "скорости выполнения" для получения конечного результата.
Знаешь, /pr, по-моему, я схожу с ума... Дело в том, что иногда по ночам мне кажется, что я яваблядь. Мне хочется выделять память, зарабатывать на доширак, пиздеть про энтерпрайз, сваливать свои проблемы на чужие плечи и писать нечитаемый бессмысленный говнокод. Я ворочаюсь, страдаю, рычу, а под конец вскакиваю с кровати и хватаю первое, что попалось под руку. Это может быть тапок, топор или простая поварешка, но в моем воображении она становится огромным прожорливым интерпретатором. С этим интерпретатором я открываю корпус сервера, ставлю ещё две планки оперативной памяти и с громким боевым кличем выбегаю на улицу. Я бегаю под окнами своих соседей и ору: "Ява не тормозит, тупые нищебляди!! Купите нормальное железо!!" Но они не покупают... Они привыкли. И когда я уставший, но довольный, поднимаюсь в квартиру, наоравшись и набегавшись, одна из дверей открывается. Там, лукаво сверкая глазенками, стоит маленький соседский мальчик Женька. Он громко шепчет беззыбым ртом "Клоссплатфолменность!" и ободряюще мигает мне одним глазом. Я, улыбаясь ему, прохожу мимо, и в душе моей поют заказчики. А дома я открываю бутылку водки, морщась, выпиваю ее до половины, и ловлю кота. Ругая этого "сраного волосатого индуса", я сажаю его за клавиатуру, и чтобы он не убежал, приматываю его к ней скотчем. А дальше все просто. Я стою у окна, пуская скупую быдлокодерскую слезу по своей прыщавой щеке , и мечтаю. Я представляю, что огни домов -- это пламя костров, на которых сжигают крестопидоров, шум машин -- это рев кулеров в серверных, а в мире нет ничего, кроме великого энтерпрайза и нас, яваблядей... И я жду, что вдруг, вот сейчас, в мою дверь войдет начальник и скажет: "Эй, раб, ты чо так так долго? Давай, быстро дописывай исходник. Похуй, если будет тормозить - разберутся те, кто будет сопровождать! ГА-га-га-га!" И ободряюще хлопнет меня по спине. И тогда не будет в мире счастливее человека, чем я... Точнее, явабляди. Что же мне делать, анон? Что же мне делать?
>>2262746 (OP) На собеседованиях дрочат кишочками JMM. Есть какой-нибудь гайд, где понятным языком (не спецификация и не шизостатьи Шипилеши) расписано как все работает на низком уровне? Объясняю им happens before, но им мало и начинают - "а вот тут файнал и при инициализации такого-то поля что будет?". Устал...
>>2267379 Слишком заумно пишет, лично для меня. Его писанина ничем по-сути не отличается от тех попыток объяснить как работают потаенные углы JMM описанные в спеке.
1) Swing/JavaFX надо знать для собесов, если нацелился на веб/бэкенд? И если да, то на каком уровне?
2) Как научиться применять такие библиотеки как Apache Commons/Guava? В частности, интересуют библиотеки с новыми коллекциями. Стандартных джавовских обычно вроде хватает. Пытться решать задачки с оглядкой на новую либу или сначала покурить документацию до просветления?
>>2267463 Это нормальная практика для коротких задачек. Кроме того имя переменной отображается в выводе. В курсе дискретной математики, насколько я помню, также использовали однобуквенные переменные для подобных примеров.
>>2267407>>2267414 >табуляции не работают >Табы работают как и положено Рекомендую ознакомиться с тем что такое табуляция, и как ей положено работать. На обоих скринах табы работают, иде тут ни на что не влияет.
>>2267488 Уже ознакомился с тем, что такое табуляция? Если да, то почему все еще непонятно, троллинг тупостью что ли? Подсказка для самых маленьких - скопируй результат с обоих скринов в любой редактор.
>>2267383 >>2267370 По сути кроме шипилеши и паре статей на хабре нет ничего на русском. Может, в java concurrency in practice есть что-то про JMM? Но во всяком случае тебе нужно именно шизостатьи и шипилешу пытаться понять, другого материала просто нет.
>>2267389 1) Нет 2) Они не то чтобы часто используемые на самом деле. Если понадобятся на работе, тогда и выучишь. На собесах обычно стандартные коллекции всегда спрашивают.
>>2267490 Вот узнал я что такое табуляция и как это отменяет тот факт, что виновата всё равно иде от жидбрейнсов? Почему в VS Code красиво отформатированный вывод, а в жидбрейнсе кривое говно? Моё знание или не знание ни как на это не повлияет. Это нужно знать в первую очередь разработчикам в жидбрейнсе.
>>2267467 Это нормальная практика только для людей, которые не умеют программировать, то есть либо для математиков, которые хотят себе накидать программку, либо для студентов, которых программировать не учат, а учат списывать бессмысленные лабы. Для человека, который называется/хочет называться программистом, такая практика неприемлема никогда.
>>2267407 Заебал, блять, ты нихуя не ознакомился с тем, что такое табуляция. В терминале идеи таб по умолчанию - 4 проблела, а в vscode - 8. Гугли, как изменить. Если бы ты делал то, что тебе советуют, таких тупых вопросов бы не задавал. Тебе стыдно должно быть.
Аноны, а кто-нибудь решал задачку вида: - Стримить видео из источника А в хранилище - Параллельно читать из хранилища этот видео-поток по мере его доступности, показывать клиенту. Клиентов может быть несколько Все это желательно на self-hosted решениях.
Как вообще подступиться правильно? Особо крутых требований по перфоманцу нет, но похоже малой кровью будет сложно обойтись и надо запиливать/интегрировать продьюсера, консьюмера, брокера, хранилище. Хотя брокер может быть и хранилищем. Ебаный ступор и не с кем посоветоваться. Вообще про стриминг видео толкового не могу нагуглить ничего.
может неподходящий тред для вопроса, но поясните, джава вообще жива еще? такое ощущение, что ее выпиливают отовсюду и она держится только засчет базы устройств, которую надо поддерживать. или может есть сферы, где джава без альтернатив и такой и останется? но это просто взгляд дилетанта, можете не отвечать
>>2267617 Не ты недавно узнавал, что вообще за форматы видео такие, что через ажаксы передавать можно? Продолжай в том же духе, многого добъешься. Чел, напиши сначала обычный круд с хранилищем и брокером, потом стриминг к нему прикрутишь, не бросайся сразу изучать сто технологий
>>2267630 Жаба мертва, js мёртв, пхп мёртв, питон мёртв, плюсы мертвы. Шарп захватил мир. открой хедхантер и вбей в поиске "жаба", "пхп" и другие языки и сравни количество вакансий
Сап. Я правильно понимаю, что если я юзаю try-with-res, а потом в самом теле открываю что-то вроде бафферед ридер, я же должен его закрыть? Само оно не сработает? Вот так примерно: try (InputStreamReader isr = new ISR(new FileInputStream...)){ BufferedReader br = new BR(isr) //my own shitCode br.close(); } Если не закрыть, то будет типа утечка дескриптора потока или типа того?
>>2267630 Ти ебанутый? Джава давно уже есть везде, но только, блять, не на "устройствах". Этот высер про джаву в каждой микроволновке не актуален уже лет как 15
Да я понимаю про хранилище и брокер, я бы даже с радостью дрочнул на кафку. Просто заказчик у меня мелкий и для mvp это пиздец оверкил и вряд ли смогу согласовать. Как всегда, блядь, амбиций дохуя, но нужно недорого, быстро и качественно. Да еще и облака чтобы дешевые были. Охуенно.
собсна поэтому и думаю как бы пооптимальнее сделать, с учетом того что не будет у нас лютой нагрузки, максимум 5-10 потоков на запись и 5-10 на чтение.
>>2267630 >такое ощущение Законный вопрос - откуда такое ощушение? Если это прочтения тредов в /pr - то это явно не самый релевантный источник данных. Можешь посмотреть вакансии по разным языкам на хх, это явно более объективный источник.
>>2267643 помню для ип ставил всякие джава плагины в браузер чтобы работал свисток. и так было у многих банков. сейчас никакие плагины почему-то не нужны, да и свисток тоже.
>>2267630 На устройствах, ты про мобилки? Там сейчас Kotlin + Java. На бекенде джава никуда не уйдет в ближайшие лет 10-15, только если сам оракл не похоронит польностью джаву и откажется от какой-либо дальнейшей поддержки.
>такое ощущение, что ее выпиливают отовсюду Ну смотри: 1. Java на кнопочных мобилках, J2ME, вот это все. Умерло вместе с кнопочными телефонами, все переехали на андроид и iOS. 2. Java на десктопе. AWT/Swing/JavaFX/SWT. Еще кое-где используется, но считай, что умерло, десктопные приложения сейчас очень мало кому нужны, да и к тому же есть гораздо более продвинутые Qt/Electron. 3. Java в браузере. Так называемые джава-апплеты. Умерли вместе с flash/silverlight. Вернее их убили просто. 4. Java на фронтенде. GWT/Vaadin. Местами все еще используется, но по факту эти инструменты - говно, и от них отказываются. 5. Java в специфических местах вроде микроконтроллеров и симкарт, java embedded, java card, вот это все. Никогда не было популярно и сдохло, так как устройства получались слишком дорогие. Ембеддед гораздо проще и дешевле на Си писать. 6. Java на бекенде. Жива более чем. По сути вся джава-работа именно тут находится и находилась всегда, если не учитывать андроид. Все, что перечислил в предыдущих пунктах, никогда толком-то и не было популярно, когда как на серверах жабу активно крутили уже в конце 90-х и начале нулевых. Когда на бекенде использовали java ee, но он потерял популярность, и сейчас все на спринге пишут. Правда сейчас появились кваркус и микронавт, может через сколько-нибудь лет и они выстрелят.
>>2267647 Джава плагин для браузера нужен был для джава апплетов. Сейчас они почти везде выпилены. В современных браузерах джава апплеты, как и adobe flash и silverlight, просто не поддерживаются. Да и сами апплеты выпилены из новых версий джавы, так как не нужны никому больше.
>>2267660 >>2267653 спасибо за развернутый ответ. наверное и правда просто иллюзия. раньше куда не приду, за какой пк не сяду, везде в значках на панели задач висело, что джава требует обновления. сейчас нет такого, джава просто ушла с десктопа и все. ну говорю, просто дилетант, не слежу в целом за этим.
>>2267637 Лучше закрывать. Но в данном конкретном случае - ничего не будет, т.к. у BufferedReader нет никаких нативных ресурсов, которые надо бы было закрывать. Так что ничего такого не будет.
В данном случае лучше написать: try (BufferedReader reader = new BufferedReader(new ISR(new FileInputStream...))) только надо учитывать возможные проблемы в конструкторах. Например если ты в InputStreamReader передаешь кодировку как строку и там шляпа, вместо кодировки, то FileInputStream у тебя останется не закрытым, тогда лучше делать try (FileInputStream in = new FileInputStream("foo"); BufferedReader reader = new BufferedReader(new InputStreamReader(in)))
На самом деле печально, что Жава почтипроебала дектоп. Есть ряд хороших тулов под винду и было бы неплохо иметь их кросплатформенными. А то посмотришь что есть для работы с Ораклом под мак и хочется плакать.
>>2267678 Замечательно, что жаба проебала десктоп. Хорошо, что такие поеботы, как жирная тормозная идея, больше никогда в индустрии не возникнут. Плохо только то, что вместо жабы теперь ещё более медленный электрон.
1. С# на мобилках, Xamarin, вот это все. Умерло вместе с windows phone, все переехали на андроид и iOS. 2. С# на десктопе. WinForms, WPF. Еще на винде используется, но считай, что умерло, десктопные приложения сейчас очень мало кому нужны, да и к тому же есть гораздо более продвинутые Qt/Electron. 3. С# в браузере. Так называемый silverlight. Умерли вместе с flash/applets. Вернее их убили просто. 4. С# на фронтенде. Blazor. Местами все еще используется, но по факту эти инструменты - говно, и от них отказываются. 5. С# в специфических местах вроде микроконтроллеров и симкарт, DotNet 5+ IoT, вот это все. Никогда не было популярно и сдохло, так как устройства получались слишком дорогие. Ембеддед гораздо проще и дешевле на Си писать. 6. C# на бекенде. Жив более чем. По сути вся сярп-работа именно тут находится и находилась всегда, если не учитывать нокию. Все, что перечислил в предыдущих пунктах, никогда толком-то и не было популярно, когда как на серверах сярп активно крутили уже в начале нулевых. Когда на бекенде использовали ASP, но он потерял популярность, и сейчас все на ASP.Net пишут.
>>2267692 Так специализация языков это верно и правильно. Уверен, что в браузере если появятся другие языки, они не убьют жс, а займут другую узкоспециализированную нишу и будет работать в паре с жс. И из них станут популярными 1-2.
>>2267678 Жава на десктопе популярной особо-то и не была. В основном всегда был дельфи, дотнет, а позже qt и электрон. В этом плане жаба в стороне всегда была, хотя некоторые продукты вроде тех же иде от джетбрейнс запилить смогли. А позже, когда стало понятно, что у конкурентов фреймворки получше будут, да и сам десктоп как платформа сдулся, в оракле решили забить на развитие javaFX, который ранее считался перспективной десктоп технологией. Думаю, к 2030 году и AWT/Swing выпилят из jdk, так как они уже морально устарели. Даже в самом джетбрейнсе пилят свои новые инструменты для десктопа. Вот кому интересно, в прошлом году набирали стажеров пилить UI фреймворк https://internship.jetbrains.com/projects/887/
>>2267684 Изначально Sun Microsystems хотели сделать серебряную пулю для всех платформ под все и сразу, поэтому в конце 90х решили запилить свои кроссплатфоменные окошки. Получилось так себе, но теперь это говно попробуй еще выпили. Вообще это сейчас понятно, что сделать инструмент для всего и сразу в принципе невозможно, но тогда в это народ охотно верил, чтож поделать.
>>2267703 В шарфе годные окошки под винду. Ну и в юнити он взлетел, хоть там от шарпа только синтаксис, а сам шарф компилируется в С++, но тем не менее, получилось годно. Ну и asp.net core. А все остальное сдохло. Под мобилки тоже когда-то на шарфе писали, но замарин не стал популярным, а windows mobile умер. Какие-то микроконтроллеры тоже пытались прогать, но не взлетело, ибо нахуй не нужно. Ну вот и все, собственно.
Смотрите, даже тянки легко, просто и без задней мысли вкатываются в многопточное программирование, а вы с трудом понимаете, что делают методы у класса Object... https://www.youtube.com/watch?v=YAb7YoEd6mM
>>2267494 Ок, понял тебя. В прошлом году обошел все крупные банки (включая несколько инвестиционных), ритейл и так еще горстка малознакомых компаний. Почти везде была дрочка JMM. И нет на happens before дело не останавливалось.
По идее знание JMM довольно специфическая вещь, которая нужна далеко не всем, а только людям, которые занимаются чем-то таким, про что эта тяночка рассказывает >>2267718
>>2267742 >А что конкретно спрашивали помимо happens before? Правила инициализации final полей при обращении из нескольких потоков. Инициализация в конструкторе и т.д. и все вокруг многопоточки. Как работают локи и их виды. Рассказать про виды кешей процессоров и зачем требуются блокировки. Как написать неблокирующий код и т.д. Там беседа растянулась на час-полтора. Спрашивали почти в каждой конторе.
Такое ощущение, будто шарп существует не сам по себе, а вопреки жабе, чтобы быть ей костью в горле. Стоит жабе сдохнуть - сдохнет и шарп, потеряв смысл своего существования.
Вот кстати да, так обидно что жаба-мир не высрал ничего даже близкого к Юнити за всю историю. Хотя языки схожи, точнее жабушка то это хуйня из под коня, но котлин вполне себе может сравниться по фичам
>>2268068 Как-то толсто что-ли. Т.е. ты проверяешь кучу сред и редакторов на вывод табов вместо того, чтобы учиться программировать? Люди, которые не пользуются идеей ее будут ей пользоваться. Люди, которые пользуются идеей, продолжат ей пользоваться
>>2268078 Мне просто не понятно, почему её так нахваливают. Среда платная, нет русека, настройки постоянно слетают и ещё куча недостатков разной степени бесячести. При этом есть бесплатный среды, которые не хуже. Зачем платить жидбрейнсам за их халтуру?
>>2267686 Проблема в нормальном UI фреймворке. Swing уже сильно устарел, JavaFX забросили. Одна надежда что Composer будут развивать и допилят до нормального состояния.
>>2267696 >Хорошо, что такие поеботы, как жирная тормозная идея, больше никогда в индустрии не возникнут. Лучше бы молчал, чем рассуждать на темы которые не понимаешь. Идея жрет ресурсы из-за количества подсказок, инспекций и плагинов. Первые версии Идеи прекрасно работали на Пентиум 3, вот только там даже автокомплит был неполноценный без учета видимости и прочего.
>>2267717 >Жава на десктопе популярной особо-то и не была. А могла бы и стать, особенно с внедрением граля.
>>2267848 >Жидбрейнс переходят к тонкому клиенту и облаку Там он не такой уж и тонкий, некие подсказки и инспекции будут локальными. Ну и плюс это все таки полноценный редактор, а не трансляция видео как в классических тонких клиентах. Но вот Swing видать их заебал в конец, что они решили писать свой UI фреймворк.
Есть аноны из тинькофа? Какие алгоритмы и задачи спрашивают на алгособесах? Есть что-то крайне тяжелое олимпиадное вроде динамического программирования?
>>2268198 Ты когда делал вывод о простоте динамического программирования, заглядывал хоть раз дальше примитивных примеров с арифметической прогрессией?
>>2268198 Чел, ты был хоть раз на олимпиадах по программированию будучи в школе или в вузе? Хотя бы на уровне региона, а не своей сельской школы в пгт на 10к тел? На таких олимпиадах тебе запихнут в анус какие-нибудь декартовые деревья вместе двумерным динамическим программированием, так что ты потом будешь остаток жизни охуевать от гениальности тех, кто такие задачи умеет решать.
По учебным материалам у Джавы такое раздолье, столько всяких талмудов с упражнениями, взял для себя "Introduction to Java and Data Sctructures". А на шарпе одно говно от индусов.
Как вам идея вкатиться в жабускрипт+реакт, годик отработать на них, а потом начать вкат в Свифт? макпуками и айфонами пользуюсь давно и ни за что не буду жрать говниндовс и говноид
>>2268580 Даун, речь о быстром вкате в айти через жабускрипт, затем набивание опыта в нём + реакт, затем попытка вката в свифт. Быстро вкатиться в свифт не получится, да и для фронтенд господина всегда будет работа, если со Свифтом туго пойдёт, не легаси-парашу же учить первым ЯП, типа жабы.
Просто хотел поделиться. Давно в качестве хобби ковырял java, всякие говно видеоуроки смотрел, чувствовал себя обезьяной с гранатой, что-то делаешь, но как-то без понимания зачем, и почему так, а не иначе. Понимания просто минимум было, и интереса не было особенно. Так, вяленько, пару раз в нелю что-то делал. Купил эту книгу, думал будет так же уныло как и в уроках, и неожиданно прямо появилось ощущение понимания того что происходит, и попёр интерес. Уже до середины дочитал и прямо прёт. Всем рекомендую. Хотя отзывы были противоречивые о ней.
>>2268632 Валяется такая в магазине около дома уже год со скидосом 50%, по цене бумаги на которой напечатана. Никому нахуй не нужна, включая меня потому что неснижаемым стандартом давно считается восьмая версия языка, все что меньше для ретардов и тормозов
>>2268555 >>2268412 Да ну, на шарфе есть та же clr via c#, всякие книжки албахари и скита. А для вкатунов The c# player's guide годная книжка. А еще вроде бы и шилдт есть, я по нему будучи 8 классником вкатывался в шарп 10 лет назад.
Для джавы хороших книг не то чтобы много - effective java, java concurrency in practice, хорстманн, может быть шилдт, да и все наверное, не сильно много инфы.
Ребята, а вот предположим у меня есть два класса: класс A для создания объекта (через конструктор) + метод для его демонстрации; класс B где есть только методы инициализации объекта класса А и разные манипуляции над ним.
Вопрос: Я же не могу подогнать А и В под один интерфейс и имплементировать его (по понятным причинам разности методов). Мне теперь надо тогда их подгонять под абстрактный класс или делать просто два интерфейса отдельно один для А и отдельно один для В?
А есть в других языках в стандартной библиотеке такие же удобные коллекции, как в джаве, только без оверхеда на боксед-классы примитивов? Го, шарп, плюсы, котлин, скала, свифт?
>>2268861 >clr via c#, всякие книжки албахари и скита это талмуды без учебных заданий, их разве что конспектировать и по сто раз повторять что написал, иначе толку никакого это читать не имеет, всё равно всё из башки выветрится
А сколько стоит вызов метода в джаве? Ну вот весь чистый код, солиды и паттерны стоят на том, что нужно обертки всякие делать, делать методы мелкими. И я никогда не слышал сколько это стоит(да, наверно я не читал достаточно серьезной литературы, где это есть). По памяти и по тактам процессора(в каких порядках хотя бы). Ну вот например абсолютно без логики метод-обертка над библиотечным методом.
>>2269002 Компилятор джавы всё заоптимизирует, чтобы получился эффективный байт-код, а потом жит-компилятор заоптимизирует байт-код под конкретный процессор.
>>2268780 Главное что ты у мамы молодец будешь когда кашку доешь
>>2268789 >i7 2xxx sandy bridge 32 ddr3 Я девелопал на каком-то i5 low voltage с 2мя ядрами и 16 гб и все было ОК. Проблем именно с идеей не было, проект собирался долго, но идея работала достаточно шустро.
>>2268861 Спасибо за рекомендованные книги, как закончу с "философией java", однозначно попробую ещё что-нибудь почитать. Про effective java много хорошего пишут.
Я стану крутым Java программистом и буду зашибать нереальные бабосики, пока C#-повские скотоублюдские выблядки буду жозенько верещать от собственной ущербности. База?
>>2269193 Ты не понял. C#-повские скотоублюдские выблядки, которые здесь срут - это и есть крутые Java-программисты, зашибающие нереальные бабки. И они понимают, что перестанут из зашибать, если не будут демотивировать армию вкатышей выбирать для вката жабу.
>>2270170 val i = someMethod() и сидишь гадаешь, что там за залупа придет из someMethod(). А потом сигнатуру изменят и у тебя даже другие методы могут изменить сигнатуру.
>>2270379 Ты пишешь какую-то хуйню. Автоматический вывод - только добавляет ошибок при рефакторинге. Нет такого типа ошибок от которого мог бы помочь автовывод.
>>2270300 > и сидишь гадаешь, что там за залупа придет Аргументы в лямбдах в 99% случаев без указания типа, или ты еще не перешел на 8 жабу? ctrl+space и ничего не убудет от того что ты знаешь или не знаешь что там приходит, если ты конечно не в блокноте печатаешь. > А потом сигнатуру изменят и у тебя даже другие методы могут изменить сигнатуру Так в этом и поинт, не нужно ебаться с рефакторингом 100500 раз переписывая одно и то же
>>2270402 > информации ноль А где ты ее ищешь? Гугл выбрал этот язык приоритетным в андоед деве и всё свое говно переписывает утилизируя его синтаксис по максимуму. А жыддбрейнсы только и рады. Единственные вменяемые туторы не уровня javadoc только на сайте ведра, но они специфичны для платформы. Все остальные платформы для котлина это не для вкатунов. Хотя смотря что тебе нужно. Доков на офф сайте тоже хватит для многих вещей, но они покрывают глубину.
>>2270348 Нас в универе учили сначала Паскалю, потом типа С++ (но по факту обычный С), а потом семестр Джавы (типа ООП, но по факту лишь базовый синтаксис).
>>2270417 >Аргументы в лямбдах в 99% случаев без указания типа, или ты еще не перешел на 8 жабу? Какие аргументы будут у лямбды в основном зависит от твоего кода. Если только ты не дергаешь сразу метод у возвращаемого типа.
>Так в этом и поинт, не нужно ебаться с рефакторингом 100500 раз переписывая одно и то же Ты по крайней мере будешь знать где у тебя и что поменялось.
const val partitionKey = 1_000_000 val counter = AtomicInteger() fun nextId() = counter.incrementAndGet() fun incrementer() = nextId() + partitionKey
Поменял AtomicInteger на AtomicLong все скомпилировалось, но потом в БД взорвалось. Кстати поля они так объявлять не позволяют, видать понимают что это способ выстрелить в ногу.
>>2270357 >>2270402 Слышал что жава не очень дружелюбна к нюфагам. Что обязательное ооп мешает. И что жава дает какие-то когнитивные искажения, типа синдрома утенка.
>>2270474 > Какие аргументы будут у лямбды в основном зависит от твоего кода. Что это значит? Что будет в val тоже зависит от моего кода
> Ты по крайней мере будешь знать где у тебя и что поменялось. Я и так буду знать когда буду делать коммит. Зачем мне вручную копипастить вывод типа в восьмистах классах чтобы увидеть каждый кейс? Ты сойдешь с ума и просто выкинешь время если будешь разбирать их по отдельности
> но потом в БД взорвалось Тебе в любом случае писать тесты чтобы отловить и такие случаи. Или после того как я вручную поменял с лонга на инт тесты можно не писать?
> поля они так объявлять не позволяют Через val без явного типа? Можно же
>>2270500 > Слышал что жава не очень дружелюбна к нюфагам Ага, то ли дело кресты, они простые и дружелюбные. > Что обязательное ооп мешает В шарпе тоже обязательное ООП. > И что жава дает какие-то когнитивные искажения, типа синдрома утенка. Характерно для всех языков, особенно для динамически типизированных.
Почаны, а кто-нибудь вообще видел в своей жизни последствия unsafe publication в жабушке?
Почитав анона >>2267798 я позадрачивал один из пунктов про final поля и unsafe publication, но создать какую-то ДЕМКУ где была бы демонстрация такого поведения - хуй получится. А жаль, был обы интересно.
>>2270503 >Что это значит? Что будет в val тоже зависит от моего кода Ты можешь вызвать функцию из библиотеки или кода сгенерированного из swagger.yaml. Там поменяют int на long - и у тебя тоже код поменяется потому что вывод типов автоматически выведет новый тип.
>Я и так буду знать когда буду делать коммит. Не будешь, у тебя вывод типов не влияет на исходники. В моем примере и nextId() и incrementer() поменяют возвращаемый тип автоматом.
>Тебе в любом случае писать тесты чтобы отловить и такие случаи. Увы, тесты на такие сложные случаи как переполнение обычно пишутся уже по результатам прод инцедентов.
>Через val без явного типа? Можно же Точно, просто поля можно, а вот аргумент главного конструктора с дефолтным значением - нет. Шляпа какая-то. Там можно а там нельзя.
В общем мой опыт повсеместного использования var/val по кодстайлу было такое требование скорее негативный. Приходится сильно полагаться на IDE. Иногда даже в IDE есть проблемы - например в show diff у тебя подсказки по типам не будет.
Как понять, когда надо обрабатывать исключения, а когда нет? Я подхожу к коду так, словно другой, кто бы читал и корректировал код, не умеет вообще программировать. Помимо обработки ошибок со стороны пользователя, я обрабатываю зачем-то вероятные (пусть и не сильно) ошибки программиста. Словно пишу для него готовый api, который он возьмет и будет собирать, как конструктор.
Вот на примере пика: метод обрабатывает один единственный тип исключения, судя по документации, но я его все равно обрабатываю даже, когда явно передаю туда имя класса, которое не может быть null. Но я это делаю, полагая, что внутри виртуальной машины может что-то наебнуться и getName() вернет null...
А еще, мой код никто и никогда не будет читать и использовать, потому что я пишу один и для себя, не работаю нигде и не участвую в опен сорс.
А еще я могу часа 2 сидеть и придумывать название переменной, которое идеально бы ее описывало, после этого пропадает всякое желание писать код дальше.
Кто сталкивался с таким? Как быть? Как жить? Мне это очень сильно мешает.
>>2270547 >В груви есть вещь намного функциональнее чем затычка к анонимному классу - кложуры Замыкания есть и джаве, если с версии 1.1, ничего сверхестественного и супер функционального в груви нет.
>>2270734 У меня всегда хотя бы1 вариант будет, сложней, когда вариантов много и я не знаю какой лучше из них. А бывает я уже выбрал имя, написал после этого достаточно кода, а потом мне в голову придет еще один вариант. Код застопится, и я возвращаюсь к выбору имени, могу так долго выбирать. Просто взять и выбрать что-то одно не получается. Постоянно чувство, что мог назвать лучше, с которым я не могу смириться.
>>2270746 А при чем тут язык? У меня такое в любом будет. Я уже много чего пробовал. Меня сейчас больше выбор области волнует. Пытался как-то в программирование микроконтроллеров на с++, потом в web пытался с node js писать бекенд, потом и фронтенд попробовал, потом в реверс инженеринг пытался вкатиться, чтобы писать читы (пока желание еще есть, но подзабил), сейчас больше в gamedev нацелен (изучаю opengl, потом на unreal engine возможно перейду). Но конкретно сейчас остановился на java, потому что на ней пишут под android (синтаксис kotlin не особо понравился на первый взгляд), а я как раз пишу игру на мобилку.
>>2270771 Потому что >Но я это делаю, полагая, что внутри виртуальной машины может что-то наебнуться и getName() вернет null... >Помимо обработки ошибок со стороны пользователя, я обрабатываю зачем-то вероятные (пусть и не сильно) ошибки программиста. Словно пишу для него готовый api, который он возьмет и будет собирать, как конструктор. А еще >Ты шизик, тебе к врачу надо
Я реально, походу, шизик. Какой-то бессмысленный перфекционизм постоянно.
>>2270777 Но ведь если в машине что-то наебнулось, то пущщай падает, а то у тебя так и null по системе будет гулять, или еще какая-то ебанина. Ты бы еще error отлавливал, чтобы юзер есличо успел оперативочки докинуть.
Челы, а как лучше прелоадить данные для тестов в базу? Ну вот мне юзеров накидать нужно всяких, заранее хеши генерировать и потом в ручную складывать в data.sql кажется костыльным Что best practices в данном случае? @PostConstruct?
>>2270842 А что петпрожекты? Там тупо обновить версию в пом.хмл, и скорее всего ничего не сломается. Это не тырпрайз проект на 500к строк, где полпроекта перестанет компилироваться.
>>2270842 >Кто нибудь перекатился на 17? В качестве теста смигрировал рабочий проект. Но в прод пока не деплоим ждем команды от инфры, что 17 образ годен для прода.
>>2270689 > Там поменяют int на long - и у тебя тоже код поменяется Лямбда тоже может быть вызвана из библиотеки или сгенерированного из swagger.yaml и ее параметр тоже неявно поменяется и ты так же это не узнаешь. Тут точно такие же проблемы будут, если юзать этот параметр без проверок
> у тебя вывод типов не влияет на исходники. Не влияет, но ты же в своем примере сам заменил этот тип у поля. При чем ты же знал что выведется слева. Или хочешь сказать что инженегры jdk изменят апи и конструкция new AtomicInteger() будет выводить слева другой тип? Вот если поле полагается на возвращаемый тип библиотечного метода, то тут да, стоит его явно указать
> Приходится сильно полагаться на IDE Так весь котёл очень сильно на идее завязан. Подсказки для типов, для корутин, их дебаг. На старте даже отдельного сервера для статического анализа не было, форматирование, компиляция всё внутри идеи. Их за это многие критикуют кто не хочет ее юзать
>>2270845 А как же все эти джавовские ритуальные пляски вокруг безопасного депрекейшна и обратной совместимости или это все легенда? Или многие завязываются на всякие ансейф или недокументированные штуки?
>>2270690 > Как понять, когда надо обрабатывать исключения, а когда нет? Если ты хочешь обработать это исключения для нижестоящего кода как то по особенному, тогда лови и обрабатывай. Если тебе похуй на нижестоящий код, тогда кидай выше или игнорь
>>2270794 В плане чтения - да, DSL получается красивый. А вот писать на нем это боль, автодополнение в грувях почти нет, валидации тоже, только в рантайме no such property.
>>2270914 А это не важно, мне скорее интересно почему столько проектов сидят на 8 жаве. Логика такая, если у жавы обратная совместимость, значит все должно быть норм после переезда на новую версию, значит никаких затрат для бизнеса, а судя по тому, что многие не переезжают, значит нихуя нет этой совместимости, и переезд на новую версию это не просто.
>>2270919 Так я и юзаю в своих проектах. А в рабочих такие решения я не принимаю. >>2270920 > судя по тому, что многие не переезжают, значит нихуя нет этой совместимости, и переезд на новую версию это не просто. Дваждую.
>>2270907 Сохранить полную обратную совместимость можно только одним способом - прекратить выпускать новые версии. А развивать язык надо, надо чинить то, что сделано криво, выпиливать говно динозавров и прочее. Но совместимость поддерживать хоть какую-то приходится, все популярные языки хоть что-то для этого делают. Вот и получается, что на новую версию перейти вполне возможно, но для этого недостаточно просто заменить старую JDK на новую, надо починить сломавшиеся вещи в проекте и хорошо всё протестировать, на что уходит много времени, а запиливание новых фич никто не отменял.
Вот такой вопрос в билете встретил. Что сюда написать ? Я знаю как пользоваться этой аннотацией. Но почему то мне каэется это не то что нужно будет сказать на экзамене .
>>2271059 Да , в моем вузе мы учили спринг весь сем. Ну в принципе я и вписал то же самое что ты мне скинул. Я думал может этот вопрос подразумевает более глубокое понимание работы этой аннотации. Как она под капотом работает. Про сервлеты писать вся хуйня
Хочу сделать себе по факту десктопную приложуху с вебмордой через локалхост на спринге, но которую потом можно быстро переделать на бекенд. Так вот нужна встраиваемая база(если буду делать нормальным бекендом - поменяю на постгрес), которая пишет на диск и хорошо работает с хибером и спрингдатой. SqLite вроде не очень с хибером. Делать h2 с сохранением на диск - норм для простого прототипа?
>>2271059 > В вузах заставляют учить на парах спринг? Говновузы крышует какая нибудь местная галера, обычная практика. У нас так было, все стены в рекламе о практике и стажировке в роли перспективного гребца в успешной международной компании.
Я правильно понимаю, что если я запущу спринг приложение на компьютере, который входит в локальную сеть, то другие компьютеры из этой локальной сети также смогут открыть приложение?
Сап. Может кто знает, есть ли способ заставить класс, реализующий интерфейс, иметь статическую версию метода с определенным именем и сигнатурой? Просто если в интерфейсе указывать модификатор static, то предполагается что это собственный метод интерфейса, а как декларировать классу такое обязательство?
>>2271325 Да это просто какой-то заговор синьоров, чтобы себе зарплату завышать. Их ансейф рефлектив мультитреадинг рекурсив-дженерик писанину чтоб дешевые джуны не понимали.
>>2271404 Класс - нет, но статический метод можно добавить в интерфейс. Если тебе нужна фабрика для создания инстансов, то можно просто сделать: static <T> T newInstance(Class<T> clazz) throws Exception { returm clazz.newInstance(); } Или через метод хендлеры нафигачить Supplier-ов.
>>2271405 ну да, так и думал в принципе, спасибо >>2271416 >>2271423 Сделал подобное (статик метод интерфейса пинал не-статик метод реализующего класса и возвращал типизированный объект Т, но потом снес это к хуям: из-за того что это место должно выполняться много раз, решил что упускать память на паразитный инстанс каждый вызов, только чтоб вызывать его обжект-метод не хочется). По этой же причине не стал лезть в рефлекшен. За счет этой фичи хотелось сделать выделение метода, а без нее придется оставить место с некрасиво повторяющимся 4 раза кодом, раличающимся только типом создаваемого статик-методом объекта Но спасибо за ответы.
>>2271428 >Сделал подобное (статик метод интерфейса пинал не-статик метод реализующего класса и возвращал типизированный объект Т, но потом снес это к хуям: из-за того что это место должно выполняться много раз, решил что упускать память на паразитный инстанс каждый вызов, только чтоб вызывать его обжект-метод не хочется). По этой же причине не стал лезть в рефлекшен. Если сделать через метод хендлер и кеш, то никакой утечки не будет. А MethodHandles работают почти так же быстро как и прямой вызов метода. https://pastebin.com/Kqt0dykE
Воспроизводится не всегда. Аналогично кейсу со SO - у меня в коде есть безумный цикл - я сразу подумал - может внутри цикла нет safepoint , также рядом с зависанием всегда присутствует GC FULL. И jstack -F выглядит аналогичным образом - все в BLOCKED, а пара в цикле в IN_JAVA
У меня есть coredump зависшего процесса порождавшего треды - я могу по нему определить safepoint-ы имеющиеся в коде? Или их как объектов не существует?
>>2271576 Вроде как сейфпоинты присутствуют в конце каждого метода/тела цикла. Сейфпоинты можно увидеть через jfr, но нужно создать кастомный профиль, ибо изначально сейфпоинты не отслеживаются
>>2271576 >Safepoint - он существует в виде какого либо объекта? Если это скомпилированный JIT код, то сейфпоинт это некоторая конкретная инструкция обычно что-то связанное с чтением участка памяти, если включить -XX:+PrintAssembly то их даже можно увидеть http://psy-lob-saw.blogspot.com/2015/12/safepoints.html
>может внутри цикла нет safepoint Если цикл длинный, в нем нет вызовов методов или они все заинлайнились или создания объектов - то почти наверняка в нем не будет сгенерировано сейфпойнтов.
>У меня есть coredump зависшего процесса порождавшего треды - я могу по нему определить safepoint-ы имеющиеся в коде? На новом процессе делаешь -XX:+PrintAssembly, дальше смотришь какие инструкции будут помечены коментом ‘{poll}’ или ‘{poll return}’ это и есть сейфпоинт.
Напиши потом, что получилось, очень интересно узнать. чем 101 раз обсуждать почему сринг не вайрит бин
>>2271759 Спасибо! Проверять уже после выходных буду, воспроизводилось на проме и то не всегда, возможно нужно еще GC нагружать, не знаю, а на тестовых не удалось воспроизвести.
В цикле впринципе то-же что и в кейсе что я прикрепил - гигантский связанный список, берется длина списка перед циклом и по длине идет итерация и получение элемента с соотвествующим индексом при определенных условиях, так что вызовы методов есть
int fragmentCount = fragments.size();
List<Fragment> filteredFragments = new ArrayList<>((int) Math.ceil(fragmentCount / totalSegments)); for (int i = 0; i < fragmentCount; i++) { if (segmentId == ((i + shift + gpCommandCount) % totalSegments)) { filteredFragments.add(fragments.get(i)); } }
>>2271497 Спасибо, пчел. Но я не залазил пока в такие инструменты. Если дашь ссылку где про это почитать то попробую на досуге восполнить упущение (имею ввиду метод-хэндлеры, а рефлекшен и дженерики мне норм знакомы.)
>>2271497 Я так понимаю, что суть такая, что я один раз в начале работы программы, которая конструирует хуиллион объектов, делаю кэш типа "Класс <-> Метод-фабрика", и только здесь один раз идет небольшое падение перформанса на рефлекшен, а потом я просто получаю по ключу нужный метод и вызываю? Выглядит красиво и просто, если я все правильно понял. Спасибо.
>>2264711 На пхп почти всегда пишут, что сойдет если вы писали и на других фреймворках типа symfony/yii2. То есть все эти вакансии можно объединить и выйдет что-то около джавы, думаю 2.5к+ вакансий.
Как мне сбилдить мейвен проект, если в аппликейшен пропертисах стоят переменные среды и мейвен требует их при билде, а я хочу их задавать при запуске приложения?
>>2272386 Странный вопрос. Переменные среды, требуемые мавеном, только при сборке и будут использоваться. Приложуха ни о каком мавене не знает и использует переменные среды независимо от него. Разве что сборка настроена так, чтобы мавен генерировал какой-нибудь конфиг, в него подставлял значения переменных, упаковывал в жарник, а приложуха этот конфиг юзала.
>>2272486 Не смотри на жабу с точки зрения пхп, совершенно разные задачи. В жабе у тебя огромный сервер с тоннами логики, интеграцией с 20 смедными системами через JMS, AMQP,, Kafka, SOAP, REST рассылка отчётиков на почту и уже как следствие клиент, чтобы можно было работать с сервером. Веб-клиент - это только один из множества вариантов, есть дохуя других.
>>2272620 А я вот не смеюсь. У нас пилят дохуя новых мелких проектов со сроком жизни в пару месяцев – реклама стажировок, программ трудоустройства, курсов, новых сервисов и прочего говна, и у половины бэк на жабе с бутом, хотя там реально хватило бы пхп и ноды.
Допустим у меня в таблице есть 5 строк с id от 1 до 5. Я удаляю строку с id=5, добавляю новую строку, и печатаю в консоль все строки таблицы. Выведутся строки 1, 2, 3, 4, 6. Так и должен работать автоинкремент? В коде сущности стоит generatedvalue identity. Или нужно после удаления объекта из таблицы сбрасывать счетчик id?
>>2272702 Да, твой хибернейт тут не при чём. Базе нужно быстро сгенерировать следующее значение для новой записи, и она не будет ни хранить таблицу свободных ID, ни каждый раз за O(n) искать первый свободный, вместо этого она просто инкрементирует счётчик.
Вот что мне нравится в дотнете, это то, что ставишь вижлу и у тебя сразу всё есть от консоли до всяких ASP.NET. А в джаве надо всё с миру по нитке собирать. Там скачай, тут допиши с разных сайтов разной степени паршивости. По незнанию можно и вирусняков накачать.
>>2272714 Потому что всё это открытые проекты от совершенно разных независимых сообществ по всему миру, а не одна корпорация-вендор с мнимым опенсорсом. Действительно круто в дотнете то, что на каждой винде из коробки есть компилятор хоть и древнего, но шарпа, и можно имея под рукой только блокнот и командную строку написать вообще всё. Хотя кому это может понадобиться.
>>2272777 Спасибо за ответ. Я почти всегда стараюсь так делать, но где-то у Тагира Валеева слышал что он не так делает, не помню где именно. Интересно почему?
>>2272781 Да потому что он, как и все нормальные люди, в рот ебал лишние телодвижения делать. Вот в котлине другое дело, разница в одну букву, да и не объявишь переменную без var/val никак.
>>2272811 То есть компилятор всегда превращает локальные переменные в final которые может? Если я буду явно писать final это как-то скажется на производительности?
>>2272826 В жабе и всех остальных языках, выросших из неё, очень любят делать лишние телодвижения. В названиях классов и методов по целому предложению, без автодополнения и копипасты писать код невозможно. Из-за длинных идентификаторов операторы не умещаются в одну строку с ограничением 120 символов, и приходится переносить половину выражения на новую строку Тривиальная логика размазана по десяткам классов. И на фоне всего этого беспокоиться о лишних пяти буквах при объявлении переменных, как минимум, странно.
>>2272834 >В названиях классов и методов по целому предложению Потому что код пишется для людей, которые будут его читать. >без автодополнения и копипасты писать код невозможно И че? В блокноте только долбоебы пишут. >Из-за длинных идентификаторов операторы не умещаются в одну строку с ограничением 120 символов, и приходится переносить половину выражения на новую строку И че тут лишнего? >Тривиальная логика размазана по десяткам классов SOLID, DRY, Unix-way. >лишних пяти буквах при объявлении переменных, как минимум, странно. В рот ебал эти лишние телодвижения.
Почему джаву писали с С++, но не завезли перегрузку операций типа +, -, *, /, <<, >> и т.п.? В итоге вместо няшного кода типа: MyClass a,b; a+b; Надо писать уродства типа: a.add(b);
>>2273031 Личный закидон гослинга > There are some things that I kind of feel torn about, like operator overloading. I left out operator overloading as a fairly personal choice because I had seen too many people abuse it in C++. I've spent a lot of time in the past five to six years surveying people about operator overloading and it's really fascinating, because you get the community broken into three pieces: Probably about 20 to 30 percent of the population think of operator overloading as the spawn of the devil; somebody has done something with operator overloading that has just really ticked them off, because they've used like + for list insertion and it makes life really, really confusing. A lot of that problem stems from the fact that there are only about half a dozen operators you can sensibly overload, and yet there are thousands or millions of operators that people would like to define -- so you have to pick, and often the choices conflict with your sense of intuition. Then there's a community of about 10 percent that have actually used operator overloading appropriately and who really care about it, and for whom it's actually really important; this is almost exclusively people who do numerical work, where the notation is very important to appealing to people's intuition, because they come into it with an intuition about what the + means, and the ability to say "a + b" where a and b are complex numbers or matrices or something really does make sense. You get kind of shaky when you get to things like multiply because there are actually multiple kinds of multiplication operators -- there's vector product, and dot product, which are fundamentally very different. And yet there's only one operator, so what do you do? And there's no operator for square-root. Those two camps are the poles, and then there's this mush in the middle of 60-odd percent who really couldn't care much either way. The camp of people that think that operator overloading is a bad idea has been, simply from my informal statistical sampling, significantly larger and certainly more vocal than the numerical guys. So, given the way that things have gone today where some features in the language are voted on by the community -- it's not just like some little standards committee, it really is large-scale -- it would be pretty hard to get operator overloading in. And yet it leaves this one community of fairly important folks kind of totally shut out. It's a flavor of the tragedy of the commons problem.
>>2273958 Через командную строку запускаешь? У тебя проблема не в жабе, а в командной строке, которая по дефолту работает в древней кодировке CP866 вместо UTF-8. Можешь выполнить команду "chcp 65001", будет тебе русек. Или заморочиться с локалями и кодировками на уровне жабы, но это шиза пиздец
>>2273965 Через идею запускаю. Вроде никогда не было с этим проблем. Если через cmd, то отображается нормально, только если я выполнил cp 65001, а в идее пишу в кодировке cp1251. Пиздец какой-то.
>>2273980 >>2273974 Тоже когда с кодировкой ебусь, ахуеваю, т.к. это случайный момент про который в английском учебнике обычно не написано, но зато опыт как решать очередную хуйню вроде, так что превозмогай.
>>2274005 Мне за последние три года ни разу не приходилось писать в консоль на русском. А сейчас вот понадобилось, чтобы и у петровичей в виндовой консольке сразу правильно отображалось, и у линуксоидов. Write once, run everywhere, ебобаный рот.
>>2274010 А я хеллоу ворлд начинал писать именно в консоли на русском, т.к. любопытно было свою строчку дописать, знатно поебался тогда, но с гуглом решил, тебе думаю проще будет т.к. на опыте
>>2274563 Неправда. Тут еще вкатуны типа меня, которые прохлаждаются в итт-треде, лишь бы не идти учить релевантный стек и не идти по собесам и не идти на работу.
Кстати, по поводу кодировок, в 17 джаве оказывается появился метод System.console().charset(), который вроде как должен возвращать правильный результат. Вот только это во первых аж 17 блядь версия (впрочем, нормальный способ достать pid тоже появился только в 11), а во вторых System.console() в иде всегда возвращает null, так что всегда надо докладывать fallback кодировку.
>>2274682 Вот это анон >>2274687 прав. В зависимости от предыдущего опыта будут задавать вопросы по этому. Ещё могут спросить про технологии, которые они у себя используют. Может быть, попросят спроектировать что-нибудь несложное
93 участника на стажировку, которая начнется через месяц. То есть еще месяц есть чтоб на нее записаться. Это пиздец, вкат давно умер, кто вкатывается ливайте пока не поздно.
>>2274815 90% из них овощи, не имеющие своего пет проекта. Если ты сделал свой пет проект, и хорошо знаешь теорию по технологиям, то очень высокий шанс попасть на стажировку.
>>2274896 Если бы градл поддерживал мавеновские плагины, может и было бы тем же самым. Но он нихуя не поддерживает, и поэтому вместо декларативного описания проекта приходится руками программировать скрипты сборки, в которых хуй разберёшься. И ещё ломают обратную совместимость каждые полгода, решение проблемы со стаковерфлоу тупо не заработает из-за выпиленного API.
>>2274896 Какие гайды, вкатунам кроме как добавить зависимость и нажать билд ничего не надо и про это разве что на заборах не написано. Гуглить так и так придется, если никчемский не умеет может сразу идти нахуй. > JSON А что не HOCON? покормил
>>2274915 Там все те же по задачам плагины, но для грэдла. 99% конфигов это та же декларированная настройка плагинов, но компактно. Писать какую то императивную логику руками это не нужно в 99% случаев. Про обратную совместимость согласен.
>>2274625 ВНЕЗАПНО Сonsole.charset() возвращает кодировку консоли, а если консоли нет то и возвращать нечего. Используй Charset.defaultCharset() в надежде что IDE тоже будет его использовать.
>>2275414 >>Charset.defaultCharset() в надежде что IDE тоже будет его использовать >В windows это всегда не так.
Чел ты не понимаешь как это работает. У программы вообще есть только stdin/stdout/stderr которые вообще бинарные. Твоя приложуха пишет туда текст который конвертируется из дефолтного для Java UTF-16 в некую кодировку. По дефолту System.out использует дефолтную кодировку ОС, но под Windows есть проблема, что консоль читает данные в 866, а не 1251 которая дефолтная кодировка системы. Под Linux тоже можно сделать такую херню, но по умолчанию там кодировки совпадают. Чтобы решить это и сделали класс Console, который читает кодировку консоли и пишет именно в ней, а не дефолтной для системы.
А когда ты запускаешь программу в IDE у тебя никакой консоли нет. У тебя есть IDE которая читает бинарный stdout и декодирует его. IDE может вообще пытаться читать в любой кодировке, но обычно она делает это в системной или принудительно ставит UTF-8.
>>2275485 >По дефолту System.out использует дефолтную кодировку ОС, но под Windows есть проблема, что консоль читает данные в 866, а не 1251 которая дефолтная кодировка системы. Я про это и говорю. Как мне написать программу, которая должна читать данные из консоли (и писать в нее) в иде? Мало того, еще и грейдл ебаный запускается с демоном, который не отключается и не дает использовать консоль.
>>2275508 >Я про это и говорю. Как мне написать программу, которая должна читать данные из консоли (и писать в нее) в иде? Надо использовать простой, советский if
Console console = System.console(); String s; if(console!=null) { s = console.readLine("OP хуй? (Y/n)"); } else { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("OP хуй? (Y/n) "); s = in.readLine(); }
Анончики, а spring долго изучать для уровня джуна условного? Насколько это объёмная тема? Скажем, если примем за исходные данный, что на кор надо год потратить, то сколько на spring?
>>2276390 1. Парсишь файл с geoip IPRange(start, end, countryCode) и складываешь все в массив. если сделать дедупликацию кодов стран, то это займет около 2-3 гигов 2. Сортируешь массив, так чтобы prev.end < next.start в случае оверлапа - выкидываешь ошибку. 3. Дальше создаешь мапу Map<CountryCode, AtomicLong>ю 4. Читаешь построчно лог файл, прочитал строку сконвертировал IP в число и бинарным поиском нашел страну в массиве. Потом увеличил счетчик в мапе.
Но вообще яндекс конечно ахуел такой литкод давать стажерам, да еще 20 минут на решение.
>>2276526 Я проходил, когда был только девелопер, прошел тогда на 70% и бесплатный период кончился. Много хороших и легких задачек. Очень помогает начать самому хоть какой то код писать. Есть большие задачки, разбитые на 4-8 подзадач. Для нулевого самое то. Но 25+ баксов в месяц за легкие задачки я бы не стал отдавать. Если для тебя 25 баксов это деньги, то лучше подрочи их же курс adaptive java на степике. Тоже самое, но без больших задач и без теории. А если проходить на степике другие курсы по джаве или например по sql, (но только те курсы, где есть сертификат) жид брейнс, как спонсор степика дают временный ключ на 3 месяца на платную идею и другие свои продукты.
Задание на собес такое. Я знаю что есть триллион готовых решений, супом уже пользовался. Но мне всего лишь надо одну цифру с одного конкретного сайта извлекать. Щас пытаюсь через класс URL html код извлекать , но он чет в 1 строку все склеивает , неудобно нихуя.
А в уже созданный NavigableMap/Set нельзя передать новый компаратор? Если мне нужно поменять принцип сортировки обязательно нужно новую коллекцию создавать и копировать все?
>>2276711 Ну а что, URLConnection есть, HttpServer есть, xml и файлики есть, много ли ещё надо, чтобы писать энтерпрайзные приложухи на голой жабе без библиотек.
>>2276932 Нет, не шутка. И задачи такого уровня дают не только в Яндекс, а почти во все конторы и галеры, только не на 20 минут, а на несколько часов или пару дней в виде тестового.
>>2277022 На литкоде задачи похожей на ту, что скинули выше, я ни разу не видел. Литкод что-ли попроще, там задачи короче, и нет тасок на обработку каких-то безумно огромных объемов данных.
>>2277044 Там первый файл с логом нельзя читать. А анон в массив предлагает читать второй файл с диапазонами, где 100к строчек. Строчки в ютф, там суда по их формату до 30 знаков в строчке, это 3 мегабайта. Единственное, что я не понял в его решении это бинарный поиск по массиву с диапазонами. И почему сразу Map<CountryCode, AtomicLong> не сделать тримапой с компаратором по значением мапы, выводя на ответ просто первые 10 значений. И зачем именно Атомик лонг.
>>2276440 еще раз повторю, что для меня только бинарный поиск немного непонятен. Его руками нужно пилить? А так норм задачка тестовая на вечерочек, 20 минут это шиза. Для студента 3-4 курса, проходившего алгосы, жаба-коллекции и i.o. несложно выглядит, не понятно че тут все охуели. Как раз не слишком легко для тестового и не нужно знать фреймфорки, как в 90% тестовых с крудами.
>>2277210 Я хз. Наверно часов 200-400 потратил тогда на свои 70%. А че там сейчас обещают? Раньше там в конце немножко давали потрогать спринг бут. Но я не успел дойти. Вот так это получилось сейчас. Мне не дают доступа посмотреть вообще какие топики есть в курсах. Может они сейчас реально дохуя по бекенду сделали задач. Было бы прикольно полноценный спринговый круд в степик с автотестами затолкать. Вообще неплохо, но отдавать 20к рубчиков за год я бы пожидился. Там это все неспешно за полгода проходилось. Но у них полгода стоят дороже года. Хотя вроде есть триал на 2 месяца. Если 20к за степик на стероидах для тебя не деньги, то бери. Заодно если английский нулевый, то очень помогает. Там он очень простой.
>>2277066 >Единственное, что я не понял в его решении это бинарный поиск по массиву с диапазонами. >1. Парсишь файл с geoip >IPRange(start, end, countryCode) >и складываешь все в массив. >2. Сортируешь массив, так чтобы prev.end < next.start в случае оверлапа - выкидываешь ошибку. 1. Берем середину смотрим попадает ли текущий IP в диапазон. 2. Если попал - бинго страна найдена. 3. Если меньше start - берем левую половину и повторяем. 4. Если больше end - берем правую половину и повторяем.
>И почему сразу Map<CountryCode, AtomicLong> не сделать тримапой с компаратором по значением мапы, выводя на ответ просто первые 10 значений. И зачем именно Атомик лонг. Когда мы читаем файл с логами - нам надо по стране достать текущее значение для страны и прибавить к нему. А три мапа сортирует по ключу, но нам нет смысла сортировать по странам. АтомикЛонг это просто, чтобы каждый раз не делать анбоксинг и боксинг. Так-то любой мутабельный лонг сойдет, атомарность не нужна.
Но учитывая что стран всего сотня-две, можно было без изъебов entrySet().stream().sorted().flatMap().limit().collect()
Сириуз бизнес ынтрырпайз аноны - кто как тестирует Spring Boot проекты?
А именно меня интересует инъекция зависимостей, какой подход используете вы:
1 - Никакой инъекции в юнит тестах, только использование конструкторов и моков вручную
2 - Свой собственный контекст в тестах, который где-то дублирует бины из сорцов, а где-то предоствяляет мокированные варианты сервисов
3 - Используете спринговый контекст из сорцов и только там где нужно - переопределяете бины (Но в таком случае в сорцах бины-синглтоны которые не должны быть проинициализированы - придется объявлять @Lazy, иначе они будут созданы, хоть и не будут использованы в тестах)
4 - Импортите в @SpringBootTest только те классы, которые нужны. В крупных сервисах тут может быть список из 10-15 классов, которые придется перечислять. Зато минимум лишнего.
>>2277088 >Его руками нужно пилить? Да потому что ты ищешь число в диапазоне. Конечно можно попробовать запилить хитрый компаратор и давать на вход диапазон [A, A], но я бы лучше руками запилил. Хотя с компаратором можно и тримап использовать, но там вопросы в том, что этот же компаратор должен корректно сравнивать и диапазоны пока мы наполняем мапу и когда мы в ней ищем айпи [A, A]. Лично мне это показалось сложным по сравнению с ручным бинарным поиском.
>>2277376 >3 - Используете спринговый контекст из сорцов и только там где нужно - переопределяете бины (Но в таком случае в сорцах бины-синглтоны которые не должны быть проинициализированы - придется объявлять @Lazy, иначе они будут созданы, хоть и не будут использованы в тестах) @Profile("!test")
@Primary на тестовый бин не предотвращает создания бина из сорцов, т.е. он хоть и не используется, но один хер создается, что не оче. Про Lazy согласен, какашка
>>2277423 >Вот это оптимизация нах, 5 гигов говна в оперативке зато без боксинга один метод вызывается. ВНЕЗАПНО! это как раз тестовое задание на написание оптимального кода. Плюс если сильно упороться по оптимизации, то все данные можно в десяток мегабайт впихнуть. А если не сильно то в сотню.
>>2277423 Джава перфоманс-оптимизация, насколько я понял это и есть что-то вроде - сократить на 15% количество тактов проца, увеличив в 2 раза использование памяти. В чем я не прав?
>>2277376 > иначе они будут созданы, хоть и не будут использованы в тестах Нет, не будут. Если нужен просто мок, аннотация MockBean переопределяет бин. Если нужно переопределить руками, включаю в тестовых пропертях spring.main.allow-bean-definition-overriding=true. Если именно переопределить, создать новый бин с тем же id, старый создаваться не будет.
>>2278090 Почти не используется, время тратить не стоит. Изредка кто-то пишет тестовые тулзы для разрабов и тестировщиков на свинге, но это кто как умеет. Кто-то на JavaFX, кто-то вебку делает.
Как в Maven заэкслюдить определенный джарник для mvn deploy?
Использую maven-assembly-plugin для того чтобы при сборке получить на выходе jar собранный с вместе со всеми зависимостями внутри. Получается очень большой файл с именем artifactname-jar-with-dependencies.jar.
Далее пытаюсь задеплоить проект в свой mvn-репозиторий. В итоге на сервер заливается как сам artifactname.jar так и artifactname-jar-with-dependencies.jar
Последний весит очень много, еще бы, внутри все зависимости. Как сделать так чтобы он не деплоился?
Помогите пожалуйста, быстрый гугл не помог, с меня как обычно.
>>2278175 Ну вот у меня как. Есть корневой модуль с корневым помом. Есть разделение по функционалу. Где-то 40 моделей второго уровня. Внутри них есть модули третьего уровня. В самом простом случае в одном третьем модуле интерфейсы, в другом имплементации. Но обычно модулей третьего уровня около пяти. Ну и где то там есть даже модули четвертого уровня, но я их не глядел. Всего 200 должно быть, я не считал. А чё ты так удивился? Открой спринг ин экшон. Там в их хеловорде в 7 где то главе уже 7 что-ли модулей. С околонулнвым функционалом.
>>2278193 UPD: Зависимостей очень много, и создавать artifactname-jar-with-dependencies.jar при сборке на самом деле нужно, чтобы была возможность запускать приложение имея один единственный jar со всеми зависимостями внутри. Единственный момент, его не нужно аплоадить в mvn-репу когда делаю mvn deploy.
>>2278291 C файлами как нибудь поиграй. а вообще для нулевого >text-based game это самое лучшее. Крестики-нолики, саперы, калькуляторы, туду листы, календари. Если не просто балуешься, а собираешься в джаве работать, то напиши круд(create, read, update, delete) одного объекта с 5-10 полями и сохранением инфы в тхт и с интерфейсом с консолью. Если легко, то попробуй часть полей тоже сделать объектами. Сделай разные способы сортировки таблицы объетов. Фильтрацию. Группировку. Сделай какие-нибудь статистические сводные таблицы по набору объектов. Добавь метаинформацию(время сохранение каждой строчки). Побалуйся с коллекциям и разными алгоримами чтения/сохранения/агрегации, замеряя скорость операций через system.nanotime(). Если перейдешь к крудам на бд такой опыт сильно поможет.
>>2278304 Лучше для эрпежи, все эти предметы, монстры нпс и прочую инфу о мире Потом бизнес логику можно сделать, прикрутить интерфейс и уже игра готова
Охуенно было писать скрипты на нем, когда хуеришь @Grab сверху и весь мир жаба-либок наговнокоженных рамжешем и русским иваном-жуном на коленке тебе доступен
Во времена жабы 1.6 синтаксис конечно был ПРОРЫВНЫМ, такая-то кроткость и гибкость, сейчас все это есть в языках со стат типизацией, поэтому на груви только скрипты маслать.
Вот Хорстманн и автор эффектив жабы пишут, что надо в геттерах возвращать копию полей, чтобы не давать обходить иммутабельность. Кто-то реально так запаривается? Или это они имеют ввиду труЪ иммутабельные классы с final полями? Потому что любая иде по умолчанию генерит геттеры, которые как раз позволяют вне кассы нахуевертить делов с внутренним состоянием объекта.
>>2278989 Вот один разраб напишет свой геттер так по-пидорски с копированием, а другой подумает, что всё ок, юзанёт, присвоит полям новые значения и будет ловить непонятные ошибки с прода, и не надо говорить про чтение документации, на каждый геттер никто читать документацию не будет. Если уж и поступать как крыса, название гетера должно отражать это: getFieldCopy(). Большинство не воспринимает POJO-классы как ООП-шную тему с инкапсуляцией и иммутабельностью, их воспринимают как классические сишные структуры, с которыми можно делать что угодно, и она не будет выёбываться.
>>2278195 Это в монолитах так? Хоть убей не понимаю, как можно иметь 40 помников в микросервисе. Тогда другой вопрос - а как правильно разделить приложение на модули, чтобы это было удобно тестировать? Например, приложеие на спринг буте, само приложение будет в одном модуле. А как писать интеграционные тесты в других модулях тогда? Делать в каждом из них фейковое тестовое приложение, чтобы поднять контекст?
>>2279341 Я хз как делить. Этого никто делать не будет. Я зеленый недоджун, который пришел на копролит спринг 4 без бута, который деплоится на томкат 7. Тестов просто не предусмотрено. Их не просто нет, но и написать нельзя.
Сап, Пример кода: таблица с фильтрацией с использованием Thymeleaf и Spring ( можно Boot ), как найти? Очень хочу в целях обучения изучить чужой код. фильтрация нужна любая, кроме Search bar, везде нахожу фильтрацию только через него. А очень хотелось бы посмотреть на таблицу, где есть сортировка ( простое нажатие на хедер таблицы или т.п. ) и фильтрация ( например, кнопки, выпадающий список, чекбоксы, что угодно ).
Хотя бы в самой минимальной реализации, на гитхабе никак не могу найти, уже второй день сижу фуллтайм. Подскажите, пожалуйста, был бы крайне благодарен за помощь.
>>2278989 >Вот Хорстманн и автор эффектив жабы пишут, что надо в геттерах возвращать копию полей, чтобы не давать обходить иммутабельность. >Кто-то реально так запаривается? Если у тебя value class, то желательно чтобы все возвращаемые значение были сами по себе иммутабельными. Но если нельзя то делай копию пару раз приходилось так делать.
Просто это создает более явный API. Вот есть у тебя йоба сервис и у него метод getConfig(), ты получил конфиг и что-то там поменял. Как понять изменения уже зааплаились или надо вызывать setConfig() или вообще новый сервис создавать. Другое дело если у тебя возвращается иммутабельный конфиг, у которого надо делать toBuilder().setXXX().build() тогда ясно что конфиг надо как-то зааплаить в сервис. Опять же нет проблем с тем, чтобы поменять несколько связанных настроек - у тебя не будет момента когда одна уже поменяна, а вторая еще нет.
>>2277214 Да не, я не думаю, что буду брать на год. Я думаю о том, сколько смогу за два месяца пройти. Типа по максимуму. У меня ща времени дофига. Тратить 20к за год на это говно не планирую, офк. Если бы там еще по месяцам можно было платить адекватные деньги, то может быть и взял, если бы не успел. А 50 баксов эт дохуя слшком за такое.
>>2279530 Помогло писос как, я же хочу посмотреть взаимодействие thymeleaf и Spring с бэком, зачем мне JS, с таким же успехом я мог бы datatables CDN подключить
>>2279971 Ты сам понимаешь что хочешь то? Ты либо отдаешь уже сортированные данные тймлифу и он рисует как ты их дал ему. Соответсвенно каждая сортировка это новый запрос Или берешь жс и им сортируешь в хтмле что уже есть как пользователь хочет
>>2279971 Ты вообще понимаешь, как Thymeleaf работает? Это тебе не универсальный клиент-серверный фреймворк, а-ля Vaadin/GWT, а тупо либа, которая ещё на сервере берёт твой шаблон, подставляет твои параметры, и готовый HTML отправляет клиенту. Всё. Ничего сверх того, что можно сделать на голом HTML, на Thymeleaf сделать нельзя. Никакой динамики, никаких обработок кликов и тыков. Для всего этого JS.
>>2279971 И единственное, что можно сделать - это монстр наподобие пикрил. Всю таблицу, соответсвенно, обернуть в гигантскую форму. Вполне реально написать MVC-контроллер, который будет все эти параметры парсить, выполнять фильтры на сервере и запускать thymeleaf с нужными значениями. Только заебёшься.
>>2279999 Брат, я хочу посмотреть на топорный способ, в котором я в модель кладу объекты и их подставляю в ссылки таймлифа для сортировки на примере такой таблицы. Мне для этого thymeleaf и spring хватит с головой. Про то, что я могу туда добавить js я знаю, но пример нужен только этого.
»2278302 >Крестики-нолики, саперы, калькуляторы, туду листы, календари Я не могу представить как сделать кнопки в консоли для тех же крестиков-колинокв и сапера.
>то напиши круд(create, read, update, delete) одного объекта с 5-10 полями и сохранением инфы в тхт и с интерфейсом с консолью. Можно поподробнее?
>Я не могу представить как сделать кнопки в консоли для тех же крестиков-колинокв и сапера. погугли, полно таких задачек и их решений в интернете. Вроде обычно просто номер клетки цифрами вбиваешь. >Можно поподробнее? А что тебе не понятного? Есть пустой список неких объектов с некоторым количеством полей. Ты : - create: создаешь новый объект и добавляешь к коллекции - read: выбираешь или весь список объектов или несколько, отфильтрованных по одному полю, или один по идентификатору. И выводишь для чтения. - update: меняешь содержимое полей, выбранного объекта/объектов. - delete: удаляешь выбранный объект/объекты. Этим и занимаются бекендеры, только читают они из базы данных, а отправляют не в консоль, а по сети в какой нибудь клиент - браузерный/мобильный/десктопный/другую серверную прогу. Сложный бекенд, кроме этого занимается еще много чем. Простой практически только этим.
Кароооуч. Столкнулся с такой проблемой что нужно что бы запись из базы данных удалялась через какое то время. Время задается юзером, например в секундах. Я полагаю что можно натсроить какой нибудь кастомный @Scope бину , что бы он перед смертью исполнял код удаления. Вопрос в том как задать ему время жизни ? Ну или направьте , пожалуйста, мою мысль в правильное русло , если я сейчас хуйню сморозил.
Бля, я только учусь и пишу часто код с книжки, а там перевод и строки на русском есть, вроде пофиксил чтобы кириллица в консоли нормально выводилась, а поменял язык системы на англ и она сломалась и теперь гугл не помогает чет, способы оттуда не работают. Мне стоит это опять фиксить или забить, вы в консоли кириллицу же не выводите и это чисто моя хотелка ненужная?
>>2280507 1. Сделать Spring Scheduler, который будет с каким-то интервалом лезть в таблицу и удалять записи, у которых разница между временем создания и системным больше заданной. 2. На каждую созданную запись создавать фоновую таску с удалением, задать таске задержку, равную заданному числу секунд. 3. Юзать специфичные фичи СУБД, где-то из коробки есть time to live и прочее.
Скиньте полноценный туториал на Spring boot test. Тесты с контекстом, без контекста, тесты mvc, jpa и прочего. Я что-то не нашел в одном месте, на баелдунге обрывки.
>>2280514 Потому что ты скорей всего выводишь текст через байтовые потоки ввода/вывода и потом преобразуешь байты в символы, а надо выводить через консольные, которые поддерживают интернационализацию из коробки.
>>2280739 sql это язык. Тебе наверное все таки про субд нужно спрашивать? Если так то любую разумеется, самые популярные postgre и mysql, на твоем мелко проекте разницы ты вообще не почувствуешь
>>2280811 GWT - это тебе не просто какая-то тулза, ничего она автоматически делать не будет. Это фреймворк, с помощью которого можно писать на жабе веб-приложение, юзая специальные классы компонентов GWT, затем при сборке специальный плагин для Ant запустит специальный компилятор, который превращает жабу в JS, всё упаковывается в war-ник и деплоится на сервер приложений. Да, проект на GWT собирается именно Ant-ом, именно в war-ник и запускается именно на сервере приложений, никаких тебе спринг бутов с томкатами.
>>2281070 Там есть какой-то способ передавать массивы так, чтобы из формы галки в одинаковым name складывались в единый массив и отправлялись на сервер, но name, вроде, должен быть с квадратными скобками: <input type="checkbox" name="items[]">. Хз, через Ajax реально проще, там не надо возиться с формами, но нужно знать основы JS и работы с DOM, а на спринге уметь писать REST-контроллеры, по необходимости всё легко гуглится.
>>2280524 >2 А як реализоввать ? Про Spring Scheduler читал , там только 1 раз можно задать задержку, а мне нужно что бы для каждой записи можно было бы уникально вермя выставить
А какой библиотекой пользуются, когда делают игры? Я, вкатун, хочу попробовать сделать что-то карточное вроде блекджека, покера или дурака. Такие вещи в swing/javafx делают?
>>2281106 На жабе вообще не делают десктопные игры. То, что майнкрафт написали на жабе - не показатель, подобные проекты можно найти на любом языке. На андроиде что-то пишут на специфичных либах, которые могут и не заработать на десктопе.
Вопрос по swing. Как я могу скрыть эту ебаторию? Я пытался в отдельный void запихнуть, но у меня не получается к ним обратиться. Поэтому эти параметры сидят в общем классе с окном и уже довольно непросто искать что-то в нем, а мне еще надо будет JMenuItem добавить...
panel.setLayout(new GridBagLayout()); GridBagConstraints gridLabel = new GridBagConstraints(); GridBagConstraints gridField = new GridBagConstraints(); GridBagConstraints gridButton = new GridBagConstraints(); GridBagConstraints gridTable = new GridBagConstraints();
>>2281368 Ну типо разделить эту путаницу и сделать аккуратные классы. То есть создать отдельный класс кнопок, лейблов и текстфилдов, а потом это вызвать в общем классе окна, а потом сам класс окна вызвать в Main. Я не умею пока так делать, поэтому получается, что один класс не видит переменной другого, и получается что переменная не объявлена в другой.
Короче вот файлы:
Main import javax.swing.; import java.lang.reflect.Parameter;
public class Main { public static void main(String[] args){ Gui gui = new Gui(); gui.Frame(); } }
JTable table = new JTable(data, colHeads); JScrollPane jsp = new JScrollPane(table);
JPanel panel = new JPanel();
// gridbaglayout to set the position of objects on the screen panel.setLayout(new GridBagLayout()); GridBagConstraints gridLabel = new GridBagConstraints(); GridBagConstraints gridField = new GridBagConstraints(); GridBagConstraints gridButton = new GridBagConstraints(); GridBagConstraints gridTable = new GridBagConstraints();
>>2281429 Говорю нарисуй в пеинте или где угодно как это должно выглядеть, или хотя бы псевдокодом. Что с чем взаимодействует, после каких кнопок, в какие стороны, откуда приходят данные, как они обновляются. Тогда будет легко разделить это на классы, потому что будут видны точки соприкосновения. GridBagConstraints, gridx и прочая разметка это все вторично. Твои код мне ни о чем не говорит, это просто набор компонентов. saveButton firstNameField table предлагаешь придумать как это заполняется и что ты пытаешься сделать?
Осмысли как устроены свинговые компоненты. В них данные приходят извне. Когда это происходит, они обновляют свое состояние (Label::setText например). Когда в компоненте произошло событие (Button::onClick например) компонент тригерит событие, на которое подписались так же извне. Ты должен создавать свои классы точно так же. Коллбэки, коллбэки, коллбэки. В этом весь ui. Еще паттерн MVC разбирай. В свинге плохо что ту часть где модель обновляет вью нужно писать вручную. В javafx это намного удобнее сделано благодаря ObservableProperty/ObservableList и байндингам.
>>2281601 > Говорю нарисуй в пеинте или где угодно как это должно выглядеть, или хотя бы псевдокодом. Я еще попробую сам разобраться, но спасибо за рекомендации. > Еще паттерн MVC разбирай. Пока не знаю, что такое паттерны, но про модель-вид-контроллер слышал.
Как с таймлиф формы передать объект, у которого полем является сет других объектов? Объект должен собраться из селекта с мультивыбором. Этот код не выдает ошибку, добавляет категорию, у которой поле subcategories пустое.
>>2281857 Никак, HTML-формы такого не умеют, в одном поле можно передать только простую строку. Придумывай способ генерации полей с уникальным name с одинаковым префиксом и последующим парсингом этих полей в контроллере, либо не изобретай костыли и учи JS.
>>2281872 Есть, но читать их не стоит, даже книги по пятой жабе будут актуальнее. В градле так часто что-то ломают и переделывают, что туториалы просто не успевают писать, что уж там говорить о переводе на русек.
>>2281862 Смысл в том, что я хочу при создании новой категории добавить возможность выбрать из уже существующих подкатегорий (которые хранятся в Set<Subcategories>). Получается попроще (без js) такое не сделать? У меня уже похожее работает для подкатегорий. При создании новой подкатегории можно указать к какой категории она относится. Но там в селекте один элемент выбирается, и th:value="${category.id}".
>>2281918 Можно сгруппировать по name, в значении передать id категории. HTML (перепиши на thymeleaf): <form method="POST"> category1: <input type="checkbox" name="subcategories" value="category1_id"><br> category2: <input type="checkbox" name="subcategories" value="category2_id"><br> category3: <input type="checkbox" name="subcategories" value="category3_id"><br> <button type="submit">Send</button> </form>
>>2279341 >Например, приложеие на спринг буте, само приложение будет в одном модуле. А как писать интеграционные тесты в других модулях тогда? Делать в каждом из них фейковое тестовое приложение, чтобы поднять контекст? Бамп.
>>2282023 Даже в интеграционных тестах всё приложение обычно не поднимают. Поднимают тестируемый класс и его зависимости, чтобы проверить взаимодействие с ними, но и их могут частично мокать. Всё приложение с настоящей базой поднимают в автотестах, но занимаются этим не разрабы, а qa-автоматизаторы.
К примеру, есть программа, которая копирует файлы посредством вызовы: java CopyFile File1 File2 Как в хваленной IJ IDEA организовать такой вызов? Где должны лежать файлы? Просто через терминал внутри самой IJ IDEA ничего не работает, т.к. она создаёт свою запутанную систему путей проекта.
>>2282219 Они ещё продают одну и ту же иде под разными названиями. Типа вот вам для джавы, вот для сишарпа, питона там и т.п. По факту меняется только иконка и подсветка синтаксиса. В VS Code плагины на подсветку синтаксиса бесплатные как и сама IDE.
Ещё давным давно было плагин для IJ IDEA для C++, но они его забанили, чтобы не конкурировал с CLion.
>>2282117 Я думал ты так глупо шутишь. А потом прочитал пару статей и все так и есть, например: https://habr.com/ru/post/561520/ 1. Оказывается прямо юниты-юниты в спринге нужны редко в сервисах, которые нужно анально замокать. 2. Прямо интеграционные со всем контекстом нужны, но редко. 3. А обычно нужны как раз тесты фрагментов Spring Context, типа @WebMvcTest и @DataJpaTest то есть именно как ты сказал "Интеграционные юнит-тесты". И у всего этого куча вариаций. Это пиздец, я знал, что тесты спринга это глубокое болото, но все оказалось даже хуже. Я все ковыряю спринг, а он не кончается и не кончается. И конца и края не видно. Даже в более-менее мастхевных вещах.
>>2282261 А ты вообще читал как работать с javac и java в консоли? Если нет, то и не умничай. Через точку запускается класс в пакете и исходная директория вызова должна быть выше по иерархии.
>>2282262 А разве хваленная IJ IDEA не компилирует? Или её компиляция - не компиляция? Там на скриншоте видно, что файл Example.class создан и я его пытаюсь запустить через консоль по всем правилам как написано в книжке. Раз это не происходит - это косяк идеи, а не мой.
>>2282305 Её форсят как самую лучшую IDE для джавы, но по факту в ней куча косяков. И даже простые примеры из книжки Шилдта для новичков, в ней невозможно выполнить.
>>2282292 > исходная директория вызова должна быть выше по иерархии. Откуда угодно, если указал откуда загружать классы через -cp. По умолчанию он указывает на текущий рабочий каталог. > Там на скриншоте видно, Что ты скомпилировал в идее зеленой кнопкой, но запускаешь зачем то через терминал (хотя зеленая кнопка это и про компиляцию и про запуск). А в vscode через терминал и компилируешь и запускаешь.
>>2282327 >в идее корень рабочего каталога не совпадает с иерархией классов Что и требовалось доказать! Откуда я вообще могу знать, что идея подменяет это? И зачем? Это просто не удобно.
>настраиваются аргументы командной строки Во-первых, надо каждый раз прописывать, что тоже не удобно. Во-вторых, аргументы - это имена файлов. Где размещать файлы? Тоже не понятно.
Казалось бы, такая мощная IDE должна облегчать работу, а по факту она только усложняет.
>>2282329 > Откуда я вообще могу знать, что идея подменяет это? Рабочий каталог? Ты сам его переключаешь в терминале через cd. Ни к жабе ни к идее это отношения не имеет. > И зачем? Своя структура проекта? Подразумевается что ты можешь использовать внешние зависимости, ресурсы, дополнительные языки, код для тестов, код для бенчмарков и все что сложнее одного класса. Тогда это собирается в несколько промежуточных этапов, в своих директориях, с использованием кэша, десятком команд и опций автоматически, а не только javac java. > Где размещать файлы? Поиск будет происходить от рабочего каталога. Зная это можешь задавать пути относительно или абсолютно.
>>2282528 Невозможно. Пидоры которые пишут либы и мануалы, приводят примеры в 100-процентной уверенности, что у тебя будет как минимум аатоимпорт и автодополнение. Даже если ты сможешь руками без ошибок напечатать условный LocalContainerEntiryManagerFactoryBean, ты ещё должен вспомнить, в каком из тысяч пакетов это говно лежит. А в мануалах ебаныз импорты часто не пишут.
>>2282536 Дак эти фреймворки только в платной версии, а в бесплатной надо всё ручками подключать, что мало отличается от работы в других легковесных IDE.
>>2282604 Думаешь, в бесплатной идее у тебя спринг не заработает? Всё заработает, это вообще не зависит от того, из какой среды запускать. Все аатоимпорты и подсказки доступны за счёт интеграции с мавеном. Просто в платной идее есть несколько дополнительных фич, без большинства которых вполне можно обойтись, если ты не собираешься дебагом подключаться к серверу приложений или типа такого. Спрингбутовские жарники можно дебажить и из бесплатной.
>>2282631 За русеком можешь в шарп вкатываться, они любят в зависимости от локали выводить разные сообщения, в результате в половине случаев кракозябры и нихуя не гуглится.
>>2282665 А блять, так это ты со своим беззнаковым байтом. Нет уж, вкатывайся в шарп, тыкай там авалонию, gtk# или что ещё там есть в вашем гей-клубе. В жабе кроссплатформа такая, что у нас продовские сервера на винде работают.
>>2282669 Я долго не мог выбрать между джавой и сишарпом. Потом нашёл рекомендацию по выбору ЯП у Сергея Немчинского - выписать все плюсы и минусы языков. В итоге джава набрала 11 баллов, а сишарп лишь 8,5. Поэтому теперь целенаправленно изучаю джаву. Уже купил книгу "Философия Java", поэтому пути назад уже нет.
>>2282683 - нет полной поддержки кроссплатформенности (десктоп только под винду) - мало учебных книг и они низкого качества - не нравится стиль кода, когда под открывающую скобочку { тратится целая строка - даже релизные сборки - это куча непонятных файлов (читал Рихтера - там вообще описан какой-то ад с ЭЦП, конфиг файлами и т.п.) - нет обратной совместимости - требуется мощный ПК и самая свежая винда (пришлось ставить 10-ку, чтобы всё было новых версий) - если вкатываться на галеру, то надо учить фронтенд
>>2282692 Есть: - нет беззнаковых типов и кривые побитовые операции - нет поддержки перегрузки операторов типа +, -, *, / и т.п. - нет всяких удобных сахарных фич типа геттеров/сеттеров - нет крутых IDE типа вижлы - клиентам надо ставить JRE (а сейчас и вовсе JDK), чтобы пользоваться программами - нет фреймворков типа Blazor, чтобы писать фронт на Java с новой технологией WebAssembly (аплеты уже запрещены везде) - нет поддержки фреймворков по типу: нажал "создать проект" и готово, надо ковырятся -
>>2282680 Для меня безусловным плюсом явы является то, что если у меня не получится вкатиться на галеру (а скорее всего не получится, даже если хорошо прокачаюсь - старый я) то можно будет пилить приложения для телефончика для души.
>>2282695 > - нет полной поддержки кроссплатформенности (десктоп только под винду) Десктоп - нецелевое применение жабы. И там всё так себе: свинг не развивается, javafx выпилили из стандартной либы, awt вообще пиздец. Если брать сторонние либы для гуя, можно и для шарпа взять сторонние кроссплатформенные либы. > - мало учебных книг и они низкого качества Всё на любителя, многим хвалёный Шилдт не нравится, например, куча воды, мало сути. > - не нравится стиль кода, когда под открывающую скобочку { тратится целая строка А мне нравится после плюсов. Первое время кодинга на жабе плевался, потом смирился. > - даже релизные сборки - это куча непонятных файлов (читал Рихтера - там вообще описан какой-то ад с ЭЦП, конфиг файлами и т.п.) Так везде, потому что так или иначе это необходимо. В жабе тоже получается куча артефактов, одного жарника обычно недостаточно. > - нет обратной совместимости Есть. 100%-ой обратной совместимости и в жабе нет, куча софта работает только на древней восьмой жабе. > - требуется мощный ПК и самая свежая винда (пришлось ставить 10-ку, чтобы всё было новых версий) Цветочки по сравнению с тормозами всего, что для жабы. > - если вкатываться на галеру, то надо учить фронтенд На галёру и в жабе надо.
>>2282730 В итоге, жабу ты решил учить из-за мифическо-теоретической возможности, которой ты вероятнее всего пользоваться не будешь, писать гуй, используя только стандартную библиотеку, так, чтобы он работал только на винде, линуксе и маке?
>>2282704 >нет беззнаковых типов и кривые побитовые операции пiхуй >нет поддержки перегрузки операторов типа +, -, *, / и т.п. Ты представь, что половина библиотек для своих коллекций переопределила метод add() из Collections как <<, а половина как +=. Ебанешься разбираться в этом говне потом. >нет всяких удобных сахарных фич типа геттеров/сеттеров Ломбок войдет в jdk через пару лет. >клиентам надо ставить JRE (а сейчас и вовсе JDK), чтобы пользоваться программами Хуево, но работа над этим ведется. >нет фреймворков типа Blazor, чтобы писать фронт на Java с новой технологией WebAssembly (аплеты уже запрещены везде) Через пару лет будет. >нет поддержки фреймворков по типу: нажал "создать проект" и готово, надо ковырятся Есть.
>>2282704 >- нет поддержки перегрузки операторов типа +, -, *, / и т.п. Как же хочется 0 #:: 1 #:: fibs.zip(fibs.tail).map { n => n._1 + n._2 }
>- нет крутых IDE типа вижлы Эта та самая вижла, которую сярперы без решарпера не юзают, она?
>- клиентам надо ставить JRE (а сейчас и вовсе JDK), чтобы пользоваться программами Для вас мудаков, которые не умеют в инсталяторы - граль запилили.
>чтобы писать фронт на Java с новой технологией WebAssembly (аплеты уже запрещены везде) Ты ведь теоретик и фронта вообще не нюхал, да? WebAssembly - кроме пары технодемок нигде больше и не юзается.
>- нет поддержки фреймворков по типу: нажал "создать проект" и готово, надо ковырятся mvn archetype:generate
>>2283343 Я за 10 итераций этого треда узнал про шарпец, что там лучше женерики, что там есть асиньки, как в жсе, про всякие сахарные классы с геттерами/сеттерами. Чета там еще было
>>2283430 Да там дохуя всего есть, котлин не настолько наороченный. В последних версиях вот добавили top level statements, чтобы писать хелловорлды без необходимости писать классы и методы. Но инфраструктура говно пиздец.
Чемпионы, а почему в шапке такой хейт а сторону жабараш? Насчёт отрывистой теории согласен. Но если совмещать задачи с Шилдтом/Блохом - есть смысл? Или тех же codewars/hackerrank будет достаточно?
>>2283654 > почему в шапке такой хейт а сторону жабараш? Худшая инвестиция в твоей жизни. > Но если совмещать задачи с Шилдтом/Блохом - есть смысл? Нет. Если ты способен читать книги, но при этом ищешь курсы ради практики, это будет пустая трата времени. Курсы делают на массовую аудиторию, которая читать книги неспособна и максимум может читать описание к видеороликам. Что там практика. > Или тех же codewars/hackerrank будет достаточно? Да.
>>2283783 Потому что тут можно высказать мнение без привязки к личностям. На каком-нибудь форуме с авторизацией могли бы забулить типа: глядите, это опять тот шиз с беззнаковыми типами. А здесь пишешь своё мнение и никто не догадается кто это.
>>2283654 Паходит на пару недель-месяц если ты вот вообще нулевый. По минусам, ебанутые задания, ебанутые условия к ним, ебанутые тесты которые выдают тебе ошибку номер хуй из-за поставленной не там запятой, сами задания какие-то ебанутые и не оставляют ощущения что ты чот полезное делаешь. Там народ сидит по полгода, а потом не понимает как сделать консольные крестики нолики. Для начальных задачек уж лучше степик или хиперскилл от жидбрейнсов попробуй.
Что больше в приоритете для собеса на джуна: типичный проект на спринге или библиотека, решающая реальную проблему? При этом знания спринга будут меньше.
>>2284061 На спринге тебе придётся писать каждый день, а узкую проблему вероятнее всего не придётся решать вообще. Без либы ты легко обойдёшься, без спринга нет.
>>2283614 >>2283638 Нахуя вам хот релоад? У меня флоу такой 1. отдебажил где бага 2. написал тест который ее ловит 3. пофиксал 4. прогнал тест, если надо повторил п. 3 5. запушил, просмотрел регрессию
Вы там на проде без редеплоя баги фиксите, что ли? на одной жава конфе была стори от одних ковбоев, как они через JPDA баги на проде фиксят
>>2284429 Так тебе по любому надо в первый раз собрать и запустить, тут хот релоад не нужен. Хот релоад нужен если ты по ходу дебага пытаешься баг пофиксать.
>>2284523 Если весь фикс это добавить один if - то такое и идея может. А нормальный рефакторинг надо делать не под дебагом и при наличии тестов на старое поведение и на сам баг.
>>2284631 >Дак что собой представляет ссылка на объект? Ссылку? Указатель? Или нечто иное? Число которое равно адресу первого байта объекта. А все это говно ссылка/указатель - это понятия из С++ которые в жаве не применимы.
Допиливаю один проект, с создателем общаюсь, он мне подсказывает, что да как, но всё равно. Я привык к более простым программам что-ли, а тут просто дохерища классов, странным каким-то образом связанных, модель вычислений тоже для меня непривычная типа одна node другую вызывает и т.д., кароч пиздец какой-то. Собственно вопрос - если в проекте хуева туча классов из которых половина интерфейсы или абстрактные + нет очевидной модели последовательности действий и взаимодействия между классами это норм? Типа я вижу функцию и мне по ссылкам надо 3 раза пройтись чтобы хоть понять чего она на самом деле возвращает, потому что в конечном итоге это окажется имплементация абстрактной хуйни, которая там в типе возвращаемого значения указана. Я ебал, мне еще никогда не было так тяжело код читать. Я реально не понимаю, это я ООП ниосилил или просто логика хуёво реализована. Ясное дело, не посмотрев на сам проект вы мне четкий ответ дать не сможете, просто интересно услышать может у кого был похожий опыт когда в жаву вкатились?(не в жаве у меня опыт большой) Может надо как-то правильно читать ООП код что-ли
>>2285049 Ну типо ты должен по сигнатуре понимать что метод делает и доверять ему, т.е. не должно быть необходимости лазить в методы и смотреть что в нем что бы понять что он делает в идеальном мире офк
>>2284639 В этом особой необходимости нет, ибо кишочки JVM и так всем открыты. Если нужны пояснения, то есть статьи и доклады в открытом доступе, где ковыряются в недрах байткода, исходниках, делают бенчмарки и занимаются оптимизацией. CLR via C# особо в кишочки CLR и не залазит, так, по верхам, больше про сами возможности языка и дотнета, ну и про сборку мусора.
Effective Java + Java Concurrency in practice + Modern Java in action + Optimizing Java + доклады Шипилева про JMM и статьи на хабре про JMM будет более чем достаточно для любого разраба
>>2285423 Я спрашивал решение в мвп треде пару дней назад, там подсказали, но я уже увы забыл его. Вообще считаю, что раз в тиньке на курс по джаве такие задачи спрашивают, то делать там нечего, раз сам решить не можешь.
>>2285417 Отсортировать числа и захуячить полный перебор, начиная от x0 = квадратного корня минимального. Последовательность генерировать, выбирая числа по возрастанию - как только < 0 сразу нахуй, идём заново с x0 + 1.
>>2285417 1. Сортируем элементы множества по возрастанию. Т.к. в самом начале выгоднее отнимать меньшие числа. 2. Делаем бин поиск по ответу (хз, какая верхняя граница, пускай будет 10^9). Для каждого занчения проверяем, можем ли мы построить посоедовательность.
>>2285456 ну все равно, чтоб готовиться к таким задачам нужно их пробовать решать и разбирать так что, если хочу хотя бы в следующий раз на курс попасть, то нужно учиться
>>2285508 Чел, там каждый раз новые задачи, не похожие на предыдущие. Я уже в четвертый или пятый раз туда пробую попасть, просто на обучение, даже не на стажировку, и каждый раз мне в ебало суют то динамическое программирование, то замудренные графы, то математику с оптимизацией, оптимизацию на кучах, и т. д. Если ты не щелкал олимпиадные задачи еще будучи школьником, то хуй тебе, а не этот тинькофф финтех. Можно конечно начать задротить codeforces, leetcode, timus по 3-4 задачи ежеденевно, и тогда года через 2 будет результат, но какой от этого смысл, если нужно вкатываться прямо сейчас?
Можете пояснить, как прочтение книги по джаве даст мне возможность выполнять поставленную задачу? Вот я прочёл, там, допустим Head First, или Брюса Эккеля, а что дальше-то блять? Мне предлагают сидеть и доки колупать, чтобы из тысячи методов найти мне нужный и использовать? А нахуй я тогда читал, если колупать доки можно и просто элементарный синтаксис изучив?
Как будет выглядеть проект в котором нет хибера? В нем будет подключен хибер и просто будут написаны нативные запросы к бд? Или хибер не будет подключен и будет просто jdbc? Или как-то по другому?
>>2285601 А дальше учишь либы и фреймворки по учебникам и нарабатываешь практический опыт на пет-проектах. Доки - это справочная информация для тех, кто уже умеет пользоваться и заходит для уточнения какой-нибудь особенности. Это не учебник/мануал/туториал, где разжёвывается, что и в каком порядке делать.
>>2285610 Очень просто. Вместо волшебного репозитория будет класс-DAO. @Autowired private DataSource dataSource; ... final var jdbcTemplate = new NamedParameterJdbcTemplate(dataSource); jdbcTemplate.update(...); return jdbcTemplate.query(...);
>>2285665 Кроме как на jvm они и не могли пилить новую IDE. Потому что все старое легаси из движка IDEA они никуда не выкинули и продолжат тянуть дальше, ибо с нуля такое разрабатывать крайне дорого и тяжело.
>>2285708 Это я понял, но, в смысле, а куда мне дальше-то копать, если я эту хуиту уже прочёл и все задания выполнил? Читать другие книги для БОЛЕЕ ПРОДВИНУТЫХ маминых вундеркиндов как написали выше (Про либы по учебникам. Хуй знает правда, какие именно либы учить и по каким именно учебникам. Либ же дохуя вроде как)? Хотя мб такие недопонимания возникают из-за того, что на самом деле ни Эккелса ни Head First я не читал дальше ста страниц
>>2285726 Почему я должен знать и английский и программирование? У меня математический склад ума, а не гуманитарный. Я даже русский только 4 знаю (67 баллов ЕГЭ).
>>2285731 Я эккеля до 300 дочитал, лол) сам не подскажу. Но дальше, я так понимаю, путь такой - спринг и свой пэт на костылях. (Имхо, ближе к окончанию книги уже можно начать пилить простой пэт.)
>>2285731 Программируй. Сделай свой проект, любой, хоть крестики нолики консольные, а в книжки подсматривай параллельно. Не знаешь куда двигаться? Найди в гугле любую роадмапу по выбранному тобой направлению, посмотри вакансии, посмотри какие там технологии нужны, делай проекты с их использованием, чисто на чтении книг ты далеко не уедешь, но они тебе позволят получить более глубокое понимание.
>>2285724 Российский джава энтерпрайз на 90% состоит из гос проектов, так что можно не волноваться. Всякие сберы, втб, телекомы, нефтянка - все это государственные и окологосударственные конторы, там инглиш не нужен. Нужен в галерах типа епама и люкса, вот там да, иностранные заказчики. И вообще у нас не Украина, чтобы работать на западного барина.
>>2285851 Да там много всего. suspend функции в байткоде разворачиваются в две сотни строк. В языке банально нету примитивных типов, а мифические оптимизации kotlinc даже разрабы котлина не видели. Fleet чисто пиар ход, продвинуть язык на десктопе.
>>2285834 Байткод настолько примитивная штука, что там вообще нечего оптимизировать. Максимум JIT может как-то лучше оптимизировать конструкции характерные для джавы, но это не точно.
>>2285860 Дак речь не про JIT-компиляцию, а про компилицию из джавы или котлина в байт-код. Учитывая, что байт-код примитивный и приближен к машинному коду процессоров, то не всегда компиляторы выдают оптимальный результат. Джава-компиляторы существуют дольше и соответственно многое там улучшено, а котлин-компилятор молодой и разрабатывается одной жадной фирмой, которая даже не продаёт свои продукты, а даёт вам в аренду на время. А жадность и глупость всегда идут рука об руку!
>>2285875 На ведре не HotSpot, там другой рантайм, тут хз. Ну меня например 1/2гб всегда занят системой, и больше 1-3 запущенных приложений уже выгружаются системой. Гугл выбрал котлин больше по юридическим причинам (там был долгий суд с ораклом), хоть синтаксические фичи котла там намного лучше выглядят километровых партянок на джаве.
>>2285915 Ну я тоже заметил, что те же приложения с тем же функционалом, которые 7 лет назад ели 50 метров оперативки сейчас едят 300. Но есть пруфы, что это связано с переходом на котлин?
>>2285918 >>2285915 Да котлин тут не при чем, это связано с пикрилом и относится ко всему софту. Пока не упремся в ресурсы железа, всё будет обрастать новыми слоями абстракций, чтобы сложные вещи делались одной аннотацией. А пока темпы развития железа позволяют чтобы из года в год программа с одним и тем же функционалом потребляла x2 памяти и тактов.
>>2285959 И бэкендерам, и фронтендерам это одинаково нахуй не всралось, ведь первые грузят жсоны в базу, а вторые красят кнопки. Можно автоматизировать через DeepMind/GPT-3.
>>2285964 Та понятно, что не всралось. Дело в том, что вкатунов ОЧЕНЬ много. Поэтому приходится изощряться и каждый раз придумывать все более хитрые и сложные задачки, чтобы суметь отсеять нужное число кандидатов.
Ещё идея без разрешения программиста может изменять файл с кодом. К примеру, частенько встречал, что загружаю проект, а она мне отрефакторила его, хотя не просил. Вот не знаю, баг это или фича, но дико бесит!
>>2285939 Ну а почему не причем? Разве иммутабельность коллекций и отсутствие примитивов, как сказано выше, уже сами по себе на должны жрать больше памяти?
>>2286364 Да это хуйня, у меня в идее появился DeepMind-plugin, который залез без моего ведома в папку с единственным файлом readme и сам написал проект!
>>2286484 Хуйчинскому важна бесплатность, ибо он в проде миллион лет не работает, а только с вкатунцами общается. И еще про желание делать все руками. Пусть пишет в виме тогда. Подчеркивание ошибок, остальное все руками. Рефакторинг, компиляция и т.д. И что конкретно там в оракловских/ибмовских java ee кусках кала не пашет в идее так и не сказал.
>>2286531 почему нужно выбирать охуевшего хохлораба, который сам нихуя не пишет миллион лет, а не идти на курсы епама или хотя бы в отус, где все преподы работают джавистами?
>>2286109 1. JVM стековая машина, в то время как все современные машины регистровые. В байткоде есть куча специальных инструкций для ООП - вызов статического метода, виртуального, интерфейса и "специального", в реальных процессорах ничего такого нет. В байткоде нет никаких векторных инструкций и работы с памятью, зато есть специальные инструкции по чтению полей и аргументов метода. Поэтому >Учитывая, что байт-код примитивный и приближен к машинному коду процессоров полная чушь.
2. Байктод Котлина ничем принципиально от байткода Жавы не отличается. И на тех же самых операциях он даст ± такой же перформанс. У Котлина проблемы с перформансом лежат в другой плоскости - там очень много сахара. И если не понимать как он работает - могут быть проблемы с производительностью. Что-то ограничения самой JVM которые пришлось костылить, например val x: UInt = 2_000_000_001u val y: UInt = 2_000_000_002u println(x + y) на первый взгляд никаких объектов не создает, но если заглянуть в байткод видно что создается объект UInt, а потом в toString() он создает Long и вызывает у него toString(). Это костыль чтобы обойти ограничения JVM. Есть проблемы с самим сахаром Котлина, например все коллекции имеют методы map/filter/и т.д. которые в случае иммутабельных коллекций которые юзаются по дефолту создают копию. И когда ты на большой коллекции будет последовательно вызывать myList.map {}.filter {}.map {} у тебя будет создаваться много промежуточных данных которые не нужны. Если использовать стримы то такой проблемы не будет, но об этом надо знать.
Кто такие Хуйчинский в джава мире? Никто. Кто такой Мартин? Известный нфобизнисмен, в джаве тоже. А Тагирка Валеев - разработчик идеи коммитит в саму джаву. Даже на официальном канале самой джавы, есть видос про идею: https://www.youtube.com/watch?v=FP0V98S4l9w Что-то я про эклипсу, вскод, нетбинс или вим таких видосов на этом канале не вижу.
>>2286362 >Роберт Мартин тоже раскритиковал Котлин: >Завершается пост неожиданной аналогией: «вот и катастрофа в Чернобыле произошла, потому что там обошли защитные меры, так что не полагайтесь на них и пишите кучу тестов!» (Тут сложно удержаться от вопроса «Простите, а часовню тоже Kotlin развалил?»)
И тут будет не лишним напомнить анонам, что лицензионном соглашении жавы которое хуй кто читает написано >You will not use the Programs for, and will not allow the Programs to be used for, any purposes prohibited by applicable law, including, without limitation, for the development, design, manufacture or production of nuclear, chemical or biological weapons of mass destruction.
>>2286546 спасибо. А вот про отсутствие примитивов в котле что скажешь? Выше писали про увеличение использование памяти. Хотя сам я помню советы всех преподов по джаве дефолту использовать врапперы, а переходить на примитивы, только если это необходимо для повышения перфоманса в конкретных местах.
>>2286556 >А вот про отсутствие примитивов в котле что скажешь? Их нет на уровне языка, но по возможности Int компилируется в int. Например fun foo(vararg numbers:Int) будет скомпилирован в int... , но вот с List<Int> котлин ничего сделать не может и там будет List<Integer> как и в жаве. Инлайн типы тоже по возможности просто передаются как примитивы, но иногда все же приходится их врапать в объект.
>>2286631 >х86 тоже может делать call Дебил продолжает срать под себя. CALL в x86 это просто PUSH EIP + JMP никаких аргументов, поиска адреса нужной функции в VTABLE нихера.
>>2262746 (OP) Как научиться нормально прыгать по слоям в джавовских проектах? До этого прогал на си и питоне считай процедурно полностью, и то ничего нормального не делал. На джаве только разок морской блй ебнул на жавафх да простейший хеллоуворлд спринг бутовский. Вот сейчас сижу разбираюсь как нормально писать логику внутрь спринг секьюрити, и нихуя не понимаю, мне надо что-то доставать из 10 слоев, наследовать, переопределять методы и впихивать обратно, а я во всём этом путаюсь и не понимаю куда именно надо впихивать логику. Можете что-то посоветовать или это тупо с опытом?
>>2286710 Какая там логика то в спринг секурити? Там вроде в типовых случаях чисто конфигурация. Наследуешься от WebSecurityConfigurerAdapter и конфигурируешь.
>>2286720 Нет, мне типовой случай не подходил, потому что я делаю жейсон аутентификацию. Провайдер каждый раз дрочил бы юзердетэйлссервис и лез в базу по юзернейму, а мне нужно чтобы он это делал только для рефрештокена, а для аксеса проверял только по сигнатуре. Поэтому мне надо делать кастомный провайдер и впихивать его. Но это я уже понял, а сейчас продолжаю разбираться что ещё мне нужно кастомного сделать и куда впихнуть.
>>2286693 >int точно также вызывается через таблицу прерываний, которая лежит в памяти. >в 2к22, когда кругом x64 неиллюзорно говорить про int Иди отсюда грязноштаный, постирай портки и прими таблетки от склероза.
>х86 тоже может делать call или int и байт-код тут не уникален, что может разные вызовы делать Аналоги int это разве что native функции, но в байткоде для них нет никаких опкодов кроме декларации.
>>2286760 Кстати, это же адекватное решение, если я сделаю какой-то токен контроллер, который будет жвт токены выдавать, а во всей системе спринг секьюрити я буду только их проверять? Или мне вот эту выдачу токенов по правильному надо как-то тоже в классы секьюрити завернуть?
>>2286859 >Кстати, это же адекватное решение, если я сделаю какой-то токен контроллер, который будет жвт токены выдавать, а во всей системе спринг секьюрити я буду только их проверять? this Spring Authorization Server в помощь.
>>2286537 Ну он активно занимается пиаром своей параши айти школы, поэтому к нему и идут люди. К слову, он сам вроде бы уже не преподает, этим занимаются другие люди, а он только пиар на ютубе делает.
>>2287077 Если у бизнеса продукт "А" будет шустрее и эффективнее продукта "B" конкурента, то бизнес тебя носом как котенка ткнет в раст. А то что там у тырпрайза, там вообще пофиг, хоть кобол.
>>2287308 Тыкал котлин. Сначала был восторг от сахара и прикольных фишечек, потом подумал: и чо? Всё равно абстрактные фабрики никуда не делись, и чуть дальше хелловорлдов на 100 строк разница вообще не ощущается, вот прям ни капли не приятнее писать на котлине. Как ебался с фреймворками и логикой, так и ебёшься. Вернулся к жабе.
>>2287323 Не понимаю я эти ваши автомобили, как ели ехали по улицам, так и едем. А еще каким-то топливом заправлять надо, ремонтировать. Вон лошадь с сеном поставил и ушел отдыхать. А цену то видели?
Почему все джависты сплошь какие-то скуфыни? Любители совка и/или Пыни, автобыдло, семейнобыдло с личинками и ипотеками, заплывшие жиром подпивасы, в ютубе подписаны на Гоблина и Жукова.
>>2287192 как будто студенты хуйчинского потом идут на галеры. И судя про то, как часто он говорит про древний жаба ее кал, то в галеры еще более паскудные, чем епам.
>>2287308 Потому что помидоры не хотят его учить, когда для обычной жабы столько работы. По факту начать писать на котлине после жабы можно за пару дней, позднее переходя к более идиоматичному коду. Но мы в жабамире, где никто даже цифру версии не поменяет, пока поддержку не дропнут нахуй.
Короче мне тут скоро сдавать в одной шараге экзамен, скопипащенный с oca/ocp. И я сейчас прорешиваю тесты из книжек боярского. Я через сотню вопросов типа скажите, результат компиляции десяти строчек просто сломался. Меня тошнит и болят глаза. Разбираться в листингах без подсветки синтаксиса это боль. И большая часть ошибок, это я не заметил пропущенную скобку или ещё какую нибудь шляпу. Ладно хер с ним мой экзамен, он облегченный. Но как люди это говно (экзамен на сертификат) в реальности сдают? Вспомнил самое плохое из ЕГЭ.
>>2287902 К сожалению на экзамене так нельзя. Я слышал, что даже на некоторых собесах дают задачки с копиляцией говна в уме. Я ною конечно, но эта хуйня реально дохуя сил отнимает и особо ничего не даёт.
>>2288078 Он либо долбоёб, либо не полностью раскрыл мысль. >>2288108 Петухонщики и жопаскриптеры говорят так из-за отсутствия выбора, а не из-за того, что пришли к этому сами.
>>2288137 > на специфичных проектах Вот это уже больше похоже на реальность, чем "многопоточка = хуёвая архитектура". Хотя от реальности всё ещё далеко.
поясните что значит хиберовская аннотация mappedby. Как бы вот определение signals hibernate that the key for the relationship is on the other side. Но оно не полное какое-то. Дальше как бы что?
>>2288956 1. Ты завидуешь, что я пишу в классненьком вскоде, а ты уже проплатил свою идею и деньги не вернуть. 2. Лучше, чем твои копипасты из гугла. Сам ты даже такой код написать не можешь.
>>2289028 Покормлю. Ты 3 недели назад написал первый пост. С выебонами на идею. С примерами хеловордов из шилдта. А теперь срешь другими хеловордами из эккеля. То есть ты реально не свитчер из других языков, а шиз-вкатунец. Но даже вкатунец мог бы за три недели начать тут срать хеловордами ну хотя бы на женерики/коллекции. Но у тебя хеловорды на простые циклы. На этом уровне можно реально писать в блокноте. Полноценная идея нужна для ебли со спрингом. Там есть несколько спринг плагинов, мавен плагинов, градл плагинов, плагинов для шаблонизаторов, плагин-клиент бд, плагин хттп-клиент, жпа плагины.
>>2289059 Я просто не понимаю зачем ебать себе мозги чем то кроме дефолтного мавена. Ну у градла есть пара преимуществ, но они применимы для 5-10% проектов. Ну попадешь на такие и быстро его выучишь.
>>2287338 В джаве полно скуфов? Отлично, тогда я вкатываюсь куда нужно. Хоть мне и 20, но в свои годы я выгляжу как типичная скуфо-свинья прямо как на боевых картиночках из тредов в /b.
>>2289112 Ну просто синтакис объявление зависимостей это самые основы и 90% использования сборщика. И меня бомбит, что они даже их изменили несколько раз.
>>2289107 Я не знаю зачем тебе гредл. Один раз всего было. Мне кажется, что ты хочешь чтобы я тебя убеждал бросить мавен. Но я уже давно понял что просвещение невежд это сизифов труд и того не стоит.
>>2289112 Не знаю что за плагин спрингбута, но для жирного жарника всегда юзали shadowJar. Что там охуитительного с двух строчек конфига было бы интересно узнать.
>>2289125 >ряяяя, а вот грудель, мой груделечек, он лучше, современнее, красивее, возвышеннее >чем? ну это я вам не скажу, еще метать бисер перед свиньями, палить годноту быдлу.
>>2289129 Если интересно узнать ответы на свои вопросы, читай прошлые треды. Будут одни и те же аргументы и контраргументы. Если так называемое быдло не способно к самообучению это всё бесполезно в любом случае.
>>2289138 Ну вот, опять конфронтация и агрессия. О чем было сказано ещё в первом посте. Ну не могут люди с бинарным мышлением позволить другим развиваться. Обязательно тащат обратно в свое привычное болото.
>>2289166 первый пост был полон презрительного тона и имел оскорбительное сравнение. То есть ты начал с агрессии и конфронтации, грудловичок. Но вывезти свои понты и претензии не можешь.
>>2289046 Ты сам-то за сколько освоил язык? Поди циклы изучал несколько лет, а сейчас тут сроки указываешь другим. Сколько надо - столько и буду учить. В менторинговом курсе Сергея Немчинского люди тоже разное время учатся. Кому надо больше времени, а кому-то меньше. В одном из видео он даже пояснил, что больше - не значит хуже, потому что человек более детально всё изучает.
>>2289192 Если хочешь узнать, читай прошлые треды. Всем токсикам были пояснены все плюсы и минусы предельно ясно. Мне лень повторять это и получать однотипные комментарии от вкатунов не умеющих читать документацию.
>>2289287 Это с baeldung. Ты пропустил "не" On the other hand, the mappedBy attribute is used to define the referencing side (non-owning side) of the relationship
Все собеседования по жабе настолько одинаковые, что мне кажется, что можно устроить даже человека, который код ни разу в жизни не писал, если заставить его выучить типовые вопросы как студент билеты (главное, чтобы лайвкодинга не было)
>>2289580 > Все собеседования по языкнейм настолько одинаковые, что мне кажется, что можно устроить даже человека, который код ни разу в жизни не писал, если заставить его выучить типовые вопросы как студент билеты (главное, чтобы лайвкодинга не было)
>>2289868 Не всё, там надо по верхам пробежаться. Чем тема дальше от кора - тем меньше нужно помнить. Например, надо мочь чётко ответить на почти любые вопросы по синтаксису, называть все методы класса Object и подобное, в потоки и JMM можно сильно не углубляться, а про какие-нибудь сервлеты достаточно иметь лишь общее представление.
>>2289868 Ну меня например про хранимки и тригеры в sql ни разу не спрашивали, зато про транзакции: асид, изоляцию, пропогейшены ебали несколько раз. Да и по другим темам там не очень вопросы и ответы. По коллекциям или тестам например многого нужного нет и есть мусор. Ну и хибер, спринг, гит.
>>2290133 Догмы - вот настоящее зло. Лежат у тебя в одном пакете несколько сервисов, все они используют общий хелпер, лежащий в том же пакете, больше этот хелпер никому не понадобится. И что, он должен быть паблик, потому что какой-то иерарх решил, что > Классы уровня видимости пакета это зло Так что ли?
Есть какая-нибудь норм книга или мануал по отладке приложений с помощью профилировщиков? Наверное нужно от части понимание и как JVM работает. Уже пару раз встречался с такой задачей, но особо не гуглил. Обычные книги по языку этот аспект не освещают.
Алсо бесит, что джава сосет в плане UI. На джаве fx так и не завезли нормального готового rich text edior. Приложение cherrytree, которым я активно пользуюсь, сначала было написано на питоне, потом автор переписал на сях. RTE есть и под js, напр можно заюзать с протоном. А на джаве хуй. Напр хочется добавить в cherrytree какие-нибудь плагины типа для генерации диаграм из plantuml, но целый с++ для этой личной задачи слишком оверкилл.
>>2290362 Да, джава сосёт в плане UI и всегда сосала, это никогда не было её нишей и не будет. Об этом неоспоримом факте должно знать как можно больше разрабов, чтобы даже не пытались писать гуй на жабе, заведомо зная, как всё там плохо. Все существующие гуёвые программы на жабе необходимо срочно переписать на другие языки, и новых не писать.
>>2290496 Хз, поднимал, не понравилось, глючно было. Вон даже пишут, что поиска нет. >proof of concept Ну так на других платформах уже готовые компоненты есть, полноценные и работающие. А тут загатовка какая-то обрезаная. Хотя я с javafx почти не разбирался, может попробую еще раз.
>>2290635 Спрашивают все методы класса Object, разницу между абстрактным классом и интерфейсом с дефолтными реализациями методов и классификацию эксепшенов.
>>2290362 >На джаве fx так и не завезли нормального готового rich text edior. >нормального готового rich text edior. >rich text edior. Чел ты
RTE и Grid самые сложные UI компоненты. Если твои задачи выходят за рамки "WodPad на минималках", то тебе по любому надо или писать свой компонент или сильно допиливать существующие.
>>2291024 да бля, в моем мухосранске так уж и много контор. А у меня уже год опыта есть в говноконторе с ультра легаси проектом, на котором нихуя не научился практически
>>2291024 добавление к посту выше. я решил просто резюме составить и выставить. В этот же день 2 популярные конторы пригласили на резюме, хотя я при общение указывал, что год проработал на говнопроекте. короче хуй знает к чему готовиться
>>2291294 Да они же ебланы. Юзерам не нужна соснсоль, они работают исключительно через UI, где нет проблем с русеком. Разрабам/админам, которые работают в сосноли, не нужен русек, они же нормальные люди, а не юзеры.
Если человек не занимался программированием, то предположительно можно оценить его способности к этой области в случае ее изучения. Многие полагают, что способности программировать связаны с умением решать математические и комбинаторные задачи. Другими словами, если у Вас в школе твердая пятерка по алгебре, геометрии и иным математическим дисциплинам, а так же умеете хорошо играть в шашки и шахматы, то вполне вероятно, что будете неплохо программировать, если начнете этим заниматься. И наоборот, если в школе у Вас тройка по алгебре, как бы вы не старались, то вряд ли программирование - это то, чем Вам стоит заниматься. Так же следует отметить, что Ваши заслуги в области освоения гуманитарных предметов мало Вам помогут в освоении программирования, которое, как Вы уже поняли, относится к точным наукам.
>>2289362 >The mappedBy element designates the property or field in the entity that is the owner of the relationship. Тут написано "Элемент mappedBy определяет поле в объекте, который является владельцем отношения". То над чем висит аннотация mappedBy не является владельцем отношения, в нем указано поле на другую сторону, где хозяин отношения. Мы правильно друг дргуа поняли?
>>2291375 >освоения гуманитарных предметов мало Вам помогут Значит английский не нужен и это просто закидон местных говноконтор, которым нужен англоговорящий программист?
>>2291636 Если ты работаешь на внутренний рынок, то английский может и не понадобится, документацию кое-как прочтёшь через переводчик. Но если хочешь нормально развиваться с зарплатой в валюте и возможностью реклокации в другую страну, то все таки желательно знать английский.
По факту ещё зависит от конторы, в одной с меня хотели английский на уровне с1, хотя проект был для местного заказчика и нихуя там на английском не было.
>>2291675 Если нормально учил и делал все упражнения без проблем, то скорее всего B1 или B2. C1 - это уже надо доп.курсы проходить, читать много литературы на инглише и прокачивать практику.
Кароуч , анонасы. Сходил столько что я на собеседование. Вопрос про коллекции настолько замученный , что когда я начал пересказывать всю шапку меня заткнули и сказали достаточно. Больше не поднимали эту тему. Анону который упомянул ACID выше большое спасибо , про это спрашивали. Жаль что я выучил только их , про изоляции транзакций я почему то посчитал что не спросят. Из не очевидного спрашивали что такое аннотации и как работают. Я есен хуй не ответил , никогда даже не гуглил этот вопрос. Про HTTP методы были вопросы и задачи на построение SQL запросов. Задачи на алгосы еще давали на время решать ненавижу сука.
>>2291905 Онлайн казино кодят ,как мне объяснили. Алгосы минмальной сложностью, нацелены на знания работы с колекциями. Тоесть это не контест с задачами как у яндекса. Но времени выделяют на 2 задачи 20 мин. Я охуел с такого расклада , первый собес как никак чота занервничал..
>>2291963 Лист это интерфейс , а аррэйлист это класс его расширяющий. Ты можешь юзать методы прописанные в интерфейсе. А когда сразу арэйлист создаешь , как во втором случаи , тебе идея подсветит все методы аррэй листа , которые содержат и то что в листе прописано. Вроде как то так.
Няши, насколько быстро/медленно такое будет работать?
Смысл в том, чтобы вызовом одного метода, указав тип byte, short или int прочитать из инпута строку, предваряющуюся в потоке ее целочисленной длиной, которая может занимать 1,2 или 4 байта, соответственно. Если такое использовать в реализации реалтаймового сетевого протокола поверх TCP такое решение несильно ударит по производительности? Или лучше все же реализовать три метода readUtf1B, readUtf2B и readUtf4B, навредив дизайну?
Дискасс-вискасс, алсо, я просто не шарю насколько быстро работают сравнения типов по классу.
>>2292180 >я просто не шарю насколько быстро работают сравнения типов по классу. Это 100 процентов не самая медленная часть твоего кода. В данном случае будет просто сравнение 2х ссылок.
Длина - имеется в виду длина всей строки в байтах, а не размер каждого символа. Располагается прямо перед байтами самой строки. Так вот эта длина, само ее значение и занимает 1,2 или 4 байта, в зависимости от того насколько большая может быть строка.
>>2292384 Это может быть bottleneck-ом, поскольку вычитывание из сокета происходит постоянно на протяжении всей работы приложения.
>>2292425 >Это может быть bottleneck-ом, поскольку вычитывание из сокета происходит постоянно на протяжении всей работы приложения. Конкретно этот кусок - нет, никогда он ботлнеком не станет. Там тупо нечему тормозить, 3 сравнения и чтение 4-х байт.
Вообще если у тебя такой йоба-хайлоад, то по хорошему надо разносить чтение из сокета и парсинг. Читает асинхронная фигня на каком нибудь Netty, и складывает в очередь, а потом уже твои консьюмеры парсят прочитанное.
>>2292698 анон, я тебе ничего вообще не предлагаю. где ты увидел это? меня интересует мнение людей, которые знакомы с его каналом, подписаны на данный момент или подписаны были ранее.
>>2292703 Попадался на два или три видоса. Нормальный чел. Немного поверхностно, но норм. По джаве и так миллион видосов, по спрингу у него как-то очень куцо(но я посмотрю по спринг тестам. что он заснял). На торрентах есть его курс по хиберу, по содержанию вроде норм. Думаю только это представляет ценность.
>>2293015 Что там хорошего? Лектор тараторит и бежит сломя голову по материалу. Ещё студентов задарживает, когда пара уже закончилась. Всегда бесили такие преподы, которые не умеют распределять материал лекции.
>>2293031 Он не первый раз читает, а выводов так и не сделал. Вообще, хороший стиль - это оставлять 5-10 минут на вопросы. Обычно вот такие валеевы, сами плохо читают, дак ещё и на экзаменах студентов валят. У меня вот тоже по джаве был такой препод-неумеха, поставил мне 4 на экзамене, хотя я программирование всегда на 5 сдавал.
Есть spring boot приложение которое релизится руками. Градлом собирается в жирный jar и руками запускается на сервере. Изменения по базе тоже вносятся руками. Вопрос - как быстро и без боли автоматизировать этот процесс? Читал про CI/CD, но это всё выглядит слишком уж complicated. Докер и прочие модные штуки не юзаем, у нас тут всё по-простому.
>>2293090 > и руками запускается на сервере gradle ssh plugin > Изменения по базе тоже вносятся руками. Миграция? Должна происходить при старте приложения. У меня migration-1.sql migration-2.sql и тд в ресурсах, можешь что то подобное придумать. С flyway не работал.
Научите в многомодульные приложения в мавене/идее. Как это выглядит вообще? В одной папке несколько папок с pom.xml внутри? Нужен родительский мавен проект или похуй? А как это выглядит в идее? Для каждого проекта свой мавен модуль?
>>2293639 Ну хелло ворлд с одной кнопкой не тормозит. Я не понял зачем он нужено, если там мерзкий материал дизайн, нет таблиц, а код выглядит так же, как у tornadofx.
>>2293693 Да, многие вещи повторяет по сто раз. Но это и стоит повторять.
Например, то что "программирование - это практический навык". А я все утопаю/убегаю в теорию. Пытаюсь все познать через теорию.. боюсь писать код. Потому что не понимаю/не получается.
Пацаны, кто может пишет плагины на жабке для Jira, Confluence? Чё-каво ваще? Мне кажется шо хуйня полная. Ещё и зп предлагают смешную - до 70к, хотя в объяве указано, что нужен мидл. Я сам то вкатунец, мне б опыт получить, мне предлагают тыщ 35-40, всяко лучше, чем ничего, но блять предложили простенький плагин написать, а я хуй знает чё там этой джирой, система вся их ебанутая как по мне, какая-то ебала с лицензиями и т.д.
Я нихуя не пишу, но общался чуть с ребятами, какая-то контора, которая на этом хорошо деньги делает, но там вилка была вполне стандартная и даже чуть лучше - 400-450, но ебали там на собесах люто, я не пошел даже пробоваться. Они оч долго висели на hh собсна, может и сейчас висят.. ищут рок-звезду.
>>2294286 Делать мне нехуя. Я же Вкатун Вкатунович, прочитал алгосы на уровне грокаем алгоритмы, немножко поиграл с реализациями коллекций. Ну порешал несложные алгоритмические задачки на степике. Эта хуйня для студентов-отличников, любителей олимпиад, задротов по алгосам. Я пойду в галеру или в банк по проще, типа сбера. Буду копаться в легаси, ковырять баги, грузить жейсоны и прочий кал. Многие пальцы гнут, про то какие они не макаки, а будущие крутые инженеры, вот пусть и задрачивают.
>>2294328 Я? Просто тут бугуртят от яднексов и тиньков и прочих недоффангов. А я не понимаю че бугуртить. Полно же вакансий, где это не надо. Я считаю это же охуенно, что есть места где есть доп критерии, типа задротства алгосов.
Я в пятый раз решаю контест тинькоффа в школу бекендеров, однако каждый раз получаю хуй за шиворот. Причем в процессе решения мне кажется, что задачи я решил верно. Во всяком случае, те тесты, что там даны, и мои собственные, которые я придумываю, мои решения проходят успешно. Видимо всегда забываю учесть крайние случаи.
Вопрос лишь в том, как подготовиться и поступить в эту хуйню? Я-то просто задачи на литкоде решал. Решил 160 штук уже, 70 изи, 80 медиум, 10 хард, однако никак в эту хуйню поступить не могу, лол.
>>2294325 >Многие пальцы гнут, про то какие они не макаки, а будущие крутые инженеры, вот пусть и задрачивают.
Меня в свое время запугали, мол сбер хуйня, галеры хуйня, все эти ебамы, люксофты, нетсракеры - говнище полное. А нужно идти в яндекс, тинькофф, jetbrains, дойче, хуавей. По словам анонов из джвмджобс там годно очень. Вот и я пытался туда попасть. Но видимо пора искать место попроще, и 2-3 года там просуществовать, а только потом уже пытаться стучаться в нормальные конторы...
>>2294456 Круды совсем простые делал. Но вообще я проебался конкретно. Нужно было спринг дрочить и литкод на уровне "развернуть связный список", а не заниматься всей этой олимпиадной хуергой, которую даже в FAANG на высокие грейды вряд ли спросят
Эти внутренние классы вообще используются? Эккель пишет, что это дофига крутая штука и решения получаются красивыми и элегантными. Только в его книге я не увидел ничего элегантного, какие-то ребусы ради того, чтобы впихать эти внутренние классы. Код получается сложночитаемым и не понятным.
>>2294625 Да. Посмотри реализацию коллекций. Хешмапа, аррейлист. Реализации итераторов, энтрей, энтрисетов и прочее. Там куча внутренних классов. Если примеры в Эккеле не зашли, скачай блоха и читай отдельные главы по интересующим тебя темам. Про виды внутренних классов и их применение у него точно было.
>>2294789 Ну вот я лазил по сорсам и нашел весь путь как может быть подан этот детэйлсСервис в конфигуреры аутентификации. Но там нигде я не нашел никакого автовайреда или конструкторов с этим интерфейсом.
>>2294888 А я могу как-то вывести список куда может спринг автовайрить бины определенного интерфейса? Потому что не могу никак найти место куда будет завайрен этот класс.
>>2294625 Эккель много выёбывается в примерах, причём там где выёбываться не надо, что часто вызывает затруднения в понимании. Просто погугли примеры попроще, на том же говно-javarush примеры максимально простые - понимается проще, но текстовка лучше у Эккеля.
>>2295023 Спасибо, в даопровайдере оно сетится в ручную, а первом действительно автовайрит. А почему я не мог найти сам? Мне надо где-то в настройках айдии поставить чтобы она сурс коды скачивала, а не декомпилировала байткоды, в этом мб проблема.
Кто-то перекатывался с 8 версии на что-то новее? Столкнулся с проблемой, что нужная сдк требует 11 версию, а нам эти новшества не особо-то и нужны. С какими проблемами потенциально могу столкнуться при перекате на 11+ версии? Спринг с хибернейтом больше всего беспокоят
>>2295349 Ладно только при компиляции, так там какая-нибудь хуйня может ёбнуть только тогда, когда её вызовут, а на 8 сработает. >>2295358 Не существует на 100% обратно совместных технологий, иначе бы все сидели на самых последних версиях.
>>2295634 Примитивные типы хранятся в явном виде в памяти. К примеру, если int, то это 4 байта под целое число. Ссылки на объекты - это 8 байт (для 64-битных систем), где хранится адрес, который указывает на первый байт объекта где-то в памяти (куче). Сборщик мусора, кстати, может менять значения ссылок, когда освобождает память и переупаковывает живые объекты.
>>2295634 >Что есть имя переменной в примитивном типе? 1. Нет разницы это примитивный или ссылочный тип. 2. Если мы говорим про локальную переменную, то имя переменной это просто набор символов для компилятора. После компиляции все локальные переменные будут храниться на стеке и адресоваться по номерам имена могут сохраняться в дебаг информации. Для примитивных типов хранится само значение, для ссылочных - ссылка на объект в куче.
>>2296015 Потому что надо было слушать Сергея Немчинского, а не местных. А он говорил, что идея многое делает за программиста и тот ни чему не учится, а потом на работе: "ой, а у меня раньше так работало...".
>>2296499 Расскажи пожалуйста тезисно про все три гуи-библиотеки. Я никогда не собираюсь писать гуй на джаве, но просто интересно. Один день копался в свинге и мне не зашло.
>>2296587 Жабафх - стандарт десктопа для жабы 8. В целом годно, но некоторые моменты с лейаутом просто убивают (нельзя просто взять и задать ширину и высоту элемента, все ноды вычисляют эти значения по каким-то запутанным правилам). Из-за выпила из джк и введения модулей в 9 практически неюзабельна. Ну нахуя кому-то перечислять десяток модулей в module-info? Чтобы собрать свою ждк, которая на 10мб меньше? Охуеть, дайте два. Торнадофх - фреймворк для жабыфк на котлин. Привносит охуительный dsl для построения интерфейсов, инъекцию зависимостей и в целом имеет простую и понятную архитектуру. Идея мне сгенерила проект с module-info, так что я не понял, можно ли в котлине от него отказаться. Видимо нет, так что все проблемы, которые актуальны для жабыфк, актуальны и здесь, Компоуз - поделка для андроида и виндовс 10. Хелло ворлд работает, но таблиц еще нет, слишком сырой.
Новая мета от ДимСоула. Если ты не разбираешься в кубернетисе и не можешь довести приложение от разработки до деплоя и мониторинга, то ты слабенький мидл, которому и 100к платить - лишь деньги тратить. Вникайте!
>>2296716 Нет противоречия. Настроить средства мониторинга и написать скрипты для саппорта - это не то же самое, что заниматься мониторингом и запуском скриптов.
>>2296731 >Настроить средства мониторинга и написать скрипты для саппорта - это не то же самое, что заниматься мониторингом и запуском скриптов. Много ты напишешь и настроишь когда у тебя нет доступа к эвайроменту. У нас О'ПСЫ сказали, что им нахуй не нужен наш ансибл, сами напишут. Про мониторинг сказали - дайте метрики, а борды мы настроим сами без вас.
>>2296742 Получается ОПсы умнее вас погромистов? Не удивительно. Я вот тоже поработал сис. админом и насмотрелся на говно, которое выкатывают наши разрабы. Теперь вот сам собираюсь стать погромистом.
>>2296867 Мне кажется погроммистам надо срезать зарплаты, тогда туда пойдут люди, которые любят это, а не просто лезут за деньгами. Сейчас вот куча бездарей проходят всякие джавараши и устраиваются на работу. Я тут на днях видео стрим одного такого вкатуна и он там такое говно пишет, при этом даже не понимает как писать, у него цель просто, чтобы тест прошёл.
>>2296869 И в чем он не прав? Если бизнес готов платить такому работнику, значит он все делает правильно. Кто-то же должен разгребать говно, будто бы среди любящих программировать, так дохуя оргазмирующих от ковыряния в выгребной яме однообразных задач.
>>2296856 ОПсы мониторят прод 24/7, поэтому они лучше знают что им нужно мониторить, а что нет. Они сами решают когда деплоить новую версию. Опять же есть инфобез который тоже приходит и раздает ЦУ - тут пароли не храним, к этой байде доступ должен быть у А и Б только, а тут у нас будет фаервол.
You build it - you run it, конечно хорошо, но это далеко не всегда работает. А еще например бывают коробочные продукты типа SAP. Когда ты разрабатываешь софт, а внедрением занимаются совсем другие люди. Тоже надо всех разработчиков во внедренцы переводить?
>>2296869 Сам сейчас учусь в Kata Academy, как устроюсь буду платить им по 17% с зп, обещают 100к+ сразу, уже 3 месяца проучился, прошли джава кор и сиквель, потом будет совместный коммерческий проект с другими учениками, препод будет курировать всё это дело. Не понимаю хейта, по мне учат хорошо, наставляют, рассказывают в каком направлении дальше двигаться, а в конце хрюша помогает составить тебе резюме.
>>2296975 И что? Так бы я никогда вообще не осилил вкат и работал бы за 35к в этом ссаном саппорте, где меня постоянно шпыняли и давали внеочередные ночные смены. Я уже уволился, теперь я не раб. А скоро еще и программистом стану.
>>2296601 Чел, каждое второе предложение, буквально по верхам нахватался. Разберись нормально с чем работаешь, чтобы делать выводы от которых не будет рукалицо
>>2297378 >Project reactor Не потянет наш текущий фреймворк, это нужно все с нуля переписывать.
>>2297379 >Чего тебе не хватает? Нехватает чего-то наподобие Котлина override suspend fun sayHello(request: HelloRequest) = HelloReply .newBuilder() .setMessage("Hello ${request.name}") .build() Написал suspend и у тебя асинхронная функция. Так-то функционала CompletableFuture хватает. Просто код выглядит как говно.
>>2298072 Он позволяет котлину приостанавливать функции. Преимущество появляется если есть асинхронные IO библиотеки которые умеют работать с котлином - например gRPC или jasync-sql - тогда у тебя вызовы становятся асинхронными.
Асинхронный gRPC для жавы выглядит как колбеки в CompletionStage, а в котлине как suspend функции.
Доброго дня, аноны! Подскажите, на собесе задали вопрос. Завалил его, но чувствую что он простой, поэтому хочу разобраться. Есть литерал 0x9876_5432. Нужно определить знак. Но не переводя при этом в двоичную систему и не использовать знания о диапазоне значений int. Понимаю, как понять переводом в двоичную, не понимаю при чем тут диапазон значений, ну и соответственно правильного ответа вообще не знаю
>>2298121 Тут простая логика, но хз, это ли собеседующий хотел услышать. Одна шестнадцатеричная цифра соотвествует четырём двоичным. Смотрим на самую первую цифру, она больше 7 (0b0111), и начиная с 8 (0b1000) первый бит - единица, и в соответствии с обратным/дополнительным кодом такой вывод. Непонятно только, как здесь вообще можно что-то объяснить без привлечения двоичной системы.
>>2298161 Да когда уже раст взлетит то? Который год все кричат что раст крута, что на раст надо переходить, что хотят его учить, и который год раст сидит в жопе.
бЛЯТЬ КАК Я ЗАЕБАЛСЯ СУКА ПОЧЕМУ Я НЕ МОГУ ПРОСТО 1 ИНТ ВЫТАЩИТЬ. Мне обязательно нужно класс создавать для этого и мапер для него ? Я никак не могу получить просто 1 инт/стринг ?
Почему из каких-то репозиториев можно клонировать код/скачивать в виде zip, а из некоторых - нельзя? Какой смысл постить код и вставлять палки в колеса при попытке клонирования? Какой в этом смыСОЛ? или я чет не понимаю?
Пытаюсь сделать что-то похожее на систему тестирования. Как правильно организовать хранение ответов, которые дал пользователь и результаты? Можно хранить id ответа и пользователя, а информацию о вопросе и тесте получать из ответа? Или лучше в таблицу результата вписать id теста, вопроса, ответа и пользователя?
>>2298161 Наконец-то это говно сдохнет, вкатуны и умняши уйдут в сишарп и гоуленг, а я с легкостью вкачуся и буду править XML конфиги, фиксить баги 2005 года и перекладывать джейсоны в самом древнем джава-легаси!
>>2296265 Это ты ещё в кофе-тред не заходил, вот где пиздец творится. Думаю что это даже не ирония что язык назван по сорту кофе с одноименного острова
>>2298471 Для шарпа есть дотнет и вижла, а там фреймворк для бекенда ASP.NET и его проект можно создать также просто как проект консольного приложения. Просто вводишь название и жмёшь готово. У тебя уже работающие приложение, которое можно расширять как угодно.
>>2298161 >Украинский профильный ресурс DOU.UA провел очередной ежегодный опрос о языках программирования. На этот раз собрали 9245 анкет из Украины. Ясно
>>2298767 >тенденции it в развитом мире Развитые IT компании не отдают разработку ключевых вещей на аутсорс. Аутсорсятся только второстепенные вещи на которые своих разработчиков нехватает.
Плюс если это финтех там есть куча регуляторных ограничений, например нельзя просто так рандомхую дать доступ к данным клиентов это нужно например, для разбора прод инцидентов. И вообще передача данных граждан ЕС/США, за пределы ЕС и США это боль и страдания. У нас например у сотрудников из российского офиса не все доступы были.
Сап. Хочу первый раз попробовать внедрить логирование в проект. Такой вопрос, какую систему логирования следует выбрать? Что там все же у Log4j с безопасностью? Могут ли проблемы проявиться если программа это просто какое-нибудь приложение на собственном сервере предприятия?
Тред, я нихуя не понимаю Мне нужно навешивать разные комбинации секурити проверок на методы в контроллерах И вот вроде в 5.6 добавили возможность нескольких мета аннотаций судя по https://github.com/spring-projects/spring-security/pull/9630 Только нихуя не работает, где я обосрался?
>>2299995 Ну эт норм. Хотя, мой друг, который 4+ лет в Java, когда впервые заговорили и я назвал Java "жабой" - он удивился и сказал, что никто так не называет (вот бестолочь)
Пачаны, ну почему вам сложно перекатывать каждые 1500? У меня страница грузится 10 секунд, за 100 дней я трачу около 3000 секунд впустую, это бля почти час жизни просран из-за вашей ошибки!!!
>>2300179 Двачую. Кстати мне только за запись в резюме, что я прохожу тренинг ответили на отклик и позвали на собес. >>2300150 Короче записывайся и ищи параллельно другую работу. Я так делаю. Ибо шанс маленький. Там только в один офис в месяц попадает два-три десятка лаборантов. Стажировка еще не началась, а я уже не в накладе. Многие, кто проходил, говорят норм опыт. Хотя с другой стороны можно спиздеть, написать про стажировку в резюме и не идти туда.
>>2300192 Нет, именно в питерский епам в лабу 100% удаленка. В тренинге были сплошные скуфы 25+, много тяночек, тоже в возрасте. В тренинге было 30 человек. Ну на стажировку пройдет 20. И 10 может сразу на стажировку идут. Меня сразу на стажировку не взяли из-за плохого инглиша. Я решал на проходной бал их задачки и готовился к собесам заодно. Но с тренингом это вообще полгода+(тренинг ровно 3 месяца). Уровень тренинга слабый, экзамен - простые задачки на кодинг и тесты прямо из книжки тестов aca/ocp java8. Сейчас после собеса с неплохим фитбеком на нормальный стек дали тестовое, если возьмут, то нахуй лабу. Если нет - буду дрочить лабу и проходить собесы дальше.
>>2300268 Не знаю, но у меня очень хуевый(но пол спринг ин экшона прочел без переводчика и баелдунг читаю постоянно). Там был онлайн тестик на грамматику и вокабуляр с таймером меньше минуты на вопрос. Я его завалил. Потом еще звонила рекрутерша, спросила пару слов устно по телефону, ну тут я еще мощнее сфакапился. На тренинг взяли, там похуй. Но сказали во в середине/конце лабы будем вас ебать устным ассесментом по английскому..
>>2300185 Ты в любом случае будешь выглядеть лучше половины джунов, у которых даже такого опыта нет. Ну и про то, что стажировка бесплатная не обязательно писать. А стоит подробно расписать, что были за проекты и что ты там накодил.
Как распарсить такое джексоном? Пары двух типов значений, все через запятую. Первое это какая-то единичка и ГодМесяцЧислоЧасМинута, а второе просто вещественное число в одним знаком после запятой.
Сегодня на собесе спросили, как в разных местах кода использовать два разных бина, реализующих один интерфейс. Ну я сказал, хз, может через квалифаер. А мне мол нет, как то, используя паттерн стратегия. Что собеседующий имел ввиду?
Наткнулся на DSL, Потом еще решил посмотреть что на Groovy пишут. Потом натыкаешься там на замыкания, потом на функции первого класса..
Пиздец.. вот так хуячу по ссылкам в кроличью нору. И все ведь интересно! А потом еще хуй вспомнишь с чего начинал.. и день прошел. А ты все вроде развивался, но хуй поймешь куда.
А еще параллельно возникают всякие IT-термины, которые тоже хочется понимать. Пиздос. Че так дохуя-то всего?
>>2300657 Это ты к чему? Про бэк > фронт? или наоборот? Что значит >Примерно как хуй в жопе. ?
Насколько примерно? Как хуй в жопе у кого? Мой хуй в чужой жопе или чей-то в моей? Многие кайфуют и от хуя в собственной жопе Нихуя не понятно = ты ебанат и высрал хуиту какую-то. Отвечай развернуто
Сколько занимаетесь кодингом в день? на выходных занимаетесь изучением чего-нибудь? Бытует мнение, что если в выходные хуярить код или что-то учить, то выгоришь и нахуй все пошлешь. Но если не хуярить в нерабочее время, то и не вырастешь особенно? будешь на месте топлаться, не?
К тому же, мне кажется, что я префаером выгорел. Уже только не хочется нихуя писать код
>>2300810 > Бытует мнение, что если в выходные хуярить код или что-то учить, то выгоришь и нахуй все пошлешь. Выгорание от этого не зависит. Если интересно заниматься этим или хотя бы не приходится себя заставлять, не выгоришь. Порог по времени у всех разный. А если садишься за код с мыслями "бля, не хочу, хочу доту и пивас", то выгорание уже началась.
Да кто это ваше выгорание нахуй? Мужыки за станком всю жизнь работают по 8 часов в день, и не выгорают, а погромисты через полгодика сгорели как щепки.
>>2300830 Средняя продолжительность жизни всех мужичков в Россеи - 67 лет. Причем в кавказских регионах, где почти нет заводов она выше лет на 10. Среди всяких интеллигентов типа врачей и преподов, тоже выше. Да и среди офисных крыс. Значит средний гречневый с завода не доживает и до 60.
>>2300837 Так на заводе после года-двух опыта ты просто ебашишь на автомате и витаешь в облаках весь день. А в макакинге думать надо над говном которое бесит.
>>2300637 >>2300642 Ну смари, в пхп лямбды могут сразу использовать локальные переменные, а обычные функции только с помощью замыканий. Понел теперь? Думаю в джаве так же.
>>2300847 Чел, даже над джуновскими тасками надо думать. Сидеть читать стены говнокода. Да, особо острого ума не надо, но все равно нужна какая-никакая концентрация.
>>2301110 Ну вот вакансий на hh по рф с запросом java spring - 3600, java hibernate - 1400, а с java jsp - 90. Но эти 90 - это сильно больше, чем например java vaadin - 40 или java swing -30.
>>2301110 Про сервлеты почитай, потыкай их чутка, хорошо хотя бы иметь представление о них, так как не них многие фреймворки работают, однако досконально их вряд-ли кто-то будет спрашивать. Jsp тут уж зависит от упоротости компании, опять же прочитай пару страниц, сделай пару страниц.
>>2301110 Сервлеты используются повсеместно, на них работает половина спринга. Но самому их писать надо редко, они достаточно низкоуровневы, должно быть общее понимание. JSP почти не юзается, хотя меня попросили о нём на собесе сказать пару слов. Учить не надо, достаточно знать, что жто такое.
Бывает ли на Яве full stack? Если я хочу сам делать какие-нибудь сайтики на спринге, так как не хочу использовать или изучать пхп и фреимворки питона. Может ли мне это пригодиться?
Поясните простыми словами что такое энтити граф? Как он решает проблему н+1? Зачем он вообще нужен? Я читаю, но суть куда-то ускользает. Русскоязычного что-то на эту тему нет вообще. На английском внятно тоже не вижу
>>2301563 Энтити граф позволяет переопределять fetch политику, для связанных сущностей. Т.е. если у тебя @OneToMany(fetch = LAZY), то с помощью энтити графа ты можешь все равно достать эти Lazy сущности
>>2301463 Так у тебя вместо пхп и фреймворков питона жаба и спринг. Фронтенд придётся писать так или иначе, на чём бы у тебя бэк ни был. Всякое жс-говно на реакте. Если у тебя цель писать именно фронтенд на жабе, бери GWT или Vaadin, а шарпошизика не слушай.
>>2301563 Ну вот представь у тебя есть условная сущность User, у нее есть свои данные (к примеру lastname, firstname, birthdate и тп) и зависимые сущности (к примеру Orders, Payments и тд) соответственно со своими данными. К примеру тебе пришел запрос достать birthdate у конкретного юзера, ты обращаешься к репозиторию зачитайте мне пожалуйста юзера с таким id, он тебе зачитывает твоего юзера и плюс все его зависимости (Orders, Payments и тд). В этой ситуации тебе нужен был лишь birthdate, а зачитка всех зависимостей для тебя это оверкил. Как это решить? Вешаем на определение зависимостей fetch = LAZY и теперь зависимости при зачитке юзера не подтягиваются. Но теперь у тебя появляется другой юзкейс, в котором тебе нужно прочитать что-то у юзера и сагрегировать по его заказам, и в данном случае тебе наоборот было бы оптимальнее сразу зачитать сущность со всеми зависимостями. То есть тебе нужно динамически во время исполнения решать какие данные должны быть зачитаны. Вот тут тебе и может помочь энтитиграф: для твоей сущности ты создаешь несколько энтитиграфов подходящих под твой конкретный юзкейс, и просто указываешь при зачитке репе/ентитименеджеру под каким энтитиграфом ты делаешь зачитку энтити, и тем самым зачитываешь только те данные которые тебе нужны.
Короче дали тестовое. Там надо сходить в публичную апишку, сделать некоторые расчеты, сохранить в бд и отдать через свою апишку. Ну я сделал, как умею. Но есть еще ночь сегодня и завтра день. Что лучше? - Докерезировать базу на постгресе(сейчас там все в инмемори базе). - Написать тесты(дольше всего, не смотря на то что метод на всех слоях считай один). - Прикрепить к моему эндпоинту слою сваггер(это я почти не читал, как делается, но он один - должно быть изи).
Что с точки зрения работодателя будет лучше всего?
Буквально на днях вентилировал этот же вопрос: что учить в 2022 году для разработки >бэкэнда<. Несколько дней гуглил, читал статьи и прочее. Краткие выводы к которым я пришёл для себя (на истину в последней инстанции не претендую):
1) Ванильная Java - уже фактически труп. Учить её сейчас с нуля нет смысла, новых проектов на ней никто уже не начинает. Большое кол-во вакансий и высокие ЗП в данный момент, обусловлены её славным прошлым, большому кол-ву кровавого энтерпрайза в финтехе, телекомах и тп который нужно поддерживать и дорабатывать, и тем, что молодые разрабы в большинстве своём проходят мимо неё в результате чего имеется серьезный дефицит разработчиков.
2) C# медленно, но верно загибается, МС судя по всему будет продолжать активно развивать его, в результате чего он имеет шансы обогнать Java со временем. Т.е. проще говоря он будет терять свою долю рынка медленнее чем Java. Тем не менее учить его с нуля в 2022 тоже нет смысла, главный аргумент тут: он не используется в core-сервисах крупнейших IT компаний мира (разумеется, сама МС не в счет). Пока гугл, амазон или мета не перепишет свою инфраструктуру на C#, смотреть в его сторону тоже не стоит.
3) Думаю, что следующая троица: node+ts, kotlin и golang в течение нескольких лет практически полностью вытеснят java и c# с бэкэнда везде, включая банки, телекомы и тп. В конечном счете всё будет переписано на данных языках. Старые технологии местами останутся, если серьезные доработки не требуются, но с нуля разрабатывать на них уже не будут.
Поскольку, последние 5 лет я пишу исключительно на node+ts (до этого, немного разрабатывал на c#), в этом году я решил изучить golang. Думаю, что спрос на golang разработчиков вырастет в разы в ближайшие годы.
Все так, джава и шарп - технологии уходящей эпохи. Да, они были актуальны в нулевые и начале десятых, когда все угорали по ООП, паттернам, абстрактным фабрикам, синглтонам. Эпоха начала развития массового интернета, всякий энтерпрайз начинает активно цифровизироваться. Эпоха блокирующихся серверов с thread-per-request моделью многпоточности. Эпоха виртуализации и application серверов. Но это все в прошлом.
Сейчас нужны миросервисы, сверхбыстрый старт, контейнеризация, докеры, кубернетисы, простота и прозрачность кода, отсутствие магии и лапши в ООП стиле.
>>2301810 >Докерезировать базу на постгресе(сейчас там все в инмемори базе). Возможно глупый вопрос, но разве не всё равно где бд, ведь смена места бд это одна строчка в пропертях? Или ты это для того, чтобы показать, что могёшь в контейнеры?
>>2301859 Чел, программа на джаве со спрингом стартует минимум 5 секунд, это очень много в эпоху серверлесс. Понятно, что энтерпрайз, который до сих пользуется большими тяжелыми собственными серверами, может себе это позволить, но современные компании - уж нет.
>>2301861 А в чем проблема 5 секунд для старта или даже двадцати пяти? По факту открываю hh - и вижу дохуя вакансий со спринг бутом на микросервисах в кубере и на облаках.
>>2301942 Хуй знает за что платить на курсах, если ты вкатун, разве что за мотивацию и проверку задачек. Но проверку можно получить на сайтах с автотестами, от кодворс до степика и т.п. Или даже самому научиться их писать. Ну и самое лучшее, это реализовывать какие-то проектики, от консольных крестиков-ноликов, до простых веб-приложений.
>>2301908 Иди на бесплатные курсы епама. Там задачки с автотестов. Но есть препод раз в неделю для их разжевывания и одногруппники с которыми можно обсуждать. Правда задачек мало и они хуже, чем на степике, препод отвечает на отъебись, а одногруппники тупее вкатунцов с этого треда. Думаю на каком-нибудь скилбоксе еще хуже, на отусе может лучше, но там цена просто неадекватная. Хиперскиллс имеет просто тонну простых задачек, это плюс. Но цена тоже неадекватная. Бери степик от жидбрейнсов https://stepik.org/course/2403/syllabus и не выебывайся.
Сегодня идея виснет весь день. И выдает пикрил. Я поставил макс хип 4 гига, ей похую. Удалил все не предустановленные плагины, тоже. Пеку перегрузил три раза. Че за говно?
>>2301944 Говорят на курсах сконцентрованный материал, да, база, но собранная вместе, а за бесплатно таким заниматься не будет. Не знаю насколько полезная там инфа. Несколько проектов сделают со всеми приколюхами вроде баз данных и т.п. Это конечно все можно найти в интернете бесплатно, но у меня иногда такие ошибки и вопросы появляются, что даже на стековерфлоу дизят и ограничение на посты на 5 дней дают, и вообще сидишь 5 дней не зная куда обратиться.
>>2301810 >Что с точки зрения работодателя будет лучше всего? >есть еще ночь сегодня Ты уже с его точки зрения идеальный раб. Готов делать бесплатно какое-то говно, жертвуя сном.
>>2301982 А толку тебе от концентрата инфы? Ну открой видос уровня жава за 2часа, тебе там концентратом выдадут все основные понятия и механизмы и поехали. По поводу дизов на стеке, ты скорее всего задаешь вопросы на которые уже сто раз ответили, и тогда учись гуглить, это один из основных твоих скиллов. Я слабо могу представить вопрос по джава кору, на который не было бы ответа или в книгах или в гугле. Я такой же вкатун, и до момента нахождения работы, у меня так и не возникло какого-то ахуенно уникального вопроса, на который ещё нет ответа, или же проблемы которую нельзя решить подумав чуть лучше.
>>2302045 Я вчера ночью все равно не спал. Хотелось хоть немного покодить. Пока готовился к собесам выебал себе мозг теорией. Прикрутил сваггер. И короче эта мразь начала мне присылать какие-то непонятные https запросы. И у меня эксепшон вылетает постоянно в консоли, ведь https не настроен и настраивать я его не хочу. Как в springfox отрубить https?
>>2302165 Сергей Немчинский сказал, что к собесам не надо готовится. Ты обманываешь работодателя и себя. В итоге работать не сможешь, потому что то, что зазубрил перед собесом, потом выветрится.
>>2302192 Ну я читал то, что не ответил на прошлых двух собесах. Даже это у меня заняло 5 дней с баелдунгами, видосами, книжками и стековерфлоу. Или по немчинскому нужно инфу из воздуха брать?
>>2302308 Посмотрел я на ноду, в которой темплейтные хеллоуворлды на очередном говнофрнймвооке срут в консоль ошибками, вот это точно жареное и нужна, да.
>>2301814 >Буквально на днях вентилировал этот же вопрос: Сейчас джава практически безальтернативна для написания крупного бекенда. С++/Rust - высокий порог входа и высока сложность написания программ, окупает себя если нужно написать что-то инфраструктурное, но совершенно невыгодно для обычных микросервисов. Go - разработчики хотели создать простой язык и они его создали. Как только надо написать что-то сложнее конвертора JSON-SQL начинаются сложности. C# - уступает по качеству и количеству библиотек, зато сахара хватит устроить диабет всем. Есть шансы, если МС продолжит его поддерживать и развивать, что далеко не факт. Майки изменили свою стратегию, они теперь предпочитают зарабатывать на популярных решениях, а не продвигать всеми силами свое. Котлин - просто сахар поверх JVM, пока без JVM он не жизнеспособен. Node+ts - кроме возможности как-то утилизировать вротэндеров на беке, смысла в нем нет. Конечно количество вротэнде разрабов создает популярность Node+ts, но я ни разу не слышал про что-то сложнее CRUD на Node+ts.
>>2301861 >это очень много в эпоху серверлесс. Серверлесс это ещё один способ наебать гоев на шекели. Серверлесс имеет смысл только для обработки сотни запросов в сутки, если больше - то уже дешевле держать микроинстанс.
Двач как перестать писать говнокод. Как научиться нормально проектировать свои приложения ? Про паттерны знаю , но чет применять их вживую не научился.
>>2302801 > jep 326. Raw string literals do not directly support string interpolation. Interpolation may be considered in a future JEP. > jep 378. Text blocks do not directly support string interpolation. Interpolation may be considered in a future JEP. Пока что не выходит никак, но исследования продолжаются.
>>2302827 > Пока что не выходит никак, но исследования продолжаются. В этом вся жаба. Почему в других языках смело вносят новые фичи, умудряясь при этом почти не ломать обратную совместимость, а в жабе мусолят каждый пук по 10 лет? Никто так не способствует убийству жабы, как оракл.
Сап. Хочу вкатиться в андроид разработку, а именно игры. Так понял нужно учить java-kotlin до совершенства и можно пилить игрульки? Помогут ли эти знания для игр, но уже на винде, по типу jrpg или что-то посложнее.
>>2302830 Не ясно, какие новые фичи впиливать. То, что после выхода 8 версии впиливали, оказались нахуй никому не нужны, поэтому все дальше на восьмерке 2014 года выпуска сидят. Восьмилетняя восьмерка, лол. Как раз в 5-8 версиях завезли все, что нужно - дженерики, java.util.concurrent и Stream API.
Как только выйдет лум и вальхалла наверняка начнутся подвижки, но и это вряд ли, потому что лум напрямую вряд ли в большинстве проектов будут использовать, так как задачи конкарренси тяжелые и для большинства разрабов не нужные и не известные. А вальхалла не слишком критична.
Поэтому до 2030 года поддержка у восьмерки заявлена. А потом - хуй знает что будет. Но еще лет 5 джава поживет, это точно. Нововведения даже в шарп перестали завозить тоннами, видимо развитие языков и компиляторов пока что приостановилось.
Но оракл уже ВСЕ. У MS денег в разы больше, от продуктов оракла постепенно стараются отказываться. Есть конечно банки и какой-нибудь затхлый энтерпрайз, но основной движ оракл давно просрал.
Ну и плюс ко всему основной фреймворк - спринг, разжирел, что пизда, поэтому нормально в клауде его не поиспользуешь. Новомодные штуки по типу serverless и микросервисов проще на других технологиях пилить. Тот же кваркус или вообще Го, который просто и без задних мыслей компилится в бинарь и стартует за считанные милисекунды. Грааль еще хуй знает сколько будут пилить для прода. Лет 5 наверное, не меньше.
Ну и насчет лума. Леша Шипилев в сентябре говорил, что к следующей LTS версии едва ли они успеют его запилить. Так что Еще года 3-4 нужно будет подождать новых фичей жабе, и соответсвенно 5-7 лет чтобы увидеть это дело в проде.
>>2302956 Ну какие задачи? Всё от предметной области зависит, которую никто палить не хочет. Пример тупой задачи: в XML, которую отправляют в другую систему, надо добавить ещё одно поле с обрабатываемой сущности, поле уже есть, надо только прокинуть, а новую XSD-схему выгрузить и отправить разрабам этой системы, чтобы они сделали доработку на своей стороне. Пример нормальной задачи: в справочнике клиентов реализовать новый режим, в котором будут вводиться реквизиты, по которым надо считать, сколько рублей перечислять клиенту за услуги (соответственно, создать новую таблицу для этих реквизитов, наклепать круд для неё, написать контроллеры, поставить задачу фронтендерам). Допилить логику формирования расчётных документов, чтобы учитывались эти реквизиты.
>>2302989 Это мелочи всё, хоть XML, хоть JSON. Заменяются угловые скобки на фигурные, а суть осталась та же. Тоже изобретают json schema и swagger со своим аналогом неймспейсов. Да и не будет никто в угоду моде переписывать правила интеграции ESB
В конфигурации спринг секьюрити .authorizeRequests().anyRequest().permitAll() Добавляю кастомный фильтр, достаю там из хедеров что-то, по своему закладываю туда сюда, оставляю в контексте неполный секьюритивский токен. Все запросы моментально становятся 403 форбиден. О чём это говорит? Хуй пойми. Чувствую какой-то костыль, если пермит Олл, значит оно должно быть пермит вне зависимости от секьюрити контекста, в нём же и до фильтра не было объекта аутентификации выдававшего isAuthenticated == true и ничего пермиту не мешало.
>>2302476 Короче написал тесты с горем поплам на webmvc на свою апишку и на сервис промежуточный с одним ифом. Как на рест темплейт писать тесты так и не разобрался. На DataJpaTest хз че писать, там одна микросущность. Ну еще про jsontest что-то слышал, но пока вообще не читал. Вроде это все виды компонетных/юнитоов в спринге? А там еще тестконтейнеры и интеграционные и спрингсекурити тесты, как надстройка над вебмвс. Это все? Как то сложно это все. Причем не в бесконечных библиотеках и синтаксисе тестов, хотя и оно вылетает. А вообще в тестировании. Как правильно придумывать тестовые кейсы? Там всякая теория тестирования есть, она может мне в этом помочь?
>>2302927 Мне вот интересно, кто эту диванную аналитику пишет. Кто ты такой? Какой у тебя опыт в джаве и языках? Ты просто чего-то наслушался в курилках или следил и сам что-то анализировал? рынок там и вся хуйня?
>>2303206 Сюда вроде летом еще вкидывали аналитику, что оракл сдох. Ну не сдох, а остановился в развитии - доходы не растут уже с 2011 года. В то время как MS и Гугл выросли очень серьезно.
>>2303084 Не знаю что там у тебя за код, если взять жсон положить в базу - пиши тесты на рест апи. Послали запрос, проверили базу, послали некорректный запрос - получили ошибку. Если в классах есть какая-то хитрая логика - пиши юнит тест на нее. Писать юнит тесты на JpaRepository - не надо. Если в требованиях написано "приложение должно обеспечивать, чтобы при А было Б" то это прям приоритет номер 1 для тестов.
Аноны, есть опыт создания нескольких сайтов "для себя" на чистом жс + пхп ларавель. Опыта работы в разработке нет, вышки технической нет. Сейчас хочу вкатиться в бэкенд. Если подучу спринг, алгоритмы, все что нужно для джависта, есть шанс что возьмут на джуна?
>>2303213 Я просто изучаю параллельно тесты в спринг буте. Опять же вопрос как тестировать метод остается. Вот в идее есть внутренняя тулза для проверки покрытия. Типа нужно чтобы все строчки покрывались? И еще вопрос по спрингу. Util классы с статическими методами это нормально? Или всю логику нужно в самих сервисах держать и рассылать по программе через di? А если статические утилит методы это норм, то как их тестить?
>>2303374 Наоборот, чем больше класс тем он понятнее. Сразу понятна его логика. А то бывает откроешь класс, там всего 5 строк, 2 из которых это аннотации, и вот что он делает... только Бог знает.
>>2303407 А чему бы не идти на ларавель? Работы на ларавели немного меньше, чем на спринге, но соотношение вкатунов к вакансиям такое же где-то. И порог входа вроде меньше.
Ребята, подскажите. Вот есть такой код String s = "s1"; s = "s2"; Распечатка s вернёт s2. Хоть и стринг у нас иммутабл тип, неизменяемый. Я правильно понимаю, что это из-за того, что когда мы в s заносим s2, то создаётся новый объект s, а старый объект s уничтожается сборщиком мусора? Или как?
Услышал от знакомого джависта, что он сидел 3-4 месяца без задач/проекта и тупо лутал з/п.
Не особо ему верится. Такое правда бывает? И что делаете если нет задач? или нет проекта? Увольняться и пиздовать в другую контору? Бездельничать и деградировать?
>>2303430 >Типа нужно чтобы все строчки покрывались? Если нет конкретных целей по уровню покрытия тестами, то нет. Стоит сосредоточится на логике приложения.
>Util классы с статическими методами это нормально? Если это некая маленькая независимая операция. Классический пример - проверить что строка не нул, не пустая и не одни пробелы. А если это какая-то бизнес логика, где требуется вызывать другие бины или в базу лазить - то это однозначно надо делать бин и вайрить его.
>А если статические утилит методы это норм, то как их тестить? Просто юнит тестами.
>>2303463 >Распечатка s вернёт s2. Хоть и стринг у нас иммутабл тип, неизменяемый. Сам объект иммутабельный, а если переменная s не помечена как final, то ей можно присваивать другие значения с подходящим типом.
>когда мы в s заносим s2, то создаётся новый объект s Сначала создаётся объект "s2" в куче, а потом переменной s присваивается ссылка на этот объект.
>а старый объект s уничтожается сборщиком мусора? Если у объекта "s2" не останется внешних ссылок, то GC уничтожит его при следующей очистке (возможно).
>>2303488 >Если это некая маленькая независимая операция. Классический пример - проверить что строка не нул, не пустая и не одни пробелы. Ну вот у меня был пример из массива стрингов распарсить все в числа и посчитать среднее. Такое должно быть где? В утилах или в сервисах?
В Util обычно выносят что-то повторяющееся, если у тебя эта логика в одном месте используется сделай просто в сервисе, потом зарефакторишь если что.
Тестировать можно просто сервис - дали правильную строку получили такой результат, дали неправильную - получили ошибку. Но если логика сложная, то лучше сделать утилитный класс и покрыть в юнит тестах все граничные случаи. А в тестах сервиса проверить только базовые случае (успех/ошибка).
А как вообще обычно реализован механизм менторинга/помощи на проектах?
Если тебе дали задачу, а ты нихера не понимаешь как ее делать? Идешь к лиду? К куратору? Он тебе подсказывает частично? или "за руку" тебя ведет к решению? Бывает, что разжевывают полностью?
Или всей этой хуйни нет и просто отдают другому разрабу задачу а ты идешь нахуй ?
>>2303774 Насчет джунов хуй знает, они впринципе объедки со стола получают пока не научатся и не вижу особого смысла их сравнивать. А вот с миддлами ты неправ. ПХП-миддлы даже ниже жопаскриптеров будут, они самое дно. Джава программисты на их фоне это солидные мужчины.
>>2304137 Да тамщета правы. Все что не новый код который ты пишешь - легаси. Скорее всего ещё и написанное косорукими уебанами до тебя, даже если это твои коллеги.
Java-пацаны, а что вы делаете, чтобы быстрее влиться в новый проект? Какие вопросы задаете лидам/аналитикам/менеджерам в первую очередь? У вскоре будет первый проект, я мандражирую
>примеры с баелдунга и спринг.ио >кек пук 3 строчки все работает
>делаешь шаг в сторону >Ти ваще с другой плонети??? настраивай ObjectMapper 3 часа чтобы десериализовать свою хуйню!!! >долбаеб!!! ты что не знал что для этого надо добавить зависимость ХуйСатаны:рот:ебал:анус в pom.xml ??? >еблан!!!! это баг jdk 8!!! >пиши свой бин чтобы заработало!!!! мудак!!!
>>2304545 Двачую. Все эти индусские мурзилки жидко обсераются когда нужно сделать что-то более-менее нетривиальное и не подразумевают хоть малейшие изменения скопипащенного кода.
>>2304545 >Шаг в сторону и ничего по гайдам не работает. Идёшь на docs.spring.io и ВНИМАТЕЛЬНО читаешь и находишь как реализовать нестандартное решение для своей задачи Profit
>>2304616 Сам факт существования мурзилок, из которых можно копипастить код и не изменять, говорит о том, что кишки фреймворка, которые надо было спрятать, торчат наружу. Нахуя тогда нужен фреймворк? Надо, чтобы всё уже было внутри фреймворка, и его достаточно было бы сконфигурировать и получить работающее приложение почти без программирования, тогда было бы охуенно.
>>2304847 Придумай себе задачу, сделай хотя бы крестики нолики консольные, или приложение которое хранит заметки, не важно, в гугле сотни идей. Садись и реализовывай, не ссы что ты не знаешь как сделать приложение, начни с чего-то малого, и по кирпичикам собирай свой проект. Если уж совсем туго с идеями, заюзай бесплатный аккаунт на хиперскилле, там есть проекты для новичков с автотестами, сделаешь первый проект - дадут ещё один месяц бесплатно. Без практики твое чтение это как учиться кататься на велосипеде с боковыми колёсиками.
>>2304847 >А это стоящая книга? Мне говорили, что Эккель - самая лучшая. Хорстман дает подробные объяснения и примеры, здесь все советуют именно его. Лично у меня проблем с пониманием не было.
>>2304847 >А как практиковаться? Все эти упражнения надо было что ли делать? Задачи есть в какой-то из книг того же Хорстмана, вроде по 8 жабе. И в книге Блинова Романчика.
>>2304957 На рефлексию забей пока, а коллекции просто самая популярная тема на собесах. Конкретно, что не ясно в них. Тем более у эккеля, который для дебилов и подробно объясняет. К нему претензия, только в том, что между жаба 8 и 6 многовато разницы. Сходи на степики и порешай задачки на коллекции. Тебе же уже советовали это две недели назад.
>>2305022 У него инфа по коллекциям размазана на 3 главы и примеры зубодробительные. Вместо того, чтобы объяснить что такое ArrayList, он начинает заворачивать какие-нибудь паттерны с итераторами.
>>2305097 Видимо, Эккель - это вторая книга по джаве, а не первая. Только мне не понятно, как его студенты учатся. Он расписывает, что полировал материал книги, чтобы все "кивающие головы" (тупки) понимали. Но по факту материал сложный и с нуля его не освоить.
>>2305098 Ну те моменты, что я читал - мне сложными не показались. И итераторы это не только паттерн. Это одно из ключевых понятий коллекций. Начинать объяснять коллекции именно с них - вполне годно. И вместо нытья на дваче прочитал бы ту же главу в других книгах, в туториалах, посмотрел бы видосы. Я считаю, что хороши, как первая книга по жабе - Хорстман, а как вторая - Блох. Эккель давно устарел. Сейчас нужно учиться по материалам к 11 жабе(но с учетом, что возможно придется работать на 8 и что в 11 есть бесполезные модули например). Через год наверно вообще нужно будет начинать с 17. Тот же первый том Хорстмана есть для 17.
>>2305110 Сергей Немчинский сказал, что нужно найти себе программистское сообщество, чтобы обсуждать с ними все такие моменты, тогда обучение пойдёт легче. Вот я и выбрал этот тред на дваче. Хорстман мне показался каким-то справочником. У него коротенькие главы, где он рисует табличку с описанием методов. Живых примеров очень мало.
Аноны я уже заебался пытаясь haproxy и мою приложуху пытаться подружить на докер контейнерах, локально хапрокси подхватывает без проблем. При запуске на контейнерах на localhost:9092 в приложуху заходит, но хапрокси не видит( Скину docker-compose и haproxy.cfg, подскажите советом мудрым https://pastebin.com/Yv6g9Ucb https://pastebin.com/BVvgmcLD
>>2305137 Они ж и лежат в одном нетворке. >>2305119 Меня больше смущает, что у тебя второй инстанс на localhost:9093. Мб хапрокси пытается все время запрос на него отправить. Странно, но все же
>>2305138 да я пробовал и localhost:9092 check и frontend1:9092 check а второй сервак не важен пока, если у него healthcheck не проходит то балансировщик на него него не будет посылать запросы, на то он и балансировщик. Спасибо за совет сходить к девопсам, не знал, что у них тут есть отдельный тред
Есть желание сделать проект вебсайт для портфолио. Что делать первее, бэк или фронт? Я читал на хабре, что по-хорошему когда разработка идет одновременно, но я же буду делать его один.
>>2305244 > по-хорошему когда разработка идет одновременно, но я же буду делать его один. Как это связано вообще? Ты хочешь полностью написать одно и затем начать писать другое? А если при разработке первого ты что-то не учтёшь, как тогда выкрутишься, чтобы не делать одновременно? Что тебе мешает параллельно писать кнопку на фронте и контроллер для неё на бэке?
>>2305144 Из контейнера с haproxy проверь сетевое взаимодействие. Ping до frontend1 и nmap'ом постучи в конкретный порт, по которому должно быть соединение.
>>2305204 Тебе главное проявлять максимальную заинтересованность проектом, чтобы старшие видели, что тебе нравится проект. А увидят, что не нравится, то ничего больше не дадут, а потом и вовсе попросят написать по собственному. Также стоит преодолеть синдром самозванца, но об этом есть отдельное видео у Сергея Немчинского.
Анон, привет. Разрабатываю на проекте сервис на спринг буте, который обрабатывает http-запросы. Стоит задача организовать подробное логирование с фиксацией ip-адреса сервера, на котором запущено приложение, id запроса, логин пользователя и т.д. Причем при обработке одного запроса необходимо журналировать несколько событий, которые фиксируются в разных классах, при этом вышеописанные параметры должны передаваться для каждого события. Подумываю над тем, чтобы добавить интерсептор и сохранять в MDC. На правильном ли пути? Как бы вы подошли к решению задачи?
>>2306048 А тебе это надо прям одной записью залоггировать? Так то можно поставить фильтр на входящий запрос, присвоить ему traceId а еще лучше взять из хедера, чтобы трассировать запрос по всем серверам, засунуть его в MDC и залогировать IP адреса и прочее что есть на данный момент. А потом уже дальше логировать дополнительные детали с этим traceId.
>>2306411 После вчерашнего стрима Немчинского, отписался от него. Теперь надо найти нового адекватного ютубера по джаве. Есть у кого кто-нибудь на примете?
>>2306658 Он сказал, что активист майдана, будет "воювати с москалями" и обязательно победит, а потом каждый москаль будет выплачивать репарации как фашисткая Германия после Второй мировой.
Анон , есть необходимость считать расстояние между точками на карте и находить ближайшие. Тупо в лоб как в математике по формуле не получилось. Мб есть готовые решения ?
Тут есть люди которые работали со спрингом и со спарком? Что по вашему мнению интереснее и перспективнее? Заметил что многие перекатываются в бигдату со сприга, даже тот самый Борисов.
Как правильно получить из лямбды значение? Можно обойтись без Holder или это нормальный способ? Исхожу из того, что в стандартной библиотеке нет никакого общего холдера, поэтому считаю что это как-то не очень правильно. Подскажите, пожалуйста, пока я не напичкал холдерами даже небо.
>>2307712 ServerInfoRetriever - твой класс? Я бы просто возвращал из метода фьючу ибо твой холдер и выполняет роль фьючи. Если такой возможности нет, то писал бы всю логику обработки result в колбэке
>>2306682 >>Он сказал, что активист майдана То есть майки и кружки с трезубцами в кадре, оранжевые футболки и тп символика тебя не навели на какие то мысли? >>будет "воювати с москалями" >>каждый москаль будет выплачивать репарации он же сам москаль, не думает что его самого там победят?
>>адекватного ютубера по джаве Я их когда то смотрел немного, когда только вкатывался, но они ж через месяц начнут повторяться и рассказывать как присвоить переменную или еще какую то хуиту элементарную. Есть исключения, но их мало и они на английском. Java Brains, Amigoscode Щас только на всякие джокеры подписан и смотрю иногда выступления.
Чет я не врублюсь в Path Variables и версии java. Win10. Установлены: java8 (1.8~), java16, java17 залетаю в cmd, пишу: "java - version" и мне показывает: 1.8~
Я меняю переменные среды.
JAVA_HOME пишу путь до java17, в path добавляю %JAVA_HOME/bin.
в cmd чекаю - все равно версия 1.8~ ребут тоже пробовал делать че со мной не так?
>>2307854 тоже была такая хуита. Там в path variable какая-то мразь мне вписала какой-то доп ждк из C:\Program Files (x86)\Common Files\Oracle\Java\javapath
Попробовал читать Хорстманна и не зашло. Как-то он сухо пишет, а некоторые вещи и вовсе непонятно. Говорят, что перевод виноват. В общем, книга Шилдта для начинающих, на мой взгляд гораздо лучше. Шилдт разжёвывает и простые и сложные вещи и они после прочтения становится одинаково понятны.
Ребята, буду вкатываться к вам. Опыта работы в разработке нет, есть опыт в других ЯПах. Начинаю учить джаву и спринг. Сложно мне будет устроиться джуном?
>>2308329 Скоро всё схлопнется, и жаба, и веб, мобилки, развлечения, всё нахуй. Успеть бы на завод попасть, пока туда не повалили миллионы безработных мерчандайзеров из пятерочек и днс. Палю инсайд, профессия будущего это инженер-программист ЧПУ.
>>2308596 Откуда у вас такии мрии о заводах? Там как будто прям дохуя работы. В моем городе после совка осталось половина заводов, в которых закрылось до 2/3 цехов. А открыть даже новый цех дороже, чем 10 галер.
>>2308694 Посмотри первые 500 постов каждого джава-треды и прочувствуй, сколько шарпоклоунов сюда набегает после переката. Поэтому и нет перекатов до последнего.
Бля, кто-нибудь знает, как заставить ебучую идею работать не так медленно? Как же заебала. Проц i9, 32гб оперативы. И все равно все время лагает и подвисает, сука. Какие лайфхаки есть?
Сап. Кто поможет по logback? Не могу понять куда он пихает файл лога. Я создал FileAppender и в нем указал имя какое-то вроде "logfile.txt". Приложение запускается, конслольный логгер нормально высирается, никаких ошибок нет, но и файл не появляется нигде, насколько поиск показывает.
>>2308753 И все будут доустанавливать 8. На восьмёрке все сидят не из-за того, что она всем так нравится, а из-за легаси, которое тупо не работает на 11.
Кстати, любые огромные треды долго открываются на пеке, в то время как на даше время загрузки такое же, как и у любого другого треда. Вывод: какие же фронтэндщики долбоебы, пиздец просто
>>2308812 Вскод никоим образом не является ide, это факт. Если для фронтенд говен он еще куда ни шло как текстовый редактор, то для столь объемных языков как джава, хаскель и сишарп это полнейший нострадамус.
>>2308871 Я ещё ни копейки не заработал как программист. Многие там мечтают 300к/сек, а я мечтаю хотя бы 30к/месяц получать, потому что в моей мухосрани вообще работы нет.
>>2308904 Если ты еще не работаешь зачем тебе так нужен ультимейт? Ну или на крайняк посмотри ЕАР версию, она по сути тот же ультимейт, только доступна не всегда. >>в моей мухосрани вообще работы нет. пчел переезжай в другую мухосрань где есть хотябы 1кк+ населения, да и удаленки щас полно. Я на прошлой работе видел только курьера 2 раза - при устройстве и увольнении для передачи договора и заявления.
>>2308919 Спринг не работает в бесплатной версии, а его сейчас везде требуют даже на позицию джуна. Это раньше можно было устроится даже язык толком не зная, а сейчас требования не реальные.
Зачем нужен курьер? Я думал там сканов достаточно.
Уважаемые, сегодня на собесе подкинули вопросик - опешил, прошу помощи.
чем лучше вычислять индекс бакета hashMap при добавлении элемента как hash & (table.length - 1), чем hash % table.length? (более быструю скорость не предлагать)
С хэшами всегда был не в ладах, моя догадка только в том, что возможно первый вариант делает заодно число положительным, чтобы его как индекс бакета можно было использовать, но я хз
>>2308980 >чем лучше вычислять индекс бакета hashMap при добавлении элемента как >hash & (table.length - 1), чем hash % table.length? (более быструю скорость не предлагать) ничем блядь, че за хуйня блядь нахуй ни разу такой таски не было
>>2308924 >>Я думал там сканов достаточно. Для договора реальная подпись потребовалась + мой экземпляр с печатью на руки выдали. А так все доки сканом засылал.
Если денег жалко на лицензию - попробуй поискать кряки, где то они вроде есть ну или таки посмотри ЕАР версию, там вроде не требуется что то покупать. https://www.jetbrains.com/ru-ru/resources/eap/
>>2309017 У меня этот тред тормозит сильнее чем идея. Она долго стартует из за индексации, но без этого магии не будет и получится блокнот, который не напишет за тебя код и не скажет что ты наговнокодил здесь и здесь.
Анон тут зовут на проект с реактивным стеком, веблюфксы, вот это вот все. Говорят что не страшно, если не работал с ними, мол всему научим, хотя сами недавно начали осваивать. Как думаешь стоит в такое ввязываться? Научат меня чему то годному или я попаду в мир авралов на фоне костылей и багов? Насколько вообще в джаве щас актуальна реактивщина?
Что надо сделать на пикриле, я не понимаю, что значит "в цикле с использованием памяти". Как активировать память? Где почитать вообще об этом? Я даже не понимаю, насколько это сложно или не сложно.
>>2308774 Спасибо, анон. Но там вообще ничего нигде не появляется. Впрочем, я понял что просто конфиг-файл который я создал для логбэка никак не влияет на создание экземпляра логгера, то есть этот файловый аппендер тупо не создается как я понимаю. теперь думаю как все же подключить пропертиз.
У меня проблема циклических аутовайрингов в спринге. Я пока сделал просто Lazy вайринг в одном месте и это всё решило, но мне не нравится такое. Я вижу проблему в том, что создаю бин пассвордЭнкодера в классе конфигурации спринг секьюрити, а используется он например в кастомном провайдере аутентификации, который сам автовайрится в класс конфигурации. Короче вопрос в том, как мне лучше создавать этот бин эндкодера паролей?
>>2309119 "В цикле с использованием памяти" скорее всего подразумевается, что можно использовать дополнительную память, например, хранить промежуточные данные в массиве.
>>2309133 >Короче вопрос в том, как мне лучше создавать этот бин эндкодера паролей? Ты новенький в джаве, да? Сто бед один ответ - фабрика! Вайри в конфиг не провайдер аутентификации, а фабрику которая будет создавать его и как параметр получать энкодер. Это конечно тоже костыль как лейзи.
На самом деле непонятно, почему у тебя бин провайдера аутентификации и энкодер паролей создаются в разных местах. Создавай все в одном месте.
Юзать реальные айдишники объектов из бд в API - моветон? И если да, то как обычно поступают? Завести поле с маняайдишниками и юзать их? Или проще шифровать настоящие?
>>2309618 Я другой анон, не выкупаю всей идеи с uuid, кто-то говорил типо их нельзя будет подобрать. Какой толк подбирать айдишники? Вон я знаю сколько в гитхабе людей, могу к первому зареганному аку достучаться по айди 1. Что дальше?
>>2309578 Нет вообще никакого смысла прятать айдишники. Надо настраивать пермишены, чтобы юзер не мог залезть туда, куда ему нельзя, даже если он знает ID. Сам факт знания реальных ID ничего ему не даст.
>>2309628 Анон спросил, а надо ли юзать что-то стороне. Чаще всего нет. Но если про какой-то причине ты не хочешь, чтобы можно было узнать количество каких-либо записей можно юзать что-то стороннее. Ну и перебирать все айдишники, чтобы выкачать данные из паблик апи дольше
>>2309628 Преимущество UUID что его можно генерировать на клиенте. А если использовать сиквенс базы, то надо или предварительно с клиента делать запрос getNextId() или ждать пока сервер ответит созданной сущностью со сгенерированным айди. А еще веселуха начинается, если у тебя кластер баз и ты там шардировать пытаешься.
>>2309688 сущности в сущностях, дао в дао, сервисы в сервисах, контроллеры в контроллерах. В контроллерах нет бизнес-логики, только конвертация и вызов одного метода сервиса В ДАО нет бизнес-логики, только круды для БД В сервисах вся бизнес-логика без привязки к БД и UI. Каждый контроллер работают только с одним-двумя бизнес-сервисом Сервисы неограниченно юзают друг друга ДАО юзают только соединение с БД и больше ничего. Каждое ДАО юзается только одним сервисом. Контроллеры не получают и не возвращают сущности непосредственно, они юзают ДТО, в которые каждый раз конвертируются сущности перед отправкой на клиент В стуктуре мавена есть родительский pom.xml и дочерние модули xxx-api и xxx-impl. В api типы, доменныеи классы и интерфейсы. в impl реализации.
>>2309714 Хуй знает, но так принято, типа инкапсуляция. Это такая же общепринятая шиза, как приватные поля и рядом с ними геттеры-сеттеры, которые ничего не проверяют и всегда геттят-сеттят.
>>2309719 Я про отдельный мавен модуль. НАХУЯ, когда можно сделать просто отдельные папки внутри src/main? И вообще мой вопрос был про папки внутри src/main.
Сап, подскажите плес. Мне нужно использовать в проекте файл шрифтов, который я бы хотел хранить прямо в собранном .jar Проблема в том что я не понимаю как использовать в собранной программе относительный путь к нему. В IDE все работает, когда собираю в джарник - все ломается. Если jar распаковать, то файл шрифта падает прямо в корневой каталог, но программа не может его найти. В сорцах я разместил файл в каталоге resources и маркнул как ресурс (хз как это вообще отрабатывается средой, но так работает)
>>2309903 > я разместил файл в каталоге resources и маркнул как ресурс > Если jar распаковать, то файл шрифта падает прямо в корневой каталог, но программа не может его найти Путь от корня должен начинаться со слеша /
>>2309904 Ничего не понял в этом совете. Какой путь? где начинаться? Как написать код получения файла с именем name например? Обычно всегда работает File f = new File("name"); и если сам файл лежит в корне проекта то все срабатывает. Но после сборки почему-то ничего не работает, говорит файл не найден
>>2309906 Самое тупое, что с некоторыми файлами все работает, например с конфигом бэклога (он лежит внутри jar). И я не могу точно понять в чем отличие их использования
>>2309907 Когда делаешь class.getResource("/name") это поиск внутри жарника. Но туда файлы упакуются только если ты положил их в resources или прямо рядом с классами >>2309908 Бэклог в 3 или больше местах ищет конфиг, не помню приоритетность
>>2309909 >class.getResource("/name") А у какого класса надо получать этот class? Если класс лежит например в пакете somepkg.MyClass, и ты получишь у него этот ресурс, он его найдет или нет, если в исходнике оно лежит в ресурсах? И еще, а что на уровне компиляции/сборки вообще обозначает это обозначение директории как ресурсов? Это какой-то ключ при компиляции или что?
>>2309910 У какого угодно, но он должен быть твоим. Если будет искать от слэша, то без разницы. Без слеша просто заедается путь относительно пакета этого класса > И еще, а что на уровне компиляции/сборки вообще обозначает это обозначение директории как ресурсов? Каталог resources? Просто мавеновская структура проекта. Всё что там есть, пакуется в корень жарника. Так то можно куда угодно его закинуть, но тогда придется ебаться с конфигами сборки
>>2309909 Сейчас понял, что я наврал насчет того, что с логгером порядок. Просто на момент конфигурирования логгера логировать еще нельзя, и там перехват идет тупо в output. Сейчас запустил через командную строку, и там оказывается эксепшены при попытке найти файл конфига логгера. Я тогда вообще хз че делать, ты случайно не знаешь, анон, можно ли Logback заставить искать конфиги в нестандартных местах?
>>2309914 Спасибо за помощь твою, может подскажешь еще один момент. В целом через getResource("/name") все получается, но такой момент: как потом из полученного URI получить именно файл? Если я получаю getPath то ничего не работает, видимо потому что он там на границе "входа" пути в джарник рисует "!", типа такого: C:\...\out\artifacts\Project\Module1.jar!\Font.ttf конструктора файла по URI нету
>>2309915 Вроде, разобрался. Нужно получать этот ресурс как стрим, и тогда с ним удается работать. Если как просто ресурс то нет, именно потому что он упакован. Пока не понимаю сможет ли конфиг логбэка найти сам себя в упакованном виде (как там у него устроено чтение ресурса - хз), но с обычными файлами норм все получилось. Еще раз спасибо за наводки, анон. >>2309914
>>2309922 Есть же опенЖДК. Шарпы семантически не особо отличаются. Надо будет только переучить все названия методов и классов в стандартных либах шарпа, и дальше работать. правда помимо этого тонна шарпосахара придется осваивать. Вообще, залетал в пару проектов на шарпе и не испытывал никаких проблем там, даже наоборот - многое там сделано лучше.
>>2309923 Ну дак какой-нибудь ОпенАнонимус скажет, что мой проект нельзя юзать в РФ и закроет доступ. Или ещё хуже зашьёт туда проверку: если запущено в РФ, то гадить.
>>2309902 Оракл лично придет и удалит все мои сохраненые ждк и архивы библиотек? Того что уже написано из фреймворков/библиотек хватит еще лет на 20 минимум.
Привет ребята, хочу сделать пет-проект сессионную игрушку простенькую. Хочу чтобы игровые сервера можно было горизонтально масштабировать.
Планирую в кубернетисе деплоить ее, Знаю, что у него есть искаропки раунд-робин распределение запросов по инстансам сервиса, но мне нужно чтобы запросы от игроков, которые играют в одной партии шли в один инстанс (очевидно)
Как такое можно сделать? чтобы рекконекты работали и тд
Есть в треде матёрые помидоры с выебонами? или только вкатыши да джуны? Хочу стать крутым джавистом. Чтобы вот въебывать и круто двигаться, расти. Не ради деняк, а ради самолюбования, что ли лол.
Можно ведь по-разному ехать. Можно пилить крады однотипные 10 лет, а можно как-то быстрее и интереснее извиваться. Идти в архитектуру, покупать шапки на размер больше каждый сезон.
Какова ваша версия пути? ну или мб не ваша, а тех, о ком вы слышали. Я прост хочу ебашить и готов ебашить. Но мне нужна цель и стратегия. Каких вещей стоит избегать,а к чему стоит стремиться стремиться.
>>2310457 Да хер его знает. Кто-то идёт в модные технологии, выступает на конференциях, пишет статейки. Кто-то идёт в хардкор и рассказывает как написать очередь с наносекундными задержками. Кто-то просто набивает опыт в топовых компаниях. Кто-то в менеджмент идёт. Реально путей много, никто за тебя не выберет.
>>2310465 >никто за тебя не выберет Ну эт понятно. Я уже уроков ответственности немного освоил. Прост не хочется прям вслепую тыкаться. А хотя бы примерно варианты представлять.
>модные технологии >выступает на конференциях >пишет статейки
Мне бы для чуть больше шагов. И лучше на первых этапах. Потому что я ток вкатиля недавно. Мне прям на первых порах бы понимать. Чтобы не увязнуть в говне
Ты сам-то кто, анон? Каков твой путь? какие успехи?
>>2310466 >>Ты сам-то кто, анон? Ну я полгода потыкался на галере с однотипными крудами, а щас выбираю из 2-х мидловых оферов между реактивной джавой с бигдатой и йоба хайлоадом. Если меня не пидорнут с испыталки и я таки вывезу - буду считать себя успешным вкатуном.
Вот и считай шаг 1 - научись писать круды на спринге. Пет проекты там поделай, борду свою напиши или еще что то. шаг 2 - доучи теорию чтоб на собесах пиздеть без остановки. Вопросы кстати на джуна более-менее типовые и легко гуглятся. шаг 3 - иди в любое место куда возьмут (ищи вакухи 1 год опыта - это джуновские), пет-круды на гитхабе сильно помогут. Самое сложное тут дойти до техсобеса, который ты уже легко пройдешь. Стажировки я б не советоваля, там ебейший конкурс для студентов с перспективой получать 20к. шаг 4 - ????? шаг 5 - PROFIT!
>>2310477 Я уже вкатился, Анон. Мне теперь понять как на мидлоида заделаться и далее. >реактивной джавой с бигдатой >йоба хайлоадом
Разве там не в обоих случаях хайлоад? Я вот чет боюсь так реактивщины и хайлоада т.к. я даже с обычной многопоточкой особо не работал..а в хайлоаде еще и как-то алгосы надо понимать. Страхи да и только
>>2310480 Алгосы не так критичны. Меня про них никто даже не спрашивал. (сказали вкользь что есть где применить их знания, но это вроде как по желанию, задач и без этого хватает) Больше спрашивали про кишочки спринга, хибера, немного про всякие кафки, кеши, балансировку нагрузки, экзекутор сервисы, стрим апи. Многое из этого я знаю только в теории о чем прямо и говорил отвечая. Вроде на большую часть вопросов ответил, оферы прислали но тоже страшно пиздец в такое лезть после монолита с околонулевой нагрузкой. Я на самом деле и не надеялся даже пройти собесы, оно как то само получилось. >>Разве там не в обоих случаях хайлоад? в первом случае мне на саму реактивность надо будет налегать, о нагрузке парится не так сильно придется, во втором упор на надежность и быстрый отклик (что то уровня госуслуг). Акценты вобщем на разных вещах.
>>2310489 >кишочки спринга, хибера Ты как вникал, кстати? Не по Борисовским БинПостПроцессорам же? или у него и более толковые видосы есь? Книги? Статьи? Дай ответ, интересно оч
>экзекутор сервисы Эт вообще впервые слышу чет
> оферы прислали какие расценки?
>страшно пиздец в такое лезть У меня тоже постоянно страх и стыд ебаный. Ну и самозванец внутри напоминает Ток я себя успокаиваю тем, что раз они готовы нанять, то они берут на себя ответственность. Мне похуй. Буду обсираться - научусь на ошибках. Я больше премии не потеряю. Попросят уйти - уйду (кста, мне кажется, что такое вовсе не часто случается в IT.. наверно, люди сами себя чаще уходят..) Не буду вывозить - пусть занимаются моим обучением, подключают челов. Они же потратили уже деняк на хантинг меня. Им не выгодно меня кикать, выгоднее развивать (ну в разумных пределаХ, конечно)
>>2310494 >>Не по Борисовским БинПостПроцессорам же? Меня и про них спросили и сказали что реально используются, хоть и не очень часто. Борисов то норм объясняет про построение контекста и вообще про спринг как по мне. После него доки проще понимать. >>Ты как вникал, кстати? По спрингу тут либо доки читать, либо на практике познавать когда фичу пилишь. Я доки или как минимум комменты в спринговых классах иногда выборочно почитываю, поэтому кое-как ответил. Статьи пожалуй лучший выбор для БАЗЫ. Хабр/медиум, только там есть годнота, есть говно, смотри не перепутай. Ну и всякие жокеры типа Борисова, Шипилева, Валеева на ютюбе не такие уж и бесполезные - сложные вещи на пальцах объясняют и можно козырнуть знанием всяких нюансов на собесе. Книги почти не читал, они устаревают быстро да и просто лень. Есть конечно исключения - типа книги с поездами про многопоточку. Это классика, это знать надо. >>Эт вообще впервые слышу чет Это из многопоточки в джаве. Хуйня для создания тредов. >>какие расценки? Поскольку я определил себя как джун+, просил меньше сотыги, но предложили сотыгу с небольшим в обоих случаях. Можно было б при желании замахнуться на полторы сотыги наверное, пооткликаться по разным местам, но я ленивый хуй и иду на первое приличное место куда позвали. >>Мне похуй. Буду обсираться - научусь на ошибках. Все так. Посадить за косяки пока не могут, максимум уволить. А работы хватает.
>>2310466 >Ты сам-то кто, анон? >Каков твой путь? какие успехи? Я набивал себе резюме, работал в ДС в нескольких крупных международных конторах. А потом свалил за бугор.
>Компания Microsoft приостанавливает продажи товаров и предоставление услуг в России >EPAM прекращает обслуживание российских клиентов — компания Вот это охуеть.
>>2310830 Дак сейчас и не найти работу. Считай количество вакансий сократилось раз в 10. Кто уже вкатился будут с работы на работу переходить, а новички вообще будут не нужны. Разве что на замену пенсионерам, но там буквально может 10 человек в год.
>>2310962 А джексон который и так есть в спринге из коробки на что ругается? Ему наверное не нравится что ты массив стрингов пытаешься в инты превратить, а поле "data" и вовсе отсутвует?
>>2310973 То что с фронта не инты приходят я уже заметил. Он ругается на поле даты. Оно же по сути строкой приходит.Я вот так конструктор модифицировал.
вот ошибка
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.example.Andersen.entity.PresentStudents` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('2022-03-12'); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.example.Andersen.entity.PresentStudents` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('2022-03-12')<EOL> at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 1]]
Анон подскажи как сделать так что бы спринг при старте проверял есть ли необходимые таблицы в бд , если нет то создавал. Используюя хибер и ЖПА там понятно , просто в проперти прописать. А если я юзаю Jdbc голый или JdbcTemlate ?
Сколько в норме должен работать запрос на извлечение большого количества данных(но не бесконечного) для пользователей. Когда он подумает, мол, говно какое-то, а не приложение? Ответ в json 15 к строк. Или пользователь не должен получать столько данных за раз?
>>2311142 Не будет переката. Чем тебя этот тред не устраивает? Поддержка ещё несколько месяцев, да и наверняка в следующем треже слишком сильно сломана обратная совместимость.
>>2311160 Это вообще разные вещи. MVC - это поддержка веба в спринге. Можно юзать без бута. Boot - это тупо обёртки для конфигурации, чтобы не писать кучу конфигов самому. Никакой функциональности они не добавляют, только обоегчают конфигурацию. Можно юзать без веба.
>>2311027 >Сколько лет потратил перед переездом? Я изначально не ставил своей целью переезд. Просто в какой-то момент понял, что половина моих коллег уже там, да и в целом ситуация в стране показывает отрицательный рост. К тому моменту у меня было 12 лет опыта. Еще могу сказать, что количество предложений когда ты тут и когда ты там - отличается на порядок, даже в спокойные времена везти человека долго и рискованно.
>Какие задачи решал? Какие стэки юзал? У меня были в основном финансы, трейдинг, процессинг платежей и т.п. Жава и все что вокруг, даже вначале карьеры довелось Свинг и Апплеты пописать, и даже в байткоде поковыряться.
>В какой бугор свалил? Deutschland думал поближе к дому
>Самое интересное: какие конторы посоветуешь? Раньше я бы посоветовал DB, Citi, Credit Suisse хотя к этим фиг попадешь, SAP, HPE, IBM, Oracle, но сейчас даже не знаю кто там останется. Можно и российские компании, если не планируешь уезжать.
>В какой момент был самый большой рост и от чего? В момент когда я впервые пришел в крупную западную контору и понял, как на самом деле должен быть организован процесс разработки, тестирования, работа с заказчиками, оперейшенз и прочие софт скильные штуки типа навыков коммуникации и английского.
>>2311542 Я же писал, что поехал когда понял что поравалить. Так то у меня и до этого был оффер в США по L1B но это дно, плюс я не хотел в США.
Кстати есть ещё один момент - навык прохождения интервью, это процентов 50 успеха. Не забывать от страха то что ты знаешь, не теряться от нестандартных задач, а начать придумывать подход к решению, умение красиво рассказать про свой опыт, хороший разговорный английский. В общем тут много всего, что приходит с опытом. Надо ходить по собеседованиям и набивать шишки.
Насколько критичны познания в распределенных системах для вкатуна? Вот эти все баззворды: ZooKeeper, Consul, Raft, Paxos, MapReduce, Hadoop, HDFS - оно вообще где-то используется? Я так прочитал малость статей на медиуме и хабре и понял, что оно во всяких йоба распределенных архитектурах используется. А распределенные архитектуры нужны? Почему бы не сидеть на монолитах, как деды 20-30 лет назад?
>>2311658 > А что это такое вообще? Это то, чем занимаются люди во всяких гуглах, фейсбуках и яндексах? Не только, любая сколько-нибудь крупная айти-компания с этим говном ебётся. > Обычные сервера с обычной бизнес логикой на спринге? Любой энтерпрайзный бэкенд, в основном да, спринг.
Зачем вообще нужен этот Spring? Он же ничего по сути не делает, а лишь переносит код джава в xml. Но нафига мне учить xml, когда это всё можно сделать напрямую в джава? В чём упрощение? Пока это выглядит как то, что накрутили какого-то своего говна, чтобы ещё больше усложнить программирование на джава. Ни какого упрощения я не вижу. Если выкинуть Spring, то функционально ничего не потеряем. Также можно делать веб-приложения, сложную логику, делать запросы к базам данных. Я в универе писал лабу, где надо было сделать ftp-сервер и ни каких спрингов не использовал. Всё отлично работало и без него.
>>2311724 Для веба, больше ни для чего этот тормознутый рудимент из 2005 года больше не нужен. Но изначально спринг это DI контейнер и уже потом утилиты для крудошлепов. Просто крудошлепам недоступны знания об архитектуре кода, поэтому им проще размазать по всему проекту конфиги, которые за них кто то соберет в одну огромную кучу говна, разрулит зависимости и запустит.
>>2311729 >DI контейнер и уже потом утилиты сам же объяснил основной смысл >недоступны знания об архитектуре кода а потом начал вонять, что нинужна. DI не нужен, строгие правила написания конфигов нинужна? Авто разруливание зависимостей нинужна?
>>2312097 Почему ты думаешь, что может быть нельзя? Никто не не может прям запретить юзать опенсорсный софт. Другой вопрос в поддержке, с которой могут возникнуть трудности, она вполне себе стоит денег и требует заключения контрактов.
>>2312106 > Почему ты думаешь, что может быть нельзя? Ну вдруг юристы из Оракла напишут в лицензии что мол на территории таких-то стран использование иллигал. Ок, спасеба.
>>2312115 В своей лицензии JDK они могут написать что угодно, но в лицензию OpenJDK, которая GPL, ничего, иначе она перестанет быть свободной, да и вообще перестанет быть GPL.
>>2312116 Эти гпл распространяются только на сорцы, качать сорцы и компилировать ждк самому никто не запрещает. А на уже скомпилированные и собранные за тебя бандлы накладываются лицензии того кто их распространяет.
>>2312116 >В своей лицензии JDK они могут написать что угодно, но в лицензию OpenJDK, которая GPL, ничего, иначе она перестанет быть свободной, да и вообще перестанет быть GPL. Да, но даже у OpenJDK не чистая GPL, а GPL with classpath exception. Ну и плюс Oracle как владелец исходного кода, может следующую версию OpenJDK выпустить под GPL with classpath exception and export limitations. Вообще у GPL можно саб лицензий, когда делаются те или иные исключения или добавляются новые ограничения. Например у Fedora Linux уже есть такие ограничения https://opensource.stackexchange.com/questions/4724/do-fedoras-export-restrictions-violate-the-gpl И тогда все, новые версии нельзя будет поставлять, на Кубу, в Иран, КНДР и сами знаете куда. И тогда старые версии будут по прежнему доступны, а вот новые легально уже нет.
>>2312291 >А че не так с либерикой? >>2312275 >Oracle как владелец исходного кода, может следующую версию OpenJDK выпустить под GPL with classpath exception and export limitations
Это код создания веб приложения из 4-х эндпоинтов, без базы, без авторизации, без других сервисов, без нихуя. Какой пиздец твориться в реальных приложениях, лучше даже не представлять.
>>2312306 Да не вопрос, конечно можно и на 8-ке сидеть, а Белсофт будет фиксать баги и все будет ОК. Но у тебя не будет ни новых GC, ни улучшений JIT, ни новых API, ни поддержки нового железа, новые версии библиотек не будут работать на старых JDK. Конечно лет 5-10 можно спокойно перекантоваться, а вот дальше уже будет тяжело.
Вообще 8-ка это особый случай, это последний релиз по старому, длинному, релизному циклу. Поэтому многие компании до сих пор на нем сидят, просто не привыкли к регулярным апдейтам и потому застряли. Там где не тянули и смигрировали на 11-ю, проблем переезда на 17-ю минимум, мы например уже потестили свои сервисы, летом будем переезжать.
>>2312323 Вот ты и покажи, я нормальных DI фреймворков без "магии" не видел. У тебя или магия про которую надо знать wire by convention это тоже магия или тонны бойлерплейта.
>>2312169 > как установить Spring Изучи для начала Maven, чтобы не задавать таких странных вопросов. > как написать первое приложение Ищешь любую понятную для тебя мурзилку по основам Spring Core/MVC/Boot, читаешь, разбираешься. Можешь хоть с видосиков на ютубе начать.
>>2312375 >В магии нет ничего плохого ... пока все работает.
А вот когда у тебя начинаются проблемы, и приходится лезть в кишки DI фреймворка, чтобы понять какого хера у тебя не вайриться бин или не срабатывает транзакция. Вот тут-то понимаешь, чем ты платишь за эту магию.
>>2312394 >скачаю нелегально и что ты мне сделаешь? Да всем похер на тебя, пока ты сидишь в загоне РФ и не высовываешься. Но как только попробуешь высунуться наружу - тебя нахлобучат.
>>2312414 Это не проблема магии. Такого не избежать ни с какими подходами и ни в каких фреймворках. Тот же бойлерпоейт рано или поздно превращается в магию, как только кто-то напишет обёртки.
>>2312417 >Такого не избежать ни с какими подходами и ни в каких фреймворках. >Тот же бойлерпоейт рано или поздно превращается в магию, как только кто-то напишет обёртки. Его проще дебажить это твой код, можно определить на каком коммите перестало работать и смотреть что поменялось. Совсем другое дело, понять почему у тебя не стартует апликуха при миграции на новый Спринг. Или понять где у тебя утекают конекшены, когда всем управляет спринг.
>>2312432 Самый лол состоит в том, что российских вендоров которые бы делали сборки .Net и предоставляли саппорт - НЕТ. А майки уже сказали, что хуй вам а не наши продукты.
>>2312467 А можно пример на гитхабе этих волшеебных больших проектов легко дебажащихся без di? Как будто магия в одном di. Как будто ни в сервлетах, ни в jdbc, ни в maven, ни в junit нет магии? В самой jvm может нет магии?
Хули там вкатываться - ну посидишь пол года за учебниками и пиздец-молодец пиздуй джунь ёпта Страшнее другое - в АЙТИ ПИЗДЕЦКИ СКУЧНО С К У Ш Н О К У Ч Н О скукотища ебаная, тупейшая работа просто пиздец, да блядь токарем быть веселее
>>2312588 > Как будто ни в сервлетах, ни в jdbc, ни в maven, ни в junit нет магии? В самой jvm может нет магии? Так поэтому их и сложно дебажить, они же полностью из нее состоят.
>>2312588 >Как будто ни в сервлетах, ни в jdbc, ни в maven, ни в junit нет магии? Магии - нету, там все достаточно прозрачно с т.з. кто кого вызывает и за что отвечает. В junit есть магия, но там реально ее немного. Если бы DI исчерпывался @Component и @Inject - то тоже все было бы ок. Но поверх него столько нахерачили, что он стал магией.
>В самой jvm может нет магии? Тебе же не надо дебажить JVM, среднестатистический разработчик за всю карьеру ни разу не столкнется с JVM багом.
>>2312729 Магия с первого взгляда там разве что в аспектах и проксях, но без этого уже никак. Декораторы ебашить? Ну их нахуй, лучше уж гайды почитать как там все устроено в нутре.
Сап двач. не могу выполнить задание в консоли. Как-то гугл не помогает или я-опарыш им правильно воспользоваться не смог. Кто разбирается за java консольную работу с командами помагите!!! Как в моем случае будут правильно выглядеть команды? P.S. я уже 2 недели не могу сделать такую элементарщину через консоль.
>>2312741 >А именно? Из личного опыта: какой-то умник у нас в проекте решил, что javax.validation это круто. И заюзал их для валидации, понаписав кастомных валидаторов. Но сделал это через жопу, причем 2 раза. Первый раз выдавая сообщение что поле ХХХ невалидно само поле объект с несколькими переменными, без объяснения почему. Второй раз что в обработчике ошибки вместо стектрейса просто печатает текст ошибки и выбрасывает REST эксепшен без cause разумеется. Не зная что там используются кастомные валидаторы, и не зная деталей как они работают, ты хер найдешь концы. Потому что прямой связи в коде - нет. А еще есть например кастомные скоупы у спринга, это отдельное веселье дебажить почему у тебя не тот стейт у бина.
>>2312751 >Магия с первого взгляда там разве что в аспектах и проксях, но без этого уже никак. Декораторы ебашить? Ну их нахуй, лучше уж гайды почитать как там все устроено в нутре. Это все хорошо пока ты осторожен и на проекте нет долбоёбов, но какой же большой проект без них. В проекте была утечка конешенов из пула, никак не могли понять почему. Оказалось, что кто-то решил в посткоммит хук повесить операцию которая что-то пишет в базу в отдельной транзакции и разумеется для этого нужен новый коннект. Получается пока вторая транзакция не отработает, то и первый коннект не будет возвращен в пул. Это не большая проблема пока в пуле достаточно коннектов, но если их там нет, то вторая транзакция подвисает на получении конекта из пула и при этом держит первый коннект. И по стектрейсу эта связь тоже не видна.
В общем мне это надоело, я больше на эту тему писать не буду. Но если кратко - вся эта магия хороша, пока у тебя маленькое приложение которое ты хорошо знаешь и ты не лезешь дальше простого вайринга бинов и @Transactional. Даже простая @Transactional(propagation = Propagation.REQUIRES_NEW) уже может создавать сложности.
>>2312846 Сначала гули как добавить java в path Потом перезапускай консоль Потом гугли что написать в манифесте Jar собирается через jar cmf manifest.txt moegovno.jar *.class Jar запускается через java -jar moegovno.jar Потом открой лекцию в конце которой было это задание и прочти ее еще раз Потом качай нетскейп навигатор чтобы его выполнить
>>2310853 Есть хоть какой-то позитив на рынке? Не работает логика, что все, кто еще не перекатился, яро пытаются это сделать, и их места освобождаются? Или теперь прям такой потной пиздой накрыло весь рынок, что вкатунам остается дрочить-шабить-мастурбировать по углам и все?
>>2313220 Их рисовать-то в текстовом виде почти никому не нужно, а уж парсить зачем? Какая у тебя задача? Скорее всего, она решается более простым путём.
>>2313253 Хочу в кукумбер сценариях задавать графовидную структуру в тексте в виде такого графа, а в коде степа парсить в объект. Такой вариант по-моему самый наглядный.
>>2313256 На рисование таких графов уйдёт уйма времени из-за разметки пробелами. Проще сделать что-то вроде YAML.чуть менее наглядно, но намного легче рисовать руками и парсить.
Подскажите пожалуйста: 1.Как в джаве определить текстовый файл или бинарный? 2. Как найти путь файла не абсолютный, из корня файловой системы, а из корня мавеновского проекта?
>>2313371 А как без джавы определить текстовый файл или бинарный? Всё зависит от того, какая информация туда записана. Т.е. технически между ними нет ни какой разницы. Разница только семантическая.
>>2312902 хуево на рынке щяс многие, кто свалили во всякие снгшные помойки + турцию, остались на удаленке, а "невероятные" возможности на рынке рф так себе, как ты понимаешь, даже с учетом необходимости внедрения всего
>>2313725 Что вам даст этот перекат? Толпа долбоёбов, которые сейчас спрашивают про апворк и перспективы вката на фоне последних событий в каждом треде по десять раз ежедневно, гораздо хуже шарпоблядей.
>>2314075 Я недавно перестал тут спрашивать. Начал спрашивать в чатиках в телеге. Там народ и шарит лучше и их больше и менее токсичные. Тут на мои вопросы или игнор или посылание в Гугл, в котором я перед каждым вопросов всегда сижу не меньше получаса.
>>2314214 >Нет, но юзер сможет запилить свой пресет вместо дефолтного Значит тебе нужен дефолт (его клади в resources) и оверрайд (его грузи по какому-то пути). Можешь посмотреть на https://github.com/lightbend/config
>>2314214 > юзер сможет запилить свой пресет вместо дефолтного > Прога под линукс будет Линукс-way это высрать дефолтный конфиг в /etc/прога/config.json при установки пакета. И при запуске, сначала искать конфиг в /home/user/.config/прога/config.json, а потом в дефолтном месте. Но ёбку с пакетными менеджерами и скриптами установки оставлю на твое усмотрение. По васянски, проще класть дефолтный конфиг в ресурсы жарника, жарник класть куда хош, и при его запуске, он должен скопировать конфиг в каталог юзера (если его там нет) из ресурсов и потом читать уже от туда.
2022 год, джава все еще БЛОКИРУЮЩАЯ. Нетти, вертекс, нио - малопопулярны, почти нигде не используются, трудны в освоении, полны багов, которые годами и десятилетиями не исправляют. R2DBC - неюзабельна в принципе.
>>2314274 А что за проблема с БЛОКИРУЮЩЕЙ джавой в 2022 году? Полно популярных веб фреймворков, легких в освоении, почти без багов. JDBC - няша. Зачем есть кактус?
>>2314282 Потому что БЛОКИРУЮЩАЯ технология в бекенде 2022 года (или даже 21 века) - тупиковая ветвь эволюции. БЛОКИРУЮЩИЙ код писали в 80-х и 90-х, когда нагрузка совсем нулевая была. Сейчас твой БЛОКИРУЮЩИЙ сервер на спринге с томкатом не выдержит даже 300 запросов в секунду. Для энтерпрайза с нагрузкой 300 человек в сутки это нормально. Для компании, которая делает продукты, которыми пользуются миллионы и миллиарды людей - нет. Представил ебало пользователя, который вынужден ждать на 2 секунды дольше просто потому что тредпул томката закончился? Вон, сайт оракла по всей видимости на БЛОКИРУЮЩЕЙ джаве написан, иначе я не могу понять, почему он такой тормознутый.
>>2314292 >>2314292 >2042 >Представил ебало пользователя, который вынужден ждать на 0,0000002 секунды дольше просто потому что тредпул <софтваренейм> закончился?
1. Нормально штамповать компоненты с автовайред зависимостями в полях, а приступая к тестированию создавать сеттеры и передавать через них тестируемому классу моки?
2. Какие матчеры лучше юзать? Хамкрест или JAssert?
>>2314305 Это только в том случае, если проект изначально планировался быть высоконагруженным. И тогда джаву выбрасывают и берут го. Потому что воевать с netty/vert.x/webflux - себе дороже, да и квалифицированных разрабов попробуй еще найти на такой стек, все кругом только блокирующие круды умеют писать, а про асинхрон и многопоток никто ничего не слышал.
А вот если на твой сервис с блокирующимся кодом начинает приходить высокая нагрузка, то все, пиши пропало. Точнее переписывай все с нуля, потому что переделать блокирующийся код в неблокирующийся сейчас невозможно без титанических усилий.
>>2314297 Чел, я неоднократно замечал на сайтах сбера, тинька, оракла как сильно они тормозят. Наверняка блокирующие сервера не вывозят нагрузку в несколько тысяч пользователей в один момент времени. Поэтому если я вижу, что что-то грузится больше 3-5 секунд, то просто закрываю вкладку и больше не посещаю этот сайт. Терять настолько драгоценное время в таких огромных количествах на бесполезное ожидание я не намерен.
>>2314312 Обычно, если блокирующий код падает, просто докупают несколько железок, и начинают работу по оптимизации старого говна. Ну а с вебфлексом не то чтобы много проблем. Нужно только чуть по-другому думать. А ещё лум завезут.....
>>2314292 Ни одному сайтику не нужно обслуживать 300 запросов в секунду, у многих 300 в час не наберется. Это же не торговый движок где по 100500 клиентов сидит и спамит запросами.
Аноны, кто что думает по поводу Kata Academy, где платить только после трудоустройства? Заебись тема или тебя через хуй кинут, устроив на 14.88к рублей в год?
>>2314355 Это понятно, здесь суть именно трудоустройство. Типа платишь за то, что тебя устроят в компаху помимо знаний. Отзывы слишком положительные везде, вот и решил тут спросить
Вот не пойму, нафига добавлять всякое внедрение зависимостей, аспектно-ориентированное программирование и прочее говно, чтобы просто выплёвывать html-странички клиенту? Почему РНР с этим справляется без всего этого говна, а на джаве его надо накручивать. Я сейчас просмотрел все доступные книги по Спрингу и знаете что? Ни в одной не написано как писать веб-приложения, они все посвященны как ковырятся в этом xml-говне. Там максимум описывают один и тот же стандартный пример как вывести хеллоуворлд на локалхост:8080. Такое ощущение, что специально создали это говно, чтобы все в него увязли и забыли про программирование и решение задач, а только и делали, что ковырялись в кишках фреймворка. Почему раньше, до всех эти Спрингов, можно было легко написать любое приложение, а теперь обязательно надо учить этот кал?
>>2314572 > Вот не пойму, нафига добавлять всякое внедрение зависимостей, аспектно-ориентированное программирование и прочее говно, чтобы просто выплёвывать html-странички клиенту? Просто ты реальных тырпрайзных проектов не видел, где фронт - сотая часть всего. И да, там ковыряться в хмл - необходимость, если взять пхп для таких задач, там будет то же самое, разве что придётся спринг велосипедить. > Почему раньше, до всех эти Спрингов, можно было легко написать любое приложение, а теперь обязательно надо учить этот кал? Нельзя было. Писали на хранимых процедурах в БД и делали десктопные клиенты, ибо веб-технологии тупо не справлялись.
>>2314573 >>2314574 Был код без openapi. В нем описаны контроллеры, dto(с билдерами). Я решил добавить Оpenapi. Описал контроллеры и dto в yaml и сгенерировал на основании их классы. Так вот, т.к. изначальные DTO писались руками, там повесили аннотации @Builder. А теперь у меня класс не руками писаный, а генерится при билде. И там не вешается билдер. Вопрос: как проставить в openapi (и можно ли), чтобы ломбоковскую аннотацию туда прокинуть
Есть один абстрактный класс. Приходит стринга с именем одного из его наследников Нужно создать экземпляр по этому имени Наследников 100 штук Как обойтись без гигантского свитча?
Вот были у меня классы. Я написал спеку на основании их. Ток теперь делаю так, чтобы генерились классы из спеки. Эт по сути мой учебный проект, в котором тренируюсь.
>>2314612 >>2314611 >>2314592 так стоп мне кажется я проебался. Это же и интерфейсы репозиториев под каждый класс наследник пилить надо. То есть те же 100 штук
В общем проблема такова Таблицы одинаковы, но я не хочу объединять их в одну большую. Представьте просто, что таблицы это борды на дваче и я не хочу их перемешивать Как можно обустроить подобное красиво с помощью jpa?
>>2314618 Если тебе не нужны полиморфные запросы, то юзай. @MappedSuperclass. Если нужны, то смотри, как в jpa реализовываетсч наследование и выбирай наиболее подходящий вариант
>>2314622 я так и сделал. Но мне ведь репозитории пилить под каждый класс наследник необходимо? То есть их будет много. Я бы хотел этого избежать, но не знаю возможно такое или нет
Что делать, если тимлид ебет мозги переусложением кода? Типа писать интерфейсы для контроллеров, для которых не будет другой реализации? Или зачем то для обращения к чужой рест апихе выделять кроме слоя сервиса(пустого по сути) слой репозитория, хотя никто не будет менять апиху? И всякая хуйня с паттернами, типа стратегия, которая подбирает имплементацию сервиса. И ещё куча мелких штук. Когда он говорит что мне делать, понимаю не все. Когда читаю его код, иногда не понимаю нихуя. Это вообще норм тимлид? Просто первая работа. Он прав и познал дзен и мне нужно подтянуться, подрочиться и я тоже потом познаю? Или он еблан и это дроч ради дроча? Ваши мнения?
>>2314592 >Приходит стринга с именем одного из его наследников Если стринга приходит снаружи - поздравляю ты только что сделал AnonShell. Не такой эпичный как у Log4Shell, но и ты не апач.
>>2314647 окей приходит не с именем класса, а с инфой на основе которой я выбираю нужный для обработки сопутствующих данных класс Теперь это не провал?
>>2314653 Ты уверен, что не можешь использовать json? В Jackson есть поддержка такого через polymorphic deserialization. Ты можешь использовать рефлексию или сервис лоавдер.
>>2314653 Если набор заранее ограничен твоими классами - да, это ОК.
Но если будет что-то типа: "com.anon.someshit." + type + "Processor" - то это тоже провал. Проблему можно решить с помощью модулей, но это уже выглядит как оверинжениринг для такой простой задачи.
>>2314665 Спасибо за инфу. Я по началу даже не подумал, что это может быть опасно. Есть что почитать на эту тему - про sql инъекции и прочее на что может нарваться начинающий?
Как теперь жить без IDEA? Эклипсом и нетбинсом уже лет как 8 очень мало кто пользовался на проде. Может все-таки разрешат пиратский софт использовать? Потому что оплачивать подписки уже никак не получится.
>>2314935 Продажи в России приостановлены (на какой срок не сказано), все их офисы здесь закрываются, сотрудники либо релоцируются вместе с компанией, либо увольняются, партнерство с универами в РФ прекращается.
>>2314690 >Есть что почитать на эту тему - про sql инъекции и прочее на что может нарваться начинающий? В принципе есть целые курсы на эту тему от разных инфоциган, но это скорее для тех кто будет работать безопасником. Но можешь спиратить и пролистать.
Эпоха джавы официально закончилась в РФ. Инструменты для разработки на жабе здесь более недоступны. И доступны не будут еще очень много лет. Сервера, которые раньше можно было арендовать где угодно и какой угодно мощности, ушли в прошлое. Теперь уже нет возможности докупить памяти или процессоров. Нет больше возможности крутить сервера на жирном БЛОКИРУЮЩЕМСЯ спринге. Выход один - переписывать все на Си, Си++, Golang, Rust. Жирная жаба не вписалась в новое мироустройство.
Есть метод перевода массива целых чисел в Строку, получает на вход массив и выводит эти числа через пробел. Массив предварительно сортируется. Для экономии строки - если числа повторяются, их выводят в формате NxЧИСЛО например, если была такая последовательность: [12, 12, 14, 15, 15, 15, 16] на выводе будет "2x12 14 3x15 16".
Изъебал весь мозг, пришел в итоге к такому решению:
public static String serializeIntArray(int[] array) { StringBuilder b = new StringBuilder(); Arrays.sort(array);
int duplicate = 1; int current = array[0];
for (int i = 1; i < array.length; i++) { if (current == array) { duplicate++; } else { if (duplicate == 1) { b.append(current).append(" "); } else { b.append(duplicate).append("x").append(current).append(" "); duplicate = 1; } current = array; } } return b.toString(); }
Но оно сука не выводит последнее число (или несколько чисел, если они в самом конце повторяются). У меня голова уже не работает, понимаю что решение примитивное но нихуя не могу сделать. Как исправить? Ну и советы по оптимизации тоже не помешают.
>>2315041 С ней ничего не будет. Надеюсь, в США и Европе разработка джавы не остановится и через год-два наконец-то запилят лум и вальхаллу в релизе. Благо Шипилев уже 10 лет в Германии живет. Но увидим ли мы эти новшества? Совсем не факт. Вполне вероятен сценарий, что весь мир уже пользоваться моднейшими виртуальными потоками и писать List<int> list = new ArrayList<>(); А у нас в это время будет доступна только BellSoft Liberca JDK 8...
>>2315017 Дотнет кор кстати попенсорсный и его можно юзать у нас без ограничений. Осталось только редактор кода найти на замену вижле. Или пиратить райдер.
>>2315056 Golang. У него есть очень хороший плагин для вскода. Вскод бесплатный полностью. Если хочешь быть бекендером в РФ, то учи гоуленг. Шарп не вариант совсем. Си, Си++, Раст - актуальность не потеряют.
>>2315063 IDE для Go - это Goland от джетбрейнсов, который вместе с идеей и райдером теперь уходит в прошлое.
Вскодом для го пользоваться можно. Да, не шик, но дебаггер там нормально прикрутили. Автокомплит и документация почти как в идее работают. В общем норм, получше какого-нибдуь нетбинса будет.
>>2315071 Сейчас работу вообще отменили. Все будем ходить побираться на улице или в огородах работать чтобы с голоду не умереть.
>>2293220 Снова выхожу на связь. Есть тут кто реально gradle-ssh-plugin юзает? Вы че, ебанутые? Эта помойка валится с ошибкой при авторизации с использованием putty агента и судя по всему её не фиксят с 16го года, а инфы о том как заставить его юзать openssh агент не существует в природе. Хотя в доках поддержка заявлена. Но как юзать мы не скажем. Не использовать же мне авторизацию по паролю. Я уж молчу о том что плагин не развивают уже несколько лет. Уже бы свою скриптопарашу написал за то время что с этой парашей ебусь, чесслово.
Короче, реквестирую что-то похожее на этот плагин, но что бы работало. Скриптопарашу не хочу потому что никрасиво.
>>2314572 >>Спрингу >>xml-говне. Читай доки, книги - устаревшее говно с кучей хмл и прочей хуиты, которую только деды может и помнят. Еще б блять жаваЕЕ начал изучать. >>Ни в одной не написано как писать веб-приложения На spring.io зайди, клован. Там гайды есть где все расписано. >>как вывести хеллоуворлд на локалхост:8080. Если тебе прям пошагово нужно объяснение как круды писать от и до - смотри гайды на ютюбе (пока его не заблочили), их там миллиарды. >>в него увязли и забыли про программирование и решение задач Он же пиздец простой, без него ты б на одних сервлетах закончился. >>до всех эти Спрингов, можно было легко написать любое приложение кек До спринга вся магия писалась тобой. И вместо @Component и @autowired ты бы хуячил абстрактную фабрику с синглтонами(с двойной проверкой лока само собой). А работа с базой на чистом JDBC это пиздец говно.
>>2315000 >>переписывать все на Си, Си++ долго и дорого, тормозит будет сильнее, чем джава из за отсутствия оптимизации говнокода джунов >>Golang не умеет и десятой части того, что может джава, если в го2 не исправят все косяки, то с выходом лум для джавы - вылетит из бекенда. >>Инструменты для разработки на жабе здесь более недоступны если идея накроется и кряки не помогут - есть эклипс от деда >>БЛОКИРУЮЩЕМСЯ спринге. самое время перейти на реактивный спринг >>Rust его знает полтора человека, джаву знает каждый второй.
>>2315138 > Не использовать же мне авторизацию по паролю. Открою секрет, кроме авторизации по паролю и ебли с агентом, есть еще авторизация по rsa ключу, которую юзает весь белый свет
>>2315186 Если не юзать парашут типа лямбд Я про амазоновские лямбды, то время старта не критично. Всё равно ты деплоишь пару раз в неделю. Деплоишь в к8с, вначале у тебя полностью задеплоиться новый кластер, и только потом загасится старый. Ну будет у тебя приложение стартовать на 10 секунд дольше из-за JIT, да никто это не заметит. Мы в конторе смотрели грааль и делали тесты с миграцией некоторых сервисов. В итоге не заметили каких-то существенных преимуществ.
Сап, анон. Вчера я спрашивал как избавиться от свитчей и пришел к такому варианту (пик) Поясни насколько это говнокод и в чем я не прав. На возвращаемые значения не обращай внимания. Мне нужно знать насколько приемлем такой подход. Спросить больше не у кого
Сущности ничем друг от друга не отличаются, просто я не хочу смешивать все значения в одной таблице.
Если я хочу новый раздел - делаю таблицу, сущность, репу, добавляю репу в мапу. В классе сущности определяю метод castAndSave. Сервис вообще не меняется. В чем я не прав?
>>2315000 >Rust На Раст тяжело писать большие, со сложной бизнес логикой приложения. Когда у тебя заранее не понятен жизненный цикл объекта или он очень сложный, то концепция владения сильно усложняет разработку. В языке с GC ты просто создал объект и передал куда надо, а в Rust ты должен думать передавать владение или нет. А потом, по мере развития проекта может понадобится зарефакторить это всё. В общем сложно.
>>2315210 Для агента разве не нужен мастер пароль? Это уже вне стандартов ssh. Я один раз юзал этот плагин для тех же целей что у тебя, сетап выглядел так же как на сайте.
>>2315289 Вроде бы все ок, только логику сохранения я бы вынес в какой-нибудь PostRepoManager, в котором бы были все репы, и который бы все это сохранял. А почему ты не хочешь все посты в одну таблицу?
Дрочебанк закрылся и увез с собой часть сотрудников. Jetbrains уехал из РФ и остановил найм здесь. Epam, Luxoft, DataArt, DXC, Accenture уехали и выкинули сотрудников на мороз. Количество джава вакансий на хх ру падает стремительными темпами (-800 вакансий с начала спецоперации на Украине), рыночек постепенно закрывается. Думаю, следующий тред будет предпоследним или последним. Более нет смысла заниматься джавой. Пора учить C, C++, Go и немного JS.
>>2315402 Кто сидит? Помойный сбер? Ну, можно и там поработать сейчас. Но потом тебя никуда не возьмут, очевидно же. ВТБ? Тинькофф, куда берут только олимпусь? Крупные джава работодатели уходят с рынка, очевидно уже. В скором времени джавы здесь не останется. За последнюю неделю на джаве было открыто 1к вакансий, в то время как на Го уже целых 370. То есть разница уже менее чем в 3 раза. Так что джава уходит имхо
>>2315407 Хуимхо. Куда с рынка уйдет промышленность, телеком, логистика или ритейл? Которые за собой тянут сотни своих дочек или подразделений >За последнюю неделю на джаве было открыто 1к вакансий, в то время как на Го уже целых 370. Ясно, безработный вкатун, тебя уже без диплома профильного никуда не возьмут, можешь не считать ничего
>>2315413 Где мимо? В озоне, авито и wb джава появилась? Нет, джава была в дойчебанке, jb, епаме и люксофте. И еще в куче разных галер и энтерпрайзов поменьше, которые теперь закрылись. Джава - это всегда в первую очередь финтех и тырпрайз. Из ритейла я только утконос могу вспомнить, да и то, он на го переписывать начал свои сервисы еще полгода назад
>>2315415 Вся госуха на джаве, пятерочки, магниты, спортмастеры, мвидео и все остальные на джаве, все или почти все банки на джаве. Даже всякая автоматизация уровня сети автомоек и то на джаве. Как раз на джаве останется хоть какая-то работа. Потому что сайтики на питоне и пхп закроют, модное говно с го тоже закроют нахуй. А промка в рф это капля в море.
>>2315437 Сейчас на рынок вывалилось около 20 тысяч разрабов. Они с легкостью покроют все текущие потребности российского энтерпрайза. Да, работу потеряют очень многие, несколько сотен тысяч уж точно.
>>2315828 Прям проверок там нет, их и не получится сделать. Если ты создашь запрос, куда передашь параметры тупо конкатенацией строк, он так и отправится в базу. А если юзанёшь какой-нибудь параметризованный запрос, где параметры с двоеточиями/вопросительными знаками заполняются извне, всё экранируется, и инъекции не будет.
>>2315368 Хотел логически разделить разделы, чтоб не делать каждый раз запросы к одной таблице. Я подумал вот как у того же абу доски хранятся в одной или он поделил?
>>2315289 Это полный пиздец. Ты смешиваешь данные и модель данных, и в итоге для создания одного раздела у тебя вместо пары инсертов потребуется привлекать программиста, который на каждый пук будет писать новый круд. Зачем? Если тупо из-за того, что в каждом разделе свой счётчик постов, то так и сделай номер поста отдельным столбцом в таблице со всеми постами, чтобы он не зависел от ID, а ID вообще юзеру не показывай. Счётчики либо через сиквенсы по одному на раздел, либо тупо через MAX()+1.
В связи с санкциями, решил проверить свой старый ноут 2 ядра / 2 гига на предмет работоспособности в современном мире. Установил туда линупс, жабу 11 и идею. Хеллоуворлд компилился 22 секунды, а идея сожрала всю память. В теории конечно можно будет что-то разрабатывать легковесное, но про всякие спринги и вебы придётся забыть.
>>2316770 >>голой джаве Олдовый JSP. Но лучше возьми SpringWeb и шаблонизатор типа thymeleaf - ебли будет куда меньше. >>На жабе в приципе невозможно В принципе на жабе можно сделать все. Майнкрафт например на джаве. Просто для другой хуйни есть инструменты поудобнее джавы. >>не язык вёрстки. все кроме хтмл не язык верстки
>>2316893 > Олдовый JSP. Не голая жаба. > В принципе на жабе можно сделать все Веб - это именно html. Даже если ты на жабе напишешь браузер, который будет поддерживать жабу в качестве языка вёрстки, это вебом не будет. > все кроме хтмл не язык верстки Да.
>>2317113 Вся фишка этих контор в том, что здесь уровень жизни ниже и можно платит меньше, а если программист переедет, то ему такой зп уже не хватит. Тем более человек может патриот своей Родины или имеются другие причины - семья, родня, климат не тот.
Как-то жидко стало с работой на джаве. Может кто знает более популярные стеки технологий? Боюсь, что в джаву уже не смогу вкатиться, так как рынок слишком узкий.
>>2317120 >здесь уровень жизни ниже и можно платит меньше, а если программист переедет, то ему такой зп уже не хватит. А если не переедет, то вообще придется с ним распрощаться и искать нового. И искать все равно "там" придется.
>>2317400 5к в месяц, лол. Тут кто-то спрашивал, сможет ли вкатиться через книги на мобилке и некропека на кафедре, потому что деняк нет даже на обосанный ноут с авито. Если у тебя есть лишние 5к в месяц. то и проблему с пека ты решить можешь, хотя бы в кредит.
>>2317369 Как ты из блокнота будешь ебаться с магией di? Как он тебе будет подчеркивать ошибки, причем не только компиляции, но и рантайма, ошибки спринга, ошибки в хмл, в поме, в спеле, в хтмле? Автодополнение? Рефакторинг? Переименование по всему проекту, тип миграция, экстракат интерфейс, метод, делегат, мув метод. Тулинг для баз, хттп-клиент, гита, мавена, докера, кубера. Хелловорды хоть в чем можно печатать.
>>2317414 Новых компов не будет. Будут паять любительские ЭВМ и писать свой софт к ним. Возможно смогут адаптировать СР/М-80 для них и тогда использовать ПО от этой ОС.
>>2317437 > Автодополнение? Повторение мать ученья. > подчеркивать ошибки ... Рефакторинг? Переименование по всему проекту, тип миграция, экстракат интерфейс, метод, делегат, мув метод. Семь раз отмерь, один раз отрежь. > из блокнота будешь ебаться с магией di? На бога надейся, а сам не плошай. > Тулинг для баз, хттп-клиент, гита, мавена, докера, кубера. Где мёд, там и мухи.
Как мне динамически менять проперти в бине/создавать другой бин с другими пропертями? Кейс вот какой: есть библиотека, она конфигурируется из application.properties/бд при старте приложения. Библиотека используется по всей приложухе, скоуп синглтон. Нужно добавить возможность присылать через хттп-контроллер другие проперти в рантайме, применять их и чтобы все работало сразу же с новыми пропертями. Когда гуглю выдает кучу всего. И биндефинишены, и листнеры и процессоры и все что угодно. Подскажите один способ: современный, спрингбутовый и желательно простой.
>>2317645 А правда, что сама бд оракл стремительно теряет долю рынка в пользу постгреса или пиздят? На чем они вообще живут? Оракл клауд вроде сосет по прибылям, ерп система - хз, может она удачная. Че там еще?
>>2317645 >анус ставлю компания пидарасов что-то с лицензированием джавы сделает Наоборот в 17 LTS расслабили лицензирование, это конечно не то что в 8-ке было, но уже гораздо лучше.
>>2317647 >А правда, что сама бд оракл стремительно теряет долю рынка в пользу постгреса или пиздят? Кто сидел на Оракле и продолжает на нем сидеть, слезть с него практически не реально. Но всякие новые стартапа предпочитают постгрес тупо потому что столько денях нет. Так что в длинной перспективе, что Оракл, что Сиквел Сервер - теряют долю.
>>2317678 >Как вообще работает это говно с лицензированием таких штук? Конкретно в Оракле - база пишет в логи какая у нее установлена лицензия, на каком железе и с какими фичами она запущена, всё. Никакой защиты от копирования или ещё чего у Оракла нет, просто идешь на сайт Оракла, качаешь базу, ставишь и работаешь. Лицензию проверят только саппорт при обращении, ну и мусора.
>>2317647 >сама бд оракл стремительно теряет долю рынка в пользу постгреса или пиздят
Всякий крупняк как сидел на оракле, так и сидит, и никуда с него не уйдет. Но оракл сам по себе почти никому не нужен, когда есть бесплатный опенсорсный постгрес, возможностей которого более чем достаточно для почти любого бекенда малых и средних размеров.
Мужики, а как в больших конторах справляются с проблемой совместимости версий библиотек и проектов?
дубль вопроса со стака "Я разрабатываю достаточно большой проект и множество библиотек для него, многие из которых зависят друг от друга. Условно А наследуется в Б, Б наследуется в В, В наследуется в Г, Д, Е, Ё, а Д наследуется в У.
Проблема в том, что если я обновлю например библиотеку Б, то мне придётся как минимум перекомпилировать все библиотеки выше, чтобы они работали вместе. Как с этой напастью бороться?"
>>2317803 > Проблема в том, что если я обновлю например библиотеку Б, то мне придётся как минимум перекомпилировать все библиотеки выше, чтобы они работали вместе. Как с этой напастью бороться? Не понял в чем проблема. Но если все эти абвгд твои, то их билдам стоит шарить общий classpath для всех зависимостей. А то я так понял у чела каждый модуль становится уберджаром. Тогда в теории только конкретный модуль будет перекомпилирован.
>>2317803 Либа собирается и деплоится в нексус с фиксированной версией, обычно автоматически через пайплайн на дженкинсе, но изредка заливают и руками. Проекты, которые зависят от этой либы, просто указывают нужную версию в пом.хмл, и она сама скачается при сборке.
Допустим у меня есть жадная коллекция внутри сущности. А в query репозитория я делаю join по этой коллекции с некоторыми условиями, но все условия соответствуют сущностям внутри этой коллекции.
Получается, у меня в запросе два join по одной табличке. Результаты одного будут как-то учитываться в результатах другого? Или это будет две независимые выборки? Или sql сам объединит оба join в один на каких-то фильтрах?
Вбил сейчас jooq на Ютубе. И мне выдало jug.ru. И я только сейчас понял, что конф на русском языке больше не будет скорее всего. И всякие переводы и тем более ориджинал со швабры тоже сократится в разы.
>>2318283 Скорее не будет совместных конф с англоязычными докладчиками. Ну и русских в ближайшее время тоже скорее всего не будет. Не вижу причин, почему в дальнейшем их не должно быть.
>>2318236 > Расскажите о впечатлениях. Как и все статические обертки, кроме гемора ничего не вызывает. Люди с образованием, учёные, дали им ванильный, няшный, чистый, понятный, лаконичный, гибкий, доступный и интернациональный сиквель, но нет блять не хочу. Хочу завернуть это всё в 200 слоев абстракций, чтобы идея жидко пропукивалась каждые 5 минут, а тот кто пишет запрос потерял связь с реальностью.
>>2318300 Добавлю: запросы становятся трудно читаемыми потому что жук добавляет кучу алиасов, прописывает каждое поле по полному имени и берет в двойные кавычки.
С другой стороны, если какой-то долбоеб дропнет колонку которая используется, ты это поймешь еще на этапе компиляции, а не на проде.
>>2318236 Все хорошо с жуком. Особенно, если надо поддерживать несколько бд. Жук могет в генерацию корректного запроса под конкретный диалект
>>2318392 > запросы становятся трудно читаемыми потому что жук добавляет кучу алиасов, прописывает каждое поле по полному имени и берет в двойные кавычки. Дальше дефолтных настроек ты, видимо, не смотрел. Все это конфигурируется
> С другой стороны, если какой-то долбоеб дропнет колонку которая используется, ты это поймешь еще на этапе компиляции, а не на проде. Не поймёшь, если генерация жуковых классов отключена по-умолчанию
Щас на собесе спросили – когда будешь использовать Kafka, а когда RabbitMQ? А вот реально, как понять, что и когда лучше использовать? Что надо у бизнеса узнать прежде чем принимать решение?
ПС. Я ответил лишь то, что Кафка хорошо скейлится горизонтально и является pull системой обмена сообщениями, в отличие от RabbitMQ
>>2318468 > А то мне делать нехер было! Тебе нехер, а кому надо будет, сконфигурят как им надо.
> Так ты из тех, что генерированный код коммитят Я человек маленький, пришел на проект с уже закоммиченным жуковским кодом. Ситуаций, когда "долбоеб дропает использующуюся колонку", не должно возникать в приципе
>>2318591 Писать сикульки в строчках и скармливать ждбиси? Такое же говно неудобное, как и писать в блокноте вместо идеи. Если запросик влезает в 1-2 строчки это норм. А если там простыня ебучая и кто-то простыню написал плохо и это не ты? И еще без ограничений от библиотек. На прошлом проекте в легаси копролите видел запрос с хранимками на 100 строк внутри обычного стринга. Сиди - ковыряйся, угадывай что делает.
>>2318591 >Вот зачем они, когда можно писать простые и понятные всем SQL запросы без лишней гомосятины? Мапить в объекты гемморойно, особенно когда у тебя десятки полей в таблице.
ИМХО, в говноланге все ок только с многопоточностью. Вот реально крутая тема, которой не хватает в других языках, хотя виртуальные треды и у нас будут через 3 года. Остальное - как-то слишком топорно и некрасиво. Тех же стримов очень сильно не хватает. Крайне убогая работа с коллекциями. Она и в джаве хуевая, но тут совсем как будто за шиворот насрали.
Хорошо, что дженерики завезли. Хоть и в сильно урезанном виде, но тем не менее. Компилятор умеет доказывать время жизни сущности и автоматически выбирает место, где нужно провести аллокацию (стек / куча). Рейсдетектор заебись тема. Еще прикольно, что компиляция очень быстрая, и в полноценный, хоть и очень жирный, бинарник.
Вот это прикольные фичи говноланга. Но в целом не очень. Лучше Kotlin/Scala брать для перехода с помойной легасной жабы
Посоветуйте ютуб каналы, где джавист кодит и комментирует в реалтайме. Только не простые туториалы, а таски уровня джуна-миддла, ну либо какие-то свои проекты того же уровня.
>>2319626 Инжектить список бинов я умею, мне нужно чтобы спринг сам понимал какую реализацию ему подбирать, чтобы вот такого кода в контроллере не было:
>>2319633 Ты можешь вот этот стрим вызвать в конструкторе, а на выходе получить мапу [ImportantRequest, ImportantService] и в коде делать map.get(request.getClass()).doJob()
>>2319655 Вполне адекватно, но опять же – ненужная логика в контроллере, которую придется писать в каждом контроллере. Да, можно рассмотреть вариант с наследованием контроллеров от одного, в котором как-то наверное можно будет абстрактно для всех классов это сделать, но все же, пока надеюсь, что есть решение чище
С твоими доводами я согласен. Однако ж тут просто поединок говна и мочи, у джавушки свои проблемы и их много. Именно поэтому я думаю что именно жаба не имеет морального права ссать на кого-то.
Хотя голэнг, во многом, говнина. К его экспрессивности есть большие вопросы.
Тулинг говно, шутка ли сярписты до сих пор билдят проекты с помощью проприетарных файлов студии и/или msbuild который просто клон ANT.
По библиотекам тоже не все так хорошо, разве что в гейдеве все хорошо, а в остальных областях все грустно. Сяписиы даже пилят гайды как юзать жава библиотеки https://www.youtube.com/watch?v=E3SfXloQdfw
CLR сильно отстает от JVM, такого разнообразия GC особенно concurrent в CLR нет. JIT в жаве лучше чем в CLR. У JVM значительно больше контрибуторов и поддержка разных платформ сильно лучше.
>>2321720 Классно. Но факт остаётся фактом. За перфомансом и крутыми фичами это в C#. Не зря он остается де-факто стандартом в геймдеве как второй язык уже второй десяток лет. И колхозный джава тулинг тут не при чем.
>>2321825 >Не зря он остается де-факто стандартом в геймдеве как второй язык уже второй десяток лет. Да даже первый, если считать все рогалики и хеловорды! Какие ААА проекты написаны на сярпе?
>>2321933 Я спрашивал про ААА игры, а не список поделий на Юнити. Тем более что сисярп в юнити используется как язык для скриптов для реализации логики, рендеринг и физика написаны на С++. Раньше в юнити можно было скрипты и на жопаскрипте писать, видать тоже производительный дохуя.
>>2321983 > список поделий на Юнити Ясно всё с тобой. Из заметных сложных и больших проектов в списке есть Cities Skyline, Escape from Tarkov, Genshin Impact. Это конечно не то ААААА уровня анрила, но это 3д выше среднего, которого на джавайе нету вовсе. А джавана почему не используется как язык для скриптов для реализации логики, если рендеринг и физика написаны на С++?
>>2322120 >Из заметных сложных и больших проектов в списке есть Cities Skyline, Escape from Tarkov, Genshin Impact. Симсити, какой-то долгострой который никто пока не видел, онлай дрочильня - охуенный набор чо.
>А джавана почему не используется как язык для скриптов для реализации логики, если рендеринг и физика написаны на С++? Потому что выбор языка для скриптинга абсолютно рандомная вещь. У тебя есть разработчики движка которые с чем-то знакомы/что-то любят вот и пихают. Вон список игровых движков со скриптингом https://en.wikipedia.org/wiki/List_of_game_engines там такой зоопарк, кто во что горазд. Нет никакой разумной причины писать интерпретатор Си. Интерпретатор Си Карл! Кроме того, что разработчики хорошо знают и любят Си.
>>2322267 > охуенный набор чо. А в чем конкретно претензия то? Я понимаю что говорю со школьником максималистом защищающим свой ограниченный клочок знаний, но приводить аргументы уровня нравится-ненравится это конечно мощно. А шарписты тут дегенарты получается (я не шарпист если что) На джаве например только один проект получил мировое внимание. Но в нем модель человека состоит из 6 кубов и одной единственной текстуры 16x16
> выбор языка для скриптинга абсолютно рандомная вещь Почему gdscript работает до 100 раз медленнее обвязки на C#, хотя бэкенд у них написан на C++? Почему обвязки к C++ библиотекам работают с пропукиваниями и в полтора раза медленнее на джаве, чем на C#, и до 10 раз медленнее на котлине, если язык для скриптинга не важен? Raylib например. Про удобство синтаксиса я вообще молчу. Почему за последние 10 лет появилось несколько полноценных 3д движков на C# (xenko, urhosharp например) с бэкэндом на C#, а на джаве 0? А для 2д и скриптинга еще больше (waveengine, flax, godot например). На джаве правда подобных инструментов вообще нет, жива только одна библиотека и два фреймворка которые утонули в легаси на 1.8. Не похоже на абсолютно рандномную вещь.
Пессимистично конечно, жёстко, но такова современная картина мира за пределами компетенций спрингбут разработчика.
>>2322366 >>Почему за последние 10 лет появилось несколько полноценных 3д движков на C# (xenko, urhosharp например) с бэкэндом на C#, а на джаве 0? Джава это про энтерпрайз и все усилия направлены на это. То что появляются какие то игровые движки на ней или хуита для гуя - скорее просто поделия энтузиастов. >>жёстко, но такова современная картина мира за пределами компетенций спрингбут разработчика. Мне как спринг бут разработчику даже в голову бы не пришло писать игру на джаве. Тут надо либо юнити изучать, либо какой нибудь рпгмейкер (или что там есть из популярного).
А то как фашисты уже - один язык, одна страна, один фюрер.
>>2322521 > А то как фашисты уже - один язык, одна страна, один фюрер. Джаконда позиционировалась как язык общего назначения, но в итоге всё пришло к альтернативе пэхапэ с другим стеком. А тех кто хотел бы использовать язык по другому оракл послал нахуй. М$ в этом плане себя показали адекватней, развивая язык и платформу во всех направлениях. Байтоебля, веб, системщина, гуй... что разработчики из других сфер и не только увидели в нем применение. Вся ставка оракла, привязаться к одной области, рискует быть проебана из за альтернативных и более удачных решений на рынке. Или форс мажорных. Что уже произошло с андроидом - его поделили котлин, флатер и юнити. И с пхп - джава, го и питон.
>>2322366 Не понимаю нахуй ты усираешься доказать что в гейдеве C# прижился и широко используется. Я с этим не спорил. >>2321720 >разве что в гейдеве все хорошо
Просто ты из популярности в гейдеве, решил сделать вывод про какой-то там перформанс C#. А вот тут ты как раз и обосрался. Во первых потому что не существует сферического перформанса в вакууме. Во вторых потому что его надо мерить, чтобы разговор был по существу.
>>2323055 Сферический перфоманс в вакууме это тесты с одного известного сайта, где результат + - тот же. А всё что я перечислял это наблюдения с реальных задач, которые сам и делал так то. И все перечисленные jvm проблемы наблюдал невооружённым взглядом.
>>2323113 >И все перечисленные jvm проблемы наблюдал невооружённым взглядом. Не знаю, что ты там со своим косоглазием наблюдал, но единственное что ты смог высрать это список игр на юнити. Больше нихера, ни ссылок на бенчмарки, нихера.
>>2323941 > Больше нихера, ни ссылок на бенчмарки, нихера. Все что выше написано гуглица по каждому предложению. Ёмкие, тезисные ответы с мои опытом, которого у тебя не наблюдается. Могу дать ссылки, могу опять бенчи написать, могу снять вебм, но уверен в ответ всегда будет этоненужно, яинеспорил и пр. И уже понятно что мы ни к чему не придем, потому все последние аргументы это твои личные чувства о играх на юнити.
Описываю в Swagger (openapi.yaml) компоненты, на основе которых будет генерироваться DTO-классы Не пойму как описать Set<>. С List'ом понятно, а про Set чет не могу нарыть ничего. как с ним быть?
Взял первый. В .Net заюзали SSE, а в Java Vector API не стали. Прогрева никакого нет. Да что там прогрев, в .Net тредам выставили высокий приоритет, а в Java решили этого не делать. При этом во всю юзают не кроссплатформенные вещи - System.Runtime.Intrinsics.X86;
>>2327301 Если результат действительно поменяется когда эти условия выполняются, неплохо было бы увидеть результат, или лучше код чтобы это можно было проверить. А другие не синтетические 4 ссылки копнешь по глубже? Там прогрева хватает и потоков вообще нет.
Предыдущий: