Предыдущий: >>3247368 (OP)
Все шизы в сборе, урааа
Да дохуя похожих пограм по идее, просто нахуй оно для жабы надо? Прописал помник в мавене и не ебешь мозги.
Эта хурма еще умеет с помощью direnv выгружать всякое разное. Я gtk и lsp с её помощью прокидывал компилятору и идешке.
1080x1080, 0:28
Сап
Вкатывался в джаву год, потом сделал перерыв на 3 месяца ибо тупо выгорел, сейчас у меня тряска ибо я за год не чувстувую уверенность и не пробую откликаться из-за этого.
У меня лютая тряска, мне страшно, у меня даже мысли быстро начать вкатываться в питон ибо дажва это сложно и там банки и в банках все серьезно и там 30+ геодезист нахуй не нужон, а в питоне может быть нужон ибо конторы там попроще.
Анон, молю, помоги унять тряску годным советом и подскажи как мне действовать.
Сложность в том что у меня нет абсолютно никаких знакомых кто хоть каким-то боком причастен к айти, тупо не с кем посоветоваться.
в питон точно не стоит лезть. Там вакансий абсолютно нихуя, а кандидатов миллионы. Тупо конкуренции не вывезешь.
Ну я тоже вкатун, могу ошибаться..
>>67944
про помник подробнее пожалуйста.
Задача:
1. Копировать заготовленную папку с статическими ресурсами
2. Выполнить две баш команды
Второй пункт думаю легко сделать, но мне куда-то нужно деть папку со статикой. Самый простой вариант - упаковать её куда-то и пригонять по команде.
В питоне есть pipx, в NodeJS - npx -- эта херь устанавливает пакет и выполняет команду из него. Для Java не понял как такое провернуть
>30+
>Вкатывался
Бля, дед, забей уже, ты проебал. В 30 лет люди лидами и руклями отделов работают, а не вкатываются
Сравнительно как раз в джаве, судя по всему, не так. Но по сути ты никуда не вкатишься, ни в джаву, ни в питухон одновременно. 0% шанса вката = 0% шанса вката.
В java самое большое число откликов на вакансии среди других стеков.
Да забей ты хуй на мнение жаванов. Они вкатились сто тысяч лет назад и нихуя не знают как там сейчас. Просто боятся, что их места пригретые заберут.
Просто ебашь не обращая внимание, и все.
> И куда тогда вкатываться?
В продолжение сидения на шее мамки, лол. В 2024 ушёл последний вагон уже не просто на работу в айти, а на работу в принципе. Работы нет нигде. Разве что донный пиздец типо курьерства.
У тебя определенно есть скрытый талант к юмору, скрывай его и дальше.
>>68049
Ну вот и нахуя просто сидеть на шее, если в этом время можно штудировать какие-нибудь задачки с литкода, потом контест яндекса/тинька решить и стать стажером. Но нет, у жаванов работы нет, тлен безнадега. Специально людей дурят.
> У тебя определенно есть скрытый талант к юмору, скрывай его и дальше.
На вопрос не ответил, школьник.
> Ну вот и нахуя просто сидеть на шее, если в этом время можно штудировать какие-нибудь задачки с литкода, потом контест яндекса/тинька решить и стать стажером. Но нет, у жаванов работы нет, тлен безнадега. Специально людей дурят.
Дооо, дооо, тебя обязательно возьмут стажёром за 30к если ты несколько лет будешь дрочить литкод, стоит только верить!
Типичный жаван, пиздит о том, чем даже не знает.
https://yandex.ru/yaintern/backend
https://education.tbank.ru/start/
Невозможно быть таким тупым. Ты определенно бот или нейронка. Жаль тебя как в по нельзя по id скрыть.
>>68059
Мимо жаван, я ненавижу шарп, го, петухон и все остальное, что ты собираешься приплести.
И по факту вы не ответили. Просто говорите челику смирится и нихуя не делать. Это контрпродуктивно и не имеет смысла. Я же предлагаю просто делать не обращая внимания на такую гниль как вы, которые всегда будут против чужих начинаний. И даже конкретный путь предложил.
> Невозможно быть таким тупым. Ты определенно бот или нейронка. Жаль тебя как в по нельзя по id скрыть.
Очень аргументированно. +15
> Это контрпродуктивно и не имеет смысла.
Контрпродуктивно годами долбиться в стену веря в силу срынка и мрия о 300к/наносек когда-нибудь, лахтопетушок.
> Я же предлагаю просто делать не обращая внимания на такую гниль как вы, которые всегда будут против чужих начинаний.
Каждый божий день удивляюсь от того насколько мерзким может быть человек. Просто блядь пиздец. Этот хуесос блядь предлагает потратить годы жизни НА ПОПЫТКУ блядь получить СТАЖИРОВКУ блядь чтобы после стажировки ЕЩЁ РАЗ ПОПЫТАТЬСЯ блядь вкатиться. Пиздец. и смеет кого-то блядь называть гнилью. Сука, харкнул в ебало мрази.
Да, а другой человек предлагает эти годы потратить на... Сидение на шее? Вы бы блять для начала что-то адекватнее предложили.
Лучше годы тратить на такое, чем просто замыкаться в себе или ебашить всю жизнь на дноработках.
>>68064
Если это в конечном итоге принесет результат, я предпочту долбится в стену.
И да, я вообще не ебу причем тут лахта, у нее риторика как раз обратная, ровно как у вас. Стоит смирится, не стоит качать лодку, сверху все решили и тд.
Как хочешь.
> Да, а другой человек предлагает эти годы потратить на... Сидение на шее? Вы бы блять для начала что-то адекватнее предложили.
> Лучше годы тратить на такое, чем просто замыкаться в себе или ебашить всю жизнь на дноработках.
Ты в любом случае будешь сидеть на шее, маня достигаторская. Только свои лучшие годы просрёшь на попытки ухватить журавля из неба вместо того, чтобы чиллить.
> Если это в конечном итоге принесет результат, я предпочту долбится в стену.
Долбиться в стену и результат это противоположные понятия, олигофрен.
> И да, я вообще не ебу причем тут лахта, у нее риторика как раз обратная, ровно как у вас. Стоит смирится, не стоит качать лодку, сверху все решили и тд.
Ну да, власти ведь совершенно не выгодно чтобы ты забесплатно батрачил и верил в светлую жизнь завтра, лахтогной.
Если ты в джаве за деньгами то иди нахуй. Если за навыками в принципе — учись.
>Ты в любом случае будешь сидеть на шее, маня достигаторская.
>забесплатно батрачил
Ты там определись.
>вместо того, чтобы чиллить.
Нахуя их тратить на чилл? Можешь даже не отвечать, я не пойму в любом случае.
>Долбиться в стену и результат это противоположные понятия
Я по своему опыту решения разных олимпиадок говорю. Сложно предеать, но.. Да и не надо.
В общем, картина пациентов понятна. На етом все. Я устал
> Ты там определись.
И где ты противоречие увидел?
> Нахуя их тратить на чилл? Можешь даже не отвечать, я не пойму в любом случае.
Ну да, бесплатная шлюха не поймёт, зачем жить в своё удовольствие. Смысл жизни в том, чтобы заработать на золотую ручку олигарху!
> В общем, картина пациентов понятна. На етом все. Я устал
Слив принят, достигатор. Не забудь зайти через полгода таким же безработным чмом продолжая уверять нас всех, что вот завтра ты вкатишься.
К большому сожалению.
>вместо того, чтобы чиллить
Я уже заебался чиллить, скучно неимоверно. Ну а все, что весело - стоит денег
У тебя в любом случае денег не будет, пойми. Хватит уже мечтать.
Там где-то раз в квартал создает новый контест, типа осенний 2024. И вот за к примеру 3 месяца тебе надо успеть прорешать 5 задач.
Проблема в том, что 5 задач надо решить одновременно и за скажем 5 часов. Плюс каждую на 100 баллов. Тогда возьмут в стажеры.
В общем-то почитай правила на самом сайте, они там где-то наверняка есть.
Есть варик со стажерством чуть проще - это вузы. Сам вуз может через практику сделать тебя стажером.
> Проблема в том, что 5 задач надо решить одновременно и за скажем 5 часов.
> Плюс каждую на 100 баллов.
> Тогда возьмут в стажеры.
Самонеуважение вкатунов-мечтателей не имеет границ...
Причина тряски?
У меня знакомый в жаву вкатился в 27 и его забрали с первого собеседования. Не прыгай с хуя на хуй. У тебя уже есть какие-то знания по джаве, развивай их. Толку все сливать в унитаз и вкатываться в калькулятор?
До 2022 вкатиться было в разы легче. И вообще экономика другая была. Ты хоть интересовался, как у твоего кабана с финансами сейчас? Будет у тебя завтра работа?
У моего кабана экономика простая - 150к за мидла, 200к за сеньку.
Зато вон еще один этаж в бизнес-центре выкупили.
Причина тряски в том что кажется что джава это сложно и только в крупных компаниях, а они ж по рассказам с двачей любят студентов набирать с вузов. А питон типа разнообразный и там много всего, много контор "рога и копыта" и вот туда можно вкатится.
Если что я не утверждаю, это тупо мои догадки, у меня вообще ощущение как у потерявшегося в лесу, тупо не понимаю как эффективно действовать во вкате.
Щедрый кабан ещё. Я за 4 года до самого разорения фирмы получал с 30 до 80, а по званию рос от джун до джун+, затем до джун++, затем до джун+++ (это когда на мне одном вообще весь фронтэнд и половина бэка держались). Самому смешно щас.
Пруф
выглядит так, как будто тебе нужна система сборки просто. приклей к проекту maven или gradle
я Почти твой знакомый. Вкатился в java в 25. Сразу на 130к. Сейчас немного зп подняли, теперь 150к. Вкатился с 1 собеса грефу в трусы.
Кулстори, правда вкат в сбер доступен только через студенчество.
https://sbergraduate.ru/sberseasons-moscow/
кхх чел думает, что можно вкатиться только через стажировку
Да тут в треде был чел, который в сбер вкатился.
Там правда один ньаюнс, он уже работал в сбере, считай через связи.
Мне 23. Учу джаву два года, главная заноза в отсутствии диплома. Есть егэ на 290 баллов и я думаю, поступить в рандом вуз или очно или заочно, попутно пытаясь найти работу. Очка отнимет много дневного времени, а заочно учиться на 7 месяцев больше, почти пять лет. Оба сценария хуевы, так как диплом получу только под 30
Где покупают дипломы я не знаю, и вряд ли у меня хватит денег
Или вообще не рыпаться, дальше работать курьером?
Это я и есть походу. Работал в сбере до этого, но даже близко не айти. Алсо тогда меня устроили не напрямую в сбер, а к вендору. Сейчас уже перевели в штат.
Но один парень с моей группы на курсе тоже в сбер вкатился, и он в нём не работал.
Ну расскажи, как вкатывался. Были проблемы с вышкой? Как коллеги относятся, что до 25 не в айти работал?
Уровень, чтоб вкатиться на низ вилки джуновского грейда в сбер ~ 30 лвл на джавараше и прочитанная хед фёст джава
На вышку всем похуй, если идешь на специалиста, а не лида. Коллегам похуй, кем ты там работал и какой у тебя диплом. Есть 60 летние скуфы, которые в 80-х десктоп на делфи писали, есть 20 летние МФТИшники с красным дипломом. В конечном счете со всеми подружишься, если ты не душный токсичный уебан. Чего не знаешь - научат.
Мимо проходящий абмассадор Сбера.
Хуйню какую-то несешь, если честно. Ну типа там инвариант стоит, ты просто никак не засунешь туда null, нахуй тебе тогда проверять его наличие? Наличие пупуни на забудь проверить во всех сетах, а то вдруг.
Даже если ты как-то обойдешь этот инвариант, у тебя всегда есть возможность превратить все это в итератор какой-нибудь и уже там проверить.
К слову, надоели обсуждать вкат в джаву... Обсуждайте её непосредственно.
>Ну типа там инвариант стоит, ты просто никак не засунешь туда null, нахуй тебе тогда проверять его наличие?
Если тебе этот Set откуда-то извне передали, откуда ты знаешь, какие у него там инварианты? Да, в явадоке написано, что contains может выстрелить NPE. Но у HashSet, который приходит в качестве параметра с типом Set в 99% случаев, такого не происходит, и поэтому перед вызовом contains никаких действий не требуется. А тут оказывается еще и на null аргумент метода надо проверять. К тому же интерфейс не разделен на NullPermittedSet и на NullDeniedSet. А вдруг у меня в методе подразумевается, что аргумент Set может хранить null? Как мне указать это в сигнатуре метода? А никак.
Хуйню сделали, короче.
Проблем с вышкой не было, вкатывался через курсы яндекс практикума, предварительно навернув джава раш. Коллеги наоборот говорят, мол круто. Но у нас в команде ни у кого нет айтишной вышки.
Ну эту лазейку в доке насколько я помню сделали не из-за этих Set.of(), а из-за concurrent коллекций. Вот там реальные причины, почему null нельзя хранить.
Хотя, конечно я не очень понимаю, почему бы не возвращать в таком случае сразу false. Мы типа нарушим принцип лискова, тамушта мы можем. Еще проблемы есть с ансапортед операциями, они тоже никак не обозначены. Поэтому типа через remove как-то сделать низя.
Как я вижу, рабочий вариантом, будет или пользоваться итератором или.. Просто ловить ошибку.
>Как мне указать это в сигнатуре метода?
@Nullable))) Правда не то, чтобы это сильно хорошо работает. Но хоть как. В будуууууущем, можно будет просто знак вопроса у типа поставить.
>Хотя, конечно я не очень понимаю, почему бы не возвращать в таком случае сразу false.
Вот именно. Если ты знаешь, что в коллекции не может быть null - значит в contains должен быть early return. Нахуя мне срать NPE в кашу?
>Как я вижу, рабочий вариантом, будет
Запаковывать Set в HashSet. Манал я в рот все остальное.
Всмысле - запускаешь либу? Либа - не программа, как ты ее запускать собрался?
>>67966
>1. Копировать заготовленную папку с статическими ресурсами
>2. Выполнить две баш команды
Все это возможно в любом сборщике, хотя справедливости ради, при пересадки из вышеперечисленных экосистем в джавовую можешь испытать определенный культурный шок - на том же мавене некоторые вещи могут быть менее интуитивными. Но возможно все.
К примеру, на мавене я бы использовал assemble/resources plugin для первого, и exec plugin для второго.
Работаю в тбанке на 350к где-то с дежурствами. Есть стартап на 250к, в котором я уже работал. Он зовёт меня обратно, там, в целом, прикольно по задачам было и посвободнее. Но самое главное, что там полная удалёнка есть из любой страны.
Я нихуя не могу понять, как мне выбрать. Как будто бы в 2к24 круто иметь полную удалёнку на случай пиздеца и иметь возможность свалить.
>проде не слишком много отличий от джавы
Зачем тогда в него погружаться? Та же жаба, вид сбоку.
Давай в скалу
Скала кажется излишне нагроможденной. Также прикол скалы создавать объекты на каждый чих не очень на скорость влияет. Также хз как у скалы со спрингом дела. В котлине понравилась декларативная многопоточность и очень не понравилось отсутствие чекед исключений, непонятно нахрена они так сделали
>отсутствие чекед исключений
Да у них много таких ахутельных решений. Примитивы как-то не вписываются в нашу систему типов? Нахуй вырежем. Теперь сиди и гадай, когда у тебя объект, а когда примитив.
>хз как у скалы со спрингом дела
Ты новый язык хочешь потыкать или очередную имплементацию спринга? Сиди на жабе дальше в таком случае.
>создавать объекты на каждый чих
Если они маложивущие, то не похуй ли? И где там объекты на каждый чих? В скале даже мутабельность легальна.
Ну прекинь, работа не ограничивается спрингом. Бывает и такое.
И оказывается на джаве тоже можно что-то писать без спринга. Чудеса, ты так не думаешь?
>Думаю погрузиться в котлин,проде не слишком много отличий от джавы
На изучение всех тонкостей корутин у тебя уйдет не один год, чел..
>Что думаете?
Работы нет
Чудеса - это мир спринголюбов...
>>На вышку всем похуй
Ну не совсем, похуй только если она у тебя есть(какая именно - уже не важно). Просто обычно особо не спрашивают про такое и это наверняка знает только херка, мб пм/лид.
Either монаде лет столько же, сколько и чекед исключениям. Почему одно легаси и фу таким быть, а другое круто модно молодежно?
Да и вроде там нет трансформеров монад, do нотации нормальной.. Какой-то карго культ, не иначе
Где ты будешь ставить трай кэтчи решаю не я и даже не ты, а разработчик апи библиотеки. Если он решил, что тебе пиздец как надо все обработать, то будь добр. Или оберткой какой-нибудь пользуйся, которая автоматом это сделает.
>Да и вроде там нет трансформеров монад, do нотации нормальной.. Какой-то карго культ, не иначе
В го не используют монады, там просто возвращается несколько значений. И по соглашению если ошибка не пустая, то другие значения не определены и читать их не надо.
Какая же параша, лол. Это литерали хуже джавы, в ней просто поставил try где-то сверху и похуй. В его контексте ты можешь не обращать на ошибки. Ну или добавить в сигнатуру функции эту ошибку.
В вашем же случае, походу приходится каждый раз чекаете, бля а вдруг ошибка пришла. Так еще писать некоторую логику по передаче ее наверх, если обработка сейчас не нужна. Пиздеееец.
Буквально хотели как лучше, но получилась полнейшая хуита.
> И по соглашению если ошибка не пустая, то другие значения не определены и читать их не надо.
Лол блядь. Это вот так выглядит в зумерских головах оптимизация потребления памяти?
Чтобы понять почему одно - легаси а другое нет, нужно немного укуриться в логику.
Вот представь - есть у тебя метод void pupa_zalupa(). У метода есть тельце, и в пограничных случаях это тельце может отрабатывать не так как ты пишешь в коде. Это называется - исключительная ситуация. Во многих языках, включая джаву, в ответ на исключительные ситуации среда генерит исключение. В случае же джавы исключение - это как и все остальное обьект с определенным типом.
Ты - клиентский код, который коллит pupa_zalupa(). Вопрос - нахрена тебе как клиентскому коду в теории может понадобиться знать тип исключения, который pupa_zalupa выбрасывает? Ответ может быть только один - чтобы исключение обработать. Обработать исключение == поймать его, отреагировать на его приход и забыть о нем (отрекавериться).
Но технически, исключения устроены так, что их выбрасывание на определенном этапе сопроводждается сборкой стек-фреймов, которые нужны для того, чтобы показать разработчику уютненький стектрейс чтоб разраб понял, где он обьебался и впоролся в исключительную ситуацию. И сборка стектрейса - процесс нелегкий.
В итоге что же получается. Ты декларируешь эксепшен как чекед, буквально декларируя свои намерения клиенсткому коду - если ты коллишь pupa_zalupa(), изволь обработать IOException. Клиент его обрабатывает и дропает. Усилия по сборке стектрейсов - коту под хвост.
Ты конечно как клиентский код не обязан дропать исключение - ты можешь его и наверх пробросить. Но какой смысл метод pupa_zalupa засорять сигнатурой чекед эксепшенов, если рекавериться из них - зашквар, а проброс наверх анчекед эксепшенами делается и так без усилий со стороны разраба?
С монадными конструктами все честно - ты так же как и с чекед эксепшенами зашиваешь легальные исключительные ситуации в сигнатуру, но в ответ на исключительную ситуацию не кидаешься собирать стекфреймы как дурак.
Впрочем, на самом деле все неоднозначно. В некоторых либах лабают специальные обрезанные чекед эксепшены с оверрайженным пустым fillInStackTrace, как раз чтобы стек трейс не собирался. Сомнительно, но ок.
Чтобы понять почему одно - легаси а другое нет, нужно немного укуриться в логику.
Вот представь - есть у тебя метод void pupa_zalupa(). У метода есть тельце, и в пограничных случаях это тельце может отрабатывать не так как ты пишешь в коде. Это называется - исключительная ситуация. Во многих языках, включая джаву, в ответ на исключительные ситуации среда генерит исключение. В случае же джавы исключение - это как и все остальное обьект с определенным типом.
Ты - клиентский код, который коллит pupa_zalupa(). Вопрос - нахрена тебе как клиентскому коду в теории может понадобиться знать тип исключения, который pupa_zalupa выбрасывает? Ответ может быть только один - чтобы исключение обработать. Обработать исключение == поймать его, отреагировать на его приход и забыть о нем (отрекавериться).
Но технически, исключения устроены так, что их выбрасывание на определенном этапе сопроводждается сборкой стек-фреймов, которые нужны для того, чтобы показать разработчику уютненький стектрейс чтоб разраб понял, где он обьебался и впоролся в исключительную ситуацию. И сборка стектрейса - процесс нелегкий.
В итоге что же получается. Ты декларируешь эксепшен как чекед, буквально декларируя свои намерения клиенсткому коду - если ты коллишь pupa_zalupa(), изволь обработать IOException. Клиент его обрабатывает и дропает. Усилия по сборке стектрейсов - коту под хвост.
Ты конечно как клиентский код не обязан дропать исключение - ты можешь его и наверх пробросить. Но какой смысл метод pupa_zalupa засорять сигнатурой чекед эксепшенов, если рекавериться из них - зашквар, а проброс наверх анчекед эксепшенами делается и так без усилий со стороны разраба?
С монадными конструктами все честно - ты так же как и с чекед эксепшенами зашиваешь легальные исключительные ситуации в сигнатуру, но в ответ на исключительную ситуацию не кидаешься собирать стекфреймы как дурак.
Впрочем, на самом деле все неоднозначно. В некоторых либах лабают специальные обрезанные чекед эксепшены с оверрайженным пустым fillInStackTrace, как раз чтобы стек трейс не собирался. Сомнительно, но ок.
>проброс наверх анчекед эксепшенами делается и так без усилий со стороны разраба?
Ты лукавишь. Проброс чекед эксепшенов пробрасывает и информацию наверх. Ты наверху точно будешь знать какие к тебе придут эксепшены и что тебе надо обработать. С анчекедами это не так.
>но в ответ на исключительную ситуацию не кидаешься собирать стекфреймы как дурак
Т.е. для тебя весь плюс - это.. Сбор стекфреймов? Но типа монадные конструкции не собирают его не потому, что они такие ахуенные и перфомансные, а просто потому, что не могут. Control flow, точка с запятой пресловутая, обычно характерна для языков императивных, но обычно где есть нормальные монадные штучки и императивности тоже нет. Тогда и смысл собирать стек теряется, поскольку порядка-то вычислений нет...
В го это конечно не так, но там и Either крайне убогий. Такой и в джаве легко можно сделать, что показывать я не стану, поскольку вы жаваны неблаходарные.
>с оверрайженным пустым fillInStackTrace
Там же просто один флажочек поставить, пик. Не оч понял про что ты.
Короче, если плюс помимо возможного перфоманса нет, то ну нафиг. Условно жвм умеет оптимизировать стектрейсы уже давно.
Давай еще какие-нибудь плюсы придумай))
> Такой и в джаве легко можно сделать, что показывать я не стану, поскольку вы жаваны неблаходарные.
Проиграл с того как этот даун называет круговое обоссывание за бесполезную бойлерплейт тормозную хуиту.
Да пошел ты. Я вообще не понимаю хули вы про меня помните. Я тут полтора блять месяца не был.
>Там же просто один флажочек поставить, пик.
Флажок прощелкал, каюсь. Я в сорцах разных фреймворков видел - делают разные Signal extends Exception, и в них кастрируют fillinStackTrace.
>Но типа монадные конструкции не собирают его не потому, что они такие ахуенные и перфомансные, а просто потому, что не могут
Странный какой то наброс... не могут. Не не могут, а не хотят, им это не нужно. Нахуя? Монадки на то и монадки - там где ты зависишь от языковых фичей и вынужден соответствовать, монадки тебе позволят хоть так хоть эдак делать. При желании монадками и стектрейс можно было бы собратью
Просто есть два принципиально разных типа исключительных ситуаций - recoverable и неrecoverable. В первом случае надо просто форсить компилятором обработку таких исключений (которая в 99% случаев подразумевает восстановление из исключительной ситуации в нормальную). Во втором - наоборот: control flow зло и эксепшен дролжен прошить все слои и пиздануть глупого девелопера по ебалу стектрейсом. Посередине нихуя нет. Для второго случая лучше анчекед эксепшенов нихуя не придумано. Первый случай мы тут обсасываем.
Ну и не то чтобы я настаивал на том, что прям нужно экономить на спичках. Просто насколько я прокурил эту тему, раньше с этими стектрейсами были прям проблемы, из-за чего и сложилось это правило, что control flow via exceptions is evil. Ну и плюс история все таки все равно развернулась в сторону монадок - попробуй ка поработай в стримах с чекедами. Заебешься.
>Для второго случая
Они кстати на Error по твоему описанию похожи.
>control flow via exceptions is evil
Я кстати думал, это из-за плохой репутации goto. Мол типа мы из кода лапшу делаем, а это плохо.
>попробуй ка поработай в стримах с чекедами
Вот тут согласен. Но тут наверное больше идет то, что джава изначально была без фп штучек и вот оно как-то криво состыковалось в итоге.
К слову эта ситуация вообще говоря несколько уникальна, поскольку трубет смешения двух эффектов: множественности значения и существование ошибки.
Попробовал такое смешение вообще сделать: няшно выглядит. Пишешь будто никаких ошибок вообще нет. Просто простые примерчики и усе.
Сам код: берет некий массив, создает в нем двухэлементное окно. Типа [1,2,3] => [(1,2),(2,3)].
Потом divide правый элемент каждой пары на левый элемент. И наоборот. Полученные два результата опять делим друг на друга.
В процессе этого, они могут поделится на ноль и таким образом образоваться ошибка.
И вот думаеца мне, что на го код для данной задаче не будет особо короче джавового. Поэтому, ну простое введение Result ничем не поможет: будет та же хуйня с кучей вложений и лишних обработок.
> Во втором - наоборот: control flow зло и эксепшен дролжен прошить все слои и пиздануть глупого девелопера по ебалу стектрейсом. Посередине нихуя нет.
Ещё один маня-теоретик повторяющий за блохерами из ютуба высрался. Как всегда приправил токсичностью в сторону себе подобных, пидорюндель ебаный. Давай, объясняй, почему положить микросервис нахуй лучше, чем отправить клиенту сообщение о внутренней ошибке и залоггировать ошибку.
@
ВСТАЛА ВСЯ БОЛЬНИЦА
>>Усилия по сборке стектрейсов - коту под хвост.
если стектрейс по коду не вызывается - он и не собирается
https://www.youtube.com/watch?v=2OJXRwtjfg0
>>Ты наверху точно будешь знать какие к тебе придут эксепшены и что тебе надо обработать. С анчекедами это не так.
Как быть если мне похуй какие там исключения, я не собираюсь их обрабатывать? Если жсон не спарсился - я не буду вызывать другой парсер, я просто выкину 500 клиенту и пукну стектрейсом в лог.
Паджит Дривен Девелопмент лол
Правда в том, что он из-за наличия топ-левел принтеров исключений в фреймворках собираться может всегда, и на этапе компиляции гарантированно вычислить, будет ли в тот или иной момент собираться невозможно из-за нерешаемости проблемы остановки.
Есть разные чекед исключения же. Вот для меня например важное, чтобы вот это https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html было в сигнатуре функции. И я точно знал, что неплохо бы тут подумать над тем, как оно будет прерываеться.
А вот в котлине тебе надо это помнить, забыл: в лучшем просто ошбика утечет наверх, в худшем же у тебя тред не завершит работу и будут утечки.
А насчет жсона, если большинству клиентов этого апи похуй на эти исключения и они их просто подавляют, возможно просто дизайн неудачный или сделан не для людей, ака jdbc.
Так и не понял кстати что делает вызов interrupt() в ранабл в ответ на исключение. Остановится ли тред сразу,остановится ли только таска и тд. Тяжело
>что делает вызов interrupt()
Восстанавливает флажок того, что тред был прерван, поскольку исключение IE делает этот флажок = false. В основном это нужно, чтобы наверх передать, типа информацию не терять. Нооо, смотря кишочки всяких разных тредпулов и фючеров, я не заметил, где эта информация вообще применяется. Наверное можно считать это правилом хорошего тона.
> Восстанавливает флажок того, что тред был прерван, поскольку исключение IE делает этот флажок = false
Наоборот же,тред по умолчанию не интерраптед,а исключение просто оповещает что снаружи тред хотят прервать
Смысл в том чтобы ты не мог создать объект. Типо хочешь создавать объект— наследуйся. Мб это для фабрик актуально
Они у большинства такие, ибо это нахуй никому не нужная инфа, пхпхп.
Ну ты выделил условие при вызове вейт метода,а ниже написано что статус будет установлен если ни одно из вышеуказанных условий не выполняется
>Они кстати на Error по твоему описанию похожи.
Error это совсем крайность - это когда не то что обработать - перехватывать их особо смысла уже нет. Анчекед эксепшены перехватывать смысл может быть - например чтобы собрать в контексте вызова дополнительную инфу из локальных переменных и прикрепить к эксепшену, трейсов насрать, и.т.д. Впрочем, перехватив, ты обязан прокинуть его наверх, иначе коллеги тебе ебало набьют.
> Но тут наверное больше идет то, что джава изначально была без фп штучек и вот оно как-то криво состыковалось в итоге.
Дык монадки то и пришли из ФП-штучек. И не от хорошей жизни они туда пришли. Ты попробуй ка спроектируй методы на Stream API таким образом чтобы они чекед эксепшены поддерживали? Скорее всего ты просто засрешь апи - у тебя вместо мап будет мапЧекед и мапАнчекед. А монадки в паре с дженериками эту проблему решают
Токсичный здесь только ты. Я бы мог пояснить тебе за твой вопрос, но ты сам задал тон дисксссии. Пошел нахуй.
Хм, интересно..
>Ты попробуй ка спроектируй методы на Stream
Ну вообще что-то сделали: https://www.baeldung.com/exceptions-using-vavr по виду вроде неплохо выглядит. Правда пользоваться я таким не буду.
Короче. Просто смотришь в кишки(пик1). Вот, флажок. Он ставится. Потом этот флажок смотрят остальные методы, обычно через interrupted(), корторый этот флажок снимает, ну и вызывают соответсвующее исключение. На пике3 пример реализации Condition. И там как раз лок саппорт.
И вообще я не очень понимаю, что именно ты хочешь, доказать, хм...
Хотя 3 пик не совсем то. Вот тут ошибка непосредсвенно вызывается. Т.е. он следит за тем прерывал ли кто-то тред, сохраняет этот флажок, в конце ебашит исключение.
Object#wait примееерно также работает, просто на уровне jvm.
Так вот именно! В вавре и так комбинаторный адок с Functionами и Tuple'ами из-за того, что надо по отдельному классу на кортеж и функцию с N-ным количеством параметров... Так теперь еще из-за чекед эксепшенов есть серия классов CheckedFunction. И да - они декларируют в сигнатуре чекед эксепшен. Но толку то, если он там throws Throwable.
И самый главный прикол этого CheckedException - методы lift/liftTry. Которые суть - читерство, для того чтоб эксепшоны в уютную монадку Try упаковать.
>Делаю лабу по Джаве
>Поскольку я нихуя не шарю в программирование
А нахуя поступал тогда, лол?
Чет тип пика, наверное.
Спасибо за помощь, анон. Только я нихуя не понял. Когда в классе родителе есть метод, который мы хотим изменить в классе-наследнике, мы переопределяем его. Но нахуя вообще нужно переопределение, если можно ёбнуть перегрузку метода, без этих ваших @Override?
>Когда в классе родителе есть метод, который мы хотим изменить в классе-наследнике, мы переопределяем его.
Ну... Нет. Переопределение просто одна из форма ad-hoc полиморфизма. Его делают обычно, чтобы поддерживать несколько типов не связанных между собой иерерахией.
Вот не знаю, хочешь ты сделать метод который складывает два числа, сделал пик1. Потом думаешь, а почему бы мне не расширить его еще до лонгов и не знаю, для дабл.. Выходит много много методов пик2. В принципе, больше не для чего тебе переопределение не понадобится. На пик3 наглядно, как его используют в жаве.
Перегрузка тоже форма ad-hoc полиморфизма, просто в ней меняется не тип, а алгоритм, который зависит от контекста, где он находится(класса). И да, тип параметров при перегрузке можно менять, пик4.
Спасибо за пояснение, анон.
Бля, спасибо анон. Ты прям очень выручил. Я уже пропустил это ебаное задание, и пошёл дальше, и там такой хуйни с закрытыми полями нет.
Да не за что. Я тут сам буквально вчера ебался с ебаным ажаксом и шарпом. Сука какое же лютое говнище пиздец, до сих пор горит. Сиди копайся в кишках, непонимая какого хуя это не работает, просто ррря. Никогда такого в няшной жабке не було, в ней хотя бы документацию люди пишут, а не майки.
Чет дохуя возни
Короче я придумал записывать поля enum-ов так же как у record-ов, а слово class в декларации enum-а сделать необязательным.
К слову, я хоть и нихуя не разбираюсь в программировании, чтобы что-то там судить о языках, но C# понравился мне больше. Я вообще с него вкатывался в эту тему, но успел изучить немного, всякие там типы данных да массивы. Потом, когда поступил в ВУЗ, Java стала основным языком на учёбе (в смысле, она по дефолту много где шла). И мне не очень нравилось, что если в том же C# достаточно написать Console.ReadLine, то в джаве нужно аж ёбанный объект класса Scanner создать. Впрочем, сейчас эти "различия" уже не кажутся мне чем-то критическим.
>поля enum-ов так же как у record-ов
Думаю слишком большая вложенность скобок будет. Представь твоему енуму поле сделать и будет подобное:
enum Enum(One(1), Two(2)){
int num;
}
Плюс это каких-то явных преимуществ не даст, просто измнение синтаксиса ради измнения синтаксиса. В общем сомнительно, что его приняли бы.
>class в декларации enum
Про что ты?
>>72327
Я не собираюсь холивары разводить. Просто сгорело, вот и усе.
Не, я не ради холиваров это написал. Я скорее к тому, что таки выбор любимого языка, в ряде случаев, происходит по каким-то своим внутренним ощущениям. Мне C# показался как-то интуитивнее той же Javы (с высоты своего небольшого опыта). Тебе, судя по всему, Java заходит куда больше. Каждому своё, в общем.
>Думаю слишком большая вложенность скобок будет
Ты пупуня совсем? Это будет выглядеть так
public enum State(@JsonValue String jsonRepr) {
UP("up"),
DOWN("down")
}
Да-да. Она самая.
Не ну выглядит интересно, но таким образом ты забираешь возможность поставить модификатор доступа. Или предлагаешь как в record все пабликом сделать?
>Или предлагаешь как в record все пабликом сделать?
Не думал об этом. Я думал о том, что все поля все равно неявно final, так что по духу близко.
>что все поля все равно неявно final
Ну на данный момент в енумах они могут быть и не финальными.
Так что ну как я вижу это огромное препятствие, ведь затрагивает обратную совместимость, если конечно не оставлять изначальный синтаксис, что-то типа свитча получится, который несколько синтаксисов сразу поддерживает.
Еще лично мне в енумах не хватает только поддержки женериков....
>Еще лично мне в енумах не хватает только поддержки женериков....
Емумы с поддержкой женериков - это силед-классы)
Шутка.
Залетух...
1. Скобки на сосаче не используются.
2. Отчитываться о том, что твой пост является шуточным не принято, т.к. особо сильных последствий даже от самого жирного троллинга нет.
>1. Скобки на сосаче не используются.
Нашел до чего доебаться. На тебе тире как вы все любите ---
>2. Отчитываться о том, что твой пост является шуточным не принято, т.к. особо сильных последствий даже от самого жирного троллинга нет.
Так местные чето какие то слишком серьезные дохуя. Начнут щас на серьезных щщах доказывать еще что силед - говно а емум - заебись, вперемежку со своими загонами и подрывом жоп.
Какой положняк по вкату в Джаву в 2024м?
Через постель разве что.
Вводные: высшее образование в сфере ИТ, общий стаж работы там 9 лет, из которых 7 лет писал бекенды на гавноязыке в VS Code. Смежные технологии, на которых работал - git, docker, rabbit, redis, pgsql, kubernetes (в меньшей степени)
Жёлтые пидорасы, у вас лк лежит. Как же заебала эта хуйня, опять в интернетах что-то не работает...
Починили. Читают.
Диплом без троек с профильного вуза, хорошее знание алгоритмов и структур данных, уметь решать задачи на графы на листочке, стаж работы от 3 лет с подтверждением в трудовой, ну и естественно знания всех сопутствующих технологий.
И че? Снова нихерища интересного.
Даже превьюшка про примитивы в свитчах - это то, что должно было быть изначально, а не спустя N лет. Да и прошло уже больше года с того момента как ввели эти свитчи, я как-то за это время наигрался с паттерн матчингом, нет такого восторга от жабы, эхх.
Эти ебанаты собираются виртуальные потоки фиксить или быдло и так схавает,неча барское время на это тратить?
Попробуйте написать
Stream.of("jetbrains", "jret", "jovno").map().toList()
Поставить курсор внутри map и написать trim
Я в ахуе просто.
Работало в предыдущей версии, иначе бы я не обратил внимание. Теперь еще и пофиксят хуй знает когда.
>Надо перед точкой ставить.
Чего блядь?
Я в java после си. Так вышло, что там на всё это используется просто массив символов(обычно для этого делается конструкция вида char* str=malloc(...)). Из-за этого не совсем понятно, что и когда использовать.
Я им блядь штук 20 тикетов сделал с аккаунта с аватаркой ПЫНИ блядь, всё приняли, что за нахрюк?
Перформанс низкий будет.
Пруф.
@PostMapping
public ResponseDTO test(@RequestBody RequestDTO request) {
try {
return someService.execute(request);
} catch (Exception e) {
anotherService.save(request);
throw e;
}
}
Короче ясно,хомячки и так схавают,а у оракла есть задачи поважнее, ещё столько фич из скалы не спизжено
String используем бай дефолт. Остальное зависит от условий.
Если нужна мутабельность, часто изменяем строки - StringBuilder.
Если мы сохраняем конф. инфу, типа пароля - CharSeq/char[].
Обычно так, вроде. И свои строки не надо делать. Они в любом случае будут хуже стринга.
Мой тоже, кста приняли. Но показывать я его не буду, потому что жаваны злые и опять меня затравят. Себе дороже.
Да вроде кидают эксепшены. А вот трай кэтчи заменяется обычно обработчиками. Тип того https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
Кидают эксепшены всегда,главное обработчик написать. Почитай про контроллер эдвайс
Инфиксные методы, например. С их помощью можно дслки начать делать. Ну или знаешь, написать универсальный метод, который бы брал какое-то значение и применял к какой-то функции, пик 2 типа. Существую такой метод, не нужно будет ручками делать паттерны типа билдеров или аля стримы.
>>74359
Я кстати не понимаю, зачем оракл вообще пошел в сторону функциональщины. Реально проблем важнее нет?
Тут прочитал. У меня акка JB нет, чтобы тикеты им заводить.
https://habr.com/ru/news/825052/comments/#comment_26981856
Благодарю
У меня тоже нет, я просто из гитхаба взял. И хуй знает, повторюсь, у меня приняли даже не стали бухтеть, что я шиз это хуйня или то, что я узкий.
>зачем оракл
Оракл ничего не выбирает. Он только деньги башляет (и собирает, за платную сборку оракл жидкей). Выбирает Брайан Скуфц. Де-факто несменяемый диктатор джавы. Любое изменение в джаве делается с его позволения.
Ну окей, вопрос-то тот же. Зачем гетцу это надо? Можно было и дальше продолжать топить в чистое ооп, зачем эти заигрывания с фп...
Спроси его. Как по мне что функциональщина, что ООП имеют фундаментальные ограничения (но функциональщина побольше). Правильный стиль кода это стиль си с использованием ООП и прочих неуниверсальных парадигм по необходимости.
Ява как обычно всех выебала.
Чел просто пиздит о том, что не понимает. Вот первый же тезис говно. Сука, для этого придумали монады и этот бойлерплейт скрывают, называя эффектом. В нормальных языкам тебе блять не надо писать ифы или матчить это как-то, там за тебя все сделали.
На счет системных ошибок - есть MonadFail.
Дальше хуйня про перфоманс - похуй. Эти сравнения в вакууме ничего не стоят.
>Сука, для этого придумали монады и этот бойлерплейт скрывают, называя эффектом
Так это в функциональных языках. Без do-нотаций монадки не такие няшные.
Ты мечешься от одной крайности к другой просто. Нужда в монадках в твоем языке появилась, когда появились стримы. Ты мог бы сказать что и стримы вводить была хуевая идея, но стримы не от хорошей жизни вводились.
Че ты хочешь от айтишки - айтишка одновременно самая клоунская и самая консервативная область деятельности человечества. Анальникам понадобились десятилетия чтобы понять, что вечно на императивщине сидеть не получится, не вывозит она современные реалии. А просто слезть и пересесть на хаскель, где всю дорогу всё было, не позволяет зашоренность и предвзятость мышления. В конечном итоге имеем опять клоунский торг длиною в десятилетия, где в джаву завезли уже стримы, лямбды, комплитаблфьючи и продолжают завозить всякое прочее стракшерал конкарренси (и я почти уверен что рано или поздно завезут и дунотацию, но не скоро), а хомяки переизобретают гоу, делая его таким же императивным, каким они привыкли видеть разработку.
>но стримы не от хорошей жизни вводились
А конкретнее? Вроде форы не настолько неудобные да и многие задачи чисто через стримы сложно решать.
>и стримы вводить была хуевая идея
Монада листа и без do нотации вполне юзабельная. Вот Optional вот это да, не пришей к пизде рукав.
>Че ты хочешь от айтишки
Мне просто не совсем нравится тенденция, когда вот видят фичу в каком-то языке. Видят, что она хорошо работает и выдергивают без контекста в свой язычек. А потом удивляются, а че она так плохо работает-то. Хуже будет только, если эту не очень хорошо работающую фичу будут проталкивать на безальтернативной основе. В жаве со стримами и пр. это хотя бы не так.
Почему на JAVA больше откликов на вакансии чем на других языках? Разве это не один из самых сложных языков для больших систем?
Ты посмотри сколько откликов на питухон, например. Джава не только относительно сложный язык, но ещё и популярный, в большой троице.
Какой же ты блядь даун несущий несусветную пургу с умнейшим видом. Типичный порридж с синдромом Даннинга-Крюгера. Один вид поста со смыслом, но под ним нихуя. Ёбаный имитатор-позёр.
>ты блядь
>даун
>порридж с синдромом Даннинга-Крюгера
>Ёбаный имитатор-позёр
Я ведь обижусь...
>умнейшим видом
Врешь ты. Дефолт пост, точнее ну сколько не перечитывал, искренне не могу понять, где вы тут подобное находите.
>Вроде форы не настолько неудобные
Это пока ты линейно по коллекции конечной длины бежишь. Ты конечно паралеллизм и в тушке фора раскорячить можешь, но на то оно и ФП чтобы делать потоковую обработку данных за адекватное количество бройлерплейта.
>Мне просто не совсем нравится тенденция, когда вот видят фичу в каком-то языке. Видят, что она хорошо работает и выдергивают без контекста в свой язычек
Чел, расслабься. У тебя просто нет другого выхода и все. Написать новый язык не выход никогда. Да и инертность мышления программистишек - данность, кто бы что ни говорил. Программисты как лабали структурное программирование в 70х, так и продолжают это делать вопреки тому, что многие проблемы современной разработки императивщиной решаются из рук вон плохо. В таких условиях черри-пикать фишки из других парадигм - единственное что тебе впринципе остается. У тебя нет никакого выбора.
Чем больше тупорылых фич добавят оракл,тем яростнее будет наш щитпост в джаватреде
Да вам не угодишь. Добавляют фичи - у джаванов в треде яростный щитпост и тряска. Перестают добавлять фичи - в тред набегают орды шарпеев а джаваны перекатываются в гоферы. Вы там блять определитесь уже.
Еще одна проблема в том, что по спецификации внешнего сервиса, с которым мы будем делать интеграцию, запрос авторизации выглядит так: client_id=123123123&client_secret=ABCDEFGHIJKLMNOPQRSTUVWXYZ&grant_type=client_credentials&scope=read%20write
А по спецификации oauth2 client_id и client_secret передаются в параметрах авторизации, а не в параметрах формы. Как это сделать?
Лично я хочу чтобы в массивы добавили метод .stream() чтобы не пользоваться статическим методом и починили виртуальные потоки,все,мне больше ничего не надо,пусть сосредоточатся на Вальхалле и подобных масштабных проектах,или ядро оптимизируют без трат на тысячи версий джавы в год
По вопросу складывается впечатление что ты не понимаешь о чем спрашиваешь. Ты хочешь сказать что у спринг бута и спринг клауда есть стартеры для оаус2?
А что не так со статическим методом? Не по понятиям?
И в каком месте виртуальные потоки сломались?
У спринг клауда есть spring-cloud-starter-oauth2, погугли. У спринг бута тоже есть они:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-authorization-server</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
<version>${spring.boot.version}</version>
</dependency>
Ну конкретно в клауде,авторизейшн сервер выдает токены,а ресурс сервер хранит защищённые данные к которым ты запрашиваешь доступ с токеном который получил от авторизейшн сервера. Подозреваю что в спринг бутовом стартере просто готовые классы для работы с оаусом без разделения на такие четкие амплуа
Наоборот получается,у бута разделение,а у клауда общее*
Лично я просто сидел до какого-то времени на 8 версии, поэтому на личном опыте помню, что появилось после. Плюсом к этому знаю некоторые различия в кишках.. И еще на паре версий сидел. +- понимание версионности появилось.
В любом случае фич после 8 не много, да и нахуя спрашивать о том когда-то что-то появилось. Хуйня какая-то.
Попробуй напиши маленький пет, чисто на 8. Без спринга. Можно и без веба. Потом впечатления мне же тут распишешь.
Да никто кроме залетух мимикрирующих под заплесневевших дедов на фичи не жалуется. Настоящие заплесневевшие деды типо меня ноют, что фич мало.
С зависимостями разобрался, буду использовать спринг бут. С клаудом бут совмещается очень плохо.
Осталось разобраться, как правильно принять запрос авторизации. По документации запрос на получение токена выглядит так: client_id=123123123&client_secret=ABCDEFGHIJKLMNOPQRSTUVWXYZ&grant_type=client_credentials&scope=read%20write
Это можно записать иначе:
curl http://localhost:9000/oauth2/token -F client=123123 -F client_secret=ABC -F grant_type=client_credentials -F scope=read write
А нужно:
curl -u 123123:ABC http://localhost:9000/oauth2/token -F grant_type=client_credentials -F scope=read write
Как это реализовать?
Много, но не синергирующих друг с дружкой фич тоже не надо. Будет свалка уровня cpp. Пусть реально большую часть усилий сосредодрочат на ебаной вальхалле.
>>75409
Возможно оно? https://www.baeldung.com/spring-security-custom-oauth-requests
Помню когда кейклок настраивал чет такой хуйней не занимался..
Опять ты? У тебя личный пунктик или что? В любом случае давай конкретнее. Я не понимаю какой именно тезис тебе снова не понравился
>нихуя не понял, уточни
Исключительно проблема твоей манеры отвечать на миллион постов одним постом.
Ну заебись же я щитаю. Типа знаешь решение n+1 проблемы, вмето миллиона запросов на миллион обжектов, всего один, пхех.
И не хочешь говорить и ладно.
Какие поломки обратной совместимости? Стринг темплейты были превью их и выперли на этом праве. То, что вы постоянно лезете в детали реализации и ноете, ноете и ноете о том, что ррря как можно их менять реально надоедает. Просто берешь и не лезешь в приватное апи. Это же просто и легко.
>выперли на этом праве
А давайте сделаем вообще всю джаву превью и можно будет ломать что угодно! Блядь, не опускайся до уровня шарподаунов, у которых всё что не кроссплатформа выписано из дотнета.
Ты щас сам психуешь как пубертатный масленок у которого конфетку отняли. Даже потешно.
Не стыдно?
Ну и нахуй ты порвался?
Про то, что превью может быть даже отменено писали очень давно. Тебе даже специально вставили кучу палок в колеса, чтобы ты не запустил превью код легко и не смешивал его с нормальным.
По мне это правильная тенденция, чтобы на вас жаванах тестить фичи и хотя бы их менять, без тестирования и фидбека хуево.
>до уровня шарподаунов
Без понятия как там в шарпе. Я на нем не пишу.
А может быть лучше было бы не вставлять палки в колёса, но и не отменять нихуя?
Если б ты хоть раз коммерческий код для клиентов писал, ты б не задавал таких тупых вопросов.
Погугли пирамиду аргументации прежде чем в серьёзные дискуссии взрослых людей суваться.
Тогда бы ты вообще не получил стринг темплейты.
Да и вообще. Нормальная причина же. Сказали что, хуйня получилась, давайте отменять.
И смотри какую няшу планируют:
https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html
Жди, не трясись. Все будет лет через 5
Теперь осталось только придумать синтаксис для превращения StringTemplate в String
$"foo \{bar}"
"foo \{bar}".toString()
Или вообще неявное преобразование
С такими запросами как раз нейросетки лучше всего справляются.
Прочтение без практики бесполезно.
И как тебе впечатления в общем?
Лично мне вот 16 глава больше всего понравилась. До сих пор частенько перечитываю.
Хотел написать что 16 глава самая норм,имхо ее надо было в самое начало вставить. В целом это было сложно,но определенные знания я почерпнул,хотя я рассчитывал что вся книга будет целиком про кишочки,а оказалось это этакий обзор классов джавы
Кмк в начале 16 гл. уж точно не место, она только запутает неофитов этим happen before. К слову в ней не так много объяснено и очень многое упрощено.
Вот из кишочков до сех пор помню показанные алгоритмы, типа неблокирующего стека и листа. Очень прикольные штуки.
>а оказалось это этакий обзор классов джавы
В ней еще годно классифицируют типикал канкаренси ошибки.
1) Потому что OIDC это стандартизированое расширение OAuth 2.0 для аутентификации, тогда как OAuth 2.0 предназначен для авторизации. Более того большинство компаний уровня гула и фейсбука юзают OAuth 2.0 для аутентификации своим личным нестандартным способом, как ты говоришь.
2) OIDC отличается от OAuth не access токеном а ID токеном.
Тогда что можно сказать про код снизу?
public class QWE
{
public static interface III
{
public int fi(int a, int b);
}
public static III i1= new III(){ public int fi(int a, int b){return a*b;} };
}
Потому что вопрос ебанутый: почему теплое если можно мягкое.
Я тебе ответит на корректную часть вопроса
>Нахуй нужен OpenID Connect,
Потому что OpenID Connect это стандарт, поэтому он нужен. Для стандартного протокола. Например берешь keykloаck и используеш для аутентификации с совместимымы клиентами, а не городишь свои велосипеды.
Велосипедность уже в том что ты хочешь access token для аутентификации использовать. А в нормальных схемах безопасности у токенов есть разграничения скоупов. Для получения минимальной инфы об пользователе в OpenID Connect используется специальный ID token
>Велосипедность уже в том что ты хочешь access token для аутентификации использовать.
Я не то, что хочу, у нас уже на проекте так сделано. В access_token есть id, имя и email юзера. И у нас используется keycloak.
А если юзер поменяет имя или емейл? Че вы с этими токенами делать будете? Я не понимаю нахуя пихать в токены неиммутабельную информацию.
По факту эти клеймы никак не используются (кроме id). Просто непонятно, почему так.
В чем вопрос? Код как код, можно лямбду использовать, вместо анонимного класса.
>не имеют конструкторов
Нахуя им конструкторы, если у них нет состояния? Может тебе абстрактные классы нужны?
В этом и суть, что в коде есть нечто похожее на объект какого-то класса: присутствует оператор new и имя со скобками.
Повторюсь, вопрос-то в чем? Ты это читал? https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html