Это копия, сохраненная 2 марта 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>2552564 (OP)
>Я видел вакансии на джаве на фуллстек
Это говновакансии с говнопроектами, не стоит туда идти.
Хорошо, пойду писать свой пет-проект - онлайн-магазин по продаже каравашек.
Как язык джава лучше шарпа, но вот инфраструктура в джаве на порядок хуже дотнета.
И синтаксис, и инфраструктура на порядок хуже дотнета.
Какая инфраструктура? Отвлекись от троллинга и распиши, что такого охуенного в инфраструктуре шарпа.
Удобный инструмент сборки dotnet. Пишешь dotnet run и всё собирается и запускается. В мавене это всегда какие-то магические километровые портянки.
ASP.NET Core не скрывает всё под аннотациями, а ты явно прописываешь в коде все миддлвари. Во всех учебных материалах разбирают эти кишочки и ты сразу понимаешь как работает фреймворк.
Шаблонизатор Razor позволяет писать прямо код шарпа рядом с html. Есть поддержка layout-ов и tag-хэлперов.
Blazor позволяет писать фронт на сишарпе. Это как апплеты для джавы, но на новом техническом уровне (WebAssembly).
EF Core не надо писать SQL-код в аннотациях на каждом методе.
Напомнило то какой джава была в нулевых.
> В мавене это всегда какие-то магические километровые портянки.
Так пользуйся градлом.
> Во всех учебных материалах разбирают эти кишочки и ты сразу понимаешь как работает фреймворк.
То, что ты не умеешь гуглить, ещё ни о чём не говорит.
> Шаблонизатор Razor позволяет писать прямо код шарпа рядом с html. Есть поддержка layout-ов и tag-хэлперов.
В жабе были когда-то JSP и JSTL, может ещё есть пенсионеры, которые до сих пор это говно мамонта используют.
> Blazor позволяет писать фронт на сишарпе.
Опять же дедовские GWT, Vaadin и Wicket, хотя не WASM. Практика показала, что фронт на реакте писать тупо удобнее.
> EF Core не надо писать SQL-код в аннотациях на каждом методе.
И в джаве не надо, десятки ORM на любой вкус.
Шаблонизаторы в джаве требуют писать целиком html-страничку и не умеют в разбиение.
Хибер требует писать SQL-код над каждым методом. В чём его преимущество перед JDBC, я так и не понял. Создаёт только лишнюю работу и повышает сложность.
Это ты такой тупой вкатун, что половина аргументов относятся к фронту на бекенд языке, или шарписты реально пользуются шаблонизаторами? Хотя судя по упоминанию говна без задач в виде васм - дело именно в тебе.
>я ничего не понял, даже зачем это нужно, но у вас тут все плохо и неудобно
>требуют писать целиком html-страничку и не умеют в разбиение.
[citation needed]
что за бред, еще в далеком 2015 приходилось допиливать что-то на, дай бог памяти, таймлифе, все там нормально шаблонизировалось
> Шаблонизаторы в джаве требуют писать целиком html-страничку и не умеют в разбиение.
Наглая ложь. В фримаркере есть и макросы, и инклуды.
> Хибер требует писать SQL-код над каждым методом.
Я только в Spring Data видел, чтобы надо было писать SQL прямо в аннотациях. В нормальном хибернейте есть EntityManager и прочее. Хотя ORM вообще спорное явление.
И как запихать в _layout.html, где только основной макет страницы, отдельные элементы типа меню, содержательной части, футеров всяких? Любой документ таймлифа - это цельная html-страница.
List<Conditer> findAllByDessertName(String name);
А таймлиф бесплатная идея поддерживает? И вкатунов во что? На проде шаблонизаторы юзают в основном для вёрстки емейлов, в вебе их не применяют никогда.
Начались виляния жопой, ваши шаблонизаторы не шаблонизаторы потому что какая-то иде не подсвечивает синтаксис искаропки.
Братан, для чего этот цирк, бери шарп и делай как тебе нравится, если там все так замечательно.
Иронично, что в команде я похоже единственный, у кого ультимейт и именно я верстаю шаблоны емейлов.
Мне кажется "ЖАБА ГОРАЗДО ХУЖЕ, ЧЕМ ШАРП" надо просто уже в шапку вписать, чтобы анон не заморачивался каждый раз
Я перестану это писать сразу после того, как сделают перекаты после 1000, как раньше.
*по мнению самой гадюки
Я к тому, что если в тред врывается чел с личным фаворитом (которого он знает и любит), вся его критика в сторону конкурентов этого фаворита скорее всего будет лютым пиздежом по причине незнания. Вон в треде уже было пиздабольство и про километровые портянки мавена, и про то что шаблонизаторы джавы требуют целиком страничку писать, и про хибер, который SQL код над методами заставляет писать (какими методами нахуй, позорный кусок дебила блять какой то).
Душно блять.
Шарполахта, спок
Это хайп с толикой рофла.
Ни разу не видел на работе линукс. У нас все пека разрабов на винде, тестовые и промышленные сервера на Windows Server. Клиентская приложуха работают у пользователей на винде. Оракл тоже живёт на винде.
Linux - это стиль жизни, призвание, и/или диагноз. Кому как больше нравится.
тогда нах его в каждое резюме пихают на обязательное требование командной строки линукс?
Не знаю, что там в каждом резюме, у нас надо знать только командную строку Windows, уметь писать батники и т.д.
Ещё MongoDb пихают часто в резюме.
Что тебя удивляет? Линупс очень часто используют для серверов всех мастей. Докер образы - на линупсе, сам докер хостят на линупсе. Хостинг сервисов на винде - скорее экзотика, линукс - мейнстрим.
Да и если брать другие системы: винда без WSL всегда была днищем ебаным, а в макоси - тот же баш считай.
Там тест другой, большой. Твоя программа слишком медленная, переписывай
то что Hr-куры могут даже на позиции aQA писать это требование, когда в работе ты с этим столкнёшься примерно никогда, если работаешь в финтехе
Всмысле - когда столкнусь? Ежедневно сталкиваюсь, в течение хуй знат скольки лет подряд.
>>требование командной строки линукс?
Ну я гит баш использую в терминале идеи, а сам линух нахуй не нужон. В проде как обычно какая то обрезанная хуйня уровня alpine.
Особенность таймлифа, что он является расширением для html, поэтому идея корректно всё подсвечивает. У остальных шаблонизаторов иной синтаксис, поэтому подсветки нет.
>>63125
Для шарпа есть бесплатная и полнофункциональная Visual Studio 2022. Можно даже для коммерческой разработки использовать при малых бюджетах.
Мало того шарп можно использовать даже в VS Code, потому что инструменты сборки позволяют всё легко компилировать и запускать.
Я пробовал то же самое делать на джаве и столкнулся, что это максимально неудобно, а war-файлы вообще запустить не смог.
Ещё забыл написать, что в дотнете можно создавать проекты из коробки, а в джаве надо с левого сайта качать архив с проектом.
Раньше конечно был плагин для идеи, но жадные жидбрейнсы его перевели только для платной идеи, что бессмысленно, потому что в платной и так есть такой функционал.
Вот часто хейтят микрософт, а на деле жидбрейнс и оракл гораздо жаднее.
> Ещё забыл написать, что в дотнете можно создавать проекты из коробки, а в джаве надо с левого сайта качать архив с проектом.
Архетипы мавена.
Там кстати какое-то лютое древнее говно на первом экране. Полагаю, что никто ими сейчас не пользуется.
А потом мне доказывают, что книги не нужны. Ну и что, там не описывают шаблонизаторы, тебе это не нужно. Если не нужно, то как выводить-то!?
Есть, конечно. Проблема исключительно с таймлифом. А точнее с тем, что нет нормальной инфы. В книгах эту тему опускают, а в мурзилках одни хеллоуворлды, где сложные темы не рассматриваются.
Он целиком заменяет поле, а мне надо переменную из модели + свой текст.
К примеру, не просто "500", а "500 руб."
Не просто "1", а "/buy?id=1"
Очевидно линукс и джава неразрывны. Сервер = пердоликс, десктоп = шинда.
Виндовс сервер хуйня из под коня для фанатов мелкомягких.
>>в джаве надо с левого сайта качать архив с проектом.
Че за сайт? Первый раз слышу, всегда просто через New Project создавал.
>>его перевели только для платной идеи, что бессмысленно, потому что в платной и так есть такой функционал.
Так а зачем пользоваться триальной идеей вместо ультимейта? Он стоит копейки.
>>Вот часто хейтят микрософт, а на деле жидбрейнс и оракл гораздо жаднее.
Жидбрейн не пытается мне в купленной версии выпячивать при каждом входе свой магазин, не делает принудительные ломающие обновления и тп. Да и нет разделения на платная для бичей, платная побогаче, платная полноценная. В единоразово купленном ультимейте есть тупо все - все инструменты для всех языков.
Ну и стоит он намного дешевле винды.
Про оракл хз - не знаю зачем они существуют со своим платным постгресом
>Он стоит копейки.
Даже копейку жалко отдавать ебаным жидам из жидбрейнса, да и для многих это не копейка.
Очевидно правильным решением будет воровать триалками или торрентами для тех, кому лень каждый месяц тратить 5 минут на реактивацию, и кому не нужна самая последняя версия.
Пчел ну у меня в команде многие пишут на триалке (комон едишн или как ее там) и им норм. Спринг-хуинг вот это вот все.
Вижла имеет одинаковый функционал для бичей и для богачей. Богачи платят лишь за то, что извлекают большой доход через вижлу. Если даже откроешь ИП, то можешь продолжать ей пользоваться пока не разбогатеешь.
А вот идея для бичей - это обрезка, недоIDE. Там даже спецом вырезаны подсказки из xml для Спринга, хотя xml как бы входит в бесплатную версию.
А платная стоит дофига для вкатуна.
Бесплатная вижла хоть научилась без интернета работать?
Комьюнити эдишн это не триалка, это бесплатная версия. Триалка это использование ультимативной версии в течении триального 30-дневного периода, который можно обновлять бесконечно на новые почты даже без какой-то манипуляции с файлами.
Да, такой вариант работает
Я сегодня столкнулся с майкрософтовской щедростью, когда оказалось, что проект 2020 года собирается на net core 3.0.3, который уже не поддерживается. VS 2022 предлагает пофиксить это, но скачать она может только рантайм версии 3.1.
При этом 3.1 рантайм все равно не подходит и выдает ту же ошибку 500.31, а актуальный рантайм 7.0.1 - тем более.
Чтобы запустить 2-летний проект надо устроить жопоеблю, а что там с более старыми проектами, даже думать не хочется.
Ну дак проблема не с вижлой, а с дотнетом. На джаве как бы тоже надо ставить определенную версию джавы, чтобы заработал твой проект. Тот же Спринг и его библиотеки вообще не запустятся, если джава не та. Хуже того, на сайте мавена даже не пишут версии джавы и надо самому догадаться под какую они.
Сейчас в Idea открыл проект 2018 года (или раньше), IDE сама подставила в pom файл новую версию sdk, скачала все зависимости и запустила
Ох, я недавно на убунте пытался запустить шарпный код - вот это я охуел. То моно не то, то хуено. В итоге проебал кучу времени на эту вашу охуительную инфраструктуру. Как же хорошо, что я джавист и на джаве все заводится с пол пинка.
>Почему для модели не используют конструктор?
Не очень понял твой вопрос, но в основном потому-что нужен для сериализации конструктор без параметров, который как раз генерится жабой, когда ты явно не объявляешь конструктор
Ну, а как инициализировать объект модели? Через сеттеры?
Model model = new Model();
model.setName("Vasya");
model.setAge(44);
model.setJob("Java Software Engineer");
Да хоть new Model("Alena", 25, "Senior C++ Developer").
Важно только то, чтобы у класса Model был конструктор без аргументов, чтобы при парсинге запроса магия могла создать объект через рефлексию и дальше вызывать сеттеры.
У таймлифа доки хорошие, там прям дохуище
Но лучше конечно слать шаблонизаторы нахуй
Сейчас фронтенд фреймворки с сср изи становятся шаблонизаторами по необходимости
Если бы я хотел учить фронт, то пошёл бы в сишарп фуллстеки
Может потому что ты даун-долбаёб без работы на своём говне?
На 1000 страниц, как обычно?
В изучении поисковой строки гугла нужна не только голая теория, но и практика. Можно набить руку на задачах из курсов по гуглению, но надо бы и своих пет-запросов поделать.
Да, поставить эту хуйню на комп, дальше писать в текстовом редакторе код. И запускать.
Понял брат спасибо
Гугл говорит про некие фрагменты. По сравнению с фримаркером выглядит как говно.
Нет такого метода. Просит время. А это busy wait. Мне надо чтобы процессор не нагружался лишней хуйнёй - вызвал метод Thread.sleep(threadId) и потом Thread.пробудиться(threadId).
А вообще такая хуйня (не по таймеру) делается через примитивы синхронизации.
Наверняка есть готовая библиотека, где вызываешь один метод, подсовываешь ей адрес сервера и клиентский сертификах, и она дальше всё сама.
wait notify синхронизация
Но скорее всего тебе стоит поискать что-то более высокоуровневое, какой-нибудь CyclicBarrier или еще чего аналогичное
> Как подгрузить две коллекции связанных сущностей одним запросом?
Через JOIN.
> Графы так не умеют и кидают мультифечбаг эксепшн или около того
Петушня какая-то хибернейтовская.
Тут уже зависит от того что ты хочешь сделать, посоветовать что-то одно нельзя.
Если ты хочешь чтобы поток уснул до тычка извне - то классика это вэйт-нотифай или, лучше, один из барьеров
Если ты хочешь что-то передавать кроме тычка, или тебе не обязательно чтобы оно работало на пике производительности, можно использовать структуру данных
Я другой анон, просто накидываю варианты. Мне кажется, инструменты в Java есть
Задача неполно описана, конечно
лол
Мне условие обьясните пожалуйста :с
Не понимаю
>Просит время. А это busy wait
Если я правильно помню - сам по себе тред слип это нихера не busy wait. Busy wait это когда ты этот тредслип в цикле гоняешь (тратясь на накладные расходы связанные с пробуждением треда каждый раз по истечению слипа). А слип просто уводит тред в timed_waiting, ни больше ни меньше. Прочие joinы, waitы и parkи делают примерно то же самое - уводят тред в waiting.
>Мне надо чтобы процессор не нагружался лишней хуйнёй - вызвал метод Thread.sleep(threadId) и потом Thread.пробудиться(threadId).
Чекни https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/util/concurrent/locks/LockSupport.html#park()
Потому что пошел нахуй, вот почему. Ответ устраивает?
Джава дизайнилась не для того, чтобы ебаться с лоулевел примитивами. Ниша ебли с лоулевел примитивами успешно занята плюсами - нравится: велком с сишникам. А в джаве подобные вопросы решаются более высокоуровневыми абстракциями. К примеру, тот же вышеупомянутый park напрямую никем никогда не используется и к использованию нерекомендуем, равно как и Object.wait/notify - вместо этого люди давно юзают тред пулы, которые сами паркуют треды когда таски кончаются.
Кстати еще вопрос как они реализованны - может статься что все вышеперечисленные парки и вейты - native'ы, которые слиппят тред под капотом, но чекнуть щас нет возможности.
Но ведь высокоуровневые абстракции нагружают CPU и действуют не сразу. Это костыль.
Ну ты сказанул конечно. Я б мог тебе ответить, что есть zero-cost абстракции, есть build-time оптимизации, инлайнинг, JIT, но ты щас так хуево обобщил все под одну гребенку, что я не вижу смысла даже обсуждать это с тобой.
Минут 10 после того, как понял задание сидел решал.
Медиумы так и не смог сам решить ни разу. Начинал решать 3 штуки. Последний раз примерно понял алгоритм, но запутался во временных переменных, сидел час страдал. Потом залез в решения и там буквально в одном месте было перепутано местами использование временных переменных. Чуть монитор не разбил.
Пишу круды на спринге уже год.
Стоит вообще на литкоды тратить время? Если не думать о яндексе, это поможет как то мозги в порядок привести? Таски поувереннее решать?
Или для саморазвития лучше дальше читать книжки и статьи по базам, фреймворкам, паттернам и микросервисам?
Да тебе вообще на все похуй, кроме того, что говно которое ты дал, но не расписал тз по человечески, должно было быть готово вчера.
> Стоит вообще на литкоды тратить время?
Так ты же время анонов тратишь, а не своё. Значит, и эффективность литкодов для тебя нулевая, а для тех, кто тебе разжёвывает условия задач, она положительная.
Я не тот анон, который вбросил скрин условия. Я его прочёл и решил порешать от делать нечего.
Вот думаю может вкатиться на пару месяцев или нахуй надо.
Аутсорс уехал, а клоуны остались.
Не спрашивают. На собесах вообще редко дрочат по фреймворкам, обычно дают задачи с алгоритмами.
Берешь талмуд по jpa и читаешь про кешы. Да и инфа по кешам в сотнях статей обсосана, десятки из них на русском.
У меня достоверная инфа, что спрашивают. Конкретно спросили: сколько кэшей в хибере и чем они отличаются?
>>65392
Что за талмуд? Не видел такого.
Недавно вышла книжка Спринг по-быстрому и там автор пробежался по всем темам от конфигурирования бинов до работы с базами. Но всё это очень поверхностно. Ни про какие кэши он естественно не написал.
Про всё есть талмуд. Джава - 2000 страниц, хибернейт - 1000 страниц, спринг - 1000 страниц, мавен - 1000 страниц, гит - 1000 страниц, поисковая строка гугла - 1000 страниц, микросервисы - 2000 страниц.
Java Persistence API и Hibernate
Она уже устарела, потому что по 5 дотнету, а сейчас уже 7. Ты даже Startup.cs не найдёшь.
По постгре надо несколько талмудов. Сперва вводный по апишкам, потом еще по кишкам.
Ну и талмуды по
- кафке
- эластику
- докеру
- куберу
- гоф, грасп, тырпрайз, микросервисным паттернам
- чистым кодам, теории тестирования, теории ооп, рефакторингу, тдд, ддд, едд.
- линуксу
- ресту и хттп
- регуляркам
Это только кажется, что на всё есть талмуд, а когда реально начинаешь искать то оказывается, что ничего нет.
Я когда начинал учить джаву, то заранее накачал книжек по всем темам и мне казалось, что у меня есть четкий роадмап по ним. В итоге прочитал и оказалось, что книжки эти пустые. По ним невозможно даже написать готовое веб-приложение, потому что они обходят все сложные темы.
Вот помню, что в 2005 взял книжку по РНР и за неделю научился писать полноценные сайты. Сейчас потратил уже год на джаву ничего даже близкого к тем сайтам на РНР написать не смог, потому что просто не знаю функционал этих тупых фреймворков. Мало того они ещё и неудобные. Одни шаблонизаторы чего стоят. Я вообще не понимаю, как за 20 лет не смогли сделать нормальный шаблонизатор. Хоть свой пиши!
>по книжкам на жавакоре невозможно даже написать готовое веб-приложение
>2005 взял книжку по РНР и за неделю научился писать полноценные сайты
ну слишком уже толсто, переделывай скетч
>кэш хибернейта
>кишочки
серанул
@
ЧИТАЕШЬ ИХ НЕСКОЛЬКО ЛЕТ
@
ТЕПЕРЬ МОЖНО ВКАТЫВАТЬСЯ В СТАЖИРОВКУ ЗА 50К ГРОСС
Душнила, что ты в джаве забыл? Тебе в кресты.
Но сука, почему они не пишут о том, что на сишарп тупо нет библиотек? Надо было мне решить задачу, нашел две либы на сишарпе, одна из которых не работает, обе поддерживаются одиночками и имеют 0-1 звезд и форков на гитхабе. Посмотрел что есть на питоне - тупо есть ВСЕ, и по несколько сотен звезд и форков для каждой нужной мне либы. Естественно послал сишарп нахуй.
В треде шарпоблядей спрашивай. Скажи перед этим, что если не найдут, то их язык говно.
Я говорю, что не сами абстракции нагружают, хоть и они тоже, а то, что у них под капотом тот же самый busy wait.
Много ли языков, где сборка делается больше чем одной командой? Я только в крестах такое видел.
Да, они серят в джава треде.
Помню, как фиксил один назойливый баг месяца три назад. Недавно открыл тот проект, и спустя некоторое время начал подозревать, что что-то не так, пофиксив один баг, смутно вспоминая что-то похожее в прошлом. Сегодня встретился с тем назойливым багом трёхмесячной давности. Пофиксил его тем же способом, что и тогда.
Спрашивается - какого хуя у меня проект десинхронизировался с временным континуумом? И как понять, сколько ещё моего кода кануло в небытие?
Кто-то криво резолвил конфликты при мерже. Посмотри историю коммитов в этом участке кода.
Юмор в том, что проектом занимаюсь я один.
Я тогда использовал Github Desktop для заливания на гитхаб и при предложении идеи добавить файлы в git всегда соглашался. Может ли это быть следствием чего-то из этого?
Может да, а может и нет. Если в идее работал, посмотри через ее Project History.
У меня бывает после коммита остаются незакоммиченные файлы и приходится второй раз коммитить. И после этого ещё кто-то говорит, что в идее лучше все реализована работа с гитом.
Да пиздец какой-то.
Иногда тупая идея вообще говорит, что коммитить нечего, а git status в консоли показывает несколько файлов. Бывает, что перед коммитом она несколько минут думает, что надо коммитить, и может в итоге показать не всё. А на винде после перезапуска ещё иногда может сказать "Empty git --version output". Лезешь в настройки, меняешь bin/git.exe на cmd/git.exe, чтобы через пару недель опять получить это же сообщение и менять обратно.
Вообще никакого доверия к гиту в идее, всегда перепроверяю в консоли за ней. Впору уже ставить TortoiseGit, как у нас некоторые деды делают. С мавеном похожая ебля, ломают всё в каждой версии.
Да если бы. Хуй знает, что там у шарпоблядей, но чёт сомневаюсь, что они от вижулстудии кайфуют.
команда git-bisect
> у них под капотом тот же самый busy wait
Бля, ты отбитый фантазер какой то, я иначе хз откуда ты этот бред берешь. Или пруфай, или будь нахуй послан, я хз как с тобой еще диалог поддерживать.
Если нет способа сделать низкоуровневую остановку треда без busy wait, то каким хуем высокоуровневая абстракция (которая по определнию основана на чём-то низкоуровневом) может содержать остановку треда без busy wait?
Сначала надо по советам из гугла сломать несколько десятков флагов в реестре Windows, и уж тогда точно ПРИДЁТ ВРЕМЯ.
Обоссут.
>Если нет способа сделать низкоуровневую остановку треда без busy wait
На основании чего ты сделал такой вывод?
Да, перепутано местами :/
Ещё и на русском языке нетбинс
По поводу эклипса могу сказать, что
Всякие модули типа cloud-vault актуальны, а значит и клауд тоже. Там дохуя полезного ежжи, кубернетес не исключает полезности некоторых его фич
Ну судя по описанию вакансий на хх и по собесам, где я ходил - spring data jpa чаще есть, чем нет. Во нескольких местах даже гоняли по хиберу.
Но я попал в место, где его скорее нету. Точнее он есть в паре старых сервисов, куда почти не пишутся новые фичи. А там где пишутся новые запросы к бд - там jooq.
Мне кажется жук не особо популярен, на хх он встречается в 20 вакасиях из 1.3к спринговых вакансий.
У spring+hibernate почти 500 вакансий, а еще его отдельно не указывают, пишут spring data jpa.
Я считаю, что хибер почти мастхев для вкатуна.
норм вроде звучит, в наши времена обмазывания data-first подходом как-то грешно пользоваться хибернейтом.
а на практике что с jooq, в каких местах самая боль была, можешь примерно почувствовать?
Вот у меня есть несколько классов:
1. Test (Main)
2. Snake - элемент змейки, содержит координаты элемента и метод для отрисовки элемента
3. SnakeFactory - объект который хранит в себе массив змейки и служит и метод для создания элементов змейки.
ВОПРОС: Так как текстура змейки одинакова для всех элементов, как вернее её хранить?
1. В классе Snake
2. В классе SnakeFactory или основном классе (то есть как на пиках)
Мне нужно что бы он для каждого элемента змейки не создавал переменную и не подгружал одну и ту же текстуру, а просто подставлял уже существующую текстуру. Пиздос, не знаю как короче и понятно описать, надеюсь меня поняли, я даун.
На основании того, что ты, ебло ослиное, мне не рассказал, как это можно сделать. Да и гугление ничего не даёт.
Просто картинка
Мне нужно что бы с созданием нового элемента змейки текстура не загружалась с диска, а использовала уже существующую переменную.
Очевидно хранить где нибудь один объект текстуры и потом по мере создания новых хвостов у неё инжектить в этот хвост. Использовать заинженченную.
Ну методы с запросом по 40 строчек. 3-4 джойна, выбор по 20 полей из 50 по одному, с алиасами. Ничего сложного, но глаз замыливается читать, особенно если не ты писал.
Писать руками даже самый простой круд после спринг даты уныловато.
Мапить иногда больно, особенно если там кастомные типы. Приходится сперва делать проекцию специально под то, что вернет жук, а потом мапить его еще раз в выходное дто.
А так норм - конвертер/биндинг пишешь на хоть на юдт, хоть на вьюху, массив или енум. На jsonb встроенный конвертер недавно подвезли. Разве что массив он в жавамассив переводит и в лист конвертер приходится писать, могли бы и встроить галку в генератор.
Вообще жук намного лучше постгрес поддерживает, чем хибер. Мы использовали сте, оконные функции, констрейнты, кастомные типы. На другом проекте люди писали свой диалект.
Очень странно почему он за столько времени откусил у jpa и jdbc-template такой маленький кусок.
Нет. Не вытягивать из наружнего класса надо, а вставлять наружним во внутренний.
В коде теста пишешь код создания чего тебе надо.
>>256663
Ну тогда то есть вот так.
В классе Test (он же основной) загружаются текстура и так далее. И оттуда берём текстуру.
Создаёшь спрайт в тесте. Потом в тесте же создаёшь змею, в конструктор змеи засовываешь этот спрайт. Если надо создать больше змей - тот же самый спрайт суёшь.
Наркоман? Если не собираешься коммитить, нахуя их тогда писать?
Работодателям похуй на пет-проекты. Можешь для тренировки написать несколько мелких проектов типа соцсети или интернет-магазина, но никаких гитхабов в резюме добавлять не нужно.
Двачую челика выше. Сойдет любой круд, чтобы тебе было интересно. Но тут есть подводный камень, что без фронта вряд ли будет интересно, а фронт учить это достаточно много дополнительного времени.
Тебе по работе надо будет писать рест-апишки с дтошками не совсем соответствующим моделям, обращению по рест-клиету к другой апишке, с запросом в базу с простыми крудами, с запросами чуть посложнее: с джоинами, пагинацией и транзакциями. Нужно будет писать под это дело миграции, тесты, сваггер прикрутить. С докером возможно придется работать. Остальное опционально.
>Мой гитхаб читали, и мы обсуждали его на собесе
ты особенный
>Сервис аутентификации сделай. Логины, пароли, роли для юзеров.
норм идея
Да, а в идеале они еще должны запустится на удаленном сервере после коммита.
Да че там имитировать? Файлы хранишь в блобах, в других колонках расширение и имя с путем(уникальный констрейнт).
Такое себе. Ходячий антипаттерн. А пет ты нагрузить не сможешь, чтобы понять, что это антипаттерн.
Понял, спасибо, а проекции руками пишете или компайл / рантайм мапперы используете?
В целом плюсы звучат весомее для меня, но тут субъективщина.
Быть ближе к БД и их новым подходам лучше, чем обмазываться JPA, который пытается быть общим знаменателем для всего и выходит не всегда красиво.
Вот вобщем сделал я игру, хочу её упаковать в обычный exe и поставлять вместе с jre. Для этого есть разные утилиты, я использовал packr. Так вот проблема в том что он мне делает jre на 300 мб. Мне такое не подходит. Мне нужно меньше, намного, максимум мегабайт 40 - 50.
Так можно сделать? Какие утилиты использовать для этого?
Вроде читал что можно до 30мб уменьшить
> exe
Да, тяжело бывает осознать, что учишь-учишь язык полгода, пишешь на нём проекты, и тут внезапно выясняешь, что всё это время учил не тот язык и потратил кучу времени впустую, т.к. язык оказался непригодным для текущих задач.
>рантайм мапперы используете
да, модел маппер. Конечно бьет по перфомансу, но тесты показали, что не критично. И по сравнению к обращению к базе на другой машине в том же датацентре это смешно.
Ну если нужны частые переезды на другую базу или вообще несколько типов баз для одних и тех же запросов, то наверно лучше жпа.
Согласен. Хуёво быть петушарпером.
В караганде. Сам скроль.
Однозначно не скажешь.
В общем случае такое бывает, если идея не смогла понять, по какому пути у тебя располагаются сорцы (расширения .java для нее недостаточно). В случае с мавен- и грэдл-проектами такого не бывает практически никогда. Такое случается в случае, когда у тебя какое нить древнее архилегаси на анте (или, не дай боже, на мейкфайлах - да-да, и такое бывает, лол), либо когда у тебя покоррапченный чисто-идеевский проект (у которого потерялась папка .idea со всеми настройками, например).
Фиксится, если я правильно помню, в project structure - там есть менющка где можно явно прописать пути к сорцам. Но поможет ли одно лишь это тебе - хз.
Спасибо, анон, помогло. Правда, оказалось что проект какого-то хуя покорёженный (половина импортов ведут вникуда) и идея не спроста отказывалась с ним работать с ходу.
Ну а покореженные импорты - это признак того, что идея теперь не знает, где зависимости твоего проекта. Фиксится примерно там же - можно указать явно где их искать. Если у тебя антовый проект, скорее всего депенденси выкачиваются куда то в проект (или уже лежат под гитом).
Эта штука, которую ты описал, занывается maven wrapper (https://maven.apache.org/wrapper/). Его используют для того, чтобы зафиксировать версию мавена на проекте, и сделать сборку возможной на хостах, где мавен не установлен.
>Их необходимо добавлять в .gitignore, чтобы они не попали в репозиторий проекта?
Нет, обычно их коммитят. Это упрощает сборку девелоперам и конфигурирование CI-агентов.
>Но в тоже время ведь если этих файлов нет, то и встроенного локального сервера tomcat же тогда не будет в приложении и запуститься нет возможности, так?
Нет, мавен враппер не имеет никакого отношения ко всяким спрингам и томкатам.
Это просто огрызки мавена для шизиков, которые не хотят устанавливать мавен отдельно и держат его в репозитории, лол. Томкат тут не при чём, спринг бут тут не при чём.
>и в этих файлах аж какая-нибудь конфиденциальная информация о тебе может хранится
Нет, никаких твоих секретов там быть не должно.
Как же ты заебал
Если любишь приключения, можешь попробовать сбилдить native image, используя GraalVM.
Хуй знат получится ли у тебя упаковать в native image lwjgl: в сети вроде есть пруфы типа https://github.com/chirontt/lwjgl3-helloworld-native, но к примеру у меня JMonkeyEngine (юзающий lwjgl под капотом) так и не получилось упаковать.
А вообще, кмк не зазорно поставлять джаву вместе с игрой. Например, разрабы Project Zomboid так и делают - через стим скачивается и игра, и azul zulu джава для ее запуска.
Т.е. ты утверждаешь, что спринг - это платный проприетарный фреймворк от JetBrains.
Из дб бивера или пг админа пиши. В большинстве иде нет плагина для баз.
Шапку читай. Там про идею тоже сказано.
Пока нашёл:
- com.sun.net.HttpServer в J2EE
Можно ли обойтись стандартной библиотекой и не плакать?
- NanoHTTPD
Ожидаю, что на джабе так просто не выйдет, но может что-то приближается?
Уважаемый вкатун, меня всегда интересовало, а нахуя блядь пользоваться javac, если есть более высокоуровневые инструменты и абстракции?
>>67880
Уважаемый идинайхун,
О вкатунах тут речи не идет, своей головой, заточенной на приложение привычных абстракций невпопад к любой задаче, додумывать не надо.
Гугли микрофреймворки
Если без совсем уж ламерских заморочек типа
>И чтобы максимально просто собирался и запускался проект, желательно без всяких хуявенов, делаешь javac, потом делаешь java -jar helloworld.jar и поехали
То есть Javalin, spark и прочие хипстерские поделки разной степени развитости.
Если с заморочками, то HttpServer - впринципе выход, но не самый лучший. Так как содержимое пакета com.sun - это часть внутреннего API, и там все может быть выпилено в будущих версиях.
Через java -jar ты заебешься качать архивы с артефактами с того же мавен централа и прописывать зависимости руками во флагах. Найдешь себе проблем с резолвингом зависмостей и прибежишь суда. А тут никто никогда в здравом уме не пытался ебаться с вебом без сборщика.
Есть встроенный com.sun.net.httpserver.HttpServer, но он убогий и им тоже никто не пользуется. Вот посмотри. https://syntaxcorrect.com/Java/5_Ultra_Lightweight_Http_Server_Implementations_in_Java_for_Blazing_Fast_Microservices_APIs_or_Even_Websites
Есть достаточно модные micronaut и quarkus.
Но большинство писало только на достаточно монструозных JAX-RS(Apache CXF или JBoss Resteasy) или на еще более монструозном spring-mvc. Потому что легковесность в жабе нужна только в очень нишевых нишах.
Серьезно? Я скинул егоркин фреймворк, даже не дочитав до туда. Вот же лол. Это он сам написал туториал или у него в англосфере есть почитатели?
Нет. Джун и тем более стажёр это убыток, особенно первые три месяца. Мидлы или сеньки намного быстрее сделают таску, чем будут стажеру объяснять, что от него требуется и потом проверять и поправлять.
Джун это вложения минимум года на два.
Реальней получить цинизм в ответ, спрашивая такой вопрос на двощах.
Ты хоть пробовал на эти вакансии с 100500 просмотрами отправлять отклики?
Коммерческий опыт на то и коммерческий, что получаешь за труд зарплату. На кандидата, работавшего на мутных проектах бесплатно, будут смотреть как минимум с подозрением и предпочтут с ним не связываться, если у другого кандидата есть коммерческий опыт, даже если его меньше. Да и если просишь копейки, тоже будут смотреть с подозрением. Кабан не дурак и заподозрит неладное.
Без JS любой клик по кнопкам будет означать отправку HTML-форм и полную перезагрузку страницы. Если тебя это устраивает, то хватит.
Тогда учи основы JS. Да, он говнище, но варианты со всякими Vaadin намного хуже. На голом шаблонизаторе динамику не сделать, только полностью перезагружать страницу.
И да, с шаблонизаторами и без JS можешь забыть про REST-контроллеры, если они у тебя есть. Надо будет писать обычные MVC-контроллеры с аннотацией @Controller.
>И да, с шаблонизаторами и без JS можешь забыть про REST-контроллеры, если они у тебя есть. Надо будет писать обычные MVC-контроллеры с аннотацией @Controller.
Это я понимаю.
Ну а как в итоге-то получиться? Я же так понимаю надо html + css + js чем-то обернуть для того чтобы принимать ответы от бэка.
Или только js'a хватит?
Ничем оборачивать не нужно, просто пишешь в HTML теги <script> с JS, вешаешь обработчики кликов на кнопки, в обработчиках вызываешь fetch(url, {параметры_запроса}).then(коллбек_с_обработкой ответа). Кладёшь HTML-файлы в каталог со статикой, спринг его раздаст. Можешь и с шаблонизаторами объединить, т.е. положить HTML-файлы в каталог template, но так обычно не делают.
Либо конкретно погружаешься в веб-фреймворки со всякими реактами, нодами, бабелями, вебпаками, но тогда в сборку проекта добавится стадия запуска вебпака, чтобы собрать фронт в бандлы, их раздавать как статику. Хотя на практике это обычно отдельный проект, который раздают не через томкат (или другой контейнер сервлетов), а через отдельно работающий nginx.
пакет ру.пример;
использовать ломбок.КонструкторСоВсемиАргументами;
@КонструкторСоВсемиАргументами
общедоступный класс Пример {
__местное конечное число счётчик;
__общедоступный метод увеличитьСчётчик() {
____счётчик++;
__}
}
Гугли idea trial reset, там надо раз в 30 дней удалять определённые файлы из папки пользователя. Работает не во всех версиях.
Глобализм - это когда все на одном языке говорят, и не надо делать 6000 переводов.
А ещё в русской раскладке нет @ и фигурных скобочек, заебёшься переключать раскладку.
Во первых не 6000, а 10-15, и прочитать смогут 99,9% населения земли.
Во вторых перевести две строки на 10 языков легче, чем научить человека говорить на другом языке. Языковой глобализм это сугубо политическое решение для увеличения влияния самих глобалистов. От этого не проигрывают только жители Запада, мы же, в России, и другие 7 миллиардов людей, проигрываем.
>Во вторых перевести две строки на 10 языков легче, чем научить человека говорить на другом языке
Нет, пусть человек учит английский и не выёбывается. Не знает английский - не программист.
>>будут локализованы
Для начала клавиатуры бы локализовать, я ебал переключать раскладку чтоб $ {} или <> написать.
Да и англюсик лаконичнее.
>уррррь я скозал ты будишь гаварить на том языке, на каторам я хочу
Вот поэтому глобализм, вместе со всеми агрессивными, насаждающим свои идеалы его приспешниками, лицемерно прикрывающимися свободой и демократией, что является антонимом действий глобализма, будет уничтожен.
Ты думаешь клавиатуры создавались не под одноязычный западопоклоннический глобалистический антикультуральный мир? Будет локализация - будут и нормальные клавиатуры.
А вот и гринтекст пошёл в ход.
Глобализм должен быть построен по образу самых преуспевающих наций. Через 200 лет, когда русский язык вымрет как динозавр, никто и не вспомнит про такую нелепость, как локализация.
Ты сам так делаешь. А я с каждым постом формулирую всё проще и проще, чтобы дошло, раз слишком сложно и непонятно.
Я тебе про то, что насильственные действия вызывают противодействие, а ты мне "он всё сделал правильно".
Через какое-то время любое сопротивление прекращается. Подавляющее большинство программистов прекратило сопротивляться и учит английский.
Не всегда прекращается. Это зависит от того, какая сторона сильнее.
Ты сейчас явно заявляешь о том, что несогласные с тобой должны засунуть своё мнение в жопу. Это вызывает ещё большее недовольство и несогласие, усиливая протестную сторону.
Конфликт не "англоговорящие-русскоговорящие", а "глобализм-человечество". Можно и не уничтожать мелкие языки, будучи в большинстве.
Зачем уничтожать? Сами отомрут за ненадобностью, как и все языки, кроме английского.
С чего ты взял что в будущем будет английский, а не китайский? 150-200 лет назад мировым языком был французский, а до этого какая-нибудь латынь
Какой же мерзкий кошак на пикриле.
Наркоман, при Наполеоне не было скринов.
>>68307
>>68311
>>68362
>>68376
>>68388
>>68423
>>68421
>>68414
>>68408
>>68403
>>68455
>>68457
>>68474
Пиздовали бы вы в /po/, вырожденцы ебаные. Или на худой конец на хабр, писать блоги и переводить с других языков матчасть во имя успеха русскоговорящего коммьюнити.
Пользы от таких как вы - ноль, болтовня одна пустая.
Бывал я там. Выглядит как калька с этого треда, лол. Такое же засилие вкатунов и бесплатных чмовангелистов.
Более-менее нормальный тред, справедливости ради - у rust'аманов.
Эта хуйня и там утонула.
Жирнота.
Заплакал над могилой твоей сдохшей от ожирения мозга спидозной брахицефальной шлюхи мамки.
У меня есть такая идея, может все поля объекта Message, засунуть в массив и сам массив конвертировать, только идея кажется говной
>мы же, в России, и другие 7 миллиардов людей, проигрываем.
Ну почему, лично я выигрываю, потому что могу устроиться работать в любой стране, мой выбор широк. Если ты в такой ситуации умудрился проиграть, то ты слаб.
я попробовал такой вариант, короче у меня есть класс Message который преобразуется в xml, и в этом классе я переопределил метод toString как на пикриле1. Это рабочий вариант?
Ну а ты попробуй, работает? Пробегись в дебаге и глянь. Глянь ещё ещё jaxB и как оно работает с xml
Ну смотри на пикрил1, и что я получаю ответом в постмане пикрил2. Ну а если я объекту response передам не строку а сам объект Message, такого не происходит и ответ четкий
Как сюда добавить данные, подскажите пожалуйста ?
Вот так например - items = [["phone","blue","pixel"],["computer","silver","lenovo"],["phone","gold","iphone"]]
А зачем ты это просто вот так в реквест завовываешь? Я пикрил имел в виду, красным закрыл логин и пароль
Я мимокрок, спарк да, хороший, юзал. Подводных не было, кроме того что на няшном котлене все ще более лаконично, но это дело такое, я вообще сейчас на жабушку смотреть не могу после котлена.
расскажи про бек на котлине. Что там используется и что по вакансиям.
Не работай с soap руками.
У вас что петровичи уже умерли - которые это писали?
Там wsdl схема должна быть для сообщений и сгенерированные классы для парсинга/маппинга.
300 вакух на хаха.ру со spring kotlin к 1300 на spring java.
Даже если котл это в 50% это пиздеж для привлечения внимания зумеров - 150 это уже немало.
Ну может и кроме спринга, что-то есть в проде. Это я у онона выше хотел бы узнать.
мне нужно написать заглушку, есть какая-то йоба смежная система которая написана петровичами ещё при мамонтах, её нужно заглушить, вот как-то так анон
Это тупо неправда. На топ-15 языках, как на родном говорят 4.05 лярда человек, то есть только половина людей мира. И в этих топ 15 нет таких влиятельных языков, как французский и немецкий.
А если тебя интересуют не родные языки, а языки международного общения, то ты просто хочешь заменить 1 лингва-франка 15.
Указаны только те для кого он родной, а не все русскоговорящие.
>И китайского языка как такогого нет
И у путунхуа и у хакка письменность одна, так что в контексте данного разговора это не имеет значения.
Всем здравствуйте ананасы, специалисты по спрингу подскажите пожалуйста как злоебучую security для вебсокетов сделать ?
существует
https://docs.spring.io/spring-security/reference/servlet/integrations/websocket.html
просто оч долго раскуривать, хотел у анона по быстрому узнать как csrf генерить
Какой шаблонизатор взять для не HTML шаблонизации? Нужны условия и подстановка параметров. В идеале чтобы мог директории рекурсивно процессить, втч и названия папок менять
>В идеале чтобы мог директории рекурсивно процессить, втч и названия папок менять
Это не шаблонизатор делает...
Ну ладно, но вообще мог бы и шаблонизатор, че ему впадлу чтоли тогда просто шаблонизатор для текстовых файлов
Большинству шаблонизаторов похуй с чем работать, бери любой.
Фримаркер и StringTemplate4. Я ими текстовые отчёты генерю.
> В идеале чтобы мог директории рекурсивно процессить, втч и названия папок менять
Странная задача для шаблонизатора. Точно на уровне джавы не решить?
О нормас, я фримаркер как раз и собирался
Решить конечно, но вдруг есть шаблонизатор который может мне и директории зашаблонить
Бамп
>заменить 1 лингва-франка 15.
Ну хотя бы так. Я изначально говорил чисто про эффективность - перевод на 15 языков лучше, чем на 1, и на 250 (и то зависит от популярности и локальности продукта, ту же идею вполне можно было бы перевести на 250 языков).
А сейчас мы видим сугубо политическое решение уничтожать малые языки в угоду одному единственному английскому.
1 стандарт лучше 15. И похуй какое это решение.
>>69595 (Del)
Непосредственно китайскими иероглифами япошки пользовались веков 7 назад. Сейчас у них свои. А у разных китайских диалектов иероглифы одни и те же, разное только произношение. К к тому же путунхуа потихоньку сжирает другие языки, как французский добил бретонский и аквитанский.
А как название языка локализовать?
Я считаю, "Ява" это очень нелепый перевод, никто нахуй не знает что такое Ява, у всех будет ассоциация с Сектором Газа или хуёвым дристоязыком программирования.
Я считаю, надо локализовать Java как БАЙТКОДНАЯ БРАТВА
Как правильно изучить хайбернейт, чтобы не валиться на собеседованиях? Почти в каждой вакансии требуют отличное знание хайбернейта. Ну и везде требуют превосходные знания спринг бута.
ЯВА ЯВА ПАМЯТЬ НАХАЛЯВУ
>Oak after an oak tree that stood outside Gosling's office. Later the project went by the name Green
Да, я хоть и не стал джавистом (не считая модов на майнкратф), но эта хуйня запомнилась
По сложившейся практике импортозамещения, должно быть что то бредовое. Типа: госява. Или руява.
Функциональный код и дебаг - несовместимы. Дебаг это чисто императивная штука - ты поэтапно выполняешь шаг за шагом императивную цепочку и на каждом элементе этой цепочки можешь воткнуть брейкпойнт и получить состояние стека на текущий момент времени.
Функциональный код - декларативен, а в декларативности нет ни стека с его состоянием, ни цепочки шагов. Как результат, некуда втыкать точки останова. В ФП даже переменных нет, чтоб смотреть и менять их значения. Дебаггинг там тупо ни к месту.
Поэтому функциональщину не дебажат. Предполагается что если функциональщина скомпилировалась, она работает. А если не работает, пиши тесты блэд. Благо что тесты на функциональщину писать проще, чем на императивщину.
я бы не пошел на такой проект
мимо мидлосиньор. Все эти котлины/скалы/груви приходят и уходят, а жаба навсегда
ЯПВУ "Ява"
Приведи пример что спрашивают на собеседованиях, мань. А то сейчас опять окажется, что вопрос был про кэши 1, 2 уровня хибера или про актуатор в спринг буте. А это пиздец! Кишочки-кишки!!!
А я бы пошел. Потому что ява скучно уже, а тут новенькое можно потыкать за чужой счет, может даже смузи нальют
Когда уйдет, не мне же поддерживать
мимосиньор
Кринж - это называть петухон как-то иначе.
Знай, что такое persistence context, что происходит при его открытии-закрытии, в каких состояниях пребывают entity и что означает каждое из них. Сумей обьяснить, что означает эксепшон LazyInitializationException, и как его обычно диагностируют и лечат. Сумей поддержать диалог за кэши (L1, L2, запросов). Ну и в целом знай какие там анноташки бывают и для чего.
Справился?
Меня как-то завалили подробностями жизненного цикла сущностей в хибере и отличие каких-то похожих методов в ентити менеджере голого хибера. Думаю если бы ответил - спросили бы как мапятся методы хибера на методы спринг-даты.
36 лвл, живу в ДС, есть более-менее профильная вышка.
Пишу в госконторе на С драйвера. ОС у нас своя, как и железо. Платят мне копейки (80К).
Эта госконтора моя первая и единственная работа, я устроился на неё 14 лет назад после университета, попал в зону комфорта (хороший начальник, обычно ненапряженный график, бывают интересные задачи), так до сих пор и сижу.
Помимо днищенской ЗП проблема в том, что я не уверен, смогу ли я найти новую работу, если моя контора загнётся, т.к. пишу драйвера под специфическую ОС и железо, к тому же у меня поверхностные знания схемотехники, достаточные только для написания софта, но не для разработки железок.
Самый простой вариант - научиться писать драйвера под Linux, изучить микроконтроллеры и т.д.
Но проблема в том, что это мало кому нужно и платят за это обычно мало.
Как вариант, думаю попробовать вкатиться в Java.
При вкате будет ли преимуществом опыт программирования, пусть и в другой области и опыт работы с Linux (наша ОС собирается под неё)?
Не будет ли сильным минусом то, что просидел в одной госконторе 14 лет? Читал, что оптимально работать в одной фирме от 2 до 5 лет, меньше - летун, больше - пердун.
Или с такими данными лучше не дёргаться и остаться в своей системщине?
>При вкате будет ли преимуществом опыт программирования, пусть и в другой области и опыт работы с Linux (наша ОС собирается под неё)?
Это всегда - плюс. Если совсем прижмет, есть опция перекатиться в девопс.
>Не будет ли сильным минусом то, что просидел в одной госконторе 14 лет? Читал, что оптимально работать в одной фирме от 2 до 5 лет, меньше - летун, больше - пердун.
Есть такое. Рыночкопидоры и хипстота (комим являются 90% анальников) будут смотреть на тебя как на говно, но на то они и анальники. В конечном итоге наверное все зависит от того, как продашь себя и свой опыт. Было наверное всякое, за 14 лет? Есть что рассказать?
А не рассматривал просто для начала выкатиться из своей конторы в другую, но тоже на эмбеддед? Прошивки для железа писать?
>А не рассматривал просто для начала выкатиться из своей конторы в другую, но тоже на эмбеддед? Прошивки для железа писать?
Мне кажется, это я всегда успею. Железки программируют как раз обычно деды 40-70 лет, молодые выбирают более востребованные и денежные направления.
А вот для перехода в другую область возраст поджимает.
>молодые выбирают более востребованные и денежные направления.
Ну тогда ты поздновато спохватился конечно.
Не то чтобы перекатиться уже не возможно, но если за эти 14 лет ты просто сидел на жопе, делал работу, не чекал тренды, ничего нового не учил, ты литералли обнуляешь свою экспертизу, и выходишь на рынок труда конкурировать на равных с вкатунами, получается.
>>стоит ли пытаться вкатиться
С таким настроем только на кладбище.
>>Как вариант, думаю попробовать вкатиться в Java.
К байтоебству ближе раст или гуланг - смотри лучше туда.
>>будет ли преимуществом опыт программирования
>>на С драйвера
Для джавы вряд ли. Джава это чаще всего спринг и веб, на байты похуй и опыт написания драйверов не пригодится. Тебе все кроме азов придется учить с нуля как любому вкатуну.
>>в госконторе
Да и понимания айти процессов у тебя тоже наверное особо нет. (агил, созвоны с аналитиками и прочая хуетень).
>>опыт работы с Linux
У меня полкоманды линуха не знает, похуй на него - инструментарий кросплатформенный, байткод везде одинаковый, нюансы есть, но их мало. Но в резюме указать обязательно надо, да.
>>будет ли сильным минусом то, что просидел в одной госконторе 14 лет?
Может и будет. А то ты вроде должен быть сенькой/техлидом а вкатываешь на ждуна. Я б раскидал по разным шарагам лет по 5-7.
>>с такими данными лучше не дёргаться
Сам думай. Перекат (в джаву) это год учить стек, потом еще год-два после вката куча нервов и тряски, а не заменят ли тебя завтра на упругого зумера.
Если у тебя ипотеки, дети и отсутствие безусловной поддержки - то будет оче трудно.
Нет там никакого экранирования. Твоя просматривалка жсонов не успеет показывать смайлики.
Как в этом убедиться? Похожую мысль я видел где-то на SO. Из доступных мне просматривалок смайлики отображает только дефолтный Firefox во вкладке "JSON", где он раскрашивает и форматирует всё как таблицу, не отображая фигурные скобки и прочее. Все остальные показывают эти \uXXXX (edge, firefox, pwsh, curl).
"Истинное" ООП - это какое?
Бугаенковское чтоли? Так оно как раз декларативное по самое не балуй, и дебажится так же хуево как и все остальное ФПшное. Егорыч сам это понимает, и посвятил целый пост чихвостингу дебаггинга, лол
Никак, лол. Я обычно для дебага переписываю участок с функциональщиной по-нормальному и дебажу уже его. После решения проблемы, если код мой, так и оставляю, а если не мой, возвращаю как было. Сам стараюсь писать код так, чтобы его было легко дебажить, у этого даже название есть - debug driven development.
В теории функциональщину может и не нужно дежабить, раз она якобы работает сразу, но в реальности нихуя это не так, от ошибок в логике программы это не спасёт, хоть обмажься стримами, лямбдами, тестами и самой строгой типизацией на свете.
>>70779
upd пикрил. Экранирование эмоджи происходит где-то на уровне jackson и MappingJackson2HttpMessageConverter, которые преобразуют объект в строку. Если отправлять сразу строку - смайлы не экранируются. Как выключить экранирование в маршаллизации? Это всё дефолтное поведение из коробки.
Вот здесь что-то обсуждали, но я ничего не понял: https://github.com/FasterXML/jackson-core/issues/223
Попробуй объект через new ObjectMapper().writeValueToString преобразовать в json. Если там будет экранирование, то спринг не при чем.
Либо сам спринг, либо какие-то настройки ObjectMapper. Попробуй зааватовайрить бин ObjectMapper и через него преобразовать теперь.
Это вам не ваш соевый литкод, это хардкорный брейнфак прямиком из 90х.
Похоже на хуйню на бейсике, которая у нас была в школе. Надо было для ИСПОЛНИТЕЛЯ написать алгоритм из команд ПРЫЖОК, ШАГ и ПОВОРОТ, чтобы он нарисовал какую-то картинку.
>Автовайр приводит к тем же результатам, что и new.
Значит дело в спринге. Благословляю копать дальше.
Чё, даже 100 набрать не смог?
Задача минимум: получить именно тот инстанс, который используется спрингом для маршаллизации, когда из контроллера мы возвращаем объект.
Задача максимум: избежать экранирования эмоджи при возврате объекта, как у первого попугая.
Сорцы спринга смотреть. Подлезть к нему дебаггером и посмотреть, как он бин инстанцирует.
В общем случае бут конфигурит бины по умолчанию автоконфигурациями у себя. За джексон скорее всего отвечает эта: https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.java#L130
По ней видно что ObjectMapper бин декларируется спрингом, если еще не задекларирован (ConditionalOnMissingBean), и если в класспафе есть класс Jackson2ObjectMapperBuilder (он есть в составе spring-web). Я б попробовал размотать его отсюда.
>Задача минимум: получить именно тот инстанс, который используется спрингом для маршаллизации, когда из контроллера мы возвращаем объект.
Просто заавтоварь его куда нить.
>>71090
Вангую что в конечном счете инициализироваться он будет здесь:
https://github.com/spring-projects/spring-framework/blob/main/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java#L707
Да, но что поделать, больше нет ничего. Вижуалстудия не поддерживает джаву.
Уёбывай в свой загон со своим ублюдочным говном из под ногтей, петушня.
Сильный коупинг.
Ок, немножко я напиздел походу выше.
Судя по всему, способы есть: https://wiki.haskell.org/Debugging
Но мне все равно видится сомнительным что хаскелиты прям сидят и дебажат по классике брякпойнтами. Реально - на чистую функцию проще тест написать, чем сидеть и втыкать че там происходит.
>>70831
>в реальности нихуя это не так
Ты прав, в реальности это не так, потому что система типов и гарантии джавы - совершенно не чета и не паритет хаскелевым.
>от ошибок в логике программы это не спасёт
Дебаг в таких случаях тоже хуйня. Он может помочь тебе найти косяки в моменте, но не убережет от регрессий. Тесты все же единственное вменяемое решение против логических ошибок.
Есть разница в собесе не просто у разных компаний, но и тупо у разных собеседующих.
Стандартизированные собесы вроде бы в рф только в яшке и в тиньке.
Берешь доку и читаешь, пока не решишь задачу.
https://www.baeldung.com/spring-deprecated-websecurityconfigureradapter
Ну кстати, правильно сделали ИМХО. Вместо какой то странной ебанины теперь вполне себе стройная юниформная бутовая конфа с бинами, как везде.
Когда я использую new ObjectMapper() - Jackson вызывается напрямую и спринг вообще тут никаким боком, но почему-то получается разный результат в зависимости от того, приложение на буте или нет. Как это возможно? В mvn dependency:tree видно, что версии джексона одинаковые.
Остаются два вопроса:
Как выключить экранирование в дефолтном маппере бута, который срабатывает, когда из @RestController возвращаешь pojo?
Как выключить экранирование эмоджи в спринг MVC без бута хоть где-нибудь?
Это вроде называется Event Driven Development. Где обычно принято регистрировать вот такие бизнесовые события? Есть ли какие-то бест-практис как такое реализовывать?
Я смотрю в сторону кафки но там сразу много подводных камней: Можно ли как-то параллелить обработку в рамках одно консьюмера?
Как хендлить неудачно обработанные события (чтобы можно было их ретраить)
>Можно ли как-то параллелить обработку в рамках одно консьюмера?
Как хендлить обработку - дело целиком и полностью потребителя. Либо я не понял вопроса.
>Как хендлить неудачно обработанные события (чтобы можно было их ретраить)
По всякому, здесь многое зависит от того, какие требования предьявляются к системе и как устроена модель. Иногда ретраят (если хендлинг идемпотентен). Иногда ебошат компенсационные механизмы. Иногда забивают и просто логируют факт косяка.
Вообще очень многое зависит от модели и ее разбития на независимые куски, общающиеся эвентами (bounded контексты). Правильно разбить модель - ИМХО самое сложное и рисковое что есть в микросервисах - ошибешься, и будешь сильно страдать. Обычно их целенаправленно бьют так, чтобы избежать какого нить пиздеца вроде распределенных транзакций, и бьют с прицелом на eventual consistency (то есть, сервис А и сервис Б могут прийти к согласованности не сразу, но рано или поздно придут, и это нормально).
1. про параллельную обработку. В кафке как я понял параллельность прежде всего идет засчет партиций. А если ты хочешь сразу пачку событий и партиции взять и параллельно обрабатывать, получается тебе нужно ввыбирать: либо сразу закоммитить оффсет и рисковать проебать пачку если что-то недообработается и упадет (например с OOM). либо пачку коммитить только когда все отпроцесси и рисковать многократно обработать событие.
И еще насчет партиций. Я так понял даже если конкретному консьюмеру назачилось 2 партиции он не сможет в двух потоках их параллельно процессить, а будет получить в одном потоке то из одной то из другой партиции. Может я что-то недопонимаю
2. пока решил почитать статью на тему https://www.kai-waehner.de/blog/2022/05/30/error-handling-via-dead-letter-queue-in-apache-kafka/
И че я должен увидеть на этом скрине?
Изменилось как минимум то, что теперь больше не надо наследовать этот WebSecurityConfigurerAdapter чтобы пролезть туда со своими штуками. Терпеть не мог этот фортель.
Привет!
Так было показано на примерах, вот и пытаюсь заставить все работать. А что странного то? UserDetailsManager готовое это расширение UserDetailsService, который вроде как обязателен для авторизации через хранящихся в БД юзеров.
Или можно как-то по другому авторизацию через БД делать?
Эта хуита просто по определению не может выдавать 401. 401 - это HTTP статус код, а loadUserByUsername - джавовый метод джавового класса. Никакого отношения к HTTP этот метод не имеет и иметь не может.
401й статус выдает тебе spring MVC, когда видит что метод на контроллере, вместо того чтобы вернуть тушку под респонз, наебнулся с эксешоном. Вот и ищи эксепшон. Найдешь - поймешь что не так.
Разве их не было?
При чём тут деанон? Можно подтвердить, что несколько постов в одном конкретном обсуждении написано одним и тем же аноном, в другом обсуждении анон может придумать другой код. Практически анонимная электронная подпись. С регистрацией для такой цели пришлось бы каждый день создавать по нескольку аккаунтов, т.к. постоянный юзернейм неизбежно влечёт за собой предвзятое отношение от тех, кто раньше видел это имя.
Для вниманиеблядства трипкод не нужен, хватит аватарки с аниме.
Короче, смог разобраться в том, что если ты добавляешь User (тот, который от UserDetails) с пустой коллекцией GrantedAuthority, то это говно постоянно выбрасывает респонстстатусэксешон с кодом 401 когда ты пытаешься его извлечь. А если добавшь хоть какую-нибудь афорити с любым названием, то все работает как надо. Вообще хуй знает почему так, нигде про это не написано, но вот так.
поставил из пакетов openjdk и groovy
написал хелловорлд (мне нужно по-быстрому для Jenkins отладить функции)
groovy use_class.groovy
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/share/groovy/lib/groovy-2.4.21.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Как это чинить? Почему за многие годы не почнили?
К ней на прием приходят неадекватные петушарперы и ноют про жабу.
Неужели ваше очко настолько раздолбано, что вы не чувствуете, как туда медленно, но верно заползает R U S T
Эх, типичный анальник.
Ждет, пока ему взрослые ему книжечку напишут.
Учись курить маны, повзрослеешь заодно
Двачую насчёт доков.
Не двачую насчёт - "джава хуйня". Все языки хуйня. Раст тоже.
Даже тот язык, на котором ты пишешь для себя - тоже хуйня.
Создай.
Нет, просто сэкономили на девопсере. Терпи, сынок.
И еще - как ты успел заметить, твои "знания" по настройке этого анального зоопарка очень быстро устареют.
>инициализироваться он будет здесь
Похоже, что это не так. Посмотри на parrot9() в пикрил. ObjectMapper, полученный из build() и пропущенный через configure() конвертирует не так же, как в parrot1(), в котором используется какой-то другой дефолтный секретный ObjectMapper, который зачем-то экранирует эмоджи.
Какие есть альтернативы?
Откуда срут-то? Если api возвращает xml, то где-то должна лежать и схема, по которой генерируется класс ответа
>groovy-2.4.21.jar
Ты из какой эпохи, чел? Щас уже четвертый груви. Какое нахрен "за многие годы починили"? Ты откуда вообще такой мезозой выкачал - я его даже в централе не вижу))
И на чем ты его запускаешь? Небось на какой нить свеженькой джаве? А ничего что начиная с девятки Object.finalize задепрекейтили, на размышления не наводит?
Это шарпоблядь, не обращай внимания.
>Так схема есть, классы для jaxb сгенеренны, но вот эти решили выебнуться и срут текстом заэнкоженным, вместо того чтобы нормально послать объекты.
Что значит заэнкоженым? Тебе приходит замаршаленный текст, ты через Unmarshaller получаешь из него сгенерированный по схеме объект
Немцы придумали.
Ты особенный
Доброе утро!
>Debian 11 (Bullseye) was released on 14 August 2021
Я что дурачок ява с оффсайта качать?
Как починить?
Хули мне толку с версии твоего шиндовса? Версию джавы дай для начала. Java -version
Более того, они называют это рефакторингом зачастую.
Ну, когда было не обмазано, а потом обмазали.
Я когда учил Java Core, то радовался, что такой классный язык, всё лаконично, нет лишних конструкций. А сейчас смотрю и мне совсем не нравится.
Попробуй сишарп. Там конечно тоже говна хватает, но смотрится он гораздо чище и лаконичнее жавы.
Крудошлепил на обоих, если что. Жава+спринг и шарп+аспнет.
В шарпе же вообще магия на магии. Хуже всяких аннотаций. Там везде пишут эти { get; set } на каждое поле. Всяких закорючек в выражениях полно, почти как в перле. Открывающие фигурные скобочки в новой строке. И ещё PascalCase всё портит.
Хорошо, что так вышло, а то чуть говна не въебал
Я насколько давно начал его скачивать, что уже месяц как устроился в говноланг
>шарписты
Так шарп кал.
К джава кору претензий нет, только к пружине.
Говноланг в целом говно, джава ван лав.
Выдавить перда из треда (себя)
Лучше что ли?
Какой смысл решать литкоды, если она всё равно будет нулевая? Сам ты думать не хочешь, вместо этого просишь остальных разжевать тебе условия задач.
Потому что это не филд, а проперти.
А еще можно делать public record Creds(string Username, string Password); и получить имутабле запись с двумя пропертями. Без миллиона ломбоковских аннотаций.
У меня все самое новое.
ведь я централизовано обновляюсь и специальные специалисты по скурити (вообще-то они лучшие во всем опенсорсе, выпускают патчи раньше всех) следят за безопасностью моей ОС
java -version
openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Debian-1deb11u1, mixed mode, sharing)
что посоветуешь?
Пизда, короче.
Там в этом груви все проклято.
Забытое богом место.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927056
Задача:
>Суть:
>Скармливать проге номера в формате 8 900 001 12 34/+7 900 001 12-34/8-900-001-12-34 и т.д., чтобы она удаляла ненужные символы и пробелы и выдавала номер в формате ссылки, например ватсаппа https : // wa.me / 79000011234 поставил пробелы, если вдруг макаба будет ругаться, которую я потом благополучно вставляю в браузер
>Прога нужна для себя, заебался вручную удалять символы.
все хуево. ведь это номера начинающиеся с 8 нужно переводить в международный формат +7.
Птьху !
sup Аноны.
Хотел узнать, где-нибудь есть free tier куда можно бы задеплоить веб серв на спринге? (есть только рф карта). Похуй, хоть с минимальными лимитами по всему. Чёто гуглил и расстроился, ничего нет.
Локалхост.
так яндекс-клауд же.
Поигрался - удалил.
потратишь рублей 5.
Освоишь serverless - вообще королем будешь.
>>К джава кору претензий нет, только к пружине.
Так джава без пружины - легасное помойное говно, ее спринг и все эти стримы с реактивными вебфлаксами под ломбоком и выводят на конкурентный уровень.
https://www.youtube.com/watch?v=rqeJ1SolVls
Просто берешь и учишь без задней мысли, даже тяночка сумела а ты нет
Я тебе уже все выше написал блять.
У тебя, груви - древняя хтонь. Новейшее груви - 4.0.7 от Dec 24, 2022. А у тебя - groovy-2.4.21.jar 2003го года выпуска, судя по >>72222. Разумеется тогда 11 джавы и в помине не было, но был в ходу finalize, который твоя версия груви по прежнему пытается использовать на 11й джаве, из за этого и фейл.
Апгрейдь груви.
да я уже давно все собрал и отладил. Мне не нужно решать никакую из производственных проблем. А попиздеть и рассуждать об ИТ я люблю.
Вот и в ubuntu примерно тех же версий груви.
Я зашел чтобы узнать почему так.
Груви - очень редкий язык? Или я все-таки столкнулся с очень редким багом?
Нахуй ты с шарпоблядью разговариваешь?
Public String getLink (String input) {
var baseUrl = "хттп/вебсайт/";
var phone = input.replaceAll("[^\\d]", "");
var phone = phone.startsWith("8") ? phone.replaceFirst("8", "7") : phone;
return baseUrl + phone;
}
Ты слишком непонятно с чего взял, что в официальных репах осей типа дебиана тебе гарантированно будут только последние версии всякого стороннего софта типа джавы или груви устанавливаться. В реале обычно это вообще нифига не всегда так.
раньше всегда все нормально было. Ну кроме CentOS
То есть ты реально просишь пояснить что отвечает ChatGPT?
В курсе, что
>ChatGPT sometimes writes plausible-sounding but incorrect or nonsensical answers.
?
>>74178
Да я понимаю что что ИИ не голденхаммер, но все же меня это ввело в некий ступор, вот и спросил. Но я правильно понимаю принцип работы стека?
>а стек очищается автоматически когда метод завершает свою работу.
Ну конкретнее я имел ввиду то, что когда метод завершает свою работу он из стека автоматически очищается
И такой вопрос, у меня есть класс с main() методом, и ещё условно 2-3 класса по 3-4 метода в каждом. Если я запущу свой говнокод, то у меня будет один main поток с одним стеком в который будут записываться все вызываемые методы, я правильно понимаю?
Java memory model
>Ну конкретнее я имел ввиду то, что когда метод завершает свою работу он из стека автоматически очищается
Кто он? Метод? Обьект? Стекфрейм? Стек?
Стек состоит из стек-фреймов - по одному на каждый контекст вызванного метода. Когда метод стартует, новый фрейм аллоцируется, когда заканчивается - деаллоцируется. А вместе со стек-фреймом очищается и его содержимое. Содержимое стек-фрейма - примитивы и референсы на обьекты. Именно референсы чистятся вместе с фреймом, а не сами обьекты.
А GC - отдельная штука. Упрощая - он работает на графе обьектов: ищет по нему обьекты, на которые не указывает ни одного референса, и деаллоцирует их.
>И такой вопрос, у меня есть класс с main() методом, и ещё условно 2-3 класса по 3-4 метода в каждом. Если я запущу свой говнокод, то у меня будет один main поток с одним стеком в который будут записываться все вызываемые методы, я правильно понимаю?
Да, у каждого треда свой собственный стек.
Дак она пролезла за счёт того, что у неё парень джавист. А у меня нет парня джависта.
Оператор вопроса не надо отбивать пробелом, сука!
Все знакомые джавистки с ипотекой и детьми. Овертаймят ради карьеры, им некогда вкатывать какого-то мутного челика.
Вот и я думаю, что лучше кунчика искать. Да и чему тянка может научить? Я не сексист, но считаю, что тянки до конца не понимают, а просто заучивывают всё наизусть и пытаются воспроизводить.
Не стоит вскрывать эту тему...
Чтобы лучше понять эту тему, придётся лезть в АСМ, разбираться чё там указатель стека делает, как это мапится на регистры, короче заебешься, крайне бы не советовал на это тратить время.
Гпт по сути накинул базу, а конкретно кишочки разбирать - ну такое себе!
Нет конечно. В текущих реалиях компании без собственных серверов будут отказываться от собственного айти.
Нашёл более-менее разумную для начала схему: https://www.objectsbydesign.com/projects/calc/CompleteModel.gif
К этому еще надо добавить скобки для приоритетности операций, автоматическое переключение разрядности (8-16-... знаков на экран) и откат операций.
Все хуйня нерабочая, моделировать заново?
Перекат на 500-ом посте....
десктоп это паттерны MVP и ещё какая-то.
Помню была хорошая книга по свингу от Ивана Портянкина, там наверняка и примеры есть
Как сказал при мне один рандомный человек из интернета: "Тест Тьюринга в конечном итоге не машины прошли, а люди просрали".
Да. Ну и урл должен быть путём к ресурсу, типа GET /users - список всех юзеров, GET /users/anon1 - данные юзера anon1, PUT /users {данные_юзера_в_теле_запроса} - создать юзера. Выглядит как капитанство, но если сравнивать со всякими RPC типа SOAP, разница очевидна, там всё передают на один и тот же урл через один и тот же POST, а все данные для вызова серверной процедуры передаются в теле.
попытка протокол http сделать универсальным бизнес-протоколом. Основывается на шизе одного чела, который раскопал что изначально http делалось для html страничек и более-менее подходило для этого. Ну и написал книгу где пытался вместо страничек натянуть это на любые бизнес-сущности, ествественно это очень плохо натягивается. Эта шиза почему-то стала модной
Это копия, сохраненная 2 марта 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.