Это копия, сохраненная 30 мая в 11:50.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Как профилировать джаву? Вот например у меня есть игра на джаве (копрокубы), и при рендеринге каждый 5-10 кадр рендерится в 4 раза дольше, чем нормальные кадры. Меня это немного доебало и я хочу избавиться от этого. Я могу например найти метод рендера кадра, и после сборки данных профилировки фильтровать результаты, чтобы сравнить, чем занят движок в те микростататтеры, и чем при нормальном рендеринге, и попытаться это как-то распараллелить. Но как собрать данные профилировки, чтобы была выдача, что подметод залупа тратит 70% времени исполнения профилируемого метода, говно 25%, анус 5%?
Для начала включи лог гц и посмотри как часто собирается мусор и какой стоп оф зе ворлд тайм. Если с ГЦ все ок, попробуй аснк профайлер.
Так у джавы тоже есть силайк поинтерс в ансейфе
Я на гц грешил в первую очередь. Оказалось что паузы гц настолько маленькие, что тот профайлер что я использовал для их просмотра даже не показывает их длину, просто 0 в max. ZGC потому что по дефолту используется.
Можно ли использовать не на телефоне, то есть на устройстве без мобильной связи?
Там вроде есть профили для различных устройств, может, есть и варианты не для мобильников.
Меня там больше интересует 2D движок, он почти как на старых 8/16-битных консолях, то есть спрайты и тайлы.
Хочу попробовать создать самодельную портативную консоль на базе Raspberry Pi, возможно ли в этом случае на J2ME писать игры для нее (и портировать существующие)?
>что тот профайлер что я использовал для их просмотра
Не надо использовать профайлер для этого, используй логи https://sematext.com/blog/java-garbage-collection-logs/#gc-logging-options-in-java-9-and-newer
Ну раз с GC всё хорошо, используй асинк профайлер. В прорисовке много нативного кода и обычный профайлер будет плохо работать.
Чел тебе бы врачу показаться, уже который тред своим МЕ мучаешься. Малинка это обычный пк, запускай на ней эмулятор и вперёд.
Сука,опять тред с мвп перепутал
>Я на гц грешил в первую очередь. Оказалось что паузы гц настолько маленькие
>ZGC потому что по дефолту используется.
Чисто из любопытства - о каком размере хипа речь?
Если вы не выглядите так то даже не пытайтесь вкатиться. Сейчас не 2021 год когда брали всех - заводчан, милф, скуфов с кредитными курсами и вчерашних школьников. В джаве джуны не нужны.
Вобщем как на моем уровне заниматься самообучением, кроме душных книжек? Задорные курсы для вкатунов мне не подойдут, я пробовал, это довольно скучно так как 90% материала я по сути знаю, иногда черпаю какие-то приколы разве что, но ради этого убивать 20 часов не прикольно. Для продвинутых курсов почти нет, либо они ПЛАТНЫЕ.
Ах да, я энтерпрайзер, спринг либо ЕЕ, куда я могу вкатиться ещё в свободное время, где бы джава прям использовалась широко в коммерческих целях, а не ради использования. Пробовал libGDX и гейдев, но это духота по сравннеию с норм движками. Пробовал андроид, вроде тема. А что есть ещё? IoT? Микропроцессоры вроде мимо, ИИ тоже, крипта тоже. Покидайте идей в какую область с петпроектом податься, кроме веба.
Ну я так-то не против, но я так и не понял как их читать, типо лежать и читать перед сном не получится, там часто примеры кода, который как бы стоит попробовать где-то. Сидеть за компом и читать и делать учебный проект это какая-то сферическая хуйня в вакууме, тоже нет желания.
Любые технические книги читать нужно и делать пометки (конспект) + проверять интересные вещи в IDE.
Я так делаю и с видео. Если нет конспекта по видео, значит это было развлекательное видео.
Пациэнт, вы опять пропустили приём таблеток!
Г1.
Потому что копрософт решил не оптимизировать джавовую версию. Если посмотреть на копрокубы с модами то джавовая версия уже будет быстрее.
Небольшой, то ли 8 гб, то ли 6 гб.
Я просто читаю и делаю конспект.
>при рендеринге каждый 5-10 кадр рендерится в 4 раза дольше, чем нормальные кадры. Меня это немного доебало и я хочу избавиться от этого.
Переходить нa LibGdx.
>Пробовал libGDX и гейдев, но это духота по сравннеию с норм движками.
Так бери Юнити, С# - та же джава. Или для Godot вообще есть плагин на котлине/джаве писать
Попробуй лучше Rust или GTFO - вот это фактически игры на майкрософт джаве. У меня на 12 летнем компе классно идут
>юнити
Нет, спасибо. Помню кстати как в первые дни после введения этого говна холопы подорвались защищать барина, рассказывая, что только выиграли и теперь будут качественные платные игры вместо бесплатного говна.
И как решение разработчиков этих игр оптимизировалть в отличии от решения копрософта забить хуй на фпс что-то по теме треда доказывает?
А есть какой-нибудь пример нормально оптимизированной игры на джаве?
Если сравнивать с той говниной, что ты привёл, то даже майнкрафт и даже ванильный охуенно оптимизирован. А с модами на оптимизацию разница раз в 10 больше.
Годот пробовал понравилось, плагина для котлина/джавы не видел правда, но это костыли какие-то по ощущениям, лучше на нативном скрипте.
А шарп то мне нафига, та же, но не та же.
Project Zomboid
>Помню кстати как в первые дни после введения этого говна холопы подорвались защищать барина, рассказывая, что только выиграли и теперь будут качественные платные игры вместо бесплатного говна.
А про то, что они это почти сразу отменили ты конечно же не помнишь.
> ты привёл
Это не я, это другой анон. Я, кстати, тоже со скепсисом отнёсся к его посту, у меня всякие расты и форесты на среднем пк 2014 года лагали.
> А с модами на оптимизацию разница раз в 10 больше.
А можно названия этих модов? Оптифайн, если что, не особо помогает.
Rust, GTFO
>А шарп то мне нафига, та же, но не та же.
Чел, ты от джавы ни влево ни вправо? Может ещё и джс не знаешь?
Нихуя се, дотнет_говно и джвм смешивать, мдэ, ну такое. Мы же не за синтаксис, а за экосистему трем
Тот
>А можно названия этих модов?
https://github.com/TheUsefulLists/UsefulMods/tree/main/Performance
Моджанг копрософту принадлежит.
А я вот съебался из мвпараши из-за того что он превратился в полное дерьмо. Щитпостеры, вниманиебляди и мочух, который банит сразу же как только выказываешь недовольствие этим.
Причём тут то как они у меня идут?
А зачем если ты сомневаешься синьор ли ты в своем тырпрайзе лезть в другие стеки, типа геймдева или андроида?
Я думал чтобы понять свою синьорность нужно идти на хардкорные собесы на сеньку, перед этим подготовившись к ним по душным книжкам.
Нигде. Документация у спрэнга просто помойная. Там столько воды и переливают и пустого в порожнее без какой-либо конкретики. Их "гайды" - пшик. Их хватает на какие-то совсем примитивные вещи.
Таксисты и курьеры даже эти примитивные 1500 страниц документации осилить не могут. Чтобы объяснить жизненный цикл бинов и как работает BPP, Жене Борисову пришлось ПЕРЕОДЕВАТЬСЯ В ПЧЕЛУ и бегать кривляясь по сцене.
>Их "гайды" - пшик. Их хватает на какие-то совсем примитивные вещи.
Чувствую ты тоже какой-то шизофреник-анальник, который путает гайды и документацию. Иди нахуй.
>Чтобы объяснить жизненный цикл бинов и как работает BPP, Жене Борисову пришлось ПЕРЕОДЕВАТЬСЯ В ПЧЕЛУ и бегать кривляясь по сцене.
Это лишь говорит о качестве вашего спрэнг фримверка. Добавь сюда хубирнейт, который никто не умеет готовить кроме Владоса Михуйльцева и получишь типичный проект на жабе, лол
Да я про синьорность приплел просто к тому, чтобы было понятно, что мне не для джунов курсы нужны. Душные книжки и собесы итак в работе
Иди нах, ебанько :)
Скачиваешь спринг ин экшон, читаешь, делаешь проект на спринге с бд, аутентификацией, юаем, если нужны примеры идешь на сайт баелдунг.ком, там есть почти всё, дебичей выше не слушай, спринг топ
Это в каком месте спринг топ? Доки и гайды действительно хуйня по сравнению с ларавел и платформой, которую нельзя называть итт.
В спринг ин экшн код не компилируется, а автор игнорит на гитхабе. Книжка "Spring start here" лучше.
Допустим, у меня есть два объекта класса Container: c1 и c2. И была сделана штука c1.add(c2);
Теперь вопрос: как остановить передачу события от c2 в c1? К примеру в c1 и c2 есть событие с комком, но мне нужно, чтобы при клике по c2 не срабатывало c1.
>Ничего не отменяли, только планочку подняли
Не разобрался а пиздишь. Runtime Fee будет применяться к Unity 6 LTS, которая даже ещё не вышла и порог там 1 миллион баксов. Можно подумать твое говноподелие когда нибудь заработает лям в год.
Если не ошибаюсь consume() у события должен остановить дальнейшую обработку события.
Болезный, я не знаю зачем ты ебешь труп стюардессы, но ты хоть мануал почитай https://ipsoftware.ru/pdf/Swing_2nd_ed_Ivan_P.pdf
>Я про awt, а не про swing.
SWING работает поверх AWT, там много общего.
>Много способа для графики я не знаю
Тот же SWING. Или вообще Compose, но тут желательно на Котлине писать.
На котлине не могу: у фирмы своя наработка с кучей фигни на джаве и надо именно внутрь уже имеющегося кода впихнуть awt.
Самое интересное - тут есть даже своя крайне зависающая библиотека классов для парсинга xml, которая сначала вызывает нативные методы, обрабатывает этими методами текст, а потом возвращает. И работа такой фигни может запросто занять минут 15 для пустого xml. Я слышал про фирмы со своими наработками, но никогда не доводилось сталкиваться с таким.
Я уже даже думаю уйти, но за советы спасибо.
Подожди, не пойму - так плату БУДУТ взимать? То есть ты прилюдно подтвердил что я прав, попутно обосрав себе штаны?
>номинально я сейчас сеньор, хотя хуй его знает насколько соответствую
Все просто. Если можешь с нуля по требованиям в одну харю спроектировать законченное решение и пояснить за его архитектуру, значит синьор.
>Вобщем как на моем уровне заниматься самообучением, кроме душных книжек?
Делать крутые штуки от и до. Хотя бы для себя. И/или выходить из кодинга в серьезные дядьки - менеджмент или архитектуру.
А че еще остается? Все душные книжки, которые заслуживали внимания, ты скорее всего уже перечитал. Фреймворки шупать - ничего нового для себя там ты не нащупаешь, везде плюс-минус одно и то же. Язык и стек свичить? На любителя - сможешь перекатиться в смежные домены, но компетенция от этого не вырастет, так и останешься синьором.
> Все просто. Если можешь с нуля по требованиям в одну харю спроектировать законченное решение и пояснить за его архитектуру, значит синьор.
fun execute() = 2 + 2
Монолитная архитектура, минимальная связанность, соответствие принципам SOLID, thread safe имплементация.
Сеньор?
2 + 2 ты никому не продашь, чел
> по требованиям
Ты забыл про вот эту вот часть. Требования обычно озвучивает не сеньор, а его заказчик.
Открываю ИП, нанимаю себя как разработчика, пишу требования сложить 2 + 2. Сеньор?
Ееее
Как ты будешь оправдывать перед техдиром выбор JVM для проекта вместо го, ноды или сишарпа в 2024? Хард мод - команда не хочет писать на джава стеке и не знакома с ним.
> Как ты будешь оправдывать перед техдиром выбор JVM для проекта вместо го, ноды или сишарпа в 2024?
Они говно, жаба зэ бест. Вопросы?
> Хард мод - команда не хочет писать на джава стеке и не знакома с ним.
Что они забыли в моей команде? Почему чар отдел проебался и набрал на жаба проект людей не знающих жабу?
И я загорелся, думал бросить изучать Java Spring и начать изучать Go.
А сегодня подумал: ну не дурак ли я?
Вот хочу я найти работу Java Spring разработчиком на удаленке.
Как думаете, это сейчас возможно?
Ну, тот же шифу говорил, что работу найти возможно просто дольше искать.
А опыт у тебя какой?
Мой опыт...
Я пытаюсь вкатиться в программирование уже почти 4 года.
Я учил фронтенд, разработку игр, бэкенд, Android-разработку.
Благодаря тому что пытался вкатиться в разработку мобильных приложений, несколько раз смотрел курсы по Java.
Впоследствии я решил учить Java Spring, потому что наткнулся на хороший подробный курс от Заура Трегулова.
Опыта как такового нет, но я посмотрел половину курса по Spring'у (как бы это иронично не прозвучало).
Видимо мне надо будет досмотреть курс и написать хотя бы пару веб-приложений, посмотреть несколько интервью - и только потом пытаться вкатиться.
Пусть в одном файле есть public class eee<T>{...}, А в другом есть класс, где надо использовать массив из элементов eee<Character>.
Почему ругается на eee<Character>[] qwe=new eee<Character>[2]?
Может ты блядь уже своей башкой подумаешь хоть раз и сэкономишь себе кучу времени в будущем? Курсы от трегулова говно поверхностное кстати
> 4 года
Долго как-то, я за год вкатился. Хотя у меня друг за 3 года вкатился, но он 3 раза был на испытательном в разных компаниях за это время.
Ищи вакансии с тестовым на любой грейд (лучше на джуна понятное дело). Делай тестовое, скидывай чару с комментом, мол коммерческого опыта нет, но я способный и могу сразу писать нормальный код + согласен на зарплату ниже.
Так я прыгаю с одного на другое.
Фронтенд - мобильная разработка - криптовалюта - фронтенд - бэкенд.
Параллельно пытаюсь игры делать, может на Google Play/Steam/ прочих платформах заработаю.
Сыч я, двух слов связать не могу, внешний вид у меня очень нелицеприятный - боюсь что либо не возьмут на работу, либо возьмут, но начнут буллить.
Взять на работу сотрудника не для работы, а чтобы буллить его. У нас не Япония, чел.
И зачем ты прыгаешь?
Но в аспектах, которые ссылаются на данный поинткат название поинтката не меняется.
Почему?
Intellij Idea без лицензии, может поэтому?
Главное, чтобы text occurrences было включено. Если не работает, тогда scope выбран неправильно.
ОК, спасибо. Буду думать.
Мне нравится
Да, действительно надо было поменять Scope с Project Files на All Places.
Это уже видел, но это какое-то решение через костыли.
Я уже разобрался, что нельзя делать массивы объектов обобщенных классов.
>Все просто. Если можешь с нуля по требованиям в одну харю спроектировать законченное решение и пояснить за его архитектуру, значит синьор.
1) если ты не гугл и не вконтакте - делай монолит
2) в гугле и вконтакте никто не допустит меня до проектирования
1) Ничего зазорного в монолите нет. Годная вещь для своих целей, и не хуже микросервисов скатывается в говно, если его ведет долбоеб.
2) Кто сказал про "допустит/не допустит"? Ключевой вопрос - "можешь/не можешь".
В гугл одно из собеседований будет NALSD https://sre.google/workbook/non-abstract-design/
За 40 минут надо прояснить требования, придумать базовую архитектуру, посчитать сколько ресурсов потребуется поэтому это Non-Abstract, по запросу интервьюера рассказать отдельные детали.
Димсол это бездарный провинциальный петух-нонейм, чей единственный ресурс - группа с пафосным именем но там сидят одни джава скуфы помойные, впору переименовать чатик в skuf.jvm
>>А какие курсы?
https://www.youtube.com/playlist?list=PLlb7e2G7aSpTCB2OxGlezpgOXwq4xer7Z
мимо
>провинциальный петух-нонейм
Он работает контрактором и живет в Москва сити где читает кабанчика. Он в 21 год работал контрактором в сбере и наказывал скуфидонов
Кек, как же рвет фейкового синьора от чувства собственной неполноценности. Любо дорого смотреть.
Чекнул я канал его. Типичный инфоцыган с кликбейтными заголовками, его мнение вообще никакого авторитета не имеет и не может иметь. Забей и спокойно учи джаву, если на джаве просто очень сложно найти первую работу, то на голанге это невозможно или близко к тому.
Долбоеб, спокендос оформи и срыгни отсюда
Как же я нахуй обожаю этих ЧСВ ебланов которые в изимодные годы устроились и теперь решили других поучить. Нет, конечно же человеку нужно гробить год на голанг чтобы потом узнать что для него нет джуновских вакансий.
Это таким как ты нужно сдохнуть, причем в мучениях.
>которые в изимодные годы устроились и теперь решили других поучить
Пиздуй тогда в ньюфаг-тред и учись у таких же маслят как и ты, если скилловые для тебя слишком ЧСВшные. Распинается сидит, как баба. Орирую с поколения неприспособленных к жизни ЕГЭшных мамкиных корзинок - даже общаться не умеют.
Прочитал чистую архитектуру, идеального программиста и дочитываю идеальную работу (да не нравится, но начал читать по многочисленным советам везде когда уже получил нормальный "производственный" опыт).
Большей графомании и количества воды не видел даже в художественной литературе, это же просто пиздец, ощущение, что читаешь шизика, когда чел в одном месте пишет TDD не подходит для всех задач, а через пару страниц TDD универсален, потом Боб пишет: бля у вас могло сложиться ощущение, что TDD подходит только для маленьких проектов, но сейчас я вам продемонстрирую, что вы не правы и на 20 страниц расписывает простейший проект с тайм кодами, это просто пиздец
Да ещё и не просто шизик, а шизик с гиперфиксацией на своих идеях, пишет: я вот тут спросил у джависта об одной из своих концепций, он ответил: громоздко и неэффективно, но в TDD прижилось... БЛЯТЬ ДА НУ НАХУЙ МБ ПРИЖИЛОСЬ ПОТОМУ ЧТО ТЫ АВТОР ИДЕИ И ГЛАВНЫЙ ИДЕОЛОГ TDD??? М??? а не потому что концепция заебись? это как в анекдоте про то где куры сдохли, но концепция с табличками заебись
И т.д. и т.п. просто жопа разрывается от того, что чел просто продает людям свою концепцию, а то что она работает только в командах где ВСЕ ей следуют, где кабаны ПОЧЕМУ-ТО согласны оплачивать этот банкет, где микросервисы (монолиты идут нахуй), где задачи ставятся идеально и т.д. вот там да, могу себе представить, но блять по ощущениям компаний, которым это подходит <1%
Не могу отрицать, что какие-то вещи написаны правильно, но в основном ЭТО БЛЯТЬ ЦИТАТЫ ДРУГИХ ЛЮДЕЙ или же какие-то ультрабазовые вещи, которые ты узнаешь 100% если не из коллег, то из первого пиздеца который произойдёт (например про то что про наёбывающиеся сроки нужно говорить заранее (20+ страниц только про это сссука))
Всем похуй на твои страдания, скуфидон. Таких ленивых чертей как ты, которые любят "почитать ТЗ и как следует разобраться", а потом высирают говнокод без тестов и на коленях умоляют принять их пулл реквест, мы выгоняем целыми отделами
да, это типичный инфоцыган, и пердолики социально дезадаптированы и попали под влияние этого цыгана
Блять я заплакал. Какая же база.
Смотрю на скорости х1,6 - все отлично. Он татарин вроде
Всё так
А причем тут я прости меня?) Я уже давно работаю, вот только я прекрасно знаю что например ты сейчас по уровню знаний не прошел бы даже на трейни) Быдло ты ебаное, это тебе надо научиться с людьми общаться, тупоголовое ты животное
1. Ты настолько тупой, что не можешь сам прочитать условия, если тебе какие-то детали непонятны. Но при этом упорно пиздишь.
2. Если у тебя приложение не зарабатывает денег или зарабатывает менее 200к, то ты вообще ничего не платишь сидишь на Personal и не бухтишь. Если зарабатываешь больше 200к то надо переходить на платную лицензию 2к/5к в год. И если зарабатываешь больше 1кк, то только тогда надо еще платить рантайм сбор. Платить можно или фиксированную цену за установку или 2,5% от оборота.
>тогда надо еще платить рантайм сбор
Но ведь ты сказал что всё откатили?! Получается ты обосрался чтоли?
Во-во, у меня был на галере проект, простенькое SPA на 9-ти микросервисах. Там наверное половина кода уходила только на сериализацию/десериализацию
Сейчас её нет, она появится только в будущем.
Мне тоже советовали всю эту хуергу читать. После 20 страниц говна я просто дропнул. Инфоцыганщина чистой воды.
что понимается под высокой производительностью?
если обработка большого объёма информации, то completable future многопоточка с кастомными пулами (готовое в executor не всегда закрывает потребности)
если очень большое количество запросов, то кластеры или поды + оркестратор (мб и то и то)
если в оперативку упираешься, то jvm профилирование с дампами и отслеживанием что жрёт очень много и как это оптимизировать
это если основное и вкратце, а по мелочам есть и примеры реализации проверки подсети с помощью побитового сдвига или замена объектов примитивами там где это возможно, введение кэширование через concurrent и т.д. и т.п.
https://www.youtube.com/watch?v=Q-7y1u9kZV0
+ от себя общие принципы -
- меньше аллокаций памяти
- переиспользование аллоцированной памяти
- меньше ветвления кода, учет speculative execution
- Loop unwind, размотка цикла
- меньше операций ввода/вывода (чтение файлов, обмен по сети и т.д.)
- меньше рефлекшена в рантайме
- Ahead-of-time компиляция (GraalVM Native image)
- кэширование
- подходящие структуры данных
Ну и совсем прям низкоуровневое - это работа с памятью через sun.misc.Unsafe.
Недавно делали соревнование на самый производительный код в даже, можно там посмотреть на финалистов:
https://github.com/gunnarmorling/1brc
НО! Важное но, все эти оптимизации имеют смысл только если у тебя код выполняется примерно больше 100 раз в секунду, если меньше - то лучше просто написать простой и понятный код - проще будет поддерживать.
>Говорят, от этого наоборот медленнее может работать приложение, потому что некоторые оптимизации может только JIT делать.
Ну тогда сделай, замерь, и реши - подходит ли для тебя или нет
>Ну чтобы я игру написал и она не лагала...
Тогда лучше не на жабе, заебёшься жеж, попробуй тот же годот
Да не слушай шизов, все джава нормально может, выше уже кидал ссылки на соревнования по производительности
так тогда в чём проблемки то?) сделай реально и всё
>Советуйте книги/гайды/туториалы/выступления/пр. про то, как писать высокопроизводительный код на жабе
Не использовать жабу?
Петушарпер в стойло
> тимлид в свои 26 лет стал
Как по мне это скорее минус. Ну и тимлидом я быть не хочу совсем, пробовал, не нравится.
>>069894
>И/или выходить из кодинга в серьезные дядьки - менеджмент или архитектуру.
Я пытаюсь прыгнуть в архитектора, но не очень понимаю как, обычно все такие, о молодца, давай, вот тебе план развития, выполняй такие то задачи, ну я вроде как выполняю, но всё равно не очень понимаю что должно произойти, чтобы стать архитектором, ведь один уже есть. а второй нахуя нужен? Как перейти в другую компанию сразу на должность архитектора не понимаю ещё больше, сколько я видел архитектов, это обычно шарящие челы, у которых есть ответ на любой вопрос, но больше бизнесовый, типо как бы нам сделать и продать вот такую штуку, и они отвечают, мол а давайте вот так, но это обычно касается узкой специфики проекта или заказчика. Я даже читал книгу с кабанчиком, очень интересно, реально много нового для себя узнал и закрыл белые пятна, но к примеру на текущей работе этого с меня не спросили бы как с архитектора, а скорее спросили бы как продать новую фичу, объяснить что она охуеть как всем нужна.
>Я пытаюсь прыгнуть в архитектора
Не нужно этого делать. Архитекторы почти нигде не нужны. Либо если ты готов до пенсии (до 40-45 лет) работать в одной компании. Архитектуру продумывают сеньки и тимлид. Прямо отдельного архитектора я никогда не видел
Ну у нас есть прям отдлеьный, да и за 10 лет где я ни работал, везде был отдельный архитектор, не всегда на один проект, иногда на 2 один. Хз, а что тогда логичное продолжение сеньора, кроме как менеджмент в который я совсем не хочу. В 34 быть сеньором ок? Я всегда счтиал что карьерное продолжение сеньора это архитектор, потом техлид и всё такое. Типо не зашквар ли писать код в 40+?
Без шуток. Если ты в 40 лет работаешь, то предыдущие 20 лет, что-то делал неправильно.
Бесполезно
Пробовал чатгпт, ну это чисто поиграться или я не знаю, какой бойлер плейт писать надо, чтоб она помогала. По сути пишет реешение, ты санчала его пытаешься понять, потом его допиливаешь, по факту ещё дольше получается. Возможно чисто для обучения, когда не знаешь как жаваскрипт на фронте написать можно юзать, или там цсс подогнать. А так пока что хуйня
У нас кодасистанс в IDE. Скажу прямо: не великого ума ассистент, но в целом лучше чем просто автопополнение в IDE.
Чатгпт 4. Спрашиваю всё подряд. Например забыл как анимации изменения цвета делать, попросил дописать код, он сделал. Или есть какие-то сомнения насчёт названия класса, спрашиваю он предлагает варианты. Или нужно было подсчитать реальный размер объектов в рантайме, опять же он подсказал использовать Instrumentation agent, но в плане как его добавить в проект пришлось уже гуглить, так как бот ерунду выдавал.
В целом любой вопрос, который я раньше задавал гуглу, я теперь задаю боту и лишь потом иду в гугл.
Были бы у меня деньги на гпт 4... Хотя можно дёшево через апи долбится, насколько я знаю. Но мне лень разбираться в этом, барьер какой-то внутренний.
Хули тогда порвался как баба, если давно работаешь? Еблан тупорылый еще учить меня общаться будет после того как с нихуя без причины высрался в тред пожеланиями смерти. Пошел нахуй, чмо.
Ещё один страх преодолён, и теперь у меня есть доступ к четвёртой гопоте. Уплочено 650 рублей за 10 долларов апи кредитов (5 бесплатные и 5 оплаченные по ебанутому курсу 1 доллар за 140 срублей).
Еее, добро пожаловать. Чтобы сгенерировать картинку так и напишу ему "нарисуй чашку с кофе, на которой написано JAVA"
>снихуя без причины высрался в тред пожеланиями смерти
>пикрил
Ты внатуре болен чел, сорян, не знал. Выздоравливай.
а там не только картинки
И что же? Почему вон даже в Швейцарии всё больше людей вынуждены до 70 лет работать, чтобы обеспечить себе проживание?
Секурити контекст, юзерДитейлс+сервис, Аутентикейшн менеджер/провайдер/конвертер, цепочки фильтров, секурити конфигурер. Я уже десяток видосов навернул и доку поглядел и все равно не понимаю как это все связано между собой и работает.
По копипасту вроде делал пару раз еще давно. Но вот не получается как-то расколдовать магию. А там с тестами надо будет еще разбираться.
А потом такие скуфидоны лепят свои MyServiceImpl implementes MyService на 4к строк где перемешано все на свете. Без каких-либо тестов, разумеется. Спрашиваешь долбаеба - "а как ты на это говно тесты будешь писать?". А скуфидон лишь гаденько улыбается и сквозь зубы сцеживает - "а как ты это протестируешь?))) тут только руками))))". И каждый раз, когда какая-нибудь залупа падает в его "сервисном классе" он туда добавляет фиксы, меняя поведение. Ну и вишенка на торте это когда понадобится добавить новый функционал и скуфидон просто допишет новый код в свой мега класс. Тьфу, блядь! Хорошо, что мы в нашей компании увольняем таких "программистов" целыми отделами. Зумеры с мальства знают как писать чистый код
ты код этого мартина вообще видел в книжке? Сайд эффекты, глобальные переменные, наличие стейта. У меня это говно не прошло бы код-ревью
Я там не жил, так что не знаю. Но в России, чтобы стать РНН господином достаточно уехать жить из Москвы в провинцию. Если же в 18 лет ты выбрал учиться не в Москве, то ты ошибся. Всё просто.
>Если же в 18 лет ты выбрал учиться не в Москве, то ты ошибся
Для этого нужно было попасть в хорошую школу и у тебя должны были быть все условия, чтобы ты нормально учился, а потом сдал ЕГЭ и обогнал претендентов со всей страны на поступление в нужный ВУЗ. Если ты изначально заролял родится в нижних залупках, которые зэки строили, учиться тебя отдали в МОУ СОШ по прописке где все 11 лет тебя пиздили и гнобили дети из неблагополучных семей не давая учиться, то никакой учебы в Москве тебе не светит - ты просто не сможешь сдать нормально ЕГЭ
Если ты остался в школе где тебя все гнобят и пиздят, значит твои опекуны ошиблись.
До 14 лет ты вообще недееспособный. До 18 лет ограниченный в правах. Поэтому я не трогаю всё что до 18 лет, там твоей воли не было. А вот подготовиться и пересдать ЕГЭ ты уже мог бы, но решил этого не делать и это была ошибка.
28 рублей за доллар вообще-то
Ну так наценка торгашей, что оплачивают.
>А вот подготовиться и пересдать ЕГЭ
После 11 лет травли и унижений? Сириоусли? Там психика уже окончательно сломана. Травители пошли в путяги или дотянули до 11 класса, а потом пошли в колледжи на физруков и поваров
Или к психотерапевту если психика сломана. Опять же в 18 лет вполне можешь. Другое дело, что это требует проявления воли.
Воля твоя? Хуле тогда ёрзаешь?
Пруфы будут? Программисты не пишут на джаве, только гречневые вкатуны с бесплатных курсов от госуслуг.
12 лет жава сеньор вопросы? Когда я начинал курсов то и не было ещё, разве что по похэпэ от евгения попова, чисто вкатиться в веб
Жиза, сколько не копаюсь в этом, не получается понять всю картину целиком.
Покопайся в исходниках под дебагером, помогает. Цепочка фильтров это вообще не про секуррити, это про сервлеты, не только секурные фильтры же, в принципе в жизненном цикле сервлета фильтрчейн срабатывает каждый раз
Такой вопрос: нужен ли Swing/AWT/JFX в работе на джаве?
В целом я понимаю, что в реальной работе нужно будет ковыряться в легаси, но нужно ли будет уметь в каких-то случаях писать код для создания каких-то графических компонентов, например менюшек/спиннеров/комбо боксов/и т.д.?
99.9% - нет. Сейчас осталось 3 конторы которые пишут десктоп приложения, из них на джаве 5%. Так что если не попадёшь на лютое легаси типа жидбрейнс, то UI на джаве тебе не понадобится.
Попробую. Еще смущает, что там уже куча реализованных классов и нужно наследоваться от классов и дописывать логику.
А по тестам с спринг секурити можешь что-нибудь подсказать? Насколько я понимаю для мокмвс тестов нужно мокюзера использовать.
А сами компоненты типа кастомных фильтров, конверторов и конфигураторов принято тестировать как-то? Или просто юнитами?
я работал в конторе, которые делали десктоп опердень для госорганов на javafx. Для астралинукса
Я ошибся, это Martin Fowler предложил. Но по сути в коде, который обосрали он же не игнорирует исключение, а логирует его через доп класс.
Notification паттерн для случая, когда есть много непроверяемых исключений подряд (типа IllegalArgumentException + IllegalArgumentException +IllegalArgumentException), предлагает логировать их, складывая в список отдельного класса. Ну и дальше пробрасывать более специфичные
эм. Тут просто обработка эксепшенов и сохранение всех проблем валидации в список.
У мартина сохранение подробности в переменную + кидание эксепшена. Т.е. при обработке этого эксепшена надо знать про ещё одну переменную и читать значение из неё, а не из эксепшена.
Ну дя, я заглянул в код https://github.com/unclebob/CC_SMC/blob/master/src/com/cleancoder/args/ArgsException.java
Он там по одиночке проверяет errordcode на свитчах, чтобы добавить определенное сообщение. Здесь вызывает конструктор без параметра. Все в говне, согласен
Пост старый, но схуяли "лояльность" к ОС считается плюсом? Вы что ебанутые?
>>лепят свои MyServiceImpl implementes MyService
Так это вроде и есть мартин-вэй на интерфейсах?
>>на 4к строк где перемешано все на свете
Как раз сотня трехстрочных методов, лишь бы не дублировать повторяющуюся строчку кода в каждом.
>>Без каких-либо тестов
По мартину - обычно куча говноюнитов с моками которые нихуя не тестят, но их надо переписыватьь каждый раз при добавлении поля или мелком рефакторинге. Тесты ради тестов.
>>а как ты это протестируешь?))) тут только руками))))
В реалиях микросервисов - интеграционными с тестконтейнерами и прочими вайрмоками, но часто ручник просто дешевле и качественнее.
>>Зумеры с мальства знают как писать чистый код
зумеры точно такую же хуйню пишут, а чистые коды они осваивают по тиктокам.
Вообще настоящие программисты на джаве не пишут, а поют как соловьи, так-то
В каких-то конечно. Сейчас еще есть легаси на свинге, правда это большая редкость. АВТ вроде не видел, JFX тоже, только Свинг
Я в подобной конторе начинал свою карьеру. Писали под Багет на МСВС это реальная система, не ролф https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%92%D0%BE%D0%BE%D1%80%D1%83%D0%B6%D1%91%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D0%BB
Но это такой лютый пиздец и легаси!
Потому что ХРюши сверяют их как баш скрипты, бездумно. Сказано дажва 17я - значит должен сказать что джаву 17ю знаешь. И похуй что там со времён 8й изменений практически нет.
Ну не скажи. Если написано 17 джава. Значит я ожидаю, что там +- современный стек. Значит там более менее современная версия кубера, кафки, постгри, и прочих промежуточных и инфраструктурных вещей. Ну и спринга с другими библиотеками.
А если там жаба 8, которой 10 лет. то значит и остальные инструменты и библиотеки там скорее всего точно старше 5 лет.
Ожидать ты можешь все что угодно, сычуш. 17 жаба не означает, что тебе разрешат использовать фичи из 17 жабы. Там литерально может быть 17 jre на проекте, а фичи языка на уровне жабы 8 с запретом использовать var, умный свич и прочие рекорды.
>современная версия кубера, кафки, постгри, и прочих промежуточных и инфраструктурных вещей
В жабе не принято использовать кафку. Все где я работал, писали свои очереди поверх постгри или редиса. Кубером никто не пользовался и запускали томкат с руки или в докере крутили
>Все где я работал, писали свои очереди поверх постгри или редиса. Кубером никто не пользовался и запускали томкат с руки
Ты прям редкостный скарабей, собрал все сорта говна, которые можно.
> писали свои очереди поверх постгри или редиса. Кубером никто не пользовался и запускали томкат с руки или в докере крутили
Какая же ты ебаная мразь
ANDROID, DESKTOP, BACKEND FRONTENTD, МИКРОКОНТРОЛЛЕРЫ.
Возьмут меня системным администратаром ?
А где водительские права категории С, а где навыки управления электрокаром или экскаватором?
Против повесточки идёшь потому что. Нормальной разработкой считается последняя джава/котлин + кафка + флинк + кликхаус даже если это сайт-визитка. Поэтому кстати кафка и есть повсюду.
>флинк
>кликхаус
не нужны
>кафка
единицы умеют настраивать и обслуживать кластер
>котлин
наигрались за последние пару лет и теперь все спешно переписывают на последнюю жабу
Настраивать и обслуживать кластер не входит в обязанности разработчика
Нет, эти термины не являются равнозначными, они относятся к разным архитектурным концепциям в разработке программного обеспечения.
1. Model и DTO (Data Transfer Object):
- Model обычно относится к части приложения, которая отвечает за бизнес-логику и представляет собой объекты данных, которые используются в приложении для работы с данными. Модель представляет собой абстракцию реальных объектов и их отношений в системе.
- DTO, с другой стороны, это объект данных, который используется для передачи данных между слоями приложения или между различными приложениями. Он часто используется для уменьшения количества данных, передаваемых по сети, и для изоляции слоя представления от слоя модели.
2. Repository и DAO (Data Access Object):
- Repository - это шаблон проектирования, который представляет собой слой абстракции между бизнес-логикой приложения и источником данных (например, базой данных). Он обеспечивает единый интерфейс для работы с данными независимо от их фактического источника.
- DAO, с другой стороны, это объект, который обеспечивает доступ к данным из определенного источника данных, такого как база данных или веб-сервис. DAO обычно предоставляет методы для создания, чтения, обновления и удаления данных из источника.
Итак, хотя оба понятия (Model и DTO, Repository и DAO) связаны с доступом к данным и организацией слоев приложения, они имеют разные функции и контексты использования.
Спасибо, чат гпт!
А теперь переведи с ГПТшного. Когда мы делаем типичное REST API на Спринге для тестового задания и создаем папочки repo и model, мы какой подход используем?
> откуда нереальное дрочево TDD и культ Роберта Мартина?
Где? Нету вроде уже давно. Щас дроч больше как будто на ДДД и синюю библию Эванса.
>Не могу отрицать, что какие-то вещи написаны правильно, но в основном ЭТО БЛЯТЬ ЦИТАТЫ ДРУГИХ ЛЮДЕЙ или же какие-то ультрабазовые вещи, которые ты узнаешь 100% если не из коллег, то из первого пиздеца который произойдёт
В целом то же можно сказать про все айти. Еще диды подметили что айтишка циклична и просто переизобретает штуки по кругу.
Тя почитать, так можно подумать что у спрингоскуфов есть выбор делать иначе. Как будто бы весь энтерпрайз лабает сервисы. Даже скуфохипстеры, перекатившиеся из джавы в скалу и ФП, поясняют за свой tagless final на примерах тех же сервисов, переписывая на новый лад очередной UserRepository.
У энтерпрайза мозги поломаны несколько поколений подряд начиная с коболистов, не случайно он кровавым зовется.
Обычно модель - это структура данных, которая моделирует какой-то процесс или сущность в реале. DTO - это ты просто свалил в кучу типы, потому что передавать удобнее пачкой.
Между репо и дао хз какая разница, я ДАО видео только в окаменевшем коде.
Когда вы создаете папки `repo` и `model` для разработки REST API на Spring для тестового задания, вы используете комбинацию подходов Model и Repository.
1. Model (модель): В папке `model` обычно размещаются классы, представляющие основные сущности вашего приложения. Эти классы содержат поля, методы и логику, связанную с бизнес-логикой вашего приложения. Например, если у вас есть приложение для управления задачами, то в папке `model` вы можете создать класс `Task`, который будет представлять собой модель задачи со всеми ее атрибутами, такими как название, описание, статус и т.д.
2. Repository (репозиторий): В папке `repo` обычно размещаются классы, отвечающие за доступ к данным из базы данных. Эти классы используются для выполнения операций CRUD (создание, чтение, обновление, удаление) над вашими моделями. В контексте Spring это часто интерфейсы или классы, аннотированные `@Repository`, которые используют функциональность Spring Data JPA или другие подходы для взаимодействия с базой данных.
Таким образом, при создании папок `model` и `repo` вы используете подход, который включает в себя определение моделей данных (Model) и классов для доступа к этим данным (Repository), что является типичным для приложений, использующих Spring для создания REST API.
а где ?!
>>дроч больше как будто на ДДД и синюю библию Эванса.
Все про это говорят, никто не ебет как это должно работать на практике. Те примеры что показывают очень сомнительны, непонятно как затащить подобное себе.
>>075860
>>В целом то же можно сказать про все айти.
Мартин Фаулер тот же гораздо более базовые вещи предлагает. Нил Форд, Кент Бек, Сэм Ньюман - у каждого какая то своя тема, в которой он спец, пишут книги, выступают на конфах. Работают солюшн архитекторами и им платят за решение проблем. Именно практическая часть, бестпрактисы и питфолы представляют наибольшую ценность.
И только Р.Мартин выдает "хорошо делойте, плохо не делойте". Когда доходит до практики - пук-среньк-оплатите мои курсы-досвидания. Его и на конфах не увидишь - нахуй никому не нужен по слухам еще и конский ценник выставляет, дохуя важный чтоб выступать бесплатно как все, еще и вопросы неудобные станут спрашивать. Как и положено инфоцыгану не практикует, а только новичков учит жизни.
>>Еще диды подметили что айтишка циклична и просто переизобретает штуки по кругу.
Концептуально да, но каждый раз это выходит на новый уровень. Электромобили тоже изобрели в 19 веке, но только в 21 их довели до ума. Не потому что впадлу было, просто не было некоторых важных технологий для конкуренции с ДВС +нефть сильно подорожала
Какие такие? Ещё один даун со сломанным детектором
Такой ебучий потому что пытались сделать в одном всё абсолютно и собсна для штук в которых нужна реализация из множества источников это вполне имеет смысл, но потеряло для вариантов когда что-то одно-два используется, например кейклок (+ возможно стандартный лог пасс) там вот тащить полностью секьюрити дольше да и не нужно
Версия жабы означает критически мало, да и то что там либо будут старше 5 лет тоже не факт
Это жеж зависит зачастую от того, для кого пишется, очень много банков, которых прям заставляли с 6ой перекатываться в 8, а было это 3(!) года назад
Неа Packet Tracer где?
Я был на одном проекте, где был кейклок. Но бес спринг сесурити. На микросервисах.
Так и не понял как оно работало. Мне задачки с сесурити не давали, как джуну. А самому спросить у того кто прикручивал так и не срослось.
Кейклок админ был только в одном сервисе подрублен для регистрации и изменения пользователя. А вот как там аутентификация работала в других сервисах, где ничего ни про сесурити ни про кейклок не было - мне не ясно.
Как это могло быть устроено? Интеграция с кейклоком на уровне апи гейтвея?
Скорее всего во время ауф фильтра просматривалось нужна ли авторизация через кк, если да то перевод на кк, либо передача bearer jwt токена со всеми вытекающими (есть ещё конечно варианты, но их обычно не практикуют из-за заёбности)
Ну по собесам я все таки заметил корреляцию. Если указана жава 8 в 2024 году, то все остальное скорее всего тоже несвежее. Спринг 2.7 восьмерку поддерживает, но многие либы помельче требуют 11+ уже как года .
Через пару лет это будет совсем заметно. Потому что спринг бут 3 поддерживает только 17+ жаву. Третьему буту уже 15 месяцев и насколько я знаю - бут 3 это пока фальтстарт. На него не перешли даже те, кто обычно быстро переходят на новинки, типа команд тинька, которые ходят на конференции. И новых реально нужных фич пока почти нет.
Но 2.7 ветку уже перестали поддерживать. Последний релиз был в ноябре.
Так что через пару лет джава меньше 17 на спринговом стеке будет означать устаревшие на 3-4 года библиотеки.
Ты про фильтры сервлетов на уровне приложения?
Если да, то нет. В 14 из 15 сервисов не было вообще ничего связанного с секурити, ни фильтров, ничего.
Эммм мне вот интересно, а чем плохи "устаревшие" решения и чем там охуенны новые версии того же спринга? Под капотом у спринга та же жаба, для di вместо autowired можно вполе использовать google guice, хоть ему сто лет в обед, но отличная либа которая делает только то, что тебе нужно
Код старый от времени работать хуже начинает только если в него вносить бездумные правки постоянные, а если его не трогали n-ое количество лет, то вполне могу представить ситуации когда он дудет работать даже лучше, ибо раньше чаще думали о количестве используемых ресурсов
Не, я про сервис где секурити есть, остальные микрачи либо брали состояние пользователя и им пользовались, либо опять же где-то хитро прописанный поход в кейколк с jwt токеном (но раз говоришь что не было, значит не было)
Ну а мое предположение, что кейклок был с апи гейтвеем интегрирован? Такого не бывает?
Просто на дев площадке можно было курлом без авторизации ходить на апишки. Но если ходить с фронта в хедере авторизации был кейклоковский беарер токен.
Про свежий спринг не скажу, сам не трогал. А свежие версии мелких библиотек зачастую фиксят баги, работают со свежими же версиями баз/очередей любых других внешних интрументов, но при этом требуют джаву 17/11.
Аноны, оцените учебную программу, есть возможность пойти поучиться в Германии, на полтора года рассчитанно. Скорее всего поверхностно будет, но можно в свободное время ещё углублять знания. Стоит время инвестировать?
Хорошо, сейчас кину дамп базы и пароли от кубера
1) Если передана дата рождения, то фильтр записей, где дата рождения больше чем переданный в запросе.
2) Если передан телефон, то фильтр по 100% сходству.
Если передано ФИО, то фильтр по like форматом ‘{text-from-request-param}%’
3) Если передан email, то фильтр по 100% сходству.
Как сказал GPT, тут можно использовать QueryByExample, но как быть с датой, чтобы показывались юзеры с более поздней датой рождения?
Ну либо самый тупой вариант приходит на ум - тупо сформировать запрос строкой, подставляя что нужно, где не null, но работодатель это вряд ли оцеит.
Как тогда с этой датой быть? Со строками понятное дело, а вот для даты что-то не нашел нужного метода.
Свой напиши.
Criteria api
Да там всё норм описано. Ты же в процессе тестируешь что там написано? Облегчает понимание
Не тестирую,описано по моему пиздец громоздко,про волатайл объяснить достаточно ято у потоков есть кеш и что волатайл говорит не кешировать shared значение,а там начали говорить что-то типо волатайл переменная это та что не делится регистрами потоковче за регистры? Хуй знает
Регистр потока это тот же кеш. Очень-очень маленький кэш.
>про волатайл объяснить достаточно ято у потоков есть кеш и что волатайл говорит не кешировать shared значение
не только, это еще защита от оптимизаций перестановки порядка операций
Java developers wanted, report says
2024 Java Developer Productivity Report finds most companies plan to add Java developers this year
https://www.infoworld.com/article/3713288/java-developers-wanted-report-says.html
Последний раз я над этим медитировал минут 30, разбирая приколы кэшей в x86-TSO. А над >>076842 ещё час. Так что кури модельи памяти пока время позволяет.
Можешь начать отсюда - https://dev.to/kprotty/understanding-atomics-and-memory-ordering-2mom
>апи гейтвеем интегрирован? Такого не бывает?
Не могу сказать что этого нет или это невозможно, но я не видел на практике (если мы об одном и том же)
Если не апдейтить версии то однажды возникнет ситуация что тебе надо проинтегрироваться с чем то или добавить новую фичу. Для этого надо будет подключать новые модные либы/фреймворки. Окажется что с твоей версией они все несовместимы и надо либо городить кучу костылей, либо самому писать какую-нибудь поебень уровня кафки.
Возникает серьезная проблема, что дешевле - делать новое с нуля или попытаться проапгрейдить все легаси в надежде что оно не развалится. Все это на фоне того что фича нужна через месяц, а апгрейдить/переписывать - год минимум.
Нормальных разрабов ковыряться в этом говне тоже найти не просто - откликнутся только вкатуны без опыта и потухшие скуфы.
Бля, посадили допиливать микросервис за скуфидоном, которого уволили на днях из-за старости (мне 22, кста). Этот долбаеб затащил копромонгу и спрэнг фримверк. Посмотрел как в вашем помойном спрэнге лепятся запросы и обомлел - сплошные Criteria.where("name").is("huitka"). Вы совсем там одебилели, лол? В помойной джаве не додумались как сделать ссылки на поля модели? А если поле поменяется с name на firstName? Пиздец вы конечно... Придется все переписать на Go, разумеется..
Лучше переписать на c#, го это высер скуфов из бел лабс.
>Я правильно понимаю, что подключать классы динамически нельзя? Т.е. вся загрузка(подключение) классов происходит только в начале?
Можно конечно же. Создаёшь инстанс URLClassLoader и у него findClass().
>>077218
>Ну а как тот же хотсвап работает?
Hot swap это про другое, это замена кода уже загруженного класса. При этом в памяти могут быть инстансы этого класса. Это фишка чисто для дебага.
Такая вот фигня:
org.hibernate.PropertyValueException: not-null property references a null or transient value
Может, я что-то упустил из виду?
У меня на проекте очередь поверх базы сделана.
Полное очко если честно.
Стал люто ненавидеть велосипеды из-за такого.
Он ругается именно на birthDate. Мол, какое-то левое значение хотят туда положить. Через pgAdmin нормально запросы делаются, выходит, там LocalDate не преобразуется как надо.
Майнкрафт.
>org.hibernate.PropertyValueException: not-null property references a null or transient value
>
>Может, я что-то упустил из виду?
Ты читать не умеешь? Тебе хибер чистейшим английским пишет, что у тебя в поле которое помечено как не нул, находится тот самый нул.
>а апгрейдить/переписывать - год минимум.
эт насколько же старым и хуёвым всё должно быть, необходимость апгрейда не отрицаю, но имхо лучше апгрейдиться "рывками" с одной LTS версии на другую
Бери скорее,скоро до 30 поднимут и можешь забыть про вкат
Ya cloud + Netlify для морды?
Тяжело.
Да ладно. На хабре разве еще чето выпадает в тренды кроме заказухи, нейродерьма и обсасывания очередной анальной инициативы от РКН? Как будто бы всем уже давно похуй.
Так тут защищают 8 джаву. Она устарела на 3! лтса.
Нормальные челики начали сейчас апгрейдиться с 17/11 на 21. Ну или в ближайшие полгодика начнут.
Это мем. Не верю, что кто-то реально работает на 8 жабе, этому просто нет логичных причин
На прошлой галере перед сво была жава 8 просто потому что согласовали так в контракте с заказчиком. Все остальное апгрейдили по максимуму - а джэву было нельзя.
Но это японская какая то контора была, так что мб для них это был катинг эдж в их вечном 2007.
сними вдс и подними это всё
Очень многие проекты до сих пор на жабе8 живут, просто потому что многое старые либы не работают на 11+.
И таких на рынке РФ где-то половина.
Можно легко оценивать количество древнего легаси. Сколько жабы8, столько и легаси.
>многое старые либы не работают на 11+.
Всегда были интересно, что это за либы такие? Спринг 1.х?
Устарел только хайп, так-то там отличий практически нет с 8й, да и работает все нормально, зачем чего-то трогать.
>javafx
Во первых ставится отдельно, а во вторых с JDK 8 никогда и не поставлялась.
>com.sun
Нехуй использовать нестандартные пакеты.
>javaee
Все легко ставится добавлением зависимости.
>javax
Как были, так и остались.
> зумеры точно такую же хуйню пишут, а чистые коды они осваивают по тиктокам.
Вот этот прав. Взять среднестатистического скуфа, и среднестатистического зумера, то код у последнего будет гораздо большим говном, а чистый код для них это не код, который выполняет свою задачу, а код, который отвечает сотне мантр и проходит сапожно-анусный линтер, настроенный чтобы тимлид вася мог сказать на сосаче, что фича X и нинужна была до того, как её скопировали из джавы.
Срыг момент.
Как нормально синхронизировать вставку в бд, чтобы одни и те же данные не вставились дважды при двух одинаковых запросах? С
Понятно, что можно навесить unique constraint и отловить его, это нормальное решение? И если появится необходимость сделать так, чтобы при двух одинаковых запросах мы только один раз сходили в сервис с данными, нормально ли будет вставить в бд пустые записи (в которых не будет ничего кроме unique полей) и потом обновить их?
блокировки, select for update
Пока первую транзакцию не закоммитишь, вторая будет ждать. Блокировка тут на запись, не на таблицу
Держи, хоть и конкурента себе создаю, но не могу отказать
https://www.youtube.com/watch?v=pdmYEcns7EE
На русском мне вот эти нравятся. Я считаю отличные для вкатунского уровня. Там все времен 11 джавы где-то.
https://www.youtube.com/playlist?list=PLlb7e2G7aSpRZSRZxANkvpYC82BXUzCTY
https://www.youtube.com/watch?v=q-d40ZWGcJQ&list=PLm2nrlGYLq1Uv1qYpqMC07JYoOXilEQZI
>По мартину - обычно куча говноюнитов с моками которые нихуя не тестят, но их надо переписыватьь каждый раз при добавлении поля или мелком рефакторинге. Тесты ради тестов.
Двачую. Терпеть не могу бесполезные юниты. В крудах это просто юзлесс, за редким исключением. Поднимаешь тестконтейнер и хуяришь нормальные тесты.
Первый чуть интерактивнее. И подводит к началу изучения спринга.
Второй немного похардкорнее и ближе к кишочкам.
Благодарю тебя
У меня скоро на работе созреет задача для которой как раз понадобиться UI. Типа локальный сервер синхронизатор кассы. Пока хз что там за системы, но жопой чую что лучше это сделать через UI типа Swing (неплохо знаю и свое время прогал) или на крайняк JavaFX (трогал палкой, не прогал). Старые приложения на Swing отлично пашут на современной джаве, так что должно взлететь. Все будет лучше чем задействовать даунов с фронта.
В гугл
Ты собираешься делать клиент к серверному приложению или вообще всю бизнес логику в приложение засунуть?
Не. Это клиент будет по сути. По пинку нужно закидывать заказы на сервер и если нет инета, то сохранять в небольшую локальную бд. При появлении инета все должно закатится на основной сервер.
Object lock;
Метод 1
synchronized(lock) {
yourCriticalState++;
}
Метод 2
synchronized(lock) {
println(yourCriticalState);
}
cамое простое - просто дописываешь synchronized после public и всё
@Transactional это вообще про другое
Справедливости ради кому-то нужен допиленный stream api и синтаксический сахар, поэтому едут с 8 на 11, зато 17 говно без задач и разве что имеет смысл апаться на 21 если loom нужен, в остальном хз даже нахуя
Лум же недопилен еще,цпу интенсив исполнять нельзя,синхронизаций хуй,даже не знаю зачем он нужен
Например что из полезного (которое реально применяется на практике и без этого прям сложно)?
Не помню.
Рекорды заебись тема,еще вроде че то с свитчем сделали,но я хз что именно
>которое реально применяется на практике и без этого прям сложно
Это ты успешно проигнорировал, да?
Рекорды уменьшают количества кода, которое нужно "написать" (что сейчас кмк никто не делает ручками, т.к. почти всё доступно из alt+insert) при этом сами рекорды не универсальны, у них дохуя минусов и они опять же если бы этого не было, ничего бы не поменялось
Инстансоф по сути тупо сахар (да да с микрофичами), но и старый норм
То что свичи качнули - сомнительно, но окэй
Текстовые блоки - сахар
Ради свичей апаться в 17 как-то смешно
То что эта аннотация чисто маркер для того чтобы обозначить, что класс "типа потокобезопасный", хотя по факту обеспечивать это должен сам
Как ты себе это представляешь? Многопоточность это не просто "работает с многими потоками", работать с многими потоками можно по-разному и это часто становится непосредственной логикой.
Да я бы с радостью на жабу 50 прыгнул, но кровавый энтерпрайз думает иначе
Банкам скажи об этом, чтобы эти хуи раскошелились и оплатили переход
хуй ты гнидам из банка что докажешь, пиндосия до сих пор на коболе
Сопутствующий рефакторинг/исправление того что выпилили, обновление либ и т.д. осталось не забыть
В свежих версиях jooq используются sealed-классы, на версиях до 17ой не запустится.
Спринг бут 3+ хз что использует, но тоже работает на 17+.
Зачем использовать что-то кроме ассемблера?
КвериДсл больше не поддерживается и может на порядок меньше.
>>083615
Для строгой типизации запросов, автодоения, обертки вокруг постгресовских функций, маппинг конфигурируется полегче чем роумапперы писать.
Для средних размеров сервисов/микросервисов подходит очень неплохо. Если писать все на jdbctemplate, то нужно на каждый запрос писать дополнительную пачку тестов. Кроме тестов на бизнеслогику тесты на типы.
А как ты собрался цпу интенсив задачи на виртуальных тредах исполнять? Виртуальные треды исключительно для io bound задач нужны.
> КвериДсл больше не поддерживается
Это тебе приснилось или что?
> и может на порядок меньше.
Меньше добавленных бесполезных мегабайт в итоговую джарку? Согласен.
>маппинг конфигурируется полегче чем роумапперы писать
так их не нужно писать, BeanPropertyRowMapper всё делает
>Для строгой типизации запросов
Это jdbctemplate делает
>автодоения
а?
>обертки вокруг постгресовских функций
не понял что тут имеется в виду
мимо нюфаг в /pr/, просьба отнестись с пониманием, если тут эти вопросы заезженные
Хуй знает,в горутинах подобные ограничения отсутствуют
На апворке жизнь есть, но имхо фронта там больше, только фронт на PHP в основном. Хотя я давно смотрел, может сейчас по-другому
Смотря что тебе надо
>Это тебе приснилось или что?
Кверидсл - заброшенная помойная библиотека какого-то школяра. При этом там багов просто пиздец
Эм....а что сраная ссыкуха там делает? Надеюсь она не пишет код в проекте? фу-фу-фу!
Можешь рассказать в двух словах про свой опыт? Какие заказы были? Сколько платили, откуда заказчик был?
Тестерша проводит собес. Тестер гугля ответы с помощью друга пытается пройти собес.
Мой план таков, захуячить свой сервис петпроект на спирнге с самыми попсовыми технологиями, всякие кафки и тд. Параллельно почитать книги по ним. Спустя полгода пробовать интервью и уже корректироваться по темам, в которых плаваю.
Я посмотрел всякие видосы с собесами и статьи, там вопросы, а точнее ответы пиздец конечно, ну типо я всё это пробовал, со всем сталкивался, и могу на пальцах объяснить примерно, но как чуваки там описывают кишки какой-нибудь жвм или потоков или спринга я охуеваю.
Можно конечно возразить типо, а хуле петпроект, ты же работаешь. Ну да, но как правило задачи на работе не охватывают всю технологию, если я дохуя делал по какому-нибудь спринг секьюрити, то это не значит что я знаю все ключевые штуки, так как просо не сталкивался с ними.
Чё думаете?
Откуда-то из Америки. Там была задача через гуловское апи найти все все зип коды в заданном радиусе от чего-то. Как-то так.
Не парься, собеседование это рандом. Совпадут ли твои знания со знаниями интервьюера. Совпадет ли твой опыт с опытом интервьюера.
Делай запись экрана, чекай те темы где лицо интервьюера скривиллсь при твоём ответе и так через N интервью найдешь новую позицию.
Подготовка в виде взятия всего самого нового и написания пет проекта считаю хорошей. Даже если не пойдешь искать работу, хоть посмотришь на новые технологии.
Как быть, если кругом требуют кафку, микросервисы, кубер и клауд нейтив, а у меня на проекте этого нет?
Уменьшать рабочий день на 2 часа и в это время писать пет проект (в идеале стартап) где использовать эти технологии.
>пет проект
>в идеале стартап
Это вообще не равняется продакшен опыту. Про стартап вообще взлольнул
Стартап не такая уж невозможная тема. Берешь то что есть, находишь, что работает плохо в этом то что есть и делаешь без этой проблемы. Никто не говорит про зарабатывание денег, скорее про то, что можно сделать нечто полезное для общества и опционально прикрутить к этому монетизацию
>Мой план таков, захуячить свой сервис петпроект на спирнге с самыми попсовыми технологиями, всякие кафки и тд.
Это уровень таксиста, чел. Такое за вечер пишется по spring in action.
Заебись, нахуя тогда команды по 30 человек по 5 лет приложухи пишут
Очень часто оказывается совершенно бесполезной, прям полным пиздецом ненужным. Но часто очень полезна и бывает что решает такие задачи с первого раза, от которых я сам охуеваю, и ещё за короткий срок. Повышение продуктивности оценю процентов на 50 минимум, если не в два раза.
Так пруфы-то хоть какого-то высера будут, дегенерат?
А гпт инженер бесполезен. ГПТ с ним думает не о логике, а о том, как разбить задачу на несколько файлов, и половину файлов тупо ленится реализовывать. По итогу делает не больше чем за один обычный запрос, но в это входит также разделение на файлы, описание целей, и т.д.
Меня больше кишочки интересуют и минусы плюсы разных подходов,сомплитабл фьюче же не просто так появилось,оно исправляет недочёты обычных фьюч,вот это тоже хотелось бы узнать
Скуфц 10 лет назад обещал переписать книжку с поездами чтобы учесть все новые фичи. До сих пор пишет, наверное.
>просто затащили в проект потому что хайп
Кубер, кафка и микросервисы - это тренд последних как минимум лет 5-7. Хуй знает где вы там были и чем занимались, если у вас на проекте этого нет. Все по старинке пилите говномонолит, который стартует по 10 минут и ручками стартуете докер контейнер? Фу, блядь... куда вы лезете, скуфидоны..
Жаль, что зарегистрироваться в чатжэпэтэ невозможно без нужного номера телефона и зарубежной карты... А вообще https://www.jetbrains.com/ai/
>Берешь то что есть, находишь, что работает плохо в этом то что есть и делаешь без этой проблемы
Ты же понимаешь, что подобные стартапы это результат работы многих людей на протяжении многих лет?
>Никто не говорит про зарабатывание денег, скорее про то, что можно сделать нечто полезное для общества
Скопировать полноценный SaaS? Сириоусли? Типичная джавамартышка в штаны надрыщет уже на этапе проектирования архитектуры. Там дальше клепания крудов на хубирнейте и спринге мозг не работает
>опционально прикрутить к этому монетизацию
Не актуально с недавних пор как виза и мастеркард ушли
> Ты же понимаешь, что подобные стартапы это результат работы многих людей на протяжении многих лет?
Это зависит от того какую проблему решил решать
> Не актуально с недавних пор как виза и мастеркард ушли
Осталась карта МИР (только осознал иронию названия Российской банковской системы).
>Осталась карта МИР
Зачем? Если ты так хочешь запилить SaaS и монетизировать его, то держать нужно серваки за рубежом, как и юрлицо и банковские счета. Какой-нибудь страйп тебе недоступен как и счет в зарубежном банке
Мне кажется мы говорим о разном. Я изначально сказал, что вместо пет-прректа модно сделать что-то, что решает реальные проблемы людей и опционально прикрутить к этому монетизацию.
Ты же как будто критикуешь идею создать второй чатгпт, второй спотифай, второй <огромный-проект-нейм>.
Где проверка на то, что parts может иметь size равный 0? Как минимум было бы неплохо добавить логирование состояния для дебаг версии.
Через цикл это делается следующим образом. Создаёшь список со списками строк, которые тебе нужно вставить. Итерируешь по этому списку, внутри интерируешь по списку строк и добавляешь элементы к parts элементам составляя нужные выражения.
1) Когда мы делаем Runnable r = () -> sout("Hello"); мы по сути создаем анонимный класс. Анонимные классы сжираются сборшиком мусора сразу после того как мы перешли на следующую строчку или хуй пойми когда?
2)Когда мы делаем collection.stream.filter.findAny.map.collect у нас на каждую операцию делается по анонимному классу? То есть уюв моем примере будет создано 4 класса или я что-то не так понял?
https://www.youtube.com/watch?v=QgIWHeNy8fA
Как же тухло выглядят "программисты" из сбера.. Буквально место куда джависты уходят на пенсию до 35 лет
Нахуя уходить из сбера не на иностранную галеру,денег в стране тебе больше не дадут
> следующую строчку или хуй пойми когда
В спеке нет чётких указаний когда сборщик мусора отработает, кроме как при выходе из программы.
>Когда мы делаем collection.stream.filter.findAny.map.collect у нас на каждую операцию делается по анонимному классу?
Чот я сомневаюсь, иначе это бы памяти жрало бы пиздец. Просто вызываются статические методы обрабатывающие поток.
>денег в стране тебе больше не дадут
Просто для справки, сбер платит 150-200к сеньке. Премий там нет, как и бонусов
Ты чё ебнутый на голову? Мне в середнячке в регионах платят 200+. У сбера мидлы 250+ имеют, сеньоры около 400 только туда хуй попадешь.
Льготная ипотека не бонусы? Я рассматриваю сбер, только там собеседование ебанешься, а я кроме как просто попиздить за жизнь за 10 лет собесов не проходил других
а вот тут парень в очках говорит, что 260К на миддл в Сбере получает
https://www.twitch.tv/overridetech/clip/CarelessBusySandpiperAMPTropPunch-SipL-almKT59F202
Что ты скинул? Какой-то бородатый долбаеб бормочет "цыферки, мои цыферки". Второй жирный четырехглазый имбецил сидит и лыбится как даун..
> 2)Когда мы делаем collection.stream.filter.findAny.map.collect у нас на каждую операцию делается по анонимному классу? То есть уюв моем примере будет создано 4 класса или я что-то не так понял?
Как минимум 5, чекай сурсы JDK.
Тот который лыбится, получает 260К в Сбере + еще сколько-то (наверное, +/-150) в ВТБ на миддле через галеру и отдает с этого бородатому половину по учебному договору.
Как проверить твой тейк, что синьор в Сбере получает 150-200К?
По-моему не совсем, раньше было так, но лямбды как-то по-другому работают
>On the surface, Java 8 lambdas seem to be not much more than syntactic sugar, but when you look below the surface, you see tons of interesting abstractions. For example the JVM spec treats a lambda quite differently from a "true" object, and while you can handle them as if they where objects, the JVM is not required to implement them as such.
>Simply said, if a lambda expression does not capture values, it will be a singleton that is re-used on every invocation
Смысл в том, что ты это используешь там, где аллокация одного двух объектов ничего не значит.
> Анонимные классы сжираются сборшиком мусора сразу после того как мы перешли на следующую строчку или хуй пойми когда?
Не раньше момента, пока есть хотя бы одна хард ссылка на инстанс
>Анонимные классы сжираются сборщиком мусора сразу после того как мы перешли на следующую строчку или хуй пойми когда?
Второе. Джаве, в ее великой мудрости, виднее когда удобно выносить мусор. Но как раз короткоживущие объекты джава собирает лучше всего, благодаря тому что она не удаляет кучу мусора, а просто копирует небольшую часть выживших объектов в новый регион памяти и зануляет старый регион.
Думал там будет цитата из доки
>сомплитабл фьюче же не просто так появилось,оно исправляет недочёты обычных фьюч,вот это тоже хотелось бы узнать
Конечно, там офигенный флюид апи
Хоть где то пишут десктоп на джаве? Тот же вопрос про jsp и jsf
Нет и нет
Десктоп конечно пишут, но это очень нишевая штука. Учить стоит если ты собрался в такое место, где это используют, если просто для общего стека, то нет.
Да, жсп и жсф исполльзуют активно в корпоративном секторе, плюс это основы, разберешься с сервлетами и тд, это часть жаваЕЕ, определенно стоит.
ну флюент
Ты и не сделаешь , у тебя в каждой ветке кастомная логика
Че за хуйню ты несёшь. В сбере каждый квартал премия плюс годовая. Я мидлом работаю за 260 на руки + плюс 1.5 оклада премия каждый квартал и годовая 2 оклада.
640x340, 0:05
>>Вкатился
Вкатился - это подписанный договор, а не оффер. Тебе все еще могут отказать по результатам проверки СБ или просто по надуманным причинам.
щас бы в 2к24 надеяться на волшебный фреймворк, который сделает заебись
Как ты можешь советовать использовать что либо если в начале своего ответа пишешь "вроде" ?
Почему?
Чё это вообще за хуйня блять, в чем задача? Строки кода явно намекают, что пишется тут какое то очередное дерьмо по типу олимпиадных задачек
есть поисковый запрос типа "пентал гель"
Нужно добавить звёздочек, чтобы оно захватывало все возможные варианты
пентал гель
пентал гель
пентал гель
пентал гель
аналогично может быть и 3 и 4 составных части
БЛять, а зачем на части бить, почему нельзя обрамить звездочками, а если нужно пробелы, заменить тоже, то реплейсом?
Я бы написал метод, который вхуячивает знаки, в него бы передавал знак который нужно вхуячить. Ну или вообще декоратор.
Я сеньор если что.
Так чё сложного, количество слов можно выразить в двоичном коде, в цикле вызываешь функцию, передаешь исходную строку и счетчик, функция возвращает строку со звёздочками в тех местах в каком месте находится единичный разряд у текущего значения счётчика, и эта хуйня будет работать и на 2 и на 3 и на 5 и на 100 слов, как реализовать думой
*точнее от количества слов зависит сколько возможных вариантов может быть, это комбинаторика, 2 в степени х, где х это количество слов т.е. для 2х слов будет 4 варианта, для 4х слов 16 вариантов и так далее, вот и делаешь счётчик в цикле от 0 до 15, а дальше сам уже
Нихуя, у нас мидлы стольок получают, это мск? Нихуево джну 100+ насыпали, узнали бы наши джуны повесились бы
Что за контора то? Большие кто-то типо яндекса?
Другой анон, у нас стажеры получают по 70 на руки где-то, как только переходят в штат на фуллтайм и становятся джунами, то 140-150 как раз насыпаем где-то.
Но у нас на входе несколько секций с литкодом и кишочками. В мск меньше чем за 120к адекватных джунов не найти.
Значит неправильно делаешь.
>>087036
Это по-русски называется Full text search highlighting. Для ESа это - https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html
>Есть ли смысл учить awt/swing/javafx?
У нас есть, возрастом в 15 лет, мейнтейнится по сей день. Живучий, сука - пиздец: клиенты настолько к нему привыкли, что никакие ресты с вебмордами его не заменят. Наши порываются его на JavaFX хотя бы обновить, но куда там, это надо выкраивать просто несколько человекомесяцев, нихуя кроме этого не делать и вычищать 15летний легаси.
>Чот я сомневаюсь, иначе это бы памяти жрало бы пиздец.
А не надо сомневаться, надо проверять. Класс ReferencePipeline,
имплементация Stream. Каждая операция - новый обьект, проверяй. Не анонимный разве что. И нет, памяти бы это не жрало что ппц - что твой вшивый десяток операций стрима по сравнению с мегабайтами данных коллекции, который стрим перелопатит.
олвейс хэв бин
Звёздочка означает 0 или больше любых символов.
Поэтому просто бьёшь по пробелам, и ставишь везде сначала и в конце звёздочки.
Вопрос: что именно из Spring и прочих фреймворков нужно знать, чтобы вкатиться?
Нет форич даже, а индексированный фор, потому что форич тоже срет итераторами.
Но нужно без фанатизма и оптимизировать только там где есть в этом смысл
Spring Core, Spring MVC, Spring Data
>Нет форич даже, а индексированный фор, потому что форич тоже срет итераторами.
Сразу видно человека, который не смотрит доклады с конференций.
да
не нужно - не используй
все что есть в ИДЕ можно получить и без ИДЕ, просто сама суть INTEGRATED DE это то что всё интегрировано между собой.
тогда никаких проблем не должно возникнуть. ну а если будут, тогда уж и выбора особенно не будет.
в любом случае спасибо за ответ.
если программа очень маленькая - тебе и мавен нужен, джава программы из 1 файла можно запускать без предварительной компиляции, просто java Program.java и вперед
Да много чего:
- продвинутый рефакторинг, типа добавить параметр в интерфейс и во все реализации, сгенерировать case на все ветви enum, в общем много чего
- продвинутая навигация по коду, в месте вызова интерфейса перейти к реализации, поиск мест чтения/записи переменной включая get/set
- продвитутое автодополнение. в конфигах подсказывать имена классов и методов, в тексте запросов подсказывать имена таблиц и полей
- продвинутая подсветка ошибок, не сконфигурил бин - получай ошибку вайринга, написал мето findByLaja() получай ошибку
Мне понадобился spring (весь) плюс hibernate. Ещё кафку тыкал и учил отдельно от курсов т.к. на курсах её не давали.
Я вообще фронтендер, но мы на работе разрабатываем в идее, потому что там всякие штуки для запускания сервака через неё. В общем, такой вопрос, не подскажете, где спиздить Идею ультимейт по-новее? А то у меня 22.1, в ней не работают почему-то вьюжс шаблоны. Ну в смысле иде не видит переменные из жс файла в шаблоне (там древний вью и шаблоны в отдельном файле). Соответственно нет всякого автодополнения итд. Ну вот, я подумал мб новая версия поможет, но на рутрекере не нашел, мб вы подскажете.
Если тебе не нужно редактировать код бекенда, то лучше попроси чтобы тебе заклинание для терминала написали, для запуска иде не нужна
Где спиздить хз, я покупаю лицензию
Промахнулся, извинитя
> не жалел
А я вот не знаю. Вкатился в 26 лет. Сейчас зп 350 к. Но когда смотрю на то что делаю понимаю что это никогда не даст мне ни финансовой свободы, ни настоящего удовлетворения от работы.
Там анкета какая то упоминается в тексте, мне так подсовывали анкету в которых надо было заполнить (обязательные поля) контакты с прошлых мест, список имущества (квартиры, машины), наличие кредитов и телефон и ФИО родителей. Ну и при этом эти данные еще имеют право шарить по компания-партнерам.
Офер можно отозвать в любой момент. Кидают офер - говорят выходи на работу через неделю, в это время СБ пробивают. Если что то находят - то получаешь сообщением от херки "мням пук, проект отменили, оффер отзываем, в общем мы вам перезвоним".
А если подписал договор - то уже только увольнять, а это гемор. Даже с испыталки не так просто пнуть как кажется, если чел принципиальный и судится готов.
>>никогда не даст мне ни финансовой свободы, ни настоящего удовлетворения от работы.
А если б кассиром в пяторочке работал, было б больше свободы и удовольствия?
Или может ты кабанистый и потянешь свою точку с молоком держать?
Какие альтернативы, если тебе уже не 18? (когда выбираешь вуз)
В этом и проблема, что альтернативы сейчас когда мне за 30 уже нет. А так можно было бы пойти в науку. Денег меньше, зато хоть кайфует, что двигаешь человечество вперёд и видишь смысл в своей работе.
А с деньгами как оказалось вариантов вообще нет. Либеральная пропаганда оказалось лживой и единственные кому светит успех это или богачам по рождению или просто удачливым персонажам. Никакого внятного пути для обычного человека без родителей миллионеров и без кучи удачливых совпадений пути к богатству нет.
Хз, я кайфую от этого крудошлепства. До этого я работал юристом и просто заебался скакать кабаном, а сейчас сижу кнопки давлю и документацию читаю. Просто кайф. Жалею, что 6 лет отпахал в юридическом вузе.
Я раньше в НИИ работал, тоже кайфовал, а потом решил отправится за длинным рублем в ойти. В итоге получил, то что хотел, но как-то теперь тоскливо
2) Если внутри натива сделать второй поток и первым потоком завершить натив, второй поток завершится или нет?
3) Правильно ли я понимаю, что при вызове натива(будь то dll или so) не создаётся новый процесс?
Ну иди поработай за зарплату х0.1 от текущей на заводе, на складе или за кассой в магазине как это делает большинство населения страны. Охуеешь быстро, а на совсем гречневых работах охуеешь от тупости коллег
Ну у нас все её используют, там в корпоративной вики инструкции по её настройке, типа там линтеров всяких, плагинов итд. Да и я привык уже.
Ну и иногда мб приходится посмотреть бэк. Я ничего не понимаю конечно, но могу там тимлиду скинуть. Или вот вчера у нас новая тяночка-жавист че-то там запушила и приложение не запускалось и идея мне сразу открывала файл, в котором ошибка. Ну это был тест какой-то, я его просто закомментировал весь и стало работать)
Так-то я бы тоже купил, если бы мог, но я ещё стажер, вдруг не возьмут. У нас вся компания на спижженых.
На авито ключ стоит копейки. Если платить не хочется, то держи линк : https://blog.llinh9ra.ru/софт/активация-phpstorm-webstorm-intellij-idea-и-другие-продукты-jetbrains-в/
Сам уже на китайских ключах сижу 2 года. Полет нормальный.
Хм, действительно, мб тогда и куплю, спс.
Купил, всё подсвечивается!
Тогда хули Rutracker Store ждёт тебя за покупками
>1) Если в нативе malloc'ом взять память, а потом её не отдать, то по завершению работы натива память останется за процессом виртуалки или освободится сама?
Останется. Когда работал с JACOB и не вызывал release, так через час работы память росла до нескольких гигабайт
>2) Если внутри натива сделать второй поток и первым потоком завершить натив, второй поток завершится или нет?
Да, только надо учитывать что Thread.stop() давно не работает и нужно использовать нативные методы.
>3) Правильно ли я понимаю, что при вызове натива(будь то dll или so) не создаётся новый процесс?
Не создается.
>тред стоп не работает, нужны нативные методы
Это какие? Десяток тредов назад было большое нытьё по поводу отключения тред стопа, так тогда и не нашли замены.
Это скорее совет как самому вопросы задавать, чтобы не попадать в кринжовые ситуации из-за тупых вопросов.
Это скорее способ расписаться в собственной не компетенции. Если на мой вопрос тимлид отвечает "а сам как думаешь?", то я хочу его послать нахуй, так как если бы я знал правильный ответ, то не спал бы спрашивать, а сразу сделал бы.
Ну он же говорит что в 70% случаев к нему подходят с тупейшими вопросами, ответ на которые можно получить самостоятельно.
Просто вводишь правило: сначала гуглишь 15 минут, если не находишь ответа, то только потом идёшь к тимлиду.
Вообще, если надо ходить к кому-то по техническим вопросам, а не организационным, то это говорит о том, что человек джун.
До сих пор помню вопросы про стримы от "сеньора".
Я на ггселе купил пополнение баланса, оплачивал российской картой.
>Вкат в джаву в 2024
Еблан, иди на вышку этим летом пока 25+ не исполнилось, так хоть шансы на стажку будут.
>Вообще, если надо ходить к кому-то по техническим вопросам, а не организационным, то это говорит о том, что человек джун.
Двачую. Только джуны могут позволить себе признаться, что они не успевают до вчера исправить очередную шизофреническую хуйню, которую написал очередной пиздлявый дегенерат или срочно по горячим следам на проде разобраться в легаси залупе, автор которой сдох, уволился и сжег документацию или наоборот в очередной новомодной еще даже не production ready зумерской технологии, которую затащил ебланчик бойфренд тимлида.
Человек, который умеет наебывать, перекладывать ответственность, вбивать дикие костыли, лишь бы получить результат, обходить код ревью это минимум миддл.
>До сих пор помню вопросы про стримы от "сеньора".
Да какие там нахуй стримы. Про такой детский сад даже никто не заикается. Ты в менеджмент ушел 5 лет назад что ли? Хорош видосики для даунов смотреть.
> Двачую. Только джуны могут позволить себе признаться, что они не успевают до вчера исправить очередную шизофреническую хуйню, которую написал очередной пиздлявый дегенерат или срочно по горячим следам на проде разобраться в легаси залупе, автор которой сдох, уволился и сжег документацию или наоборот в очередной новомодной еще даже не production ready зумерской технологии, которую затащил ебланчик бойфренд тимлида.
И где здесь технические вопросы? Ты указал примеры организационных вопросов про которые я и сказал, что нужно ходить к руководству.
> Человек, который умеет наебывать, перекладывать ответственность, вбивать дикие костыли, лишь бы получить результат, обходить код ревью это минимум миддл.
Какую же ты хуйню несёшь.
> Да какие там нахуй стримы. Про такой детский сад даже никто не заикается. Ты в менеджмент ушел 5 лет назад что ли? Хорош видосики для даунов смотреть.
Я не в менеджменте и мой новый (уже не очень новый) коллега с зарплатой под полмиллиона действительно пришел ко мне и спрашивал как работают стримы.
Как же бесит эта напыщенность русского ИТ. Как он сам тупые вопросы задавал он конечно же скромно замалчивает.
>А сам как думаешь?
>ФУУУ, ВЕДЁШЬ СЕБЯ КАК МУДАК!
>РРРРРЯ, Я ЗОПРИЩАЮ ТИБЕ БИСПАКОИТЬ МАЮ ПИРСОНУ ЕСЛИ ПА ТАЙМЕРУ 15 МИНУТ НИ ГУГЛИЛ!
>НУ ВОТ ЭТ ПА НАШЕМУ, ПА РАСЕЙСКИ)
Я просто отвлекался на мемы, дело в 60 минут я растянул на 5 часов.
Ясн, слив принят.
Блестяще!
>И где здесь технические вопросы? Ты указал примеры организационных вопросов про которые я и сказал, что нужно ходить к руководству
Это технические вопросы, как мне кажется.
Ну то есть, чтобы понять, как работает легаси хуита, написанная 15 лет назад, надо сесть и вникнуть в код основательно. Если не понятно что происходит, то значит проблемы с пониманием либо технической части, либо бизнес-логики.
>Вообще, если надо ходить к кому-то по техническим вопросам, а не организационным, то это говорит о том, что человек джун
Довольно категоричное утверждение. Ну, если у вас есть хорошая документация, хорошо проработанные аналитиком задачи, где ясно и понятно что и как делать, в какой последовательности, а архитектор чуть ли не сам все классы нарисовал, то да, наверное мидл в такой ситуации должен сам сделать работающий вариант по задаче из тикета.
Но если на проекте нет аналитиков или архитекторов, нет документации, а сама задача представляет собой одно-два бессвязных предложений, то там обязательно появятся подводные камни.
Сам неоднократно сталкиваюсь с таким, что задача, оцененная в 1-2 сторипоинта требует несколько часов или даже дней детального изучения слоя древнего легаси, которое вообще никак не документировано, а люди, его писавшие, уже давно уволились.
Разумеется после этого у меня возникают вопросы уровня "Как это сделать побыстрее? Как это работает? Не лучше ли сделать по-другому?" итд.
А то иначе может получиться, что раз ты не джун, то и спрашивать такого рода вопросы не должен. А значит бери и делай как пришло в голову, даже если твое решение требует внесения изменений сразу в десяток сервисов, лол.
Если вопрос по бизнес логике это одно дело, но если вопрос уровня, а что такое 16 бит кодировка при записывании звука, то какого черта мне нужно это объяснять? Я похож на гугл? Это общеизвестная информация и если ты её видишь в легаси, то будь добр прочитать страницу в википедии.
Вопрос же, почему мы её используем в проекте, а не какой-нибудь ogg это правильный вопрос, но это уже вопрос как раз про бизнес-логику.
Это не выдуманный пример. Ко мне пришел новый разраб и мозги выед вопросами про каждый параметр звукового кодека, потратив своё и моё рабочее время вместо того, чтобы потратить только своё рабочее время.
>>089889
Обычно дают первые задачи такие, чтобы не пришлось менять код в 10 сервисов, а просто ознакомиться с проектом. На этапе код-ревью ревьюер уже объяснит почему вот так сделать не стоить потому и потому.
Я твою точку зрения понимаю, но объяснять как работает cmake потому что он используется в легаси проекта я не буду. Потому что я тупо перескажу его документацию. А ты всё равно ничего не поймёшь достаточно, чтобы писать на нем правильно, так как не набил шишек. И здесь лучший подход с точки зрения время затрат: загуглить доку, запилить хеллоу ворлд на неизвестной технологии, имплементировать решение как понял, получить по шапке во время код-ревью, запомнить-повторить.
Приходить же и просить, чтобы вместо тебя написали cmake файл, потому что ты не знаешь как это сделать, а твой коллега же точно это сделает быстрее, а ты посмотришь на результат со стороны и чему-то научишься. Это, блять, буквально просить вместо тебя выполнить задачу, тупо расписавшись в том, что до уровня миддла (самостоятельно можешь решить техническую задачу) ты не тянешь.
И ко мне коллега с такими реквестами приходил. Я не знаю, я не умею, мне тяжело, я не могу, напиши ты. Заебись бро, отдавай свою зепку и напишу так и быть. Что такое? Не хочешь отдавать зепку? А я не хочу делать за бесплатно чужую работу.
Примерно понял твою точку зрения.
Но сам с таким не сталкивался. Сейчас пишу на питухоне и го. И вроде ни у кого из команды особо не возникает про язык программирования и сопутствующие инструменты.
Ну то есть людям не нужно объяснять, как работают условные каналы в го или декораторы в питоне. Ну или как proto спеки писать. Вроде даже стажеры кое-как сами разбираются с таким без большой помощи.
Основные сложности - это именно распутать весь клубок легаси помоев и понять что от тебя хотел автор задачи. И впилить изменения так, чтобы весь наш колосс не сложился как карточный домик.
И тут сильно играет отстутствие нормальных документации, тестов, отдельных тестировщиков, у которых будут внятно описанные сценарии итд. Большие риски, что можно уронить прод, а это финансовые потери для конторы, за которые ебут конкретно.
Думаю, что человеку, который почему-то стал сеньором и не может почитать доку по стримы в джаве, справляться со сложностями более высокого уровня будет очень сложно. К вам точно мидлы-сеньоры настоящие приходят, а не волки или вкатуны по курсам с фейковым опытом?
> Ну то есть людям не нужно объяснять, как работают условные каналы в го или декораторы в питоне. Ну или как proto спеки писать. Вроде даже стажеры кое-как сами разбираются с таким без большой помощи.
Да так и должно быть.
> Основные сложности - это именно распутать весь клубок легаси помоев и понять что от тебя хотел автор задачи. И впилить изменения так, чтобы весь наш колосс не сложился как карточный домик.
У нас обязательно пишут accepting criterias (AC) к задаче. И разрабы требуют вписывать менеджмент/тимлида все дополнительные критерии, которые появляются в процессе. Это заработало не сразу, но сейчас все привыкли. Делаешь ровно то, что и написано в AC, ни больше не меньше. Если кто-то чем-то недоволен, указываешь на AC и говоришь, что как задачу описали так она и сделана. Плюс тестировщикам не нужно больше ничего объяснять, так как AC достаточно подробно описывают все изменения.
> И тут сильно играет отстутствие нормальных документации, тестов, отдельных тестировщиков, у которых будут внятно описанные сценарии итд. Большие риски, что можно уронить прод, а это финансовые потери для конторы, за которые ебут конкретно.
Проекты без тестов это буквально минное поле. Любое изменение это шанс того что всё взорвется и это станет известно только на проде. Хотя бы должно быть мануальное end-to-end тестирование если нет возможности писать юнит и интеграционные тесты. Нанять студента на четверть ставки или контрактную работу это не дорого.
> К вам точно мидлы-сеньоры настоящие приходят, а не волки или вкатуны по курсам с фейковым опытом?
Да это один такой коллега попался. Повезло + повезло на собеседовании, а потом всем было некогда всерьез заниматься вопросом соответствует он текущей позиции или нет из-за закрытия одно из главных офисов в России. И вот пришлось с тимлидом ему объяснять, что другие разработчики тоже работают и вообще его брали на позицию сеньора, что должно было минимизировать оверхед для команды, а не увеличить
>Приходить же и просить, чтобы вместо тебя написали cmake файл, потому что ты не знаешь как это сделать, а твой коллега же точно это сделает быстрее, а ты посмотришь на результат со стороны и чему-то научишься.
У меня в галере был подход такой, что если я знаю и мне 10 минут показать как пользоваться технологией, а коллеге надо для этого в доке копаться часа 2, то я обязан по первой просьбе показать, особенно если сроки горят. И ко мне, джуну+ подходили сеньки и спрашивали всякие вещи по их таскам.
Был один чел, тоже джун+, который примерно как ты рассуждал и отфутболивал коллег. Его прилюдно на общем созвоне джависткой команды руководитель направления попустил и сказал, что нельзя себя так вести.
Я не знаю кто прав, пока не сформировал свое мнение до конца. Но там логика понятнее - экономия времени разрабов для проекта. А у тебя логика от какого то "настоящего программиста" исходит, как мне кажется.
И чем твоё объяснение было лучше того, которое он за 10 минут нашел бы в гугле в бесконечных гайдах с примерами кода?
> экономия времени
Мой опыт говорит об обратном. Я трачу время на то, чтобы подготовить полный ответ на вопрос. Коллега тратит время на то, чтобы пить чай в ожидании моего ответа. Происходит подмена работы гугла ценной работы инженера и в конце спринта куча не закрытых тасок, потому что время было затрачено на объяснение как работает условный Retrofit или что такое Sealed interfaces.
> руководитель публично попустил
И нахуя работать в вашей компании? То есть вместо того, чтобы решить проблему никого не оскорбляя, не опуская, а спокойно переговорив один на один, донести аргументировано свою позицию. Ваш "руководитель" решил вспомнить старые добрые школьные годы и немного побулить прилюдно джунов.
Я бы пошел искать работу в тот же день. Работать с долбоебом начальником себе дороже.
Есть какие-то проекты чтобы в джаве тоже так всё просто было? Не языкосрач, я просто хочу удоство запуска питухона вместе с синтаксисом и всеми остальными преимуществами джавы.
> У питухона есть киллер-фича: возможность писать маленькие скрипты, работающие с файлами лежащими рядом и запускать их.
Если бы джава с одной только стандартной библиотекой была функциональной и подключение библиотек не было жизненной необходимостью, можно было бы воспользоваться стандартным сурс лаунчером.
> Ну не для скриптинга язык Джава, и че?
Ну так проблем-то в добавлении этого нет, почти всё уже необходимое уже сделано сурс код лаунчером, неявно названным мейном и мавеном (как экосистемой).
Придумать какой-нибудь формат .jsc, в котором будет писаться обычный джава-код + мавеновые зависимости для запуска программы. Основные бойлерплейт плагины пусть будут включены искаропки. Вот примерно что я ждал когда спрашивал про какой-то проект.
script.jsc
rep "zalupa.com/repository"
dep "org.example:govnoliba:1.4.88"
dep "org.hui:drugaya:1.2.3"
===
void main() {
// script
}
Такое можно сделать за пару вечеров.
>Придумать какой-нибудь формат .jsc, в котором будет писаться обычный джава-код
Ну вон BeanShell как пример, разве что с зависимостями там не так тривиально как ты просишь. И наверняка есть еще поделки подобного рода, правда мало распространенные. Все таки что ни говори а пхытон ввиду своей лаконичности для скриптинга лучше подходит, стоит отдать тут ему должное.
И кстати зря ты наехал на анона, предложившего jshell. Оберни его в shebang, и получишь jshell-based скриптинг. Вот Hello world как пример:
//usr/bin/env jshell --execution local "$0" "$@"; exit $?
System.out.println("Hello world");
/exit
Ниче сложного, мавеном по помнику в одну команду делается (dependency:build-classpath если мне память не изменяет). И предвосхищая претензии к мавену - в пхытоне ты тоже сначала pip'ом зависимости выкачиваешь прежде чем их в скриптах использовать.
В питухоне стандартная либа гораздо более жирная.
А, ок, не вопрос. Не хошь помник писать - качай поодиночке руками. Такая опция у тебя тоже есть.
mvn dependencies:get
Опять же - все паритетно PIP'у.
Ещё раз повторяю, в питухоне тебе ничего не надо качать и всё нужное уже положено в стандартную библиотеку. И если продолжать сравнение, то пип не в проект ставит, а на твою машину, что для скриптов лучше.
>Ещё раз повторяю, в питухоне тебе ничего не надо качать и всё нужное уже положено в стандартную библиотеку
Сука, да чеж ты нудный то какой. Ты пришел сюда для чего - доебаться до джавовой stdlib'ы или найти способ как можно на джаве скриптовать?
>И если продолжать сравнение, то пип не в проект ставит, а на твою машину, что для скриптов лучше.
Ну ок, здесь уел. Но не то чтобы было сложно на базе мавена и jshellа запилить обертку с таким же функционалом, если захотеть.
Вот бы котлин так умел, было бы ахуенно
Да, с 11й джавы ты можешь запускать .java файлы без предварительной компиляции, просто java Program.java и всё
Получается джава теперь киллер?
Под Windows TerminateThread https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-terminatethread
Под Linux простого способа нет, судя по обсуждению https://unix.stackexchange.com/questions/403988/how-to-kill-an-individual-thread-under-a-process-in-linux надо установить обработчик сигналов и в нем syscall(SYS_exit, 0), но в случае JVM не увере, что это можно сделать.
если написано про курсы - значит его научили составлять резюме - смело копируй
Нахуя тебе копировать резюме? Ты долбоеб?
А что поменялось? По-моему там наоборот прямым текстом написано что всё остаётся как есть и STR. писать нужно и дальше.
Ты походу читаешь наоборот.
В алтимейте нет стоящих плюшек в принципе.
Чё-то кринж какой-то. Нахуя они это говно проводят? Совсем старики из ума выжили?
Меня забавляет, как всегда и вне зависимости от ситуации скуфц не упустит возможности прочитать историческую справку про великие обновы и про то, как джава с 8 до <вставить цифру> развивалась.
Бля,я прозрел,при двух репликах топика с тремя партициями,у нас у каждой партиции есть лидер и реплика. Получается три лидера и три реплики. Партишионер выбирает в какую из трех партиций писать,а дальше выбирается лидер этой партиции и пишется в нее. Ого,ну и дела
Забыл спросить тебя "а сам как думаешь" но и так сработало.
Есть несколько документаций в html формате. Хочется их нормально ревьюить в гитлабе не читая сырой код, а уже смотря рендер. Фаст чектнг показал, что можно использовать gitlab pages, но тогда будет рендериться вся документация, а нужно только те страницы, что изменились + какая-то подсветка тех строк что изменились.
Есть какое-то решение? Говнокодить велосипеды не хочется, но ничего нормального найти не получается
Попробуйте выбрать следующий раздел https://hypermedia.systems/a-web-1-0-application/
А, это просто верстка тупая. Проехали.
Раз уж скинул, задам вопрос, используете htmx в своей работе?
Палю тебе ананасик годный лайфак для алтимейт идеи: находишь любой абсолютно действующий ключ, который по времени ещё соответственно не просрочился, при активации ключа слева снизу есть кнопка с проксятней, там забиваешь ручками локалхост какой-нибудь и активируешь через код - всё работает (наверное будет даже работать если на компе стоит ложная дата, но это тестить надо)
Забыл дописать к "жидхаку", что ключи можно найти на гитхабах всяких и то что я на работе использую алтимейт, а коллега коммунити, различается довольно минорно, из такого что мне нравится это более быстрая навигация по коду (имплементациям например), но всё это прям реально мелочи
Я не просто так написал про проксятню, напишу ещё раз, слева снизу на формочке для ввода лицушного ключа можно открыть указатель прокси, выбрать ручной ввод и в поле адреса прописать локалхост, после чего для доп проверки лицензии жидбрейнс попробует обратиться к серверу за доп подтверждением, а попадёт на твой локал хост получив за щёку, после чего у идеи или любой другой хуйни вопрос насчёт лицензии отпадает и она доверяет твоей, даже если она факапнута проверкой или отозвана, плагины вручную из маркетплейса придётся ставить, но это мелочи жизни
Бля, а вот тут хз, у нас на работе, как собсна и должно быть во всех нормальных работах после 24.02.2022 своя репка и оттуда вроде как нормально качает (но по факту кроме лени ничего не мешает в консольке мавен собрать)
сможет.
вы безусловно крутышки, но надо бы это как-то в шапку в следующем перекате вынести
Просмотреть код элемента или исходный текст страницы.
с# хуже чем java получается ?
На работу ходишь или удаленка?
Это копия, сохраненная 30 мая в 11:50.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.