Господа джава бояри, а есть какой-то аналог типа pipx, когда ты ставишь либу, один раз запускаешь и удаляешь её? Какой-то пакет-скрипт для командной строки?
Вкатывался в джаву год, потом сделал перерыв на 3 месяца ибо тупо выгорел, сейчас у меня тряска ибо я за год не чувстувую уверенность и не пробую откликаться из-за этого.
У меня лютая тряска, мне страшно, у меня даже мысли быстро начать вкатываться в питон ибо дажва это сложно и там банки и в банках все серьезно и там 30+ геодезист нахуй не нужон, а в питоне может быть нужон ибо конторы там попроще.
Анон, молю, помоги унять тряску годным советом и подскажи как мне действовать.
Сложность в том что у меня нет абсолютно никаких знакомых кто хоть каким-то боком причастен к айти, тупо не с кем посоветоваться.
>>3268008 Сравнительно как раз в джаве, судя по всему, не так. Но по сути ты никуда не вкатишься, ни в джаву, ни в питухон одновременно. 0% шанса вката = 0% шанса вката.
>>3268031 Да забей ты хуй на мнение жаванов. Они вкатились сто тысяч лет назад и нихуя не знают как там сейчас. Просто боятся, что их места пригретые заберут. Просто ебашь не обращая внимание, и все.
>>3268031 > И куда тогда вкатываться? В продолжение сидения на шее мамки, лол. В 2024 ушёл последний вагон уже не просто на работу в айти, а на работу в принципе. Работы нет нигде. Разве что донный пиздец типо курьерства.
>>3268045 У тебя определенно есть скрытый талант к юмору, скрывай его и дальше. >>3268049 Ну вот и нахуя просто сидеть на шее, если в этом время можно штудировать какие-нибудь задачки с литкода, потом контест яндекса/тинька решить и стать стажером. Но нет, у жаванов работы нет, тлен безнадега. Специально людей дурят.
>>3268054 > У тебя определенно есть скрытый талант к юмору, скрывай его и дальше. На вопрос не ответил, школьник.
> Ну вот и нахуя просто сидеть на шее, если в этом время можно штудировать какие-нибудь задачки с литкода, потом контест яндекса/тинька решить и стать стажером. Но нет, у жаванов работы нет, тлен безнадега. Специально людей дурят. Дооо, дооо, тебя обязательно возьмут стажёром за 30к если ты несколько лет будешь дрочить литкод, стоит только верить!
>>3268058 Невозможно быть таким тупым. Ты определенно бот или нейронка. Жаль тебя как в по нельзя по id скрыть. >>3268059 Мимо жаван, я ненавижу шарп, го, петухон и все остальное, что ты собираешься приплести. И по факту вы не ответили. Просто говорите челику смирится и нихуя не делать. Это контрпродуктивно и не имеет смысла. Я же предлагаю просто делать не обращая внимания на такую гниль как вы, которые всегда будут против чужих начинаний. И даже конкретный путь предложил.
>>3268060 > Это контрпродуктивно и не имеет смысла. Контрпродуктивно годами долбиться в стену веря в силу срынка и мрия о 300к/наносек когда-нибудь, лахтопетушок.
>>3268060 > Я же предлагаю просто делать не обращая внимания на такую гниль как вы, которые всегда будут против чужих начинаний. Каждый божий день удивляюсь от того насколько мерзким может быть человек. Просто блядь пиздец. Этот хуесос блядь предлагает потратить годы жизни НА ПОПЫТКУ блядь получить СТАЖИРОВКУ блядь чтобы после стажировки ЕЩЁ РАЗ ПОПЫТАТЬСЯ блядь вкатиться. Пиздец. и смеет кого-то блядь называть гнилью. Сука, харкнул в ебало мрази.
>>3268070 Да, а другой человек предлагает эти годы потратить на... Сидение на шее? Вы бы блять для начала что-то адекватнее предложили. Лучше годы тратить на такое, чем просто замыкаться в себе или ебашить всю жизнь на дноработках. >>3268064 Если это в конечном итоге принесет результат, я предпочту долбится в стену.
И да, я вообще не ебу причем тут лахта, у нее риторика как раз обратная, ровно как у вас. Стоит смирится, не стоит качать лодку, сверху все решили и тд.
>>3268072 > Да, а другой человек предлагает эти годы потратить на... Сидение на шее? Вы бы блять для начала что-то адекватнее предложили. > Лучше годы тратить на такое, чем просто замыкаться в себе или ебашить всю жизнь на дноработках. Ты в любом случае будешь сидеть на шее, маня достигаторская. Только свои лучшие годы просрёшь на попытки ухватить журавля из неба вместо того, чтобы чиллить.
> Если это в конечном итоге принесет результат, я предпочту долбится в стену. Долбиться в стену и результат это противоположные понятия, олигофрен.
> И да, я вообще не ебу причем тут лахта, у нее риторика как раз обратная, ровно как у вас. Стоит смирится, не стоит качать лодку, сверху все решили и тд. Ну да, власти ведь совершенно не выгодно чтобы ты забесплатно батрачил и верил в светлую жизнь завтра, лахтогной.
>>3268076 >Ты в любом случае будешь сидеть на шее, маня достигаторская. >забесплатно батрачил Ты там определись. >вместо того, чтобы чиллить. Нахуя их тратить на чилл? Можешь даже не отвечать, я не пойму в любом случае. >Долбиться в стену и результат это противоположные понятия Я по своему опыту решения разных олимпиадок говорю. Сложно предеать, но.. Да и не надо.
В общем, картина пациентов понятна. На етом все. Я устал
>>3268085 > Ты там определись. И где ты противоречие увидел?
> Нахуя их тратить на чилл? Можешь даже не отвечать, я не пойму в любом случае. Ну да, бесплатная шлюха не поймёт, зачем жить в своё удовольствие. Смысл жизни в том, чтобы заработать на золотую ручку олигарху!
> В общем, картина пациентов понятна. На етом все. Я устал Слив принят, достигатор. Не забудь зайти через полгода таким же безработным чмом продолжая уверять нас всех, что вот завтра ты вкатишься.
>>3268097 Там где-то раз в квартал создает новый контест, типа осенний 2024. И вот за к примеру 3 месяца тебе надо успеть прорешать 5 задач. Проблема в том, что 5 задач надо решить одновременно и за скажем 5 часов. Плюс каждую на 100 баллов. Тогда возьмут в стажеры. В общем-то почитай правила на самом сайте, они там где-то наверняка есть. Есть варик со стажерством чуть проще - это вузы. Сам вуз может через практику сделать тебя стажером.
>>3268116 > Проблема в том, что 5 задач надо решить одновременно и за скажем 5 часов. > Плюс каждую на 100 баллов. > Тогда возьмут в стажеры. Самонеуважение вкатунов-мечтателей не имеет границ...
>>3267953 Причина тряски? У меня знакомый в жаву вкатился в 27 и его забрали с первого собеседования. Не прыгай с хуя на хуй. У тебя уже есть какие-то знания по джаве, развивай их. Толку все сливать в унитаз и вкатываться в калькулятор?
>>3268274 До 2022 вкатиться было в разы легче. И вообще экономика другая была. Ты хоть интересовался, как у твоего кабана с финансами сейчас? Будет у тебя завтра работа?
>>3268017 И без тебя жука обосраного молодого тошно.
>>3268274 >Причина тряски? Тревога за будущее и неуверенность.
>Толку все сливать в унитаз и вкатываться в калькулятор? Я понимаю это, но вот было настроение такое когда писал данный пост типа аааа ааа срочно ищем альтернативу
>>3268274 Причина тряски в том что кажется что джава это сложно и только в крупных компаниях, а они ж по рассказам с двачей любят студентов набирать с вузов. А питон типа разнообразный и там много всего, много контор "рога и копыта" и вот туда можно вкатится.
Если что я не утверждаю, это тупо мои догадки, у меня вообще ощущение как у потерявшегося в лесу, тупо не понимаю как эффективно действовать во вкате.
>>3268709 Щедрый кабан ещё. Я за 4 года до самого разорения фирмы получал с 30 до 80, а по званию рос от джун до джун+, затем до джун++, затем до джун+++ (это когда на мне одном вообще весь фронтэнд и половина бэка держались). Самому смешно щас.
>>3268701 Это этой весной было >>3268752 Не надо ничего искать. Просто постареешь ещё на год. Вроде не школьник с гормональным пиздецом, чтобы трястись. Не истери, учись, работай и все будет нормально.
Какой больной ублюдок делал эксепшены в рест темплейте? Нахуя они приписывают код ошибки в тело исключения? Выкинул тебе один сервис 401 код с текстом "Forbidden resource,fuck you" например,а на отправляющей стороне ты получишь HttpClientErrorException.Unauthorized с текстом блядь "401 Unauthorized: ""Forbidden resource,fuck you"",да да, именно блядь в двойных кавычках. Конченые мрази,такое впечатление что подобное говно шарпомухи пилят
Аноны, как поступить, что думаете Мне 23. Учу джаву два года, главная заноза в отсутствии диплома. Есть егэ на 290 баллов и я думаю, поступить в рандом вуз или очно или заочно, попутно пытаясь найти работу. Очка отнимет много дневного времени, а заочно учиться на 7 месяцев больше, почти пять лет. Оба сценария хуевы, так как диплом получу только под 30 Где покупают дипломы я не знаю, и вряд ли у меня хватит денег Или вообще не рыпаться, дальше работать курьером?
>>3269583 Это я и есть походу. Работал в сбере до этого, но даже близко не айти. Алсо тогда меня устроили не напрямую в сбер, а к вендору. Сейчас уже перевели в штат.
>>3269608 На вышку всем похуй, если идешь на специалиста, а не лида. Коллегам похуй, кем ты там работал и какой у тебя диплом. Есть 60 летние скуфы, которые в 80-х десктоп на делфи писали, есть 20 летние МФТИшники с красным дипломом. В конечном счете со всеми подружишься, если ты не душный токсичный уебан. Чего не знаешь - научат. Мимо проходящий абмассадор Сбера.
>>3269604 Хуйню какую-то несешь, если честно. Ну типа там инвариант стоит, ты просто никак не засунешь туда null, нахуй тебе тогда проверять его наличие? Наличие пупуни на забудь проверить во всех сетах, а то вдруг. Даже если ты как-то обойдешь этот инвариант, у тебя всегда есть возможность превратить все это в итератор какой-нибудь и уже там проверить.
К слову, надоели обсуждать вкат в джаву... Обсуждайте её непосредственно.
>>3269619 >Ну типа там инвариант стоит, ты просто никак не засунешь туда null, нахуй тебе тогда проверять его наличие? Если тебе этот Set откуда-то извне передали, откуда ты знаешь, какие у него там инварианты? Да, в явадоке написано, что contains может выстрелить NPE. Но у HashSet, который приходит в качестве параметра с типом Set в 99% случаев, такого не происходит, и поэтому перед вызовом contains никаких действий не требуется. А тут оказывается еще и на null аргумент метода надо проверять. К тому же интерфейс не разделен на NullPermittedSet и на NullDeniedSet. А вдруг у меня в методе подразумевается, что аргумент Set может хранить null? Как мне указать это в сигнатуре метода? А никак. Хуйню сделали, короче.
>>3269608 Проблем с вышкой не было, вкатывался через курсы яндекс практикума, предварительно навернув джава раш. Коллеги наоборот говорят, мол круто. Но у нас в команде ни у кого нет айтишной вышки.
>>3269625 Ну эту лазейку в доке насколько я помню сделали не из-за этих Set.of(), а из-за concurrent коллекций. Вот там реальные причины, почему null нельзя хранить.
Хотя, конечно я не очень понимаю, почему бы не возвращать в таком случае сразу false. Мы типа нарушим принцип лискова, тамушта мы можем. Еще проблемы есть с ансапортед операциями, они тоже никак не обозначены. Поэтому типа через remove как-то сделать низя.
Как я вижу, рабочий вариантом, будет или пользоваться итератором или.. Просто ловить ошибку. >Как мне указать это в сигнатуре метода? @Nullable))) Правда не то, чтобы это сильно хорошо работает. Но хоть как. В будуууууущем, можно будет просто знак вопроса у типа поставить.
>>3269641 >Хотя, конечно я не очень понимаю, почему бы не возвращать в таком случае сразу false. Вот именно. Если ты знаешь, что в коллекции не может быть null - значит в contains должен быть early return. Нахуя мне срать NPE в кашу? >Как я вижу, рабочий вариантом, будет Запаковывать Set в HashSet. Манал я в рот все остальное.
Думаю погрузиться в котлин,проде не слишком много отличий от джавы. Что думаете? Голанг оказался наебаловом вселенского масштаба и теперь я ищу себе новый модный язык для изучения
>1. Копировать заготовленную папку с статическими ресурсами >2. Выполнить две баш команды
Все это возможно в любом сборщике, хотя справедливости ради, при пересадки из вышеперечисленных экосистем в джавовую можешь испытать определенный культурный шок - на том же мавене некоторые вещи могут быть менее интуитивными. Но возможно все.
К примеру, на мавене я бы использовал assemble/resources plugin для первого, и exec plugin для второго.
Аноны, я уже как-то заёбывал всех, но опять спрошу. Голова закипает. Работаю в тбанке на 350к где-то с дежурствами. Есть стартап на 250к, в котором я уже работал. Он зовёт меня обратно, там, в целом, прикольно по задачам было и посвободнее. Но самое главное, что там полная удалёнка есть из любой страны. Я нихуя не могу понять, как мне выбрать. Как будто бы в 2к24 круто иметь полную удалёнку на случай пиздеца и иметь возможность свалить.
>>3269956 Скала кажется излишне нагроможденной. Также прикол скалы создавать объекты на каждый чих не очень на скорость влияет. Также хз как у скалы со спрингом дела. В котлине понравилась декларативная многопоточность и очень не понравилось отсутствие чекед исключений, непонятно нахрена они так сделали
>>3270122 >отсутствие чекед исключений Да у них много таких ахутельных решений. Примитивы как-то не вписываются в нашу систему типов? Нахуй вырежем. Теперь сиди и гадай, когда у тебя объект, а когда примитив. >хз как у скалы со спрингом дела Ты новый язык хочешь потыкать или очередную имплементацию спринга? Сиди на жабе дальше в таком случае. >создавать объекты на каждый чих Если они маложивущие, то не похуй ли? И где там объекты на каждый чих? В скале даже мутабельность легальна.
>>3270172 Ну прекинь, работа не ограничивается спрингом. Бывает и такое. И оказывается на джаве тоже можно что-то писать без спринга. Чудеса, ты так не думаешь?
>>3269613 >>На вышку всем похуй Ну не совсем, похуй только если она у тебя есть(какая именно - уже не важно). Просто обычно особо не спрашивают про такое и это наверняка знает только херка, мб пм/лид.
>>3270730 Где ты будешь ставить трай кэтчи решаю не я и даже не ты, а разработчик апи библиотеки. Если он решил, что тебе пиздец как надо все обработать, то будь добр. Или оберткой какой-нибудь пользуйся, которая автоматом это сделает.
>>3270619 >Да и вроде там нет трансформеров монад, do нотации нормальной.. Какой-то карго культ, не иначе В го не используют монады, там просто возвращается несколько значений. И по соглашению если ошибка не пустая, то другие значения не определены и читать их не надо.
>>3270922 Какая же параша, лол. Это литерали хуже джавы, в ней просто поставил try где-то сверху и похуй. В его контексте ты можешь не обращать на ошибки. Ну или добавить в сигнатуру функции эту ошибку. В вашем же случае, походу приходится каждый раз чекаете, бля а вдруг ошибка пришла. Так еще писать некоторую логику по передаче ее наверх, если обработка сейчас не нужна. Пиздеееец.
Буквально хотели как лучше, но получилась полнейшая хуита.
>>3270922 > И по соглашению если ошибка не пустая, то другие значения не определены и читать их не надо. Лол блядь. Это вот так выглядит в зумерских головах оптимизация потребления памяти?
Чтобы понять почему одно - легаси а другое нет, нужно немного укуриться в логику.
Вот представь - есть у тебя метод void pupa_zalupa(). У метода есть тельце, и в пограничных случаях это тельце может отрабатывать не так как ты пишешь в коде. Это называется - исключительная ситуация. Во многих языках, включая джаву, в ответ на исключительные ситуации среда генерит исключение. В случае же джавы исключение - это как и все остальное обьект с определенным типом.
Ты - клиентский код, который коллит pupa_zalupa(). Вопрос - нахрена тебе как клиентскому коду в теории может понадобиться знать тип исключения, который pupa_zalupa выбрасывает? Ответ может быть только один - чтобы исключение обработать. Обработать исключение == поймать его, отреагировать на его приход и забыть о нем (отрекавериться).
Но технически, исключения устроены так, что их выбрасывание на определенном этапе сопроводждается сборкой стек-фреймов, которые нужны для того, чтобы показать разработчику уютненький стектрейс чтоб разраб понял, где он обьебался и впоролся в исключительную ситуацию. И сборка стектрейса - процесс нелегкий.
В итоге что же получается. Ты декларируешь эксепшен как чекед, буквально декларируя свои намерения клиенсткому коду - если ты коллишь pupa_zalupa(), изволь обработать IOException. Клиент его обрабатывает и дропает. Усилия по сборке стектрейсов - коту под хвост.
Ты конечно как клиентский код не обязан дропать исключение - ты можешь его и наверх пробросить. Но какой смысл метод pupa_zalupa засорять сигнатурой чекед эксепшенов, если рекавериться из них - зашквар, а проброс наверх анчекед эксепшенами делается и так без усилий со стороны разраба?
С монадными конструктами все честно - ты так же как и с чекед эксепшенами зашиваешь легальные исключительные ситуации в сигнатуру, но в ответ на исключительную ситуацию не кидаешься собирать стекфреймы как дурак.
Впрочем, на самом деле все неоднозначно. В некоторых либах лабают специальные обрезанные чекед эксепшены с оверрайженным пустым fillInStackTrace, как раз чтобы стек трейс не собирался. Сомнительно, но ок.
>>3271214 >проброс наверх анчекед эксепшенами делается и так без усилий со стороны разраба? Ты лукавишь. Проброс чекед эксепшенов пробрасывает и информацию наверх. Ты наверху точно будешь знать какие к тебе придут эксепшены и что тебе надо обработать. С анчекедами это не так. >но в ответ на исключительную ситуацию не кидаешься собирать стекфреймы как дурак Т.е. для тебя весь плюс - это.. Сбор стекфреймов? Но типа монадные конструкции не собирают его не потому, что они такие ахуенные и перфомансные, а просто потому, что не могут. Control flow, точка с запятой пресловутая, обычно характерна для языков императивных, но обычно где есть нормальные монадные штучки и императивности тоже нет. Тогда и смысл собирать стек теряется, поскольку порядка-то вычислений нет...
В го это конечно не так, но там и Either крайне убогий. Такой и в джаве легко можно сделать, что показывать я не стану, поскольку вы жаваны неблаходарные. >с оверрайженным пустым fillInStackTrace Там же просто один флажочек поставить, пик. Не оч понял про что ты.
Короче, если плюс помимо возможного перфоманса нет, то ну нафиг. Условно жвм умеет оптимизировать стектрейсы уже давно. Давай еще какие-нибудь плюсы придумай))
>>3271232 > Такой и в джаве легко можно сделать, что показывать я не стану, поскольку вы жаваны неблаходарные. Проиграл с того как этот даун называет круговое обоссывание за бесполезную бойлерплейт тормозную хуиту.
>>3271232 >Там же просто один флажочек поставить, пик.
Флажок прощелкал, каюсь. Я в сорцах разных фреймворков видел - делают разные Signal extends Exception, и в них кастрируют fillinStackTrace.
>Но типа монадные конструкции не собирают его не потому, что они такие ахуенные и перфомансные, а просто потому, что не могут
Странный какой то наброс... не могут. Не не могут, а не хотят, им это не нужно. Нахуя? Монадки на то и монадки - там где ты зависишь от языковых фичей и вынужден соответствовать, монадки тебе позволят хоть так хоть эдак делать. При желании монадками и стектрейс можно было бы собратью
Просто есть два принципиально разных типа исключительных ситуаций - recoverable и неrecoverable. В первом случае надо просто форсить компилятором обработку таких исключений (которая в 99% случаев подразумевает восстановление из исключительной ситуации в нормальную). Во втором - наоборот: control flow зло и эксепшен дролжен прошить все слои и пиздануть глупого девелопера по ебалу стектрейсом. Посередине нихуя нет. Для второго случая лучше анчекед эксепшенов нихуя не придумано. Первый случай мы тут обсасываем.
Ну и не то чтобы я настаивал на том, что прям нужно экономить на спичках. Просто насколько я прокурил эту тему, раньше с этими стектрейсами были прям проблемы, из-за чего и сложилось это правило, что control flow via exceptions is evil. Ну и плюс история все таки все равно развернулась в сторону монадок - попробуй ка поработай в стримах с чекедами. Заебешься.
>>3271256 >Для второго случая Они кстати на Error по твоему описанию похожи. >control flow via exceptions is evil Я кстати думал, это из-за плохой репутации goto. Мол типа мы из кода лапшу делаем, а это плохо. >попробуй ка поработай в стримах с чекедами Вот тут согласен. Но тут наверное больше идет то, что джава изначально была без фп штучек и вот оно как-то криво состыковалось в итоге. К слову эта ситуация вообще говоря несколько уникальна, поскольку трубет смешения двух эффектов: множественности значения и существование ошибки. Попробовал такое смешение вообще сделать: няшно выглядит. Пишешь будто никаких ошибок вообще нет. Просто простые примерчики и усе.
Сам код: берет некий массив, создает в нем двухэлементное окно. Типа [1,2,3] => [(1,2),(2,3)]. Потом divide правый элемент каждой пары на левый элемент. И наоборот. Полученные два результата опять делим друг на друга. В процессе этого, они могут поделится на ноль и таким образом образоваться ошибка.
И вот думаеца мне, что на го код для данной задаче не будет особо короче джавового. Поэтому, ну простое введение Result ничем не поможет: будет та же хуйня с кучей вложений и лишних обработок.
>>3271256 > Во втором - наоборот: control flow зло и эксепшен дролжен прошить все слои и пиздануть глупого девелопера по ебалу стектрейсом. Посередине нихуя нет. Ещё один маня-теоретик повторяющий за блохерами из ютуба высрался. Как всегда приправил токсичностью в сторону себе подобных, пидорюндель ебаный. Давай, объясняй, почему положить микросервис нахуй лучше, чем отправить клиенту сообщение о внутренней ошибке и залоггировать ошибку.
>>3271232 >>Ты наверху точно будешь знать какие к тебе придут эксепшены и что тебе надо обработать. С анчекедами это не так. Как быть если мне похуй какие там исключения, я не собираюсь их обрабатывать? Если жсон не спарсился - я не буду вызывать другой парсер, я просто выкину 500 клиенту и пукну стектрейсом в лог.
>>3271608 Правда в том, что он из-за наличия топ-левел принтеров исключений в фреймворках собираться может всегда, и на этапе компиляции гарантированно вычислить, будет ли в тот или иной момент собираться невозможно из-за нерешаемости проблемы остановки.
>>3271633 Есть разные чекед исключения же. Вот для меня например важное, чтобы вот это https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html было в сигнатуре функции. И я точно знал, что неплохо бы тут подумать над тем, как оно будет прерываеться. А вот в котлине тебе надо это помнить, забыл: в лучшем просто ошбика утечет наверх, в худшем же у тебя тред не завершит работу и будут утечки.
А насчет жсона, если большинству клиентов этого апи похуй на эти исключения и они их просто подавляют, возможно просто дизайн неудачный или сделан не для людей, ака jdbc.
>>3271649 Так и не понял кстати что делает вызов interrupt() в ранабл в ответ на исключение. Остановится ли тред сразу,остановится ли только таска и тд. Тяжело
>>3271772 >что делает вызов interrupt() Восстанавливает флажок того, что тред был прерван, поскольку исключение IE делает этот флажок = false. В основном это нужно, чтобы наверх передать, типа информацию не терять. Нооо, смотря кишочки всяких разных тредпулов и фючеров, я не заметил, где эта информация вообще применяется. Наверное можно считать это правилом хорошего тона.
При написании генерика можно потребовать, чтобы параметризованный тип был наследником того или иного класса. Можно ли потребовать, чтобы тот или иной тип был реализацией интерфейса?
>>3271775 > Восстанавливает флажок того, что тред был прерван, поскольку исключение IE делает этот флажок = false Наоборот же,тред по умолчанию не интерраптед,а исключение просто оповещает что снаружи тред хотят прервать
>>3271796 Ну ты выделил условие при вызове вейт метода,а ниже написано что статус будет установлен если ни одно из вышеуказанных условий не выполняется
Error это совсем крайность - это когда не то что обработать - перехватывать их особо смысла уже нет. Анчекед эксепшены перехватывать смысл может быть - например чтобы собрать в контексте вызова дополнительную инфу из локальных переменных и прикрепить к эксепшену, трейсов насрать, и.т.д. Впрочем, перехватив, ты обязан прокинуть его наверх, иначе коллеги тебе ебало набьют.
> Но тут наверное больше идет то, что джава изначально была без фп штучек и вот оно как-то криво состыковалось в итоге.
Дык монадки то и пришли из ФП-штучек. И не от хорошей жизни они туда пришли. Ты попробуй ка спроектируй методы на Stream API таким образом чтобы они чекед эксепшены поддерживали? Скорее всего ты просто засрешь апи - у тебя вместо мап будет мапЧекед и мапАнчекед. А монадки в паре с дженериками эту проблему решают
>>3271803 Короче. Просто смотришь в кишки(пик1). Вот, флажок. Он ставится. Потом этот флажок смотрят остальные методы, обычно через interrupted(), корторый этот флажок снимает, ну и вызывают соответсвующее исключение. На пике3 пример реализации Condition. И там как раз лок саппорт.
И вообще я не очень понимаю, что именно ты хочешь, доказать, хм...
>>3271816 Хотя 3 пик не совсем то. Вот тут ошибка непосредсвенно вызывается. Т.е. он следит за тем прерывал ли кто-то тред, сохраняет этот флажок, в конце ебашит исключение. Object#wait примееерно также работает, просто на уровне jvm.
>>3271814 Так вот именно! В вавре и так комбинаторный адок с Functionами и Tuple'ами из-за того, что надо по отдельному классу на кортеж и функцию с N-ным количеством параметров... Так теперь еще из-за чекед эксепшенов есть серия классов CheckedFunction. И да - они декларируют в сигнатуре чекед эксепшен. Но толку то, если он там throws Throwable.
И самый главный прикол этого CheckedException - методы lift/liftTry. Которые суть - читерство, для того чтоб эксепшоны в уютную монадку Try упаковать.
Сап, братья. Делаю лабу по Джаве, сейчас идёт тема наследования. И у меня нахуй взорвался мозг от условия, которое написано в задании. Итак, в супер-классе есть некий метод, принимающий строковый параметр. В классе-наследнике требуется, на основе метода родителя, сделать методы с разными параметрами, используя переопределение и перегрузку методов. И...как, блядь, это сделать, если метод, при переопределении, по определению должен иметь такой же набор параметром? Поскольку я нихуя не шарю в программирование, хотелось бы узнать мнение анона, что здесь имеется ввиду и как это сделать.
>>3272072 Спасибо за помощь, анон. Только я нихуя не понял. Когда в классе родителе есть метод, который мы хотим изменить в классе-наследнике, мы переопределяем его. Но нахуя вообще нужно переопределение, если можно ёбнуть перегрузку метода, без этих ваших @Override?
>>3272076 >Когда в классе родителе есть метод, который мы хотим изменить в классе-наследнике, мы переопределяем его. Ну... Нет. Переопределение просто одна из форма ad-hoc полиморфизма. Его делают обычно, чтобы поддерживать несколько типов не связанных между собой иерерахией. Вот не знаю, хочешь ты сделать метод который складывает два числа, сделал пик1. Потом думаешь, а почему бы мне не расширить его еще до лонгов и не знаю, для дабл.. Выходит много много методов пик2. В принципе, больше не для чего тебе переопределение не понадобится. На пик3 наглядно, как его используют в жаве.
Перегрузка тоже форма ad-hoc полиморфизма, просто в ней меняется не тип, а алгоритм, который зависит от контекста, где он находится(класса). И да, тип параметров при перегрузке можно менять, пик4.
Аноны, ещё один вопрос (выше я спрашивал насчёт наследования и переопределения). Как, используя переопределение метода в классе-наследнике, установить значение закрытого поля в классе-родителе? Слово super не катит, среда пишет, что оно только для конструктора. А мне нужно именно так сделать по условию задачи (чтобы переопределённый метод задавал значение закрытому полю).
>>3272321 Да не за что. Я тут сам буквально вчера ебался с ебаным ажаксом и шарпом. Сука какое же лютое говнище пиздец, до сих пор горит. Сиди копайся в кишках, непонимая какого хуя это не работает, просто ррря. Никогда такого в няшной жабке не було, в ней хотя бы документацию люди пишут, а не майки.
>>3272323 К слову, я хоть и нихуя не разбираюсь в программировании, чтобы что-то там судить о языках, но C# понравился мне больше. Я вообще с него вкатывался в эту тему, но успел изучить немного, всякие там типы данных да массивы. Потом, когда поступил в ВУЗ, Java стала основным языком на учёбе (в смысле, она по дефолту много где шла). И мне не очень нравилось, что если в том же C# достаточно написать Console.ReadLine, то в джаве нужно аж ёбанный объект класса Scanner создать. Впрочем, сейчас эти "различия" уже не кажутся мне чем-то критическим.
>>3272324 >поля enum-ов так же как у record-ов Думаю слишком большая вложенность скобок будет. Представь твоему енуму поле сделать и будет подобное: enum Enum(One(1), Two(2)){ int num; } Плюс это каких-то явных преимуществ не даст, просто измнение синтаксиса ради измнения синтаксиса. В общем сомнительно, что его приняли бы. >class в декларации enum Про что ты? >>3272327 Я не собираюсь холивары разводить. Просто сгорело, вот и усе.
>>3272330 Не, я не ради холиваров это написал. Я скорее к тому, что таки выбор любимого языка, в ряде случаев, происходит по каким-то своим внутренним ощущениям. Мне C# показался как-то интуитивнее той же Javы (с высоты своего небольшого опыта). Тебе, судя по всему, Java заходит куда больше. Каждому своё, в общем.
>>3272330 >Думаю слишком большая вложенность скобок будет Ты пупуня совсем? Это будет выглядеть так public enum State(@JsonValue String jsonRepr) { UP("up"), DOWN("down") }
>>3272359 >Или предлагаешь как в record все пабликом сделать? Не думал об этом. Я думал о том, что все поля все равно неявно final, так что по духу близко.
>>3272376 >что все поля все равно неявно final Ну на данный момент в енумах они могут быть и не финальными.
Так что ну как я вижу это огромное препятствие, ведь затрагивает обратную совместимость, если конечно не оставлять изначальный синтаксис, что-то типа свитча получится, который несколько синтаксисов сразу поддерживает.
Еще лично мне в енумах не хватает только поддержки женериков....
>>3272401 Залетух... 1. Скобки на сосаче не используются. 2. Отчитываться о том, что твой пост является шуточным не принято, т.к. особо сильных последствий даже от самого жирного троллинга нет.
Нашел до чего доебаться. На тебе тире как вы все любите ---
>2. Отчитываться о том, что твой пост является шуточным не принято, т.к. особо сильных последствий даже от самого жирного троллинга нет.
Так местные чето какие то слишком серьезные дохуя. Начнут щас на серьезных щщах доказывать еще что силед - говно а емум - заебись, вперемежку со своими загонами и подрывом жоп.
>>3272752 Вводные: высшее образование в сфере ИТ, общий стаж работы там 9 лет, из которых 7 лет писал бекенды на гавноязыке в VS Code. Смежные технологии, на которых работал - git, docker, rabbit, redis, pgsql, kubernetes (в меньшей степени)
>>3272752 Диплом без троек с профильного вуза, хорошее знание алгоритмов и структур данных, уметь решать задачи на графы на листочке, стаж работы от 3 лет с подтверждением в трудовой, ну и естественно знания всех сопутствующих технологий.
Даже превьюшка про примитивы в свитчах - это то, что должно было быть изначально, а не спустя N лет. Да и прошло уже больше года с того момента как ввели эти свитчи, я как-то за это время наигрался с паттерн матчингом, нет такого восторга от жабы, эхх.
Долбоебы из джетбрейнс сломали автокомплит. Попробуйте написать Stream.of("jetbrains", "jret", "jovno").map().toList() Поставить курсор внутри map и написать trim Я в ахуе просто.
>>3274323 Я в java после си. Так вышло, что там на всё это используется просто массив символов(обычно для этого делается конструкция вида char* str=malloc(...)). Из-за этого не совсем понятно, что и когда использовать.
>>3274330 String используем бай дефолт. Остальное зависит от условий. Если нужна мутабельность, часто изменяем строки - StringBuilder. Если мы сохраняем конф. инфу, типа пароля - CharSeq/char[].
Обычно так, вроде. И свои строки не надо делать. Они в любом случае будут хуже стринга.
>>3274363 Инфиксные методы, например. С их помощью можно дслки начать делать. Ну или знаешь, написать универсальный метод, который бы брал какое-то значение и применял к какой-то функции, пик 2 типа. Существую такой метод, не нужно будет ручками делать паттерны типа билдеров или аля стримы. >>3274359 Я кстати не понимаю, зачем оракл вообще пошел в сторону функциональщины. Реально проблем важнее нет?
>>3274392 У меня тоже нет, я просто из гитхаба взял. И хуй знает, повторюсь, у меня приняли даже не стали бухтеть, что я шиз это хуйня или то, что я узкий.
>>3274388 >зачем оракл Оракл ничего не выбирает. Он только деньги башляет (и собирает, за платную сборку оракл жидкей). Выбирает Брайан Скуфц. Де-факто несменяемый диктатор джавы. Любое изменение в джаве делается с его позволения.
>>3274471 Спроси его. Как по мне что функциональщина, что ООП имеют фундаментальные ограничения (но функциональщина побольше). Правильный стиль кода это стиль си с использованием ООП и прочих неуниверсальных парадигм по необходимости.
>>3274476 Он ее добавил еще 10 лет назад в жаве 8. Теперь планомерно развивает. Я к тому, что это не добавили лишь бы было. >>3274474 >Спроси его. Если бы я мог. Да и думаю он отвечал уже, найти бы.
>>3274575 Чел просто пиздит о том, что не понимает. Вот первый же тезис говно. Сука, для этого придумали монады и этот бойлерплейт скрывают, называя эффектом. В нормальных языкам тебе блять не надо писать ифы или матчить это как-то, там за тебя все сделали.
На счет системных ошибок - есть MonadFail.
Дальше хуйня про перфоманс - похуй. Эти сравнения в вакууме ничего не стоят.
>>3274851 Ну я про это уже писал( >>3271389 ), что если твой язык не может сделать эти монады няшными, то наверное вводить их хуевая идея. >>3274779 Да-да.
>>3274857 Ты мечешься от одной крайности к другой просто. Нужда в монадках в твоем языке появилась, когда появились стримы. Ты мог бы сказать что и стримы вводить была хуевая идея, но стримы не от хорошей жизни вводились.
Че ты хочешь от айтишки - айтишка одновременно самая клоунская и самая консервативная область деятельности человечества. Анальникам понадобились десятилетия чтобы понять, что вечно на императивщине сидеть не получится, не вывозит она современные реалии. А просто слезть и пересесть на хаскель, где всю дорогу всё было, не позволяет зашоренность и предвзятость мышления. В конечном итоге имеем опять клоунский торг длиною в десятилетия, где в джаву завезли уже стримы, лямбды, комплитаблфьючи и продолжают завозить всякое прочее стракшерал конкарренси (и я почти уверен что рано или поздно завезут и дунотацию, но не скоро), а хомяки переизобретают гоу, делая его таким же императивным, каким они привыкли видеть разработку.
>>3274883 >но стримы не от хорошей жизни вводились А конкретнее? Вроде форы не настолько неудобные да и многие задачи чисто через стримы сложно решать. >и стримы вводить была хуевая идея Монада листа и без do нотации вполне юзабельная. Вот Optional вот это да, не пришей к пизде рукав. >Че ты хочешь от айтишки Мне просто не совсем нравится тенденция, когда вот видят фичу в каком-то языке. Видят, что она хорошо работает и выдергивают без контекста в свой язычек. А потом удивляются, а че она так плохо работает-то. Хуже будет только, если эту не очень хорошо работающую фичу будут проталкивать на безальтернативной основе. В жаве со стримами и пр. это хотя бы не так.
>>3274960 Какой же ты блядь даун несущий несусветную пургу с умнейшим видом. Типичный порридж с синдромом Даннинга-Крюгера. Один вид поста со смыслом, но под ним нихуя. Ёбаный имитатор-позёр.
>>3275005 >ты блядь >даун >порридж с синдромом Даннинга-Крюгера >Ёбаный имитатор-позёр Я ведь обижусь... >умнейшим видом Врешь ты. Дефолт пост, точнее ну сколько не перечитывал, искренне не могу понять, где вы тут подобное находите.
Это пока ты линейно по коллекции конечной длины бежишь. Ты конечно паралеллизм и в тушке фора раскорячить можешь, но на то оно и ФП чтобы делать потоковую обработку данных за адекватное количество бройлерплейта.
>Мне просто не совсем нравится тенденция, когда вот видят фичу в каком-то языке. Видят, что она хорошо работает и выдергивают без контекста в свой язычек
Чел, расслабься. У тебя просто нет другого выхода и все. Написать новый язык не выход никогда. Да и инертность мышления программистишек - данность, кто бы что ни говорил. Программисты как лабали структурное программирование в 70х, так и продолжают это делать вопреки тому, что многие проблемы современной разработки императивщиной решаются из рук вон плохо. В таких условиях черри-пикать фишки из других парадигм - единственное что тебе впринципе остается. У тебя нет никакого выбора.
>>3275112 Да вам не угодишь. Добавляют фичи - у джаванов в треде яростный щитпост и тряска. Перестают добавлять фичи - в тред набегают орды шарпеев а джаваны перекатываются в гоферы. Вы там блять определитесь уже.
Мне надо по работе написать сервер oauth2 авторизации. Испльзуем спринг бут. Какие зависимости лучше использовать для реализации oauth2: spring boot или spring cloud?
Еще одна проблема в том, что по спецификации внешнего сервиса, с которым мы будем делать интеграцию, запрос авторизации выглядит так: client_id=123123123&client_secret=ABCDEFGHIJKLMNOPQRSTUVWXYZ&grant_type=client_credentials&scope=read%20write А по спецификации oauth2 client_id и client_secret передаются в параметрах авторизации, а не в параметрах формы. Как это сделать?
>>3275116 Лично я хочу чтобы в массивы добавили метод .stream() чтобы не пользоваться статическим методом и починили виртуальные потоки,все,мне больше ничего не надо,пусть сосредоточатся на Вальхалле и подобных масштабных проектах,или ядро оптимизируют без трат на тысячи версий джавы в год
>>3275119 По вопросу складывается впечатление что ты не понимаешь о чем спрашиваешь. Ты хочешь сказать что у спринг бута и спринг клауда есть стартеры для оаус2?
>>3275173 Ну конкретно в клауде,авторизейшн сервер выдает токены,а ресурс сервер хранит защищённые данные к которым ты запрашиваешь доступ с токеном который получил от авторизейшн сервера. Подозреваю что в спринг бутовом стартере просто готовые классы для работы с оаусом без разделения на такие четкие амплуа
>>3275238 Лично я просто сидел до какого-то времени на 8 версии, поэтому на личном опыте помню, что появилось после. Плюсом к этому знаю некоторые различия в кишках.. И еще на паре версий сидел. +- понимание версионности появилось.
В любом случае фич после 8 не много, да и нахуя спрашивать о том когда-то что-то появилось. Хуйня какая-то.
>>3275116 Да никто кроме залетух мимикрирующих под заплесневевших дедов на фичи не жалуется. Настоящие заплесневевшие деды типо меня ноют, что фич мало.
>>3275119 С зависимостями разобрался, буду использовать спринг бут. С клаудом бут совмещается очень плохо.
Осталось разобраться, как правильно принять запрос авторизации. По документации запрос на получение токена выглядит так: client_id=123123123&client_secret=ABCDEFGHIJKLMNOPQRSTUVWXYZ&grant_type=client_credentials&scope=read%20write Это можно записать иначе:
Грааль вм под джаву 23 уже вышел. Ну и нахуй нужна джава 22? А, да, точно, потому что стринг темплейты, интегрити бай дефолт и прочие поломки обратной совместимости. Спасибо, дядь Гётц!
>>3275805 Какие поломки обратной совместимости? Стринг темплейты были превью их и выперли на этом праве. То, что вы постоянно лезете в детали реализации и ноете, ноете и ноете о том, что ррря как можно их менять реально надоедает. Просто берешь и не лезешь в приватное апи. Это же просто и легко.
>>3275812 >выперли на этом праве А давайте сделаем вообще всю джаву превью и можно будет ломать что угодно! Блядь, не опускайся до уровня шарподаунов, у которых всё что не кроссплатформа выписано из дотнета.
>>3275820 Про то, что превью может быть даже отменено писали очень давно. Тебе даже специально вставили кучу палок в колеса, чтобы ты не запустил превью код легко и не смешивал его с нормальным.
По мне это правильная тенденция, чтобы на вас жаванах тестить фичи и хотя бы их менять, без тестирования и фидбека хуево. >до уровня шарподаунов Без понятия как там в шарпе. Я на нем не пишу.
>>3275838 Теперь осталось только придумать синтаксис для превращения StringTemplate в String $"foo \{bar}" "foo \{bar}".toString() Или вообще неявное преобразование
Я пишу микросервисы. Апи центрального микросервиса системы защищено простой авторизацией на основе JWT токена (не oauth 2). Чтобы получить доступ к апи этого микросервиса, надо отправить POST-запрос с логином и паролем на адрес /auth/login, получить токен и отправлять этот токен при каждом запросе ресурсов. С нового микросервиса мне надо получить доступ к апи этого сервиса и для этого надо авторизоваться. Для запросов буду использовать feign client. Как настроить feign так, чтобы он прошел авторизацию и использовал jwt-токен при каждом запросе?
>>3276186 Хотел написать что 16 глава самая норм,имхо ее надо было в самое начало вставить. В целом это было сложно,но определенные знания я почерпнул,хотя я рассчитывал что вся книга будет целиком про кишочки,а оказалось это этакий обзор классов джавы
>>3276236 Кмк в начале 16 гл. уж точно не место, она только запутает неофитов этим happen before. К слову в ней не так много объяснено и очень многое упрощено.
Вот из кишочков до сех пор помню показанные алгоритмы, типа неблокирующего стека и листа. Очень прикольные штуки. >а оказалось это этакий обзор классов джавы В ней еще годно классифицируют типикал канкаренси ошибки.
>>3276268 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;} }; }
>>3276322 Потому что вопрос ебанутый: почему теплое если можно мягкое. Я тебе ответит на корректную часть вопроса >Нахуй нужен OpenID Connect, Потому что OpenID Connect это стандарт, поэтому он нужен. Для стандартного протокола. Например берешь keykloаck и используеш для аутентификации с совместимымы клиентами, а не городишь свои велосипеды. Велосипедность уже в том что ты хочешь access token для аутентификации использовать. А в нормальных схемах безопасности у токенов есть разграничения скоупов. Для получения минимальной инфы об пользователе в OpenID Connect используется специальный ID token
>>3276337 >Велосипедность уже в том что ты хочешь access token для аутентификации использовать. Я не то, что хочу, у нас уже на проекте так сделано. В access_token есть id, имя и email юзера. И у нас используется keycloak.
>>3276329 В чем вопрос? Код как код, можно лямбду использовать, вместо анонимного класса. >не имеют конструкторов Нахуя им конструкторы, если у них нет состояния? Может тебе абстрактные классы нужны?
Пишу бекенд для очередного мессенджера. Использую редис для пересылки ивентов между сервисами, и хранения ид вебсокет сессий. Хочу также использовать редис для кеширования. Нормальная ли практика один инстанс редиса юзать и для кеширования и для месседжинга? Есть у кого практика? Нагуглить ничего внятного не получилось.
>>3276376 А хуй тя знат, нормальная ли это практика или нет. Это от тебя и твоего проекта тащемто зависит, только ты можешь ответить на этот вопрос. Не все блять на свете гуглится.
Если ты один лабаешь петпроект для себя, спроси себя: те как там вообще - норм на одном инстансе, не лагает? Мать жива? Что с ебалом, нормально? Если нормально - не усложняй, блять!
Если ты под кабаном - пиздуй к кабану и стрясай с него SLA: сколько в чатике у тебя планируется одновременно юзерков, сколько сессий открыто единовременно, как больно прилетит по ебалу за задержку доставки и.т.д., а потом уже прикидывай хуй к ебалу - нормальная ли это будет практика или нет...
>>3276838 А как в целом нормальные люди высчитывают, сколько ресурсов выделять? Вот у меня есть консюмеры, как понять, сколько консюмеров мне нужно и сколько им озу выделять? Я примерно даже не представляю рабочую нагрузку. Из какой пропорции исходить? На локалке тестить и прикидывать? Нагуглить сколько rps держится при таком-то количестве памяти такой-то хуетой? Сложно
>>3276922 Нуу не знаю анон. Вот у меня заебато это получалось, а тут, фе. Ноль оригинальности. Даже вложенности особой нету! И женериков! Ну вот куда это годится.
>>3276929 Когда тебя уже забанят, вниманиеблядский немощный петух которого в школе в унитаз головой макали. В жизни удовольствия больше нет, что опустился до засирания джава треда унылым говном?
>>3276935 Через недельку две, пойду к психиатру. Можешь не переживать. >Когда тебя уже забанят Имхо, я никак не идентифицирую свои посты, не щитпостю, т.е. стараюсь на тему жавы всегда писать. Считаю ничего не нарушил. Ну если забанят, то ну.. Бывает.
>>3277074 Да анон, я вот только-только сидел строчил что помощь больше не нужна, сам допёр на маркетплейс зайти и с впн скачать архив и уже в идеи поставить. Но тебе все равно спасибо за ответ! По поводу обновы идеи тоже спасибо, сейчас попробую таким образом ее обновить, у меня ультимейт 2024.1.4 взломанный jetbrф, а вроде как уже 2024.1.6 есть
Коллеги, кто-нибудь углублялся в сети? Хочу что-нибудь почитать про сешн сторадж,локал сторадж,дпи и прочие базовые вещи. Осознал что за пределами хттп ручек мои знания сетей просто нулевые. Можете литературу посоветовать чтобы разраб мог осилить,сетевипом становиться не планирую
>>3276857 Лоадтест проведи и посмотри. Но на самом деле это все равно будут очень примерные данные, потому что профиль нагрузки прода на 100% изобразить невозможно. Да и в целом, если вдруг окажется, что к вам завалилось так много пользователей, что редис пукнул (что вряд ли случится), то ты всегда можешь перейти на редис кластер и масштабироваться сколько душе угодно.
1) можно ли удалить из Frame помещенный туда элемент(чтобы потом сборщик мусора его убрал, а не просто убрать видимость элемента)? 2) чем вот же делать графику в java, если не awt/swing?
>>3276857 Да примерно как ты говоришь так и делают. Есть публичные бенчмарки. Некоторые вещи можно самому побенчмаркать. Есть базовые эмпирики по типу "если ты знаешь что тебе предстоит делать пейсбук с миллиардом rps, можешь смело закладываться в асинхронный стек со старта", или те же самые четыре-пять-шесть девяток реданданси. Тащемто это вопрос больше к архитекторам, нежели к разрабам, так что те в другой тред.
Но если впадлу или ты одинокий двачер - всегда есть правило "keep it simple, sука".
Аноны, нужно ваше пояснение по односвязным спискам. Можно ли сделать создание односвязного списка через цикл? Типа, чтобы на каждой итерации, генерировался бы объект с каким-то названием, ему присваивалось бы значение, после чего он бы бы отправлялся в главный метод? И я спрашиваю даже не в контексте того, реально ли такое сделать на джаве, а в контексте понимания задания из учебной лабы. Что-то мне подсказывает, что так списки не делаются, и имеется ввиду что-то другое, но не создание объектов в цикле.
>>3278895 Как правило, односвязные списки не передают право владения объектом ноды пользователю такого списка. По крайней мере в жабе. Поэтому тебе просто в цикле надо взывать метод add(...), а вот детали реализации с созданием можешь оставить на себя.
Я студент и пытаюсь определиться со своим дальнейшим стеком, по поводу чего у меня постоянная лютая тряска и тревожность. Мне нравится джава, даже иногда хожу на митапы джавистов в своём городе, но меня беспокоит востребованность его и вообще конкуренция на рынке, повсюду противоречивая информация, помогите пожалуйста советом, буду благодарен...
>>3275420 Если пишешь на котле, то лучше то корутины код приятнее будет, ну а так, проблем никаких не встречал писал на вебфлюкс, когда корутин не было, разве что код ебаный, не читабельный
>>3279584 И как дела у джавы нынче с вс кодом? Плагины кто пилит, сам оракл? Спринг юзабелен? Меня очень напрягает завязка на софт жидбрейнс (еще до санкций напрягало).
>>3279584 Ну да. Я в вскод только на хаскеле пишу, ибо жидбрейнсы долбоебы и нишмагли лсп добавить. Но двачую вопрос, какого оно там. Мне жалко терять столько инспекций, они няшные.
Анон, рассуди меня. Это я ебанутый или лыжи не едут?
Решил тут намедни влезть во всё это. И порвался скорее с инфраструктуры
Хочешь использовать несколько версий JDK и переключаться между ними при необходимости? Соси хуй и от силы есть SDKMAN, который убогий пиздец. Jabba не лучше
Разрабатываешь в корпоративном контуре за прокси? Изволь попердолиться с тем, чтобы накатить серты в cacerts, предварительно как-то раздобыв и выебав всем мозги
А про IDE это что-то. Стулья: IDEA, VSCode, Eclipse.
IDEA последнюю на РАБотке хрен добудешь с поддержкой Spring (нужна же Ultimate). Да и никак не привыкну
VSCode надо пердолить (опять) и обвешивать плагинами. Тяжко
Eclipse пока не пробовал, но сомневаюсь, что не придётся делать кучу приседаний.
Билд тулы вроде окэй, но напряжно пердолить каждый раз доп.опции, чтобы, например, заскипнуть какой-нибудь из этапов жизненного цикла
Реквестирую подробный гайд, как облегчить себе жизнь на java.
>>3279735 А чем вы там на работе занимаетесь? Одним "пердолингом" больше, одним меньше. Или вы может рукой водите, так водите дальше, причему тут версии жавы. Пиздос жаваны бывают глупее пыхарей.
>>3279747 Ну так скрипт напишите в пять строчек для выбора использующий update-alternatives --list java /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-21-openjdk-amd64/bin/java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
>>3279755 У меня для этого есть direnv. https://direnv.net/ Писать еще скрипты какие-то.. Один раз прописал все экспорты и усе. Правда в жабе это не требуется.
>>3279766 Я жеба пограммер, а не девопс. Срать я хотел на "проффесианолизм" в конкретно этой области. Руками писать экспорты при каждом вызове жабы, хаха, делать нехуй совсем что ли.
>>3279721 >Хочешь использовать несколько версий JDK и переключаться между ними при необходимости? Соси хуй и от силы есть SDKMAN, который убогий пиздец. Jabba не лучше Даун, что мешает просто полный путь к джаве вводить?
>>3279721 >Соси хуй и от силы есть SDKMAN, который убогий пиздец Зачем на няшу гонишь? Его упрекнуть можно разве что в отсутствующей поддержке винды, не больше.
А вообще, если надо джавы свапать, функционал есть у идейки - она тебе их и скачает, и даст гуй чтоб переключаться.
>>3280192 >Ну хотя бы утил методы будут удобными, а не какой-то хуйней слева. >А говнокод это потому что.. ? Бугаенки наверни, он тебе объяснит почему утил классы зло.
Он неиронично предлагал заменить метод max() на класс Maxer.
>>3280394 Я слишком внушаемый.. Думаю не стоит мне такое читать.
>метод max() на класс Maxer. Т.е. имеется ввиду, что надо делать обертки, со своим стейтом, внутри которых есть методы для получения вычислений над ним? Типа пика?
Возможно это и имеет смысл, но пока я вижу проблему, что слишком много оберток, что мб и похуй. А вторая проблема, что потенциально может понадобится N:N адаптеров между такими новыми "утил" библиотеками. Или тоже нахуярить кучу обреток.. Посмотреть бы в общем-то на какой-нибудь пет сделанный по таким принципам, поскольку я не очень понимаю в чем профиты..
>>3280159 Тебя даже вчерашний шторм не разбудил. Кучу лет уж как вместо java ee - jakarta. И оная кстати вполне себе жива в лице всяких кваркусов и микронавтов.
А что ей будет? Java EE, в отличие от спринга, проектировалась людьми, а не какими то культистскими бесоебами. Помрут контейнеры, падут стандарты, а референс-имплементации каких нибудь сервлетов или JPA будут жить вечно под капотом фреймворков.
Забей. Просто это смещение парадигмы, не все такое любят. Щас время такое что выживают только смешанные парадигмы. Чистое ФП котируется только в академке, чистое ООП - вообще миф.
>>3280404 >метод max() на класс Maxer. >надо делать обертки, со своим стейтом, внутри которых есть методы для получения вычислений над ним?
Бугаенко - феномен своего времени. В 2017м году переложил функциональный подход на джавовые классы, назвал это правильным ООП, написал об этом несколько книг а потом катался по конфам и всех троллил. У него класс Maxer, это как функция Max :: [a] -> a, но вместо функции - класс. Аргументы функции становятся аттрибутами класса. Обязательно финальными аттрибутами - отсутствие сайд-эффектов в классе так же ценно как чистота функции в ФП. Вместо функциональной композиции - объектная матрешка ебанутой вложенности, и.т.п. Короче любо дорого было смотреть как джаваны горели с этого тролля.
Пал жертвой SJWшной сои во главе с Барухом. Good night, sweet prince.
>>3280523 >Пал жертвой SJWшной сои во главе с Барухом. Good night, sweet prince. В смысле? Он вроде жив, здоров и по прежнему весьма упитан. И продолжает троллить на тему управления командой.
>>3280638 Его отменили и не зовут на конфы с тех пор. Правда с 2022 баребух и сам вроде отменился в РФ. А так да, канал у него есть, интервью дает, рассказывает какие китайцы дунасеры и не хотят за идею овертаймить и фичалидить.
>>3280638 Его jug.ru анально огородил. Да и он сам как то уже не особо программистский контент поставляет. Раньше было лучше.
>>3280674 >Правда с 2022 баребух и сам вроде отменился в РФ.
Ну - он по прежнемувстречается в чатах, и при любом упоминании Егора потешно плюется желчью.
По слухам, Егор успел весь программный комитет jug.ru плотно так заебать. Причем даже не по каким то ололополитическим мотивам, как Баруха пропалестинскими тейками, или сою кексизмом. Последней каплей вроде бы стало то, что он тупо вякнул на публику чето инсайдерское, что на публику идти не должно было.
>не хотят за идею овертаймить и фичалидить.
...но разве не именно этим они и занимаются?
AWT и время работы программы
Аноним25/09/24 Срд 14:04:40№3281033365
>>3280674 >Его отменили и не зовут на конфы с тех пор. Может просто заебал, все таки организаторы хотят чтобы у зрителей было положительное впечатление от доклада, а не полыхающий пердак. Он в 2020 выступил на тимлидконф, от других организаторов, и больше его туда не зовут.
>Правда с 2022 баребух и сам вроде отменился в РФ. Этот пидор никогда не нравился.
>>3281035 >все таки организаторы хотят чтобы у зрителей было положительное впечатление от доклада, а не полыхающий пердак
Как раз с этим у оргов никогда проблем не было. Егорка своим контентом почти всегда умудрялся собирать полный зал, а сами орги отмечали, что он впринципе годный и хорошо подготовленный выступатель на конфах и его доклады к продакшену готовить было проще всего.
Полыхающие пердаки были у всякой мимокрокской сои с твиттера, которая отказывалась выступать и быть с ним на одной конфе из-за его взглядов.
>>3281030 >По слухам, Егор успел весь программный комитет jug.ru плотно так заебать. Причем даже не по каким то ололополитическим мотивам, как Баруха пропалестинскими тейками, или сою кексизмом. Последней каплей вроде бы стало то, что он тупо вякнул на публику чето инсайдерское, что на публику идти не должно было. Егор могуч!
>>3281103 >У него более удачный дизайн. AWT многопоток, а свинг над ним спроектирован через эвентлуп и более понятно, что там и как робит. Вот только этот ивентлуп почему-то называется java.awt.EventQueue. уж не оттого ли, что AWT тоже через него работает?
Подозреваю, что хоть эвентзалупа по сути одна, в авт чисто в теории не обязательно через нее делать апдейты гуя. В свинге в документации четкий запрет на енто, а в JFX и исключение в рантайме может ебнуть.
>>3281036 Мне зп подняли на 20%, а в команду взяли нового джуна. Пока что не ощущаю, но от нейронок зависимость уже выработалась. Хз как я раньше работал.
>>3282068 1. Кому как - у всех разные требования, проекты, бюджеты, задачи и компетенции. 2. "Джуниор" - это не буквальное место работы, это просто такое выражение. 3. Ты просто java-программист. Не важно, 1 неделя в профессии или 25 лет в профессии. 4. Начинающий должен уметь делать САЙТЫ. Бекенд/фронтэнд - это уже специализация. 5. Начальника не ебёт что ты не знаешь, он сказал сделать сайт, а то что ты не учил фронтэнд - это твоя вина. 6. Если с первых дней уходишь в специализацию, это сделает тебя капризным работником, потому что обучать тебя никто не будет (ебись с этим сам как хочешь), тебе просто дадут задание и скажут вот до такого срока сделай. А то что не обучался для этого, всем абсолютно до пизды. Максимум спросят "ну что, как там сычев??? уже сделал??? чёт ты долго, зря мы тебя наняли..."
>>3282183 Это нейронка. В таком стиле ответы на вопросы вкатышей автоматически постятся в треде любых других языков. ML дауны из мейла вк развлекаются.
>>3282322 Пойди сам в банк и узнаешь. Есть те, кто берут. И есть те, кто не берут. По-твоему есть только один вариант - либо да, либо нет. А вариантов когда предположим сбер не берёт без военника, а тиньков берёт - не существует?
>>3282322 Без военника уже два года никуда не берут. Знакомому скуфу с приписным пришлось пойти получать билет потому что как он делал раньше, пообещать занести доки позже, уже не работает.
>>3282342 Нихуя. Вживую как раз тебе сходу все всё по закону будут просить и прогревать, и тока в инете тебе подскажут что тут можно припиздеть и может прокатить, тут можно надавить такой то статьей и тд
>>3282322 Не берут. В сбере там специальный человек уже после всех собесов проверяет твой военник и дает бумажку БРАТЬ ТЕБЯ ИЛИ НЕТ. Там еще написано (рекомендован к найму). Рофлил с этой хуйни
>>3282395 Я откосил по дурке в 20 году. Сбер, мкб, втб, рсхб сливают во время проверки от сб. С тиньком и альфой все нормальноЮ были оферы. Кроме банков после отправки анкеты для сб никакие компании не сливались.
>>3282543 Я очень внушаемый и мнимый. Ничего особенного. >>3282559 >сливают во время проверки от сб Не понимаю, что это значит? Типа сбшка все таки проверяет то нет ли тебя на учете? Просто не везде это есть?
>>3282543 Чел, я реально тот анон, который год назад вкатился в сбер. Сначала меня устроили через bell integrator, а сейчас перевели в сбер. И когда меня переводили, то там реально сидела женщина, которая выписала мне эту рекомендательную бумажку. + на созвоне с HR она меня спрашивала, есть ли у меня военник.
На каком уровне работают потоки java? Вопрос про то, работают ли потоки java за счёт переключения контекста на уровне ОС/ядра или потоки java чисто внутреннее явление.
>>3283591 Причем тут переключение контекста? Есть платформенные треды - они 1:1 к тредам ос. Есть виртуальные, они N:M. Есть M тредов ос, на них мапппится N тредов жавы. Как правило N > M.
>>3282559 >>3283474 Всмысле блять. Из за депрессии уже не берут на работу? Или вы косили по шизе и категории Д? Сукааа я не хочу служить но и работать хочу
Нюанс - нужен непрерывный стаж от 11 мес в аккредитованных конторах, либо еще не прошел год после получения вышки.
Если ты попадаешь под призыв (нет военника), и при этом не вчерашний студент и не опытный анальник из аккредитованных контор - работодатель смотрит на тебя как пикрелейтед.
>>3284103 Пчел, бронь - это когда тебя ни при каких обстоятельствах не призовут в армию. Такая в айти есть очень мало у кого, и это не кодеры а что то вроде сисадминов в датацентрах и ключевых узлах связи.
Айтишникам дается отсрочка. Это значит что их просто будут призывать не в первых волнах, а когда уже прижмет. Опять же в военное время по закону можно мобилизовать трудовые ресурсы. Будешь вместо крудов за соротыгу софт для дронов пилить. Не выполнил КПИ - уволили и на фронт.
И большой вопрос кто важнее в тылу - слесарь на таковом заводе или крудосервисный микродебил.
>>3284084 Офк, ты думал, это шутки? Работы и так нет, рынок перенасыщен и у твоих конкурентов нет справки из дурдома. Нахер тогда брать тебя? Я бы не взял. Никто бы не взял
>>3284202 Как они эту справку получат вообще, это же врачебная тайна, тем более для откоса хватит и лайтового рл. Ты точно не лахта? Может в айти еще и вообще всех откосивших не берут, ведь они больны, так или иначе.
Я думал конкурентное преимущество это твои навыки, умения, скорость обучения, частично опыт. Но справка?
>>3284228 >>3284229 Ну т.е. в работе где обычнвм делом является выгорание, депрессия, тебе ни в коем случае нельзя лечится у психиатра, ведь это справка? Которую могут получить из-за того, что это рфия и тайна в этой стране смешное слово? Какая же чушь, боже, что я сделал в прошлой жизни, что я родился тут..
>>3284311 Дебил, где ты тут слово дурка увидал? Психиатр. Не у психолуха же лечить, лол.
>Я бы держался подальше от людей А я бы от нормисов, которые нихуя свою шизу не лечат притворяясь нормальными. Сколов тому пример. Еще куча новостей была с айтишниками, которые молоточками боньк боньк. >>3284303 Я надеюсь, что когда-нибудь смогу сбежать...
>>3284225 > Как они эту справку получат вообще, это же врачебная тайна, тем более для откоса хватит и лайтового рл. Ты точно не лахта? Может в айти еще и вообще всех откосивших не берут, ведь они больны, так или иначе. А зачем ты вообще задаёшь вопрос, если на один из вариантов ответа начинаешь агриться, что это неправда и форс лахты? Чтобы тебя успокоили? Я тебе по своему опыту говорю, со справкой сливают после проверки. Диагноз невроз, ничего тяжёлого Дальше сам думай.
>>3284320 >>Сколов тому пример. Ну так он же явно ебанат был. Такое впечатление что все кто наполеона изучают - ебанутыми маньяками становятся.
>>А я бы от нормисов, которые нихуя свою шизу не лечат притворяясь нормальными В дурке не лечат шизу, там делают шизов менее опасными для общества, дают колеса или изолируют.
А есть какие-нибудь фундаментальные книги по джаве, где разбирается каждый пук, но при этом написанные не Шилдтом? Я 10 лет назад из-за него так и не стал вкатываться в джаву, вкатился в другой язык, щас вот решил потыкать джаву по фану, снова скачал Шилдта и понял, что всё равно его высеры принципиально понятнее не стали.
>>3285676 Так шилдт - это туториал джавы и документция по сути же. Если тебе это не понравилось, то типа... А че ты хочешь фундаментальнее? Почитай спеку тогда. Еще есть эффектив жава от блохи и книга с поездами от скуфца.
>>3285713 А чиво смешного? В 21 жаве перестали быть превьюшкой. То, что кто-то там ноет про синхронайзеды значения особого не имеет.
Мне еще недавно вообще разонравился ad-hoc полиморфизм, конкретно фича сводимости к наиболее общему типу. Это пиздец какое ограничение и очень мешает. Я хочу четкое разделение между конкретным типом и абстрактным, это смешение стало таким привычным, будто это норма...
>>3285731 Ну это-то понятно, но проблема остается.
Вот скажем у меня апишка, которая на каком-то этапе хочет выбрать определенный конкретный тип и будет использовать его в дальнейшем. Что-то типа Api<T extends Number>. Но если пользователь намеренно впишет Api<Number>, то ему будут доступны любые конкретные типы чисел. Но я хочу, чтобы допустим можно было вписать все листья "дерева" типа(Integer, Long...), но не его корень(Number, Object). Надо попробовать обобщить все свои осколочные знания по типам, жавы, может какая-то идея в процессе придет...
>>3286122 Да все просто достаточно, по крайней мере с моей т.з. Вот смотри на пик. Любой параметр типа, по сути переменная для типа, потому мы в принципее можем передать этот самый тип функции и посмотреть, что выйдет в итоге. Вот сначала сделаем функцию api, где один параметр типа один. Потом пробуем передать этот самый тип. Сначала Int, потом Integer. А потом Num и ой, пососем хуйца на этом этапе, поскольку есть четкая разница в виде kind между можно сказать интерфейсами и их имплементациями.
А вот в жабе мы вполне все это можем провернуть и превратить параметр типа в какую-то непонятную хуиту и скажем в месте, где я не хотел, чтобы были одновременно и Double и Integer я это вполне получу. Пока не знаю как с этим боротся, надо подумать, тем более я не спал давно. >>3286157 Да, это решение, в какой-то степени, но я-то хотел функцию, которая работает для всех существующих конкретных типов чисел, а не только для Int. Мне придется каждый раз дополнять это через перегрузку методов какую-нибудь.
>>3286236 Все, допер как сделать. Если повесить генерик на интерфейс, причем генерик самое себя, то тк имплементации в общем-то не существует, то и невозможно будет обобщить до чего-то. Т.е. как бы мы наследуем, но дженерики не могут никак это использовать. Каеф.
>>3286698 > нашей любимой жабы Ловите шиза. > Сам я смог найти либо ебаный литкод, либо курсы от яндекса Хуле там искать? Ты что вообще практировать хочешь? Алгоритмодрочильню? Так чем тебя литкод и литкод-подобные платформы не устраивают? Разработку? Дрочи свои петпроекты.
>>3285676 >А есть какие-нибудь фундаментальные книги по джаве, где разбирается каждый пук, но при этом написанные не Шилдтом? Я 10 лет назад из-за него так и не стал вкатываться в джаву, вкатился в другой язык, щас вот решил потыкать джаву по фану, снова скачал Шилдта и понял, что всё равно его высеры принципиально понятнее не стали. Нахера тебе каждый пук, если тебе просто потыкать по фану?
Бери любую книгу курс и начинай учить, захочется деталей как работает ХХХ - читай доку, исходники, статьи в интернете.
>>3286236 Те нахуй выспаться надо чел, у тебя крыша едет.
>А потом Num и ой, пососем хуйца на этом этапе, поскольку есть четкая разница в виде kind между можно сказать интерфейсами и их имплементациями.
Ты нахуй ебу дал проводить такие аналогии. Ты вообще в курсе что Num - тайпкласс епта, и что само выражение :t @Num смысла не имеет? Нет такого типа. По той же причине ты не сможешь обьявить функцию типа Num -> Num -> Num -> Num, а вместо этого должен городить нечто вроде (Num a) => a -> a -> a -> a. Потому что это те не какой то там тип данных который ты можешь пихать как тебе заблагорассудится, это сущность на порядок выше.
И это хаскель. В джаве аналогов тайпклассам тупо не существует. Джавовые интерфейсы даже близко не про это. Поэтому брось это глупое занятие которое ты здесь >>3285737 затеял, и используй перегрузку методов как порядочный джава-свиненыш.
>>3286743 > у тебя крыша едет Это дефолт >Num - тайпкласс >Нет такого типа Эм.. Но это тип... Просто его kind не совпал. Или по твоему вот [] - не тип, а вот [Int] совсем другое дело.. >Джавовые интерфейсы даже близко не про это А по мне близко. Главное отличие, что в жабе нет kind-ов. Всё.. >Поэтому брось Рррря, нихачу. Тем более я вроде сделал, че хотел уже. Но надо все таки записать какие-нибудь мысли обобщения по женерикам, ибо картинки в этих тредах со временем умирают(
Сап, аноны. Мимо 35 лвл, java бэкенд девелопер, занимаюсь этим с того момента, как пошёл на первую работу ещё в универе. Чувствую некоторый карьерный застой - вроде всё норм, но хочется чего-то большего, собираюсь расширить свой стек чем-то востребованным, думаю дополнительно вкатиться в AI/ML, стать java AI/ML девелопером. Жалею, что в универе преподша по ИИ и нейросетям очень плохо объясняла материал и проёбывала лекции, вообще-то тема интересная. Как вам план? Есть тут кто-то, кто занимается по работе ИИ и нейросетями на java? Не как пользователь copilot, а именно как разработчик ИИ. Или ИИ/нейросети только на Питоне? Может, у кого-то есть список книг по ИИ с акцентом на Java, с чего можно начать вкат, буду очень благодарен.
>>3286752 >Или по твоему вот [] - не тип, а вот [Int] совсем другое дело..
[] как раз не тайпкласс, в отличие от Num. Поэтому к нему базара нет.
Набери :info [] и :info Num, и сравни вывод.
>А по мне близко. Главное отличие, что в жабе нет kind-ов. Всё.
Нихуя себе - "все". А тебе мало что ли?
В джаве и интерфейс и класс - это типы, а наследование или имплементация интерфейса компилятором всегда расценнивается как сабтайпинг, из-за чего вся твоя изначальная постановка вопроса просто рушится нахуй. Если аргумент метода у тебя - тип интерфейса, все без исключения его имплементации согласно сабтайпингу являются легальными типами для подстановки туда. Вот хоть ты тресни.
В хаскеле же тайпкласс - это не тип в привычном понимании. Ты не можешь обьявить функцию от Num (Num -> Num). Ты можешь обьявить разве что функцию от типа, поддерживающего Num (Num a => a -> a). Тайпкласс скорее сам - как функция, только такая, которая оперирует типами.
>>3286761 >сабтайпинг Ну вот про что и речь была в моем самом первом посту. Что идет смешение нескольких полиморфизмов. Это конкретно ad-hoc, а есть также параметрический в виде генериков. И вот получается хуйня какая-то. Когда ты делаешь вроде бы сигнатуру вида "a -> a -> a", думаешь, что к тебе придет одинаковый тип во всех трех случаях, но можешь получить разные типы в итоге: "Ineger -> Double -> Float" ведь все отсабтайпилось в "Number -> Number -> Number". Ну вот я и пытался по крайней мере сделать так, чтобы оно не сабтайпилось в наиболее общий тип.. >Тайпкласс скорее сам - как функция Ну наверное... Получается ошибся, це не тип, эхх. Хотя мне что-то трудновато провести четкую линию между кайндом и тайпклассом в этом случае. По идее кайнд выше, тип над типами, все дела. Тем более, что у тайпкласса есть видовая принадлежность - Constraint. Но тут непонятки возникают, вроде и то и другое по каким-то свойством выделяют группы типов.. Сложно, ещё книжечки в планы добавим.
>>3286785 Да ты хочешь просто непонятно что. Ну абстрагировался ты от конкретного числового типа в таком методе, оперируешь абстрактным <T> в вакууме, а делать то что собрался? У тебя тупо ни одной операции внутри такого метода доступно не будет.
>>3286697 В целом это действительно какого то рода решение
>>3286804 Ну это уже проблемы реализации. Там все куда проще. Навесил sealed, прошелся паттерн матчингом - гатова. >В целом это действительно какого то рода решение Няшно. Хотя мне порой грустно смотреть на свои прошлые решение, какое-то неприятное чувство, что становлюсь только глупее со временем.
>>3286811 Ну если силед с паттерн матчингом, ближайший аналог в хаскеле - data-типы, типа всяких Maybe. Но тогда тебе и ебля с дженериками не особо нужна - работай знай от базового типа, и дело с концом.
>>3286778 >Те к питонятам, это у них там пиТорч и все веселье. Думаешь, если перекатываться в AI/ML - то это 100% надо ещё на питон переучиваться, без вариантов?
>>3286864 > А почему нет большого охвата - не знаю. Мл дауны не просто так получили своё имя. Питухон славится своей пригодностью для дебилов (что не правда, нужно как раз иметь недюжинные мозги чтобы следить за всем за чем следит компилятор в джаве, но дебилы его любят из-за того что хелло ворлд писать там проще), поэтому и привлёк млщиков.
>>3286869 Сейчас в айти основной показатель это конкуренция. Срыночек не сработал (да сколько-ж можно-то! мне в шругнувшем атланте сказали другое!), зарплаты везде 300к, но где-то конкуренция 1 на 100, а где-то 1 на 1000.
>>3286848 Сильно скучал? >>3286814 Ну да, вероятно хватит простого включения метода в интерфейс. В любом случае с реализациями проблем меньше, поскольку они не публичны.
>>3286966 мать может и не будет, а вот ты.. сам подумай, вся твоя бессмысленная злоба в мою сторону, служит одной цели - привлечь моё внимание. но зачем из раза в раз его привлекать? я на самом деле хз, но думаю это как с дерганьем косичек: просто проблемы с выражением симпатии.
>>3286848 Че ты так горишь каждый раз? Критикуешь - предлагай другие темы. Что еще в этом треде делать - шарпеев гонять, да слушать нытье вкатунов? Этот челик хотя бы потешный в своих загонах и заблуждениях, в отличие от тебя.
Или тебя так смешно корежит потому, что ты не шаришь в хаскеле, но хочешь вставить свое ахуенно важное мнение? Bruh, у меня для тебя плохие новости тогда.
Вот говорят, что для джавы всё уже написано. А есть для джавы аналог ZIO? Приведу пример: ZIO.foreachParN(4)(names) { name => ZIO.bracket(openFile(name))(closeFile(_).orDie)(parseWeatherData) } .flatMap(analyzeWeatherData)
Эта штука читает, парсит и анализирует некий список файлов в 4 потока. При этом, если в процессе всего этого возникает ошибка, всё аккуратно завершается с гарантированным закрытием всех файлов. И всё это потокобезопасно. (Представьте объём кода, который делает аналогичную вещь на чистой джаве.) Короче, сложно так сразу объяснить, насколько ZIO облегчает жизнь. Но, может, кто-то из здешних обитателей уже знает про ZIO.
>>3287483 Почему не то? Ты объясни хоть, какую конкретно задачу решает это ZIO. Просто снижает объем кода и все? Ну ахуеть преимущество, тебе б в питон.
>>3287458 > Эта штука читает, парсит и анализирует некий список файлов в 4 потока И делает это дольше чем любой другой язык. Ебучая сКАЛа только полсекунды запускаться будет.
>>3287458 Чем тебя try with resources нативный не устраивает? Да и вообще под капотом там транзакционность обеспечивается? Вместо 5 строк, лень 10 написать, ну и ещё 3-5 на кэшпулы при желании? Зато не тащить в проект бесполезную либу уменьшая время и вес сборки
Сап тредовички, сманил меня большой зелёный круглый за 2 с небольшим сотыги гребсти у него, какие подводные у компании, кроме всяких охуевше закрытых контуров, траблами с повышениями и прочим широко известным?
>>3287706 Они все чистые и возвращают совокупное описание функциональных эффектов вместо выполнения самих эффектов. В ZIO ты сначала строишь "программу" из функциональных эффектов (путём вызова всяких ZIO-"операторов", по факту, функций). И только в самом конце, когда эта программа построена, у неё обработаны все ошибки и для неё предоставлены все зависимости (всё это гарантируется статической типизацией языка - и это одна из главных фишек), ты эту программу отдаёшь на выполнение. Короче, если во всё это вникнуть, штука оказывается очень полезная, поскольку позволяет без особого напряга писать надёжные, масштабируемые приложения. Но, похоже, не на джаве.
>>3287733 >Они все чистые У тебя там открытие/закрытие файла, управление потоками, обработка исключений. Чет вообще не вижу чистоты, если честно. Там такой трансоформер монад страшный по идее должен быть... Ты типа его спрятал, показав ~1% кода? Да и сама скала impure, типа я вообще глянул, pure языков раз два и обчелся, мех.
>>3287725 >Чем тебя try with resources нативный не устраивает? Оно меня не то, что не устраивает. Просто в ZIO, насколько я вижу, реализовано много всего полезного - тут тебе и railway-oriented programming (приятно, когда есть happy path и почти нету control flow), тут тебе и DI, тут тебе и non-blocking concurrency и ещё много чего, и всё в одной либе без посторонних зависимостей.
>Да и вообще под капотом там транзакционность обеспечивается? Читай про Fibers и STM по ссылке ниже. https://www.baeldung.com/scala/zio-intro Там кое-что написано про ZIO, если кому интересно.
>>3287746 >У тебя там открытие/закрытие файла Тот пример про файлы я из одного видоса стянул, поэтому могу только предполагать что там имелось в виду. Скорее всего, никакие файлы там в ф-ях openFile/closeFile не открываются и не закрываются, а эти функции просто используют какой-то "нечистый" сервис для открытия/закрытия файлов в качестве зависимости. Но сами ф-и openFile/closeFile - без сайд эффектов и просто возвращают описание того, как они используют этот нечистый сервис. Что-то в этом роде.
>>3287766 Т.е. ты смотрел видосик, загорелся идеей и прибежал в тредикю хвастаться, мол смотрите какой хидден гем?
> без сайд эффектов и просто возвращают описание того Ну действительно, открывают и открывают файлы, какой же это сайд эффект. Ну и в любом случае смешивать pure код с нечистым хуйня какая-то. Обычно же максимально сокращают количество IO и душек в коде, примерно как с unsafe в коде. А тут по сути хуяк и все в большую монаду ZIO погрузили и работаем с этим. Странный подход в любом случае.
>>3287771 >Т.е. ты смотрел видосик, загорелся идеей и прибежал в тредикю хвастаться, мол смотрите какой хидден гем? Ну, на самом деле, я - миддл+ фронтэнд + BFF и уже где-то полгода пишу бэкэнды на Effect (аналог ZIO для Typescript), и очень этим Effect-ом доволен. Но, в целом, фронтэнд меня подзаебал, а самая популярная по вакансиям в бэк у нас - джава. Вот я и интересуюсь, нет ли в джаве чего знакомого, что бы позволило свести боль при написании приложений к минимуму.
>Ну и в любом случае смешивать pure код с нечистым хуйня какая-то. На самом деле нет. Этот подход называется Functional Core, Imperative Shell. И он хорошо работает. Говорю из личного, пусть и небольшого, опыта. Ядро с логикой (слои с логикой для Entities и логикой приложения) состоит из чистых, легко тестируемых функций, некоторые из которых возвращают описания функциональных эффектов, формируя тем самым "программу" (никакие эффекты при этом не выполняются). А на границе приложения (в самом внешнем слое) перед выполнением этой "программы" инжектируются всякие грязные зависимости (ввод-вывод и прочее), которые, опять же, легко замокать для интеграционных тестов.
>>3287794 Если ты отложишь сайд эффект до какого-то момента, он не перестанет быть таковым.. Ты же мне пытаешься втереть какую-то дичь все накидывая и накидывая баззвордов. Бесит.
>>3287797 >Если ты отложишь сайд эффект до какого-то момента, он не перестанет быть таковым. Ну так фишка ZIO/Effect - в том числе в этой отложенности. ZIO/Effect позволяют тебе убрать код, непосредственно вызывающий сайд эффекты (в т. ч. асинхронные), из кода с логикой, тем самым делая код с логикой чистым и легко тестируемым.
>накидывая и накидывая баззвордов То, что для тебя - баззворды, для других - архитектурные подходы, используемые изо дня в день. Что тебя смутило, я не пойму?
>>3287754 Бля, мне вот в жаба треде неиронично абсолютно похуй на скалу и что там под капотом реализовано в отдельно взятой библиотеке, чтобы заходить ради твоей шизофрении и читать что же там на баелдунге, пока всё что ты описал реализовывается буквально за полчаса - час не спеша, для этого уже нативно буквально всё есть и нужно просто собрать в одном месте
>>3287794 >свести боль при написании приложений к минимуму И где тут боль? Пока описанное тобой - это сахарный диабет, зайди в загончик с сисярпистами, позоонаблюдая
>подход называется Functional Core, Imperative Shell. И он хорошо работает. Ровно до момента пока не придёт кабан кабаныч с непреодолимым желанием сделать вещь, которая в архитектуру никак не вписывается
>>3287803 >ZIO/Effect позволяют тебе убрать код, непосредственно вызывающий сайд эффекты (в т. ч. асинхронные), из кода с логикой, тем самым делая код с логикой чистым и легко тестируемым. До момента пока не сломается что-то в подключенной библиотеке лулв или не потребуется что-то дополнительно, либо внезапно окажется, что под капотом какая-нибудь сессия закрывается прям по ходу выполнения и т.д. и т.п.
Короче всё твоё нытьё ничего на реальном бэковском проекте не стоит, там задачи гораздо сложнее стоят
>>3287794 >Ядро с логикой (слои с логикой для Entities и логикой приложения) состоит из чистых, легко тестируемых функций, некоторые из которых возвращают описания функциональных эффектов, формируя тем самым "программу" (никакие эффекты при этом не выполняются). А на границе приложения (в самом внешнем слое) перед выполнением этой "программы" инжектируются всякие грязные зависимости (ввод-вывод и прочее), которые, опять же, легко замокать для интеграционных тестов.
Не вижу ничего, чего нельзя было бы повторить обычным спрингом. В любом случае, "миддл+" уже не должен бегать по интернетам с обосранной жопой и кричать, что без библиотеки Х у него коды не пишутся. За версту воняет непрофессионализмом.
>>3287797 >Если ты отложишь сайд эффект до какого-то момента, он не перестанет быть таковым.
Расслабься. Это чисто функциональная история, она везде выглядит одинаково. Суть не в том, чтобы сайд эффектов вообще не было - это тупо невозможно, банально потому что сам комплюктер - один сплошной сайд эффект с мутабельными диском, памятью, сетью. Никто не говорит что сайд эффектов быть вообще не должно.
Суть в том, чтобы максимально отделить сайд эффекты от логики. Когда ты откладываешь сайд эффекты до самого упора, выясняется что управлять ими становится на порядок проще.
Да, в джаве по историческим причинам так не принято, хотя не то чтобы невозможно. Но потихоньку функциональные фичи просачиваются и в джаву. Те же стримы - по сути своей с источником данных они не делают нихуя ровно до тех пор, пока ты не дернешь терминальный оператор. Это история про то же самое.
Мимо, не оправдываю ZIвуна - скорее это очередной промытка на хайпе пришел повыпендриваться.
>>3287589 >Чем он тебя так уязвил? Ненавижу динамическую типизацию + сахар НЕ упрощает разработку, а только усложняет. >5 Ебало сложно имаджинировать. >и если не андроид девелопер Ну там котлин меньшая из проблем.
>>3288555 >Ненавижу динамическую типизацию Хуйню несешь. В котлине статическая типизация. Что тебя вообще навело так подобную мысль? Пиздани, что еще в хаскеле она динамическая, ведь там вообще можно типы явным образом не писать. Прям как в жс.