Это копия, сохраненная 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Нельзя перекатывать до следующей LTS
А что посоветуют гуру Java-разработки? Какую IDE по-вашему лучше юзать для начала и почему?
Его скоро запретят
>>Какая IDE лучше
идея без вариантов
>>Посмотрел видео от Немчинского
Имей ввиду что он ориентируется на хохлорынок и легаси парашу от индусов. В его понимании джава осталась на уровне 2010 года.
>>вкатунам лучше юзать Eclipse
>>Некотрые вообще советуют писать в NotePad++ или блокноте. Ну я накатил для теста Eclipse
Ты кучу времени потратишь на всякое говно вроде исправление синтаксиса, когда тебе надо учиться понимать ООП. Когда тебе идея носом будет тыкать в ошибки с комментариями - ты их очень быстрее запомнишь. Она даже говнокод тебе подчеркнет и объяснит почему так писать плохо и покажет как правильно.
>>лучше юзать для начала
учись сразу на нормальной, чтоб не пришлось переучиваться
Перекатывать надо раз в 6 месяцев.
Пара вопросов, джаваны.
Работаю(л) инженером и просто для себя в свободное время читал литература по IT и Джаве в частности (Ритчи, Алгоритмы Кормана, Java OCA и прочее), ходил на лекции CS клуба в ДС2 и тд, но кодить боялся. Последний кодинг был в школке на Паскале и С++.
Сейчас укоряю себя, что филонил и сейчас не могу перекатиться как прогер куда-то, но деваться некуда и решил уже по-чёрному дрочить Джаву.
Так вот вопрос такой - решил посмотреть популярность языков в 2021-2022 и вижу, что Java вообще катится в какое-то говно - популярность чуть ли не по параболе вниз катится. Её блядь вообще стоит учить? Или сразу НЫРЯТЬ В ПИТОН, потому что вакансии по Джаве будут сокращаться => больше конкуренции будет на неё.
И ещё вопрос - выше спросили про IDE, вы советуете Идею, но ведь она даже с рутрекера уже начинает отваливаться? Есть ли что-то мб чуть менее популярное, но более доступное?
Спасибо :3
И насколько хороший стек?
java11, spring boot, postgres, liquibase, jooq, миркосервисы, kafka, kubernetes, gitlab ci cd, clickhouse.
Особенно с учетом, что то половину этих базвордов я вообще не знаю, а те что знаю - знаю очень плохо.
>Немчинского и он тоже это отметил, сказав что вкатунам лучше юзать Eclipse, так как там только базовая помощь (скобки закрыть, кавычки поставить), а остальное нужно делать ручками.
И тогда ебля с бойлерплейтными правилами жабы у тебя займут в 5 раз больше, чем изучение языка, фреймворков и технологий.
Автоимпорты, рефакторинг по всему коду, тулинг с базами, докерами, хттпями, кафками, хмлями, умлями, спрингами. Это то, с чем придется ебаться каждый день. И за всем этим следить без тулинга это тупо увеличивать когнитивную нагрузку и время на отладку в 5 раз минимум.
Так я не говорил, что не нравится. Я к тому, что учить мне его ещё годик, потому джуном годик, а такими темпами Джава уже свалится на уровень какого-нибудь КОБОЛа
https://habr.com/ru/post/651585/
Хули она так рухнула-то?
Не смотри это говно. Эта статистика ни о чем не говорит.
Смотри на хх или на каком-то другом подобном сайте, если не из рф.
Смотри количество вакансий, причем желательно на определенном фреймворке, потому что без знаний основного фреймворка все равно не берут. И самое главное, если можно посмотреть количество резюме с нужным кейвордом фремворка - оценивай соотношение вакансий и резюме. Например я так смотрел в январе.
У реакта было 10к вакансий и 30к резюме, у спринга 5к вакансий и 9к резюме, а вот у джанги - 1.5к вакансий и 20к резюме.
Еще можешь попытаться просматривать джуновкие вакансии в разных стеках и посмотреть, какие у каждого стека кейворды встречаются чаще всего.
Да никто не знает.
До операции с работой на жабе в рф было все лучше чем на многих других стеках.
А сейчас. У нас на работе сказали, все заебись будет, заказчики все крупняк рф.
Епамерам например добчинский врал целый месяц, что всех релоцирует. А теперь сказал, что релок для очень небольшого числа, причем в армению и узбекистан. А остальных через месяца 2 на мороз. У многих других так же. Туман войны на рынке труда начнет рассеиваться через 2 месяца, пока почти никого не сократили.
Но если ты вкатываешься, то возьмут на работу тебя в лучшем случае через месяцев 7. А там вообще другая страна будет. Думаю даже по моей конторе ебнет в конце года.
Это макака с камерой, популярная у пориджей, которые вместо кодинга на джейве смотрят видосики про неё.
Не смотрю.
https://www.youtube.com/watch?v=SqVfCyfCJqw
https://www.youtube.com/watch?v=ZfbQfUAPVWY
Вот эти прямо в процессе смотрения
https://youtu.be/o429h0JoFGo
Эльбрус закончился.
Джава тоже закончилась. Уже сегодня впервые за несколько лет на хх.ру открыто меньше 4 тысяч вакансий.
Но речь-то о том, что это всё равно будет оставаться единственным реальным способом трактора. Поэтому выше и спрашивают про падение популярности Джавы вообще в мире.
>>Java вообще катится в какое-то говно
Все так, вкатывайся куда нибудь еще, к нам убогим не лезь. Джуны кстати не нужны.
>>она даже с рутрекера уже начинает отваливаться?
Для изучения тебе и бесплатной хватит.
>>Есть ли что-то мб чуть менее популярное, но более доступное?
Экслипс. В РФ никто не пользуются, но индусы его любят.
>>19858
>>19784
Так вы занимаете свой мозг какой-то ненужной хуйней.
Разработчик не должен быть привязан всю жизнь к какой-то конкретной технологии. Да, кишочки спринга и JMM знать нужно, потому что это спрашивают на собесах, но перейти на другой стек технологий в короткие сроки для вас не должнл быть проблемой.
Сегодня пишем на жабе, завтра на котлине и скале, а послезавтра переписываем сервисы с шарпа на го, а спустя год с го на раст - вообще похуй, беремся за любую работу.
Самая оптимальная стратегия сейчас вкатиться на любой стек технологий, и в процессе подтягивать как жаба-специфичные вещи, так и более общие - многопоточка, паттерны, архитектура, распределенные системы, system design, алгоритмы. А опыт ковыряния легаси на спринге никуда не денется - в резюме вписать можно - и похуй.
>падение популярности Джавы вообще в мире
В евросовке и сша джавы полно. Может не самые новые проекты, но всякого легаси просто завались.
Но даже если жаба внезапно сдохнет совсем, в чем проблема выучить новый стек и завести трактор?
>>Немчинский пугает, что в РФ
Начнем с того что он бандеровец он прямо так и говорит на стримах, а значит его мнение предвзято.
В РФ он не живет очень давно, чем дышит местное айти не понимает, код не пишет, джава миром не интересуется. Он только любит вспоминать как оно было в 2010 и думает что ничего не изменилось.
Анон выше тебе подсказал самый адекватный способ - просто открой хх.ру и посмотри кто нужен, какие технологии требуют, сколько платят.
>>что java в целом всё
Много госзаказов, в украхе таких нет вообще. Ну и банки никуда не делись. Галеры пока уплыли, но обещали вернуться под флагом Узбеккистана и Армении. В целом джава пострадала меньше других только 1С выиграла
>>Можно ли вкатиться
нет
>>будет ли работа в РФ?
работа всегда будет а зарплата - не всегда
Щас Оксанки задемпингуют весь рынок.
В 1C
в эмбэд
>>Дак куда вкатываться?
записывай координаты 14°24′28″ ю. ш. 71°18′00″ з. д.
Ты без мнения анона не можешь проанализировать рынок и решить? Может уже пора повзрослеть и самому принимать решения и нести за них ответственность?
В чем он не прав?
Перекат легитимный, предыдущий тред у меня лагает хуже Нетбинсов на офисном компе.
Поправимо, этот через неделю тоже будет грузиться минуту и лагать. Тут уже успели насрать пару десятков нерелейтед постов про рыночек и зарплаты, скоро ещё шарпобляди подключатся.
Сажу забыл
Можно ли как-то получить объект-владелец объекта вложенного не-статик класса?
Например есть у меня Outer, и в нем определен non-static Inner. У меня есть ссылка inner. Исходя из семантики этих всех отношений, у него точно есть какой-то outer, но, насколько я понимаю, получить его нет средства у языка (иначе как у Innera определить спец-метод, возвращающий Outer.this)
При чем тут Outer статик? Outer вообще просто класс верхнего уровня, к нему непримени модификатор этот.
>Inner должен быть static
Если иннер - статик, то его можно создавать отдельно от внешнего класса. Мне нужно замоделировать такое отношение, когда такое невозможно, для этого и нужне вложенный нон-статик
>Ты вообще что делаешь?
Ну, я как раз сделал так, как написал:
"у Innera определить спец-метод, возвращающий Outer.this"
Я на всякий случай спрашиваю, есть ли альтернатива встроенная в язык, чтоб убрать этот кусочек кода.
Говно какое-то, а не рейтинг.
В Европе и США для синьор ролей уже не смотрят на твой стек, их только интересует готов ли ты переучиваться на их язык. Так вот мне ни разу не предлагали сисярп, Го, Нода, Эликсир, но не СиСярп. Может в Гейдеве, по другому, но я не знаю ни одной крупной финтех конторы которая бы разрабатывала на СиСярпе.
Моя нынешняя компания не нанимает джунов, но по предыдущему опыту могу сказать что или набирают интернов там все равно на твой стек, или джунов с подходящим стеком.
А если я уверено владею циклами и массивами, а также немного знаю коллекции. Меня возьмут джуном?
В сторону каких библиотек копать, как примерно реализовывать, направьте плиз!
>Гвно, злупа, пнис, хр
Вот так неуважительно ты к своему ремеслу относишься то есть? И еще советов каких-то ждешь? Да уж, не думал, что здесь сидят такие невоспитанные личности.
Глянь Jackson. Он вроде и в хмл и в цсв умеет
Нет, даже для джуна маловато. Мы ждем, что джун может сесть и начать кодить. Да с подсказками какие классы смотреть, вопросами по фреймворкам, замечаниями по кодревью, но все же сам.
У меня есть строка типа
String str = "iron:4;diamond:5;gold:1"
Как мне её превратить в
int diamond = 5;
int iron = 4;
int gold = 1;
?
Парсить строку с json, xml, yaml или properties.
Пруф.
Джуном сейчас не возьмут никого, от джуна требуется писать микросервисы, знание вебфлакса, реакта, кафки и кубера. И я не преувеличиваю.
Через рефлексию по имени поля
Я тебе описал кухню галер в рф.
Это в сишарпе требуют фуллстек, потому что сам язык легкий, а джава язык тяжёлый и тут нужны чистые бэкендеры.
А чего их искать если очередь мидлов из компаний которые ушли с рынка.
оч смешно!
Это урезанная версия, там не компилируются серьёзные программы. А как выше писали с джунов требуют уже их, а не только джава коре.
> там не компилируются серьёзные программы
Значит тебе не о чем беспокоится
> с джунов требуют уже их
Знание расположения кнопок в идее?
Во всех видео показывают на платной идее примеры. Как я должен учиться? Они не рассказывают как это сделать на Эклипсе или в ВС Коде.
Маркетологи хорошо работают.
Да, если ты мидл, а что?
Да.
Тут даже мало, скорее всего стажерская вакансия, со старыми лайтовыми требованиям, до операции
> IoC, Gradle, Maven, Servlet, Tomcat, Hibernate, JPA, JDBC
Знать всем.
> SpEL, AOP, WebFlux, JMS, JCA, JMX, Groovy, EJB, JSP, JSTL, JSF, JNDI, JTA,
Зависит от проекта, это всё вместе обычно не используется.
Ебать у вас всё просто. В 2015 можно было сдавать на любом популярном языке, но требовалась указать, что за язык. Примеры самих заданий были на пяти языках - сишка, паскаль, бейсик, петухон и АЛГ НАЧ КОН.
В итоге не понадобилась, поступил по физике.
>Гребут дальше как ебанутые
а почему ебанутые? в чем причина? Мне казалось, что в банках более-менее спокойная обстановка.
А чому не Java? Мне просто не с руки учить новый язык за несколько месяцев до экзамена, но если так, то буду осваивать питон
Для ЕГЭ ты питон за пару дней выучишь.
чел, я понимаю что тебе 17 лет и кажется что это дохуя много, но если ты увлекаешься прогой, то тебе язык типа пытона осилить за вечер можно, исключая конечно какие-то специфические переделки вроде особенностей рантайма, но чтобы программы из ЕГЭ писать тебе нужно реально только синтаксис циклов, ветвлений и мб какие-то совсем стандартные практики вроде как проитерироваться по строке в языке Х. Не парься и прям ща открой выучи пытоныч, если кажется что будет легче
В чём проблема выучить новый язык? Там от силы базовый синтаксис надо знать, который учится за неделю (максимум месяц).
Ну что джавуны, все перекладываете джсоны в крудах? А я вот многопользовательский платформер пилю за донат которого нет почти.
В гд полтора анона, кстати.
>>реально надо знать
>>IoC, SpEL, Maven, Servlet, Hibernate, Tomcat, JDBC, JPA
да
>> WebFlux, AOP, Groovy, JMS, Gradle
на некоторых проектах
>> EJB, JSP, JSTL, JSF, JNDI
если такое видишь в вакансии - зовут легаси вилкой чистить, проекту точно больше 5 лет
>>Java 18
Максимум на 17 все начнут пересаживаться через пару лет, да и то только ради спринга нового, что там в 18+ версиях можно лет 5-10 еще не читать.
Чел там для заданий нужно знать как объявлять переменные и как выглядят циклы, для этого не нужно учить весь обезьяний стек.
Не существует версий, кроме LTS.
Без Idea Ultimate Edition не справишься с консольной программой. В питоне проще будет.
Че за форс вообще с ультимейт эдишеном? чем он лучше комьюнити? или это типо рофл над порриджами которые розовые клавиатуры для кода покупают
Это один и тот же шизик срёт. Он, небось, и мавен не осилил.
Бесплатная версия не поддерживает спринг и прочие тырпрайзные фишки.
Не сортирует. Просто если у тебя ключи числа 0, 1, 2, 3, 4 то в мапе они будут лежать так же, тупо потому что хешкод каждого само число, остаток от деления на 8 тоже само число, так что бакеты будут занимать последовательно.
Чтобы проверять наличие элемента в множестве
Чтобы викинуть из массива повторяющиеся элементы.
Файлы, как бинарные, так и текстовые.
Пока отправляю все в base64. Но большинство файлов - текстовые. Не слишком ли это большой оверхед?
Вроде нашел библиотеку, которая определяет является ли файл текстовым - apache tika, но как-то она не очень работает.
Для тех случаев, где ключ и есть значение.
Так проблема как раз в том, что апиха уже готова. Я как раз принимаю зип + дто, разархивирую, делаю еще кое-какие штуки и передаю на апишку файлы, стринги с путями и кое-какую другую инфу.
Не получится. Апишка принимает строчки и флаг про кодировку текст/base64. У меня две альтернативы, или искать лучший способ определять текствовость/бинарность или слать все так в base64.
Но ведь ему выгодно найти того, у кого уже есть клавиатура
Чел, есть готовый внешний сервис с рестапи. Я пилю свой микросервис на спринге, который получает с фронта/от другого микросервиса архив и шлет стрингофицированные файлы внешнему сервису. Ни про какой гейзип на стороне внешнего сервера не указано. Не думаю, что он его поддерживает.
Это фича HTTP сервера, прикладное API на той стороне получает все уже разжатым. Не знаю, что там за ебала, но современные HTTP сервера поддерживают сжатие.
Да и вообще изначальный вопрос
>Пока отправляю все в base64. Но большинство файлов - текстовые. Не слишком ли это большой оверхед?
глупый. POST и PUT спокойно передают бинарные данные, никакого Base64 там не надо.
тут дело не в том, что может или не может хттп, а в том, что это ограничение апихи. Она получает стринги(со стрингофицированными файлам) и енум text/base64, как флаг.
Столько зарабатывают единицы, в рашке столько специалистам не платят, это зарплаты всяких директоров и топов. 300к ещё платят, их вполне можно проебать на всякие ипотеки, брендовый шмот и элитную хавку.
Цены на квартиры видел?
1064x642, 1:03
А мог бы и не брать, одна из целей навелосипедить многослойный стэк движков :D
Вот, добавил еще одно оружие, и стрельбу под любым углом.
И надо ли их помнить?
В каждом новом микросервисе копирую конфиги из гугла, а потом начинаю тюнить под себя.
Может стоит начать хотя бы копипастить их из официальной документации, а не с баелдунга?
> наизусть помните
> углите/перекатываете
> копирую конфиги из гугла
> из официальной документации
this
Дебилы именно те, кто придумал писать DNS для сайтиков наборот. Во всех аналогичных системах именований в начале общая группа, а дальше подгруппы, как в путях папок и файлов, те же fido и usenet.
> в c# такого нет
Там то же самое, подгруппы после групп. Только вместо имён по доменному имени организации считается, что название самой организации достаточно уникальное, и можно вместо com.microsoft.productName называть сразу microsoft.productName
Так таких большинство. Ну хотя бы не мм.дд.гг https://en.wikipedia.org/wiki/Date_format_by_country
item_tag это автосгенерированная при many to many таблица, её взять вообще не получается в sdql. В инете говорят джойнить просто имеющиеся сущности там, но запрос закомменченый всегда выдает единицу.
Ну логика думаю очевидна, нужно считать количество итемов связанных с тегом.
Вот если че https://pastebin.com/pZNKpvty
Так по идее год и должен быть в конце. Даты же записываются по возрастающей: день, месяц, год.
Год, месяц, день.
0000001 один миллион
У нас тоже.
Сложность в обратной совместимости. Её нет.
В 17 полностью отрубили доступ к приватным API. Много библиотек отвалилось.
А как же корутины?
Теперь это Python тред!
А чем Gradle плох и в чём приемущества Maven/А чем Maven плох, и в чём приемущества Gradle? Я просто вкокотун и системы сборки ещё не проходил.
Но кодить да, хочу под ведро
Коктели в макдональдсе делали из молочной пены , можно было детей кормить..
> А чем Gradle плох
Половина апи в каждой мажорной версии @Deprecated, и копипатса со стаковерфлоу скорее всего не будет работать, а читать документацию никто не умеет.
У идеи кипит мозг от динамической типизации груви.
Всем лень в нем разбираться.
> в чём приемущества Maven
Понятный для всех синтаксис без магии.
Быстрый фидбэк от идеи.
> А чем Maven плох
В конфигах много лишней информации не для людей.
Негибким жизненным циклом фаз и целей.
> в чём приемущества Gradle
Кастомные задачи, вместо написания плагина.
Компактная декларация конфигов.
Инкрементальная сборка.
Скачается при запуске сам даже если его нет в системе.
> Но кодить да, хочу под ведро
На ведре только гредл.
В этой статье и подобных описан правильный и актуальный метод реализации JWT-аутентификации? Или в рабочих проектах делают не так?
> У идеи кипит мозг от динамической типизации груви.
Градл-котлин. Брат жив, зависимость есть
> Gradle скачается при запуске сам даже если его нет в системе.
Это ты про gradle-wrapper? У мавена ведь то же самое есть
Это не связанные вещи.
>со всем ее обилием кодогенерации и reflection
Какая нахуй кодогенерация? Ты из андроида? Пошел нахуй.
Один раз видел 8, да и то потому что не смогли согласовать 11 по какой то причине. Все остальные проекты которым не больше 2-3 лет были на 11. На собесах (куда не пошел) тоже рассказывали, что у них 11. Новые стартовать на 8 тоже никто не станет. Какой в этом смысл?
Кроме постгрес больше нет субд
Если вы в РФ смело пиздите Оракл и наслаждайтесь лучшей РСУБД.
Оракл и постгрес - единственные реальные альтернативы друг другу. Если тебе не подходит одно, то ты либо юзаешь другое, либо не выёбываешься.
Сам посмотри.
А зачем тогда есть мс-сикуль и майсикуль?
Они по этой видосине в 3 раза популярнее постгры.
https://www.youtube.com/watch?v=thuG2PXVbBU
Сам работаю на постгрюше и никогда кроме нее и h2 ничего не трогал.
Кстати, тоже не понял этого прикола. У нас по закону полный рабочий день - это 40 часов в неделю, а тут типа по совместительству 45 часов.
Мне кажется это рофлянская вакансия. Там для ждунов, 40-60к обычно зпхи, там где вилка опубликована.
Нигде, формулировать задачки это работа тимлида, а делать кодревью мидла+.
Это только системе массового образования - преподавание это дешевый труд для тех, кто ничего не умеет. В реальности хороший ментор, который будет уделять тебе 5 часов в неделю будет стоить ползп джуна в месяц.
Чел, делай тестовые:
https://github.com/Raiffeisen-DGTL/cib-interns-test-task
Читай практические книжки:
http://libgen.rs/book/index.php?md5=B72614F796DA3A3740779709203220F7
Смотри практику:
https://www.youtube.com/playlist?list=PLU2ftbIeotGqSTOVNjT4L3Yfy8jatCdhm
Если что-то неясно идешь на стековерфлоу, баелдунг, потом в гугл.
Если что-то не можешь нагуглить - спрашиваешь в https://t.me/javastart или в этом треде.
Все. Я все что мог - я тебе дал.
спасибо большое!
я поссал в ротешник катюше тихоновой
MyClass myClass = new MyClass();
это дофига сложно, а писать xml-ебалу в Spring - это просто, круто, молодёжно? Почему мне кажется, что меня тут обманывают?
Потому что MyClass в нормальных приложениях потребуется еще в десяти местах, а создавать его нужно только один раз. Плюс некоторым не весь MyClass, а только реализация интерфейса Hui или Pizda нужна (и им пох MyClass это или что-то другое). Спринг управляет всем этим говном сам.
xml ебалы кстати deprecated уже давно. Сейчас модно все на аннотациях делать
>Почему написать
>MyClass myClass = new MyClass();
Потому что никто не пишет new MyClass() в реальных приложениях. В реальных приложениях у тебя будет пяток сервисов, каждый из которых тоже зависит от других сервисов, БД, очередей и прочего, а еще в зависимости от конфигурации надо создавать разные инстансы сервиса например реальны и мок. И тогда твой new MyClass() превращается в нечитаемое месиво.
Пишут, но если кому-то понадобились CMS, ему скорее всего джейва не нужна.
Потому что сейчас это остаток каргокульта, а 20 лет назад это был бест пракстис - пусть все создается из xml конфига, тогда в 0,00001% случаев можем динамчески заменить конфиг
спасибо бро
Поищи что-то вроде: Dockerize java application. Если приложуху на спринга, то вроде бы у них на сайте гайд есть
благодарю
>>а писать xml-ебалу в Spring - это просто
никто не пишет xml в спринге
>>просто, круто, молодёжно
конфиги пишут джава кодом
>>Почему мне кажется, что меня тут обманывают?
читаешь протушхие гайды 2014 года от Джанеша.
написать
>>new MyClass(); это дофига сложно
На деле выяснится что вместо пустого конструктора тебе надо передать аргументами еще 5 новых классов, а для них еще какие то.
Читал. То, для чего в действительности используется DI, а не в книжках, легко заменяется статиками.
Статиками с синглотонами. Ты ручками можешь их сам реализовать. Но если скоуп будет сессион или реквест?
>То, для чего в действительности используется DI, а не в книжках, легко заменяется статиками.
Ага, одной статической хешмапой. Oh wait...
В коде не надо, надо передавать через параметры.
Для чего в действительности используется DI?
Например вот прямо на днях. У меня есть мой микросевис, который пользуется одной библиотекой, которая за меня ходит на нужные рест эндпоинты. Библиотека конфигурирется через имя сервера и токен аутентификации.
И я каждый хттп реквест создаю новый объект с помощью компонента хуйня-нейм-инициалайзер со скоупом реквест(или можно было бы сделать скоуп сессион, чтобы объект создавался не каждый запрос а только после смерти сессии), в который через сервис передаются проперти. А потом уже сконфигурированный объект нагружается инфой о эндпоинтах и данных, куда библиотека будет слать что мне нужно.
А синглтон это у тебя например один датасурс на подключение к базе. А репозиториев у тебя полсотни. И им тупо всем нужен один и тот же датасурс.
Потом половину из объектов репозиториев используется в нескольких сервисах. И это тоже должен быть всегда один и тот же объект. И так же один и тот же сервис в нескольких контроллерах.
Синглтон написать можно и руками. Но хороший синглтон, ленивый, потокобезопасный - достаточно это сложно. А писать их придется под каждый объект.
Есть еще всякая хуита типа инжектить интерфейсы, а ДИ под капотом уже сам понимает реализацию.
Там дохуя всего зачем он нужен. Вот почитай цикл статей: http://tutorials.jenkov.com/dependency-injection/index.html
Зачем ты хрюкаешь непонятно.
>доходчивое разъяснение жабы
Просто пересказ https://docs.oracle.com/javase/specs/jls/se17/html/index.html
У эуёвого говношилдта есть и учебник, м справочник.
ну ты и еблан)
Он ещё по спецоперации базу выдал, так что хипстеры его заканцелили
Интересно, для каких архитектурных костылей нужны кастомные скоупы?
> Как часто приходится на проектах прибегать к многопоточке?
В обычной бизнес-приложухе её редко встретишь, да и то в виде фоновых задач с ExecutorService.submit() или аналогов.
> Как часто на собесах ее спрашивают?
Очень сильно ебут и спрашивают хуйню, которая никогда не пригодится. Эти семафоры и локи учатся тупо ради собесов.
Видел пару видео на ютубе, но там та же ерунда, что автор из ниоткуда начинает писать какие-то магические классы, создавать какие-то непонятные файлы. Как это всё связано, никто не объясняет. Ок, повторил как макака за ним, но попытка добавить что-то своё уже приводит к ошибкам. Да я и не понимаю как добавить новый функционал, потому что его не объясняют. Просто какая-то трясина говна.
В том, что не надо плодить лишние сущности.
Все верно, DI-хуета не нужна. Хуй знает откуда прилетающие зависимости это очевидный анти-паттерн. Вот примерно так должен выглядеть хороший код https://www.yegor256.com/2014/10/03/di-containers-are-evil.html#the-right-way
Без понятия. Я принял магию спринга. Что ты там в книжке и видосах не понял? Давай примеры непонятной магии в тред. Даже если тебе никто не ответит, пока будешь описывать - часть поймёшь.
А почему антипаттерн? Чем конкретно тебе не нравится di?
Его успехи говорят сами за себя. Он крутой программист, спикер, тим лид и филантроп. А ты кто-такой? Обычный нонейм нищук
Про ООП +- норм было. Про то, что мы используем только дата классы и пишем в процедурном стиле. Ни в коем случае не база, но можно зодумоться
Спасибо анончег! Я это пасту егорки уже 2 треда ищу, не могу найти!
Когда его на конфе спрашивали за эту маяковщину, он с лицом лягухи сказал что ему норм.
Мне кажется, вкатунам вместо всяких чистый код, надо советовать читать yegor256. Чтобы выработать иммунитет к булшитингу.
Скорее всего, он нормальный чел, который много чего знает. А статьи и конференции - просто поугарать с тех, кто все то говно, о котором он говорит, в прод потащит
Ну пока он выглядит, как ебобо. Пока не покажут его нормальный код, он должен считаться ебобо.
Вроде хуйня, но даже с сущностями на два поля без связей и пока без эксепшенов и валидации какая то дроч и гора кода в 70 файлах.
Это и есть типичная джуновская таска?
Ну да по одной, в импельментации репо и контроллеров по 2.
Так лень. Мне пока эстимейты точные не ставят. Надо отчитываться, как доделаю. Два дня на такое слишком дохуя? При том, что весь первый день я дрочился с миграцией, докером и новой для меня библиотекой для бд.
Некоторые используют spring-data-rest который типа за тебя всю эту шляпу сделает, ну это такое, имхо лучше написать самому эти 63 файла
Там пока не отстроен процесс с эстимейтами. Просто кинули таску, сказали отписаться, как доделаю. Я за утро круды по одной сущности сделал, проверил - а дальше начал создавать файлы для всех этих бесконечных слоев для остальных сущностей. 9 файлов на один круд! и чуть не уснул только на нейминге хуйня-нейм-сервис-импл.
А потом еще и заполнять это все копипастой. Так неохота.
Можно поподробнее про спринг дата рест? Чем хорош и чем плох? Я полгода назад начинал читать практический туториал по сервису с ним, но бросил. Все равно мало где применяется.
А так - придется писать. Это же типа просто каркас, потом в половину из этих 63 файлов будет дописываться всякая логика, а в дтошки и сущности поля.
Ну вот смотри
https://www.baeldung.com/spring-data-rest-intro
весь твой круд одной аннотацией бугаенко бы охуел от такого
А какие шорткаты мне могли бы помочь? Пока научился только создавать и переименовывать файлы и ходить из кода в структуру проекта и обратно без мышки. Ну и поиск с заменой для адаптации копипасты.
Implement/Extract Interface, например. А можешь вообще найти кодогенератор для крудов.
Теперь я понял, почему не могу выучить Спринг. Он не ООП, а помойка говна.
А зачем? Там в 99.9999% будет одна имплементация ведь, зачем интерфейсы плодить
>Implement/Extract Interface
Тоже пользуюсь, но тут легче тупо все скопипастить и потом адаптировать.
>кодогенератор для крудов
так моя должность должна называться
Ну в контроллерах сказали что будет несколько с разным префиксам у эндпоинтов, а остальное - тупо кодфлоу, тимлид сказал я делаю и не выебываюсь.
Мне лид сказал это для автотестов надо. Я ебал тесты сам писать, так что не стал спорить.
Это не проект - это каркас для крудов в подмодуле одного микросервиса. И это самая тупая работа, какая есть, но достаточно объемная получилась.
Есть метод сервиса
test() {
...
self.saveWithTransaction(user);
...
}
и метод
@Transactional
User saveWithTransaction(User user) {
return userRepository.save(user);
}
Может быть так, что компилятор опустил вызов, и транзакция не началась?
Почему она может не сработать?
если внутри одного класса один метод вызывает другой, то он будет вызван напрямую, а не через прокси (который создается когда ты вешаешь @Transactional), перенеси второй метод в другой класс и заработает. Известная "фича" спринга.
У меня тут есть
self.
Те инжекчу этот же класс через спринг, спринг оборачивает вызов метода, транзакция должна начаться.
И это работает с нормальными методами, а с подобным какая-то хуйня.
Сохранение выполняется в рамках обычного сохранения через репозиторий, а не через SessionHolder спринга, как с транзакцией.
ну поставь брейкпоинт на строку
return userRepository.save(user);
посморти проходит через прокси или нет
Имеется ввиду метод с одним действием, а не вызов из того же сервиса.
Чел война в разгаре, а ты хочешь знать что будет.
Вкатился во вкатуны, классека.
1064x642, 0:30
Теперь есть пикапы и разное оружие.
Все плюс минус одинаковое. От этого и грустно.
Ирония ли или что. Но пришел к мысли что это лучший вариант без лишней шелухи. Спасибо
Примерно одно и тоже, разница только во взаимодействии микросервисов между собой и с базой и в блокирующем/асинхронном подходах.
В этом и фича - все унифицировано.
Прям жопаскриптного говна с async/await нет и не будет. Есть асинк на уровне либ типа spring webflux.
Очень тяжело мне писать многопоточные утилиты на джаве, а на джаваскрипте с async/await вообще не парюсь. Похоже слишком низкий айкью у меня
Не, джейва и не подходит для этих задач, она для огромных проектов с тоннами логики.
Все эти асинк эвэйты на джаве запилить - раз плюнуть, и то не нужно, потому что все уже есть.
Жидбрейнс не продают в рф же. Может и оплатят, но найти способ как ее купить лежит на мне.
Есть, называется коллбэк.
Её враги делали. Не запилили русек, свалили зарубеж и ещё санкции наложили, что нельзя купить теперь. А могли для РФ бесплатно всё выложить.
Как её взломать? Все старые взломы основывались на удаление файлика в конфиге, чтобы снова запустить пробный период, а сейчас они это пофиксили и сделали с привязкой к учетной записи.
Ну так переведи идею двухгодовалой давности, поменяй шилдики и будет росГосЖабаИде.
У меня такой вопрос:
Если я создал 1 класс с методом main, то у меня есть 2 способа превратить это чудо в исполняемый файл:
• Через javac в консоли.
• Через run в IDE появится в папке target.
• В Идее в 'Файл > Структура проекта' можно вытащить даже jar файл.
А вот когда классов много, проект на Мавене с кучей dependency и аннотациями, которые умеют сделать методы запускными, нужно оформлять Manifest.inf файл.
У меня 2 вопроса:
• Как ВЫ оформляете manifest? Что вы пишете там, кроме указания, где main метод и кроме того, что это на Мавене сделано?
• Как вы добиваетесь появления лаунчера (exe, jar, deb и.т.д), чтобы ваша программа запускалась БЕЗ УЧАСТИЯ ИДЕ?
Спасибо.
• Как ВЫ оформляете manifest? Что вы пишете там, кроме указания, где main метод и кроме того, что это на Мавене сделано?
мавен делает
• Как вы добиваетесь появления лаунчера (exe, jar, deb и.т.д), чтобы ваша программа запускалась БЕЗ УЧАСТИЯ ИДЕ?
jar мавен плагины
>Че за форс вообще с ультимейт эдишеном? чем он лучше комьюнити? или это типо рофл над порриджами которые розовые клавиатуры для кода покупают
Idea community = java se
Idea ultimate = java ee
>https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/
То что нужно, спасибо!
>>на Мавене
Просто пишешь mvn clean install - и все собирается само, не надо хуйней страдать. (с папке target скорее всего твой джарник будет лежать)
Потом джава джар, вот это вот все.
Со спрингом проще mvn spring-boot:run - собирает и запускает приложение.
>>появления лаунчера
джаву запускают из консоли или скриптом.
>>БЕЗ УЧАСТИЯ ИДЕ?
Если со спрингом - в нем встроенный сервлет контейнер запустится, на котором и крутится твое приложение(он будет в джаре уже).
Можно и руками в какой-нибудь томкат закинуть .war, но не рекомендую такое гуглить в 2к22.
На практике все это просто крутится в докер контейнерах (но про такое тебе знать наверное рано).
Кстати эклипс сейчас владеет бывшей JavaEE xd
<dependency>
<groupId>com.googlecode.soundlibs</groupId>
<artifactId>mp3spi</artifactId>
<version>1.9.5.4</version>
</dependency>
<dependency>
<groupId>com.googlecode.soundlibs</groupId>
<artifactId>vorbisspi</artifactId>
<version>1.0.3.3</version>
</dependency>
Это библиотеки для звука, в чатсности парсят mp3 и ogg, используют javax.sound.sampled.AudioSystem
Когда запускаю из IDE все хорошо, а вот когда запускаю приложение через java -jar получаю такой эксепшн:
java.io.IOException: mark/reset not supported
at java.base/java.io.InputStream.reset(InputStream.java:733)
at java.desktop/com.sun.media.sound.SunFileReader.getAudioFileFormat(SunFileReader.java:59)
at java.desktop/com.sun.media.sound.WaveExtensibleFileReader.getAudioInputStream(WaveExtensibleFileReader.java:259)
В котором вот это java.desktop/com.sun.media.sound.WaveExtensibleFileReader.getAudioInputStream(WaveExtensibleFileReader.java:259) говорит о том, что используются дефолтные классы вместо гугловских.
В чем может быть проблема? Все остальные зависимости (их много) нормально пакуются.
Пришлось идти на грязный инсталл в .m2/ по скрипту. Не знаю почему не подхватывалось иначе.
Всем ку. Я в пхп бекенда хочу перекатится в джабу. Какие плюсы\минусы. Реально ли это вообще?
vscode = XD
Ты тот пхпшник, сбежавший с пхп Бэка в пхп куаавтоматизацию, а теперь пытаешься и вовсе сьебаться хоть куда с куа позиции?
Добавь в репозиторий плагинов https://plugins.zhile.io, в маркетплейсе установи eval reset.
???
Profit.
Потому что в хеллоуворлдах на таком уровне спринг не используется.
Я боюсь вкатываться, потому что тогда придётся работать
Похуй. Абсолютно.
Почему?
Вот у меня есть объект Player, а есть PlayerMap. В PlayerMap хранится список Player'ов, я могу получить player через map.findPlayer(name).
Вопрос номер 1 - как реализовать сохранение этого добра в базу данных? Есть идея условно каждые 10 секунд сериализовать всех игроков и отправлять в бд, а потом при загрузке плеер мапа всё с бд читать. Но это кажется дохуя неоптимизированным и при большом числе игроков пошлёт нахуй.
Вопрос номер 2 - как реализовать наследование? Например мне нужен наследник Warrior у Player. Тут даже идей нету как это сделать по красоте
финал статик по даунски звучит, вызывает когнитивный диссонанс и при чтении кода будут возникать вопросы к твоему психическому здоровью
Мы вам перезвоним.
сука бляяяядь пидарасы забанили нахуй на стаковерфлоу сука долбаёбы
1.
Player player = new CacheablePlayer(new DatabasePlayer(new Player()));
2:
Player player = new PlayerWarrior(new Player())
мимо егор-бугаенко
Нет, ты не Егор. Егор бы не упустил возможности прорекламировать свою книгу Элегантные объекты. Java edition, ибо только эта книга позволит тебе не писать говнокод и вкатиться сразу на техлида
> каждые 10 секунд сериализовать всех игроков
Лучше сохранять после какие то действий, типа взял/сдал задание, какое то обновление в инвентаре, перешел в другую локу. А каждые 10 сек разве что позицию игрока в мире сохранять, если это реально нужно.
> как реализовать наследование? Например мне нужен наследник Warrior у Player
Лучше избегать классическое наследование именно с подобной хуетой, а то быстро зайдешь в тупик (собака -> животное; собака -> робот; собакаРобот? ) и предпочитать композицию или агрегацию. А на наследование оставить какой нибудь базовый метод update, в котором уже вызовутся конкретные связанные объекты.
Я правильно понял, что в классе с main методом не нужно писать логику и там должно быть что-то вроде App.start() и логгер на случай ошибок?
Правильно
Мейн - статик, поэтому там надо создать объект какой то и вызвать у него уже не статик мейн
>Лучше избегать классическое наследование именно с подобной хуетой, а то быстро зайдешь в тупик (собака -> животное; собака -> робот; собакаРобот? ) и предпочитать композицию или агрегацию. А на наследование оставить какой нибудь базовый метод update, в котором уже вызовутся конкретные связанные объекты.
не понял
Даже это не лучший мейн.
Это ты долбаеб, наследование это хуета и анти-паттерн, это всем известно. [1]
1. https://www.yegor256.com/2016/09/13/inheritance-is-procedural.html
схуяли блядь это анти паттерн? че ты нахуй предлагаешь, методы миллиард раз переписывать в классы вместо наследования?
бля я даже начал читать его книгу, но вот тут меня снесло
Читается лучше чем спринг.
Как ты приложения на джаве без статик мейна собираешься сделать?
>>26541
Player это игрок вот этой хуйни https://github.com/PukPukov/AncapStates-2
Warrior это тоже игрок, но у аддона для хуйни выше, добавляющей войны в игру
> Warrior это тоже игрок, но у аддона для хуйни выше, добавляющей войны в игру
А ну тогда забудь что я говорил, не так тебя понял.
Максим, ну ё-моё! Включай дебаг и смотри что там происходит! Заодно проверь сам манифест, что в нем.
Если что-то переписываешь, значит фигово спроектировал.
Как же я заебался писать код без тестов и потом исправлять жидкие обсеры, которые постоянно происходят из-за человеческого фактора.
Код писать просто - раз раз и готово.
А тесты писать долго, какие то данные им подготовить надо или даже базу, потом они просто не поднимутся, потом будут тестировать что то не то.
Потом еще и переписывать каждый раз, когда фичу меняшь.
И это все равно не спасет от багов, ведь если ты не подумал про какой то кейс в коде, ты и тесты на него не напишешь
В одном из DTO-классов у меня есть поле Set<>. Т.е множество объектов.
Не пойму как описать Set<>.
С List'ом понятно, а про Set чет не могу нарыть ничего. как с ним быть?
Спринг ВСЁ! Кто следующий?
> Клиенты, использующие JDK версии 9 и новее, уязвимы
Фух, хорошо быть динозавром, а не бета-тестером новых жаб.
>>We believe that users running JDK version 9 and newer are vulnerable to an RCE attack.
не зря выходит все на 8 джаве сидели
Дак Моно тоже куплен микрософт
Я пробовал
curl -X GET http://localhost:8080/ServletMarch/ServletStart -d hello
curl http://localhost:8080/ServletMarch/ServletStart?abc=def
в браузере делал запросы, но reader и inputstream всегда были пустыми.
В javadoc про getReader() написано:
>Retrieves the body of the request as character data using a BufferedReader.
У GET-запросов не бывает body?
Потому что то, что ты отправляешь, это не тело запроса, а параметры.
req.getParameter("abc"); // def
Лучше реакт.
> У GET-запросов не бывает body?
Технически может но не рекомендуется https://developer.mozilla.org/ru/docs/Web/HTTP/Methods/GET
Vue.js
Что такое спринг? Это та кривая непроизводительная копия ASP.NET из нулевых построенная на устаревших паттернах проектирования?
>в рот ебал
Если ты ищешь курсы/туториалы на русском, то ты - низшее существо, все ебали тебя в рот, и любой контент ты должен воспринимать скромно и с благодарностью.
Как ты заебал
Интересно, есть ли индивидуумы, которые ищут туториалы про спрингу на украинском.
Вау, и правда, ништяк, спасибо!
Но спасибо
Сегодня дали писать респонс-дтошку из примеров джейсонок, возвращаемых сервисом на питоне.
Джейсонки 200 строк, четверть полей опциональные, имена пары полей - динамические. Несколько полей - деприкейтед, и их надо игнорить.
Пока непонятнее всего че делать с теми, кто в примерах всегда нулл возвращает. Пока Object-ами запишу.
Есть. 80к отвали им и практикуйся.
Ну и запросы у тебя. На русском, видосы, бесплатно, да еще чтобы и чтобы с практикой тебя за ручку водили и попку подтирали.
Практику у летскода глянь. Там для джуна все самое нужное.
> спринг
Зачем тебе такой узкий навык? В айти к лету например уже не останется работодателей не из гос сектора с зп 15к и путевкой в санаторий
Я более оптимистичен
Спасибо за отзыв.
Если тебе неинтересно, можешь проигнорировать. Мне, когда я вкатывался было интересно, какие бывают джуновские таски. Буду держать в курсе, пока не надоест.
Всем нужны узкие навыки. И спринг пострадает меньше всех. В госухе, российском крупном бизнесе, который останется очень много спринга.
В госухе дохуя спринга. Лично я работал на проектах для Минсельхоза и Минздрава.
Есть и спринг, и октрытый дотнет, и пхпшный yii и даже любимый двощем питон
мимо с галеры на госзаказах
Поясните за эту статистику, пж. Выглядит как то слишком ужасающе
На двоще никто не любит пизон. И пизонистов не любит никто. кроме конечно гейфурри сообществ и прочих мамкиных нитакусиков
Прошу отнестись к этому с пыниманием
Это какие резюме и какие вакансии? Все вообще? Если так, то это никак не отражает рынок труда кодомакак. Макаки это пару процентов от рынка труда. Может быть, как лучше, так и хуже.
По спрингу моя личная статистика по РФ даёт -25% вакансий с декабря по апрель. При том сокращения только-только начинаются.
А ну каклы как всегда обдристались. Статистика обрезанная, специально чтобы показалась ужасной
Айти до сих пор сильно выигрывает у рынка труда в целом. Рынок труда в целом соснул даже сильнее рынка ит. Вкатываться имеет смысл до сих пор. Потому что вне айти сокращений будет ещё больше и освободившихся мест от сбежавших крыс там нет.
1. Как правило это покодить или онлайн или реже тестовое с последующим обсуждением.
2. System design
3. Behavioral interviewing.
Какие данные ты хочешь вытащить из механизма авторизации, норкоман? Ищи апи, отдающее нужную тебе инфу, и забирай оттуда что тебе надо с полученным токеном.
Оаутх это просто авторизация в которой не используется реальный пароль. Вытащить данные, никнейм и тд это апи конкретного сервиса, доступное после авторизации и с оаутхом не связанное.
Блять, так вот откуда пошла эта хуйня в бугурт-треде с хейтом helper/utils/manager. Очевидно, аноны сами не могли до такой хуйни додуматься, они массово посмотрели видосик.
А в чем он не прав? Если твой класс заканчивается на -er, то это хуйня а не дизайн
Сейчас появился новый паттерн решающий эту проблему. Нужно создать пакет support и положить в него класс Support (не Utils). Не перепутай.
>Если твой класс заканчивается на -er
можете пересказать аргументы, почему это плохо?
Ну у меня кроме конроллеров еще конфигуреры и инициалайзеры есть. Почему это плохо?
В одном необанке, такие классы называются XxxButter
Есть микросервис которыйзанимается почтой. В нем кучса класов со словом Mail~ в названии. Всякие там репозитории, шедулеры, класс который формирует письма, отправляет. Может даже есть сущность Mail, а ты предлагаешь один из сервисов назвать так?
Пример плохого дизайна. Имена классам должны давать специалисты в этой области, а не инженеры задроты.
Mail mySuperScheduledAndTemplatedMail = new ScheduledMail(new TemplatedMail(new Mail())
mySuperScheduledAndTemplatedMail.send(new CronSchedule("1 0 0 0 0"))
Стиль школы Егора
ну тут даже не адепты егорки в целом соглашаются, что весь пакет java.io лютое говно
Вы так скоро и active record переизобретёте.
>Может даже есть сущность Mail
сущность эта дата-баг чтоли? Наличие таких классов, это просто следствие того, что ты используешь ORM, который сам по себе является анти-паттерном.
Специалисты в области нейминга?
В ИО как раз таки все ООПшно, с декораторами, как Егорка любит.
1262x736, 0:48
Почему 90% людей в телеграмах, кому я показываю свою игру, узнав о том, что она на Java приходят в недоумение, и некоторые даже говорят, мол, все хорошо, да вот язык не очень.
Во-первых, игроку то какая разница, что там под капотом? Во-вторых, а что такого конкретно плохого?
Аргументы, в основном, что джаватормозит, джавадляэнетрпрайза, джавадлясервера.
Кто-то может внятно объяснить почему писать игру на Java по умолчанию плохо? Какая разница какие инструменты были задействованы, если все написано хорошо, ничего не лагает, не тормозит и не вылетает, и чтобы запустить клиент достаточно кликнуть по exe-файлу?
Наверное недоумевают потому что все платформеры сейчас на unity
>>Почему 90% людей
Они на джаве пишут или просто что то слышали? Они хотя бы программисты?
>>джаватормозит
Спринг может тормозить из за тонны абстракций. Они нужны для быстрой разработки сложных систем, а сервер обойдется все равно дешевле времени программиста в энтерпрайзе.
Если писать на чистой джаве без лишних абстракций, то скорость близкая к плюсам.
>>джавадляэнетрпрайза, джавадлясервера
Тут скорее речь об инструментах и обилии библиотек. Для юнити их дохуя, для джавы мало.
>>писать игру на Java по умолчанию плохо?
>>Во-вторых, а что такого конкретно плохого?
На юнити натыкаешь в конструкторах - и все готово. Много готовых решений, многие проблемы разобраны на СО.
Пиля игру на джаве ты рискуешь остаться один на один с возникшими проблемами, многие либы возможно придется писать самому, а значит разработка затянется.
Если пилишь один, а временных рамок особых нет - то похуй на язык, пили дальше. У тебя вроде неплохо получается Может потом еще продашь свое творение майкрософту
Сколько времени на эту игру ушло? сколько часов в день пилишь?
до этого знал что-то по теме, или с нуля начал?
> Они на джаве пишут или просто что то слышали? Они хотя бы программисты?
Большинство - unity/godot-программисты. Игроделов на Java пока что не видел.
> Пиля игру на джаве ты рискуешь остаться один на один с возникшими проблемами, многие либы возможно придется писать самому, а значит разработка затянется.
А мне как раз доставляет сталкиваться с проблемами @ искать решения @ не находить @ выкручиваться самому @ изобретать гениальные решения @ антибугурт.
> Может потом еще продашь свое творение майкрософту
Спасибо за мотивацию. На самом деле крутые игры сделанные за неделю на Unity норм так дизморалят, стараюсь не смотреть много технодемках.
>>28501
Гэпаю с финтеха. Этот проект пилю с января, пилю по 6-8 часов в день без выходных.
По теме знал - много лет перекладывал джсоны из круда в круд. Захотел воплотить мечту детства - написать свой многопользовательский 2D-платформер.
А еще, хочу потом в игре завести блокчейн и устраивать турниры за токены, но это когда-нибудь потом
Позавидовал. Я тоже крудошлеп, хотелось бы писать что-то свое, но тяжело слезть с иглы, когда тебе платят ни за что..
>с января, пилю по 6-8 часов в день без выходных
Это не мало, так то, это около 500 часов.
Куда больше всего времени утилизировал?
Еще дрю, который летскод тоже вроде увлекся инди гей-девом на жабе. Это ты?
> много лет перекладывал джсоны из круда в круд
> почему писать игру на Java по умолчанию плохо
Сразу вырисовывается синдром утенка, выучил один язык и привязался к нему.
Завидовать нечему, поскольку я теперь не работаю, и денег едва хватает. Придется, все таки, на парт тайм на дядю снова работать (или на тетю).
>>28519
Сложно сказать. Наверное, в геймплей. Честно говоря, основа движка была (граф экранных объектов и транслятор моих объектов в OpenGL) давно заложена еще в 2015-м, но сейчас, конечно, почти все переписано. Летскод - не я.
>>28539
Все почти так. Владею еще ныне мертвым AS3.0, под которого и сделал архитектурный закос движка.
Чем плохо создавать переменные на каждый объект и потом их использовать в вызове конструктора других классов?
К примеру,
A1 a1 = new A1();
A2 a2 = new A2();
B b = new B(a1,a2);
А как ты сделаешь exe-файл, ведь джава программы это jar-файлы и ещё нужно JDK ставить, что пользователя уже оттолкнёт от установки такой игры.
Вроде есть какие-то костыли. jpackage, что-ли?
Launch4J, например. Технически, можно хоть всю JDK запаковать.
> Владею еще ныне мертвым AS3.0
Респект. 10 лет назад с него вкатывался в прогромизды, анимировал пару банеров с прыгающими по клику сиськами и принцессами которые Ждут тебя КЛИКАЙ НА БАНЕР. 1000 рублей получил за это.
Ага, там xml-портянка будет на несколько страниц, чтобы такой код заработал.
Мне вообще порой кажется, что Спринг - это какой-то троллинг.
В шапке написано, что надо старые версии учить, а не новые с аннотациями.
А почему взял не си сишарп? Там есть низкоуровневое апи для байтоебли, готовые движки и тонны гайдов и он на джаву похож
Вот в ASP.NET стартовое приложение создаётся одной кнопкой, без ошибок и сразу работает. Тут столько возни и результат нулевой. Книг по спрингу нормальных нет, только всякое старьё, где одна теория про бины, но ни одного рабочего примера. Толковых гайдов в интернете тоже нет, какие-то отдельные статьи вот с такими неработающими примера. Как вообще этот Спринг учить!? Инфы по нему 0.
Я ни куда и не уходил
Больше люблю и знаю Java чем С#, и вообще у меня линупс.
@SpringBootApplication повесь вместо того что у тебя, мб поможет, но то не точно
>java программы давно можно писать без единой аннотации
Ты охуел, писать на Java без @Deprected?
Вот для примера вводишь 2 команды:
dotnet new mvc
dotnet run
И у тебя готовое рабочее веб-приложения.
А со Спрингом что? Миллион настроек, конфигураций, какой-то непонятной хрени, а в итоге результат нулевой, потому что ничего даже не компилируется.
Тебя не смущает, что ASP.NET это одна категория с нодой и пхп? Спринг энтерпрайзный фреймворк.
Для облегченной конфигурации придумали спринг бут. почему ты его не используешь?
Лучше ничего не делать, кроме крудов. Для всего остального есть c++ и его возможностей хватит ещё на столетие
А кому нужно что-то кроме крудов и формочек?
Ну это я видел, чел молодец. Но я имел в виду, на работе чем занимаетесь? Прям все тут круды пишут? Вы ебанутые?
У жавы есть одна проблема - stop the world. Иногда это может быть критично. Думаю, это единственная почти нерешаемая проблема жабы и игорь
Данные из кафки в ёлку гоняем.
Все что угодно, если ты не вкатун ебаный.
>c++ и его возможностей хватит ещё на столетие
Ну да, возможностей выстрелить себе в ногу и поесть говна
Оказалось в VS Code всё работает. Видимо опять хваленная идея отличилась. Наверняка это связано с тем, что у меня бесплатная версия и она тупо блочит Спринг.
Здесь же просто установил плагин для Spring Boot и прошёл по мастеру установки. Дописал контроллер и всё запустилось просто по кнопочке пуск.
О, любитель анонимных классов.
Блокнот.
Собесился кто-нить сюда на позицию Java-стажера? Чё спрашивают?
Да и вообще, знающие аноны, что спрашивают на позицию стажера, поделитесь опытом?
Нет, иди нахуй в свой джаваскрипт-тред.
Спрашивают пизданутые алгоритмы про лягушонка линка уровня всероссийской олимпиады по спортивному программированию.
Потом садят писать дтохи для тестов и расставлять импорты по алфавиту, чтобы чекстайл пропустил пулл реквест
Когда у тебя в каждом конструкторе будет по 5 классов, а у тех еще по 5 классов - тебя заебет писать 20 строк кода. чтоб создать класс Z и ты поймешь для чего нужен DI.
>>28603
>>xml-портянка
Используй спринг бут, там нет xml
>>28700
>>без единой аннотации
Контролеры мапить в хмл что ли и руками собирать?
>>28620
>>java-портянка будет на несколько страниц
Спринг бут используй, там автоконфиг.
Если надо - просто поменяешь нужный метод в конфиге на свою реализацию, если стандартная не устраивает.
1914x936, 1:53
>>Миллион настроек, конфигураций, какой-то непонятной хрени, а в итоге результат нулевой, потому что ничего даже не компилируется.
Качай бесплатно платную тогда.
https://www.jetbrains.com/ru-ru/idea/nextversion/
В бесплатной все то же самое, только проект придется создавать на сайте https://start.spring.io/ и потом уже его открывать. Хотя все что делает по сути - добавляет pom фаил с нужными зависимостями.
Запускается он точно также.
Ну тогда питонисты нас обоссут, print('лошки')
Двачую, хороший дизайн - это когда вообще всё в одном классе.
Это и не задача джейвы, для клепания большого количества хеллоуворлдов надо брать ПХП с какими-нибудь CMS, чтобы потом соснуть на поддержке этого говна так, что проще слить и насрать ещё. Там и монга вместо СУБД хорошо вписывается.
1280x720, 2:07
А вот сейчас было обидно.
Ну ты и долбоёб блять.
Ну да, зато петухон ни разу не бойлерплейтный на бесконечные операторы, управляющие символы и прочий сахар для болящих смузихлебателей. Жаба - самый простейший язык, в котором все делается через классы и методы. Аннотации не нужны.
Это залётыш из петухона.
Сам ты по ней изучил?
>>видеокурсы
Алишева посмотри на ютюбе, если надо просто азы понять.
А вообще есть курс с баелдунга. Он местами устарел, но в целом инфа актуальна, рассказывают там подробно. Из минусов - примеры на эклипсе со светлой темой. Найдешь на торрентах.
>>интернет-ресурс
кстати примеры с того курса баелдунга у них на сайте выложены как отдельные статьи, на которые регулярно с гугла попадаешь
spring framework reference documentation
изучай top-down - начни сразу делать какой нибудь апп по туториалу, а потом разберешься как отдельные компоненты спринга работают вместе.
Вопрос слегка неоднозначно читается. Ты технически не можешь в одном потоке выполнения получить больше одного исключения, соответственно если воспринять твой вопрос буквально - нет. Если ты про саму возможность написать перехват нескольких типов исключений, то да, можно - запихав их каждый в свой блок catch, соблюдая порядок "от потомков к предкам" (иначе ты получишь exception already caught - поток исполнения никогда не пройдет сквозь предка к потомку). Еще есть опция мульти-перехвата эксепшенов в одном блоке catch, с перечислением типов через знак |. In this case нужно чтобы перечисленные типы эксепшенов не относились друг другу как предок-потомок
>>Ты технически не можешь в одном потоке выполнения получить больше одного исключения
Можешь через finally еще повыбрасывать, но в стек вылезет только последнее, остальные потеряются.
Spring Initializr (веб версия) создает проект, ты его распаковываешь и открываешь идеей, либо юзаешь Spring Initializr внутри идеи. Вопрос тупой.
Попробуй для начала посмотреть пару видеогайдов, где челы простые crud-проекты пишут.
Долбоёб, в жабе 8 эта хуйня не требовалась, а сейчас жабу ухудшили, запилив ебаные модули, которые не просто бесполезны, но и мешают, и отключить даже нельзя.
Двачую, первые 3 месяца так и делал, следующие 3 месяца писал тесты.
>>я хочу нажимать одну кнопку и чтобы мне сразу всё было.
когда там уже спринг для гуя напишут?
Есть интеграция javaFX и спринга, но сам не тестил.
Это не старый тред, а текущий. Перекат сделан преждевременно каким-то залётным шизиком, и теперь туда набежали шарпобляди и будут бушевать, пока тред не утонет на 500 постов.
Я сижу в обоих, потому что обладаю многозадачным мышлением.
> требует модуль-инфо файл
Разве? Его вроде можно просто удалить и тогда отъебуться с этими require и add-opens.
Они свой тред по шарпу не могут перекатить. Я как ушёл оттуда, уже успел Эккеля прочитать, а у них всё тот же тред.
Точняк, чтобы шарпо/го/эликсиро-бляди не кукарекали настоящий мультитрединг только в жабке.
Перекат >>2333480 (OP)
Перекат >>2333480 (OP)
Перекат >>2333480 (OP)
Перекат >>2333480 (OP)
У вас тред на две нити разделился
База
Можно выкинуть нет к хуям AutoValue и юзать рекорды.
Ну наконец-то нашёлся тот самый анон, который бесплатно и мгновенно перепишет всё джейва-легаси на язык_нейм.
Сейчас читаю чистый код, как то не очень.
Что почитать, чтобы полезно было и желательно в книжках? Паттерны? Что—то по микросервисам? Книжку с кабанчиком? Что—то по бд или по спрингу? Про тесты?
Спасибо, я просто не заметил что у меня вообще маркетплейс не коннектится, лол. Надо пофиксить как-то.
Судя по описанному тобой ты и так все умеешь, так что читай что интересно. Но если то что ты написал правильнее звучало бы так: "ну оно у нас есть на проекте, я эээмм... ну там крч написал пару строчек по образцу, вооооттт..." то я бы читал что-то по алгоритмам и тонким механизмам самого языка (типа дженериков, лямбд+стримАПИ на норм уровне понимания, рефлекшен)
Я б посоветовал проект какой-нибудь сделать, подглядывая в гайды и гугл. Но если любишь книжки читать, а не код писать - читай.
А в какие гайды? Официальные с сайта спринг?
Я бы не сказал что там тупо чтение - я копипащу код прям из книги (у меня pdf) и понднимаю тот же самый проект, на базе которого там описывается все.
В этом плане там не особо есть отличия от любых курсов (в отличие например от справочника вроде Шилдта, где все микропримеры кода сами по себе)
Олсо, почему тред такой мертвый? Раньше тут вроде было побольше экшена.
>>понднимаю тот же самый проект
Ну так ты не копируй проект, а свой напиши. Двач там или хабр какой-нибудь сделай.
По ходу у тебя возникнут вопросы - как работают jwt токены и аутх2.0, как загружать картинки, как избежать рекурсии при отдаче жсонов, как разделить роли и доступы пользователей.
Вот тогда уже и читаешь доки/гайды/стек оверфлоу.
А читать все это заранее не столкнувшись с проблемой не так эффективно - забывается сразу.
Потом уже почитаешь доку/книжки чтоб пробелы в знаниях заполнить, заодно будешь читать с пониманием, что это и зачем сделано.
>>пересмотрел/переделал Алишева
Сделал бы заодно летскода.
https://www.youtube.com/watch?v=jH17YkBTpI4&list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO
>>почему тред такой мертвый?
это лтс тред, многие хипстеры убежали в новый >>2329462 (OP)
Читаю сейчас 5 редакцию, там очень встратые листинги. Автор просто клал хуй на код - половина не работает, другую половину додумываешь сам.
В два треда, третий я зарепортил. Пытался репортить и второй, но никакой реакции, а теперь уже поздно.
Ну так я если реально по нулям, то мне надо сначала какой-то базы набрать, какой мне двач или хабр. Я копирую просто чтоб потом что-то местно менять и видеть как сказывается, пока что норм вроде двигаюсь, заодно английский подтягиваю семимильными шагами (очень годный побочный эффект)
>>37508
Такое есть, но думаю это полезно даже. Автор кладет хуй на последовательность больше - может пояснить листингом какой-то класс, который уже страниц 10 назад как инстанциируется в каком-то другом листинге, и как дурак сидишь репу чешешь, почему класс уже юзается, а в тексте о нем ни слова. Еще и всякие левые технологии от постоянно юзает, например ломбок впихнул для экономии места на листинги... Но в целом это тоже норм. Я раньше не юзал никогда ломбок, было как-то похуй, а теперь чтоб не ебаться постоянно поставил его и пока что вполне рад.
Да, кстати, летс-код я тоже делал. Но он несется просто галопом там. Хуярит как не в себя, с него как по мне не очень хорошо стартовать. Делает то же самое что в SIA, но ни на чем не тормозя и пролетая все со словами "потом поймёте"
>который уже страниц 10 назад как инстанциируется в каком-то другом листинге
Я не про это, а про то, что одни методы вообще не указываются, сигнатура других методов указана не верно, а в некотрых местах идёт вразрез с описанием ниже в книге. Я переписываю абсолютно всё и таких косяков там не мало, приходится либо тратить время на додумывание, либо лезть в репозиторий автора.
Везде https://docs.spring.io/spring-security-oauth2-boot/docs/current/reference/html5/ примеры с OAuth2RestTemplate, но он задеприкейчен https://github.com/spring-projects/spring-security-oauth
Спринг становиться как грейдл - каждые пол года новая парадигма, старое деприкейтим, новую бета версию пилим и ебись как хочешь.
Это копия, сохраненная 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.