Что такое Java? Java - язык программирования с классами (aka объектно ориентированный), где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией). Заебись. А что ещё делает Java лучшим языком программирования? - На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать - Java - мультипарадигменный язык, тут можно писать в любом стиле, который тебе вздумается, даже к памяти можно получить доступ через Unsafe, но, при этом спроектирован язык для того, чтобы на нём писали в ОО-стиле. - От прошлого пункта плавно перешли к отличной проработке языка - язык с самого начала задумывался как язык для ООП и многопоточности, благодаря чему писать чистокод на Java легче лёгкого! - Java - относительно молодой язык, который до сих пор активно развивается жидами из Oracle, при этом почти неполживо опенсорсно. - Java следует принципу write once во всём. Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).
>>2443284 В шапке есть вопросы, нужно свободно отвечать минимум на ~85% из них, уметь в срок решать желто-красные задачи на литкоде и иметь пару проектов на разных технологиях.
>>2443284 Пройди простой тест, прибавляй 1 балл за каждый ответ "да"
1) ты инвалид колясочник 2) у тебя из одежды только футболка Ария с пятном от фапчи 3) тебе отрезало ноги трамваем 4) при слове спринг у тебя только одна ассоциация: как прошлой весной тебя выебал бомж возле кфс 5) у тебя кринжовая тату на лице типа linkedList()="мам я долбаеб" или using System; namespace MyNamespace
Если набрал 1 балл и более, то ты не готов идти на собес
>>2444139 Двачаю, перелез на раст теперь не представляю как на go можно писать, тут по сути тоже что и go, только компилятор бьёт по рукам когда ты криворукий долбоеб и более строгое отношение к лайфтаймам и владением, плюс иммутабельность по умолчанию и охуенные дженерики. Ну а если надо что-то быстро нагоанякать, то беру ноду, на js всё есть и давно его знаю. Короче инструменты по задачам
>>2444260 >Поддерживать протухший легаси Да. Сейчас с работой туго очень. Так что я решил идти в жабу, устроюсь куда-нибудь с трехсотой попытки в подрядчик банка, буду на 6-8 джаве писать и хмл конфиги править. Один хуй работы нормальной почти что нет для вкатунов, а ту, что есть моментально разбирают челы из топовых вузов.
>>2443253 (OP) Нахуя перекатили? 8 тредов на доске висят. Еще и перекат уебищный, один микропост в прошлом треде с одной единственной ссылкой без болда на перекат, который хуй заметишь.
Как в Спринг Дате можно native-запросом получить массив строк? Заведомо неизвестно, какие сущности там будут. Насколько я понял, getResultList возвращает список Object. По сути, задание в том, чтобы написать на Джаве что-то вроде SQL-клиента с использованием Спринга (но вообще я бы не парился и все бы на чистом JDBC захерачил, но там требуют, чтобы Спринг был).
>>2444489 >получить массив строк Пишешь native query, тебе прилетает ResultSet, маппишь его в массив строк.
>>2444489 >написать на Джаве что-то вроде SQL-клиента с использованием Спринга (но вообще я бы не парился и все бы на чистом JDBC захерачил, но там требуют, чтобы Спринг был)
А как без JDBC? Через репозиторий ведь не получится просто взять и достать рандомные данные через скуль запрос. Да ты и репозиторий создать не сможешь, так как нет привязки к сущностям.
Сделал @ExceptionHandler чтобы ловить AccessDeniedException который выпадает когда неправильный токен заходит и хэндлер почему-то нихуя не ловит. Что за хня?
>>2444494 Сам спросил, сам ответил. Просто сделал native query из EntityManager'а. В итоге он возвращает список с массивами объектов (List<Object[]>). Как-то это всрато, но таково задание.
Подскажите, как правильно обозвать методы в соответствии с RESTful? Есть база данных с городами, надо круды сделать. Вроде все понятно, но как с удалением быть?
POST /cities - создаем город GET /cities - все города GET /cities/{id} - город по айдишнику POST /cities/{id} - изменить город
И вроде можно сделать специальный параметр в последнем методе, например boolean delete или даже Enum, но это как-то не комильфо, наверно? Или правильней будет сделать отдельный метод DELETE? Хотя мне учили только на GET и POST все писать.
>>2444811 Смысл GET ты понял правильно Для удаления DELETE /cities/{id} Для частичного апдейта PATCH Для создания или полной перезаписи сущности PUT А POST обычно для выполнения действий, которые в идею реста и круда не вписываются, чтобы вызвать метод с логикой на сервере.
>>2444856 Для хибернейта есть @Entity(dynamicUpdate = true) и для спрингдаты @DynamicUpdate А нормальные люди пишут билдер запроса, который генерирует список полей в UPDATE и скармливают их NamedParameterJdbcTemplate.
Сейчас вот смотрю разные слитые платные курсы и офигиваю за что люди платят деньги. Типичный пример, на занятии: смотрите, 1+1 = 2, а в качестве домашнего задания посчитайте тройной интеграл. Как это делать? Ни каких материалов не дали, ничего не объяснили. За что они вообще берут деньги!?
Может хватит бухтеть и дестабилизировать ситуацию в жава мире?
Есть инфа от знающего человека, что в жаве скоро ожидаются реальные изменения. После того, как стабилизируют вальгаллу, уничтожат повсеместные блокировки (плохо влияют на перфоманс). Тогда везде и сформируют новую лтс. Зарплаты поднимут и будут держать, шарписты ничего не смогут сделать. Сейчас главное не бухтеть.
От нас требуется сидеть тихо. После того, как все сделают, все будет у нас хорошо. Всем устроят довольствие, как скалистам - каждый будет кататься в масле. Главное сейчас сидеть тихо и не суетиться. Никаких котлинов, никаких жетбрейнсов. Просто переждать и всё будет хорошо, там все схвачено.
Просто надо перетерпеть смуту и все наладится, братка. Не надо кричать и говорить, что жава - говно. Отсиди свой срок в интернете или просто расслабся, отдохни, накати пивка, бабу выеби в конце концов. Бесконечный сахар также является говном, говном более тщательно замаскированным, ну в сущности не дарующий хорошего кода.
Ребята, не кипишуйте! Сидите тихо, сейчас такой момент, нужно переждать! Просто завяжите узелком свои хотелки, не время предъявлять претензии ораклу. Поверьте, там все знают лучше вас, там люди, управляющие жавой уже давно, а не вчерашние школьники. Они понимают, что делают. Стираются женерики - значит должны стираться, начали внезапно пилить вальгаллу - значит так нужно. Сейчас очень напряженный момент, некоторые много ходовые операции в критически важной стадии! Враги и конкуренты все это уже поняли, и сейчас может рвануть в любом месте, в любой момент. Необходимо сплотиться и не реагировать на провокации! За вас все сделают те, кто сверху, не беспокойтесь! И вы не узнаете жаву, все зацветет! Главное - потерпеть!
>>2445094 Логика должна быть в сервисе, а не контроллере get() без проверки отсутствующего города Невозможно убить всех жителей города Когда у тебя появится больше полей в модели ты заебешься их обновлять по одному.
Нафига нужен Hibernate? Таблицы сам создавай, классы сам расписывай, связи тоже разжёвывай ему куда и что, причём не так как я бы хотел, а как вынужден по его дурацкому стандарту. Что он там делает под капотом - не понятно и скорей всего не так эффективно. Не проще писать все запросы на JDBC, если и так приходится разбираться в кишках и SQL?
>>2445103 Ну как минимум доставать сущности со ссылками на кучу других сущностей удобно, не нужно писать километровые джойны руками. Да и вообще результаты запросов хибера сами маппятся в нужные сущности. Если JDBC использовать, то придется самому писать мапперы ResultSet -> Entity.
>>2445126 Да нормально хибер использовать если нет каких-то жестких требований к производительности и сам хибер не впадает в жесткий ступор. Сейчас почему-то стало модно хейтить хибер, но в действительности на нем люди пишут и пока что лучших альтернатив не видно.
>>2445103 Согласен. Но чистый JDBC - довольно древний и геморройный в использовании стандарт. Лучше юзать его в связке с JooQ, либо на крайняк через spring data JDBC.
Стоит начинать вкат с легаси или непопулярных технологий? Учил молодежные технологии вроде спринг бута с хибернейтом, писал свои круды. Сейчас зовут в одну контору, но там восьмая джава на голом jdbc со свингом.
ИМХО стоит. Со стажем за плечами в будущем не будут смотреть как на говно без опыта. Кроме того, чекни --- может эти челы сами не шибко довольны сложившейся у них ситуацией, и планируют перекат на обновленный стек?
>>2445165 Смотря что за контора. На таком говне могут кроме тебя сидеть 2 петровича, ни в жабе, ни в вообще современной индустрии не шарящих. Там может не быть процессов - нет тестов, системы управления тасками и даже гита. У меня так было, когда позвали на спринг + жава 8, а там был просто зоопарк из жава-ее библиотек и спринг чисто для di. Я бы на твоем месте сам пооценивал уже имеющихся прогреров на проекте. И если понимаешь, что сторожилы много в чем не шарят - не иди туда. Ты у них ничему не научишься.
>>2445100 >Логика должна быть в сервисе, а не контроллере Все остальные методы в одну строчку. Мне из-за этого сервис создавать? Это тупо тестовое задание, надо чтобы работало, ну и чтобы правила REST были соблюдены.
Посоны, а чё сейчас в жабе, 95% бекенда это всё ещё спринг? На котлине всё ещё только мобилки делают? Я иногда лениво думаю перекатиться, но у меня аллергия на жирные фреймворки, поэтому что гибернейт, что спринг очень отталкивают. те же c#вые аналоги очень изящнее выглядят и не создают ощущения бессмысленного нагромождения кода.
В задании мне надо еще реализовать сервис для native SQL-запросов. Куда лучше вынести запрос, в PathVariable или в RequestParam? Или вообще как тело посылать POST-запросом?
>>2445449 >Посоны, а чё сейчас в жабе, 95% бекенда это всё ещё спринг? Истинно так, и в 95% тестовых заданий нужно просто написать круды для REST-сервиса.
>>2445415 Хз чел, это очень необычная задача, наверное никто никогда раньше с ней не сталкивался. >>2445420 >Все остальные методы в одну строчку. Мне из-за этого сервис создавать? Да. У нас как-то джун написал логику в контроллере, так мы его отпетушили.
>>2445449 > аллергия на жирные фреймворки Тогда жаба не для тебя, как и шарп, у них вместо спринга такой же жирный аспнет с килотоннами старья, причём их старьё работает только на винде, а жабовское легаси хотя бы кроссплатформенное. А микрофреймворки есть везде, но они нахуй никому не всрались, т.к. для их задач хватит петухонов-жопаскриптов.
>>2445482 Есть и вакансии без спринга. Всякие высоконагруженные сервисы на Reactor, vert.x и др. Но туда берут только сеньоров с 10-летним опытом работы.
>>2445452 >SQL >PathVariable >RequestParam Делаешь пару джоинов и веб-сервер ехидно отдает 414. Алсо, задача выглядит как зделой нам свой пыхыпымуадмин, с блекджеком и уязвимостями.
>>2445114 Орм вообще зло, толку от них только когда надо шлёпать примитивные круды, если чего-то сложнее, то все пиздец начинаешь под эти орм писать всякую хуйню вместо того чтобы заебенить запрос
>>2445617 Прочитал одну фразу и сразу порвался? А теперь прочти весь пост. В древнем проприетарном дотнет фреймворке, про который я и говорю, есть дохуя компонентов, отсутствующих в современном кроссплатформенном дотнете. Тот же WCF, к примеру. Майки выпилили старьё из платформы и тем самым усугубили ситуацию с легаси, переход теперь плавно не произвести, только с нуля переписывать, либо юзать сторонние реализации старья от васянов.
>>2445617 Этот еблан путает старый ASP.NET, который был такой же устаревший легаси монстр с практиками из нулевых, как спринг, с новым ASP.NET core Почему я ненавижу большую часть коллег, потому что вот подобные дегенераты работают без кругозора в своей же сфере
>>2445686 >старый ASP.NET, который был такой же устаревший легаси монстр с практиками из нулевых, как спринг, с новым ASP.NET core А в чем принципиальная разница? Спринг так-то тоже не стоит на месте, и 6 версия будет отличаться от третьей и перфомансом, и фичами, и удобством.
Как в хибернейте вытаскивать данные из нескольких таблиц? К примеру, классический случай: есть покупатели и товары, они связаны промежуточной таблицей покупок (ид покупателя, ид товара). И как мне выдернуть по покупателю все купленные им товары? Писать join как в обычном SQL? В чём тогда преимущество хибернейта?
>>2445499 >Есть и вакансии без спринга Есть, но там обычно поомйное легасное говно, где просто сервлеты + jdbc, и ничего более. В прицнипе код понятным и прозрачным получается, но увы далеко не уедешь на таком тулинге.
Продолжаю насиловать Hibernate, такая беда: когда таблица создается им самим, то я не могу вставить сущность прямым запросом, Постргес ругается, что я явно не указал ID:
ERROR: ОШИБКА: нулевое значение в столбце "id" нарушает ограничение NOT NULL
Хотя если я предварительно создам таблицу запросом, все работает нормально, и через Hibernate, и через запросы. Как можно в явном виде указать, чтобы у поля ID был тип SERIAL?
>>2445832 Вот кстати да, у них же была историческая возможность продемонстрировать, что джава не говно и нужна не только, чтобы индусы фабрики на спринге создавали. И что в итоге? IDEA тормозит ну просто безбожно, хуже только eclipse вот ведь какая ирония
У меня все данные хранятся в БД, но вот щас появилась задача молниеносно реагировать на события с использованием данных из БД (время пинга до БД в несколько тысяч раз медленнее необходимой реакции, даже с диска читать медленно, только из хешмапы мб норм будет). Мне что, правда нужно ручками создавать кэши? А микросервисы как?
>>2445840 1) Ты уверен, что ты всё делаешь правильно? Такие задачи встречаются, но что у тебя "время пинга до БД в несколько тысяч раз медленнее необходимой реакции" это звучит ну очень сомнительно. За сколько тебе нужно ответить, за наносекунду? Что ты там пишешь, обработчик для ядерного реактора? mmorpg? Если это веб, то у тебя ~100 мс может просто запрос от клиента до тебя лететь, со всеми этими хендшейками, https и прочей фигнёй. 2) Кэш это более чем нормально на самом деле, правда обычно применяется в ситуациях, когда данные скажем нормализованы и тебе неохота постоянно их собирать и мб высчитывать что-то, когда у тебя оно уже посчитано. Главное имей ввиду, что с кешами тоже бывают головняки, они устаревают, разбухают и можно словить рассинхрон между кешами, если у тебя больше одной ноды в приложении. 3) Микросервисы это тупо способ представить одно приложение, как набор из нескольких десятков приложений поменьше. Сами они ничего не ускоряют и даже наоборот, замедляют работу системы, потому что раньше компоненты приложения общались друг с другом в рамках одного системного процесса, а с микросервисами им приходится это делать через сеть. И уж тем более они никак тебе не помогут в случае, если тебе нужно быстро что-то отдать. Максимум, конкретную ручку, к ооторой такие особые требования, можно в отдельный деплоймент вынести, чтобы удобнее было за потреблением ресурсов следить, но микросервисами оно от этого не станет.
>>2445852 >можно словить рассинхрон между кешами, если у тебя больше одной ноды в приложении. Вот в этом то и прикол. Раньше у меня была одна нода, и всё я держал в прокаченной хешмапе и постепенно сбрасывал на диск все изменения. Но потом нагрузка выросла, и мне потребовалось горизонтальное масштабирование, я решил добавить ещё пару нод, а связать их с помощью общей БД. Но реакция становится гораздо медленнее, а с кэшами рассинхрон или экспоненциальная сложность разработки чего-то из-за необходимости всё синхронизировать.
>>2445841 Да это просто тупая жаба со своими фреймворками, которые даже сами создатели не до конца понимают, когда жаба уже умрет, а спринг выпустит свой собственный язык
>>2445861 Написал запрос с джойнами через хибернейт и нифига не работает. Запустил SQL-клиент и попробовал тот же самый запрос и мне всё четко выдало. Так что этот хибернейт не только бесполезный, но ещё и вредный, так как даже простые запросы не может выполнить. Вот многие пишут, что дескать в JDBC надо писать много стереотипного кода. А в хибере не надо что ли!? Его там на порядок больше. Ты просто все сущности должен обмазать аннотациями и по 100 раз прописать тупому хиберу что и с чем связано, а потом также как в JDBC делать запросы через тонны связок с сессиями, подключениями, транзакциями и прочей фигнёй.
>>2445866 Полностью согласен с тобой, большинство нормальных людей ни хибер, ни спринг дату вообще не используют, в основном только ждбс и то сейчас пошла тенденция хранить все данные в статической хэшмапе отдельного класса, говорят за этим будущее
>>2445856 Ну тут есть варианты. Первым на ум приходит редис, как правильно заметил >>2445858. Хотя если у тебя такие ниибаццо строгие критерии, то пинг до редиса может тебе не подойти. Рассинхрон кешей на самом деле вполне решается. Они у тебя ленивые или как? Если тебе их заранее не нужно прогревать, то можешь просто более или менее короткий экспирейшен кеша выставить и считать, что (иногда) рассинхоны это норма. В противном случае можно попробовать как-то синхронизировать твои ноды. К примеру, все данные могут лежать в базе, а все ноды или раз в несколько секунд делают select * from caches where updated_at > {last_updated_at_from_service}. либо вообще listen/notify, если бд позволяет. Тогда как только кеш обновится в базе, остальные сервисы в течение короткого времени сами заметят изменения и подтянут его. Рассинхрон тут всё равно возможен, да, но что поделать. Просто по CAP теореме, у тебя будет или рассинхрон, или простои системы, потому что это же сеть, тут обрывы связи - это обычное дело. Ну кстати или синхронизировать это говно какой-нибудь очередью, или кафкой/кроликом/тп, или просто wal читать от базы.
>>2445872 >>2445859 >>2445858 Спасибо, аноны, за помощь, придётся погружаться в хазелькастовую залупу, выглядит как решение для меня. Но я ещё подумаю, может быть, в моём кейсе можно справиться, не прикасаясь к кровавому энтерпрайзу с его терабайтными инструментами.
Посоветуйте плиз хороший материал по секурити и кафке. С документации начинать чет вообще не хочется, там как обычно на первых парах хуй разберешь, что тебе нужно в данную секунду, а что нет
>>2445880 Хз, хазелькаст выглядит оверкиллом а ещё они корпопидоры И делают скорее всего примерно то же самое, что тебе описали выше, просто лаве берут за это
>>2445878 Ну вот кстати частый вопрос, который задают на собесах: основные способы реализации внедрения зависимостей и самый предпочтительный из них. Best Practices - через конструкторы, тут конечно можно холивар развернуть (но это один из тех вопросов, на который все знают ответ, а почему забыли). Я за последние пару лет @Autowired встречал один раз всего, он нужен был для self-injection, что в свою очередь говорит, что где-то проеб с архитектурой.
>>2445937 А зачем тебе секурити в кафке? Интересно, работаю с кафкой некоторое время, но секурити пока не требовалось. Может тоже что-то почитал бы по этой теме.
Обрати внимание именно на 4-е издание. Да, мы в курсе, что есть шестое. Да, мы в курсе, что перевод на русский есть только на третье издание. Но в шестом издании нет подробного описания подкапотного устройства и выкинута настройка с помощью XML.
Что тут подразумевается под подробным описанием подкапотного устройства?
>>2445961 Так я и есть джун. А какие ты думаешь требования на мидла+ по знаниям кафки? Думаю прочесть вот эти книжки. В самой доке кафки кстати очень мало инфы, надо кипы читать и комменты к ним.
>>2446036 > правда апиха спринг-кафки немного устарела
Можешь пожалуйста пояснить, что такое вообще "спринг кафка" и причем вообще тут спринг? Поясню свою мысль. Кафка это же внешний сервис, со своим клиентом, который ты просто подключаешь в свой код каким угодно образом и используешь. При чём тут вообще фрейморк? Зачем вам какой-то особый мост между спрингом и кафкой? Казалось бы, буквально в нужном сервисе в коде инжектишь kafkaClient или там interface publisherClient и просто начинаешь писать туда сообщения или читать их.
>>2446058 Это более высокоуровневая апишка над кафка-клиентом. Например консюмер выглядит не просто как бесконечный цикл, а все обернуто в метод с аннотацией. Есть json-serializer/deserializer для сериализации pojo-dto. Посмотри первый видос. Причем это не самая высокоуровневая апишка. Есть еще spring-integration-kafka поверх spring-kafka.
>>2446109 Рефку поспрашивай на гиперскилл. 3 месяца + по месяцу за выполненный проект и пройденную ступень. Итого 5. Если не ебланить, нормально получится.
Я перешел на 3й курс уника. На данный момент знаю весь кор джавы и спринга. Плюс по мелочи sql , Liquibase , паттерны основные. Есть много петов на этом стеке. Вопрос что мне учить дальше что бы по окончании учебы быть полезным?
>>2446137 >Потому что потому Ну мааам. Кафка же во внутреннем контуре, во внешний интернет не торчит. Это же не рест-апиха, которую мы отдаем на машины пользователей. Я понимаю, что бывает, когда торчит публичный топик для внешних пользвателей, но это отдельный кейс.
Смотрите я хочу сделать два микросервиса: 1) первый на noSql webflux 2) обычный синхронный CRUD на Sql, который стучится в первый сервис и берет из его джейсонины некоторые кей валью, но не все. Это будет работать?
>>2446124 Спасибо, не знал что там есть рефералки с таким щедрым подгоном. Жаль только придется прокликивать все пройденные темы если продолжать с новым аккаунтом.
Почему я не могу так отсортировать примитивы? Я хочу перенести все нули вправо, сохранив порядок других элементов. И как это сделать? Закинуть туда Integer::compare(i, 0) нельзя чо началось то нормально же сортировали
>>2446415 Для начала у letscode есть 2-3 неплохих видео по докеру. Дальше гуглишь пример spring boot + postgres в docker compose, разворачиваешь это дело, проверяешь что все работает как надо. Ну и еще бы желательно про networking в докере почитать: bridge, host, вот это все. Тут лучше документацию читать.
>>2446344 >Почему я не могу так отсортировать примитивы Потому что Comparator.comparingInt принимает на вход ToIntFunction. У тебя же лямбда boolean возвращает.
>>2446423 Но если бы это был стрим объектов .boxed, то все бы работало (только надо было бы Comparator.comparing()), а потом mapInt. А я не хочу заниматься автоупаковкой и автораспоковкой, какое решение?
>>2446440 >нужно боксить Нинужна!11 Я тогда лучше классическим православным циклом for сделаю, чем буду пидорским стримом примитивы в обертки засовывать, а потом высовывать.
Имплементировать Either в свой шарповский код - хорошая идея чи нет? Просто меня немного подзаебало, что вот есть контроллеры. Вот есть сервисы. Я хуйнул Either<TResult, TError>, переопределил приведение. Сейчас контроллеры выглядят примерно так:
public IActionResult GetList() => _service.GetList(); В случае если все ок - вернется лист, если не ок - ошибка вида: { Error:Code, Message: ErrorMessage }
Но чет я думаю - и со стороны ж не очивидно. Типа да, коджа стало меньше, он чище. Но теперь кому-то еще - нужно лезть в реализацию сервиса, чтобы понять, чому ему возвращается что-то там. А потом - разбираться как оно работает. Короче. У вас такое делают?
Бля чет зашел щас на hh поискать вакансии на ждунов в мск и мне выдало аж 15 штук, в половине которых набирают на самом деле не разрабов, а dba или q/a, а в другой просят какие-то ноунейм технологии, которые ради одной этой компании учить впадлу. Че за хуйня? Реально сейчас работу вообще найти? Я так-то скоро пиздовать искать хотел. Хелп
>>2446600 Что ты имеешь ввиду под реальными навыками? Ну вот у меня будет реальный навык написания говнокруда за 10 минут на 5 эндпоинтов этого достаточно чи шо?
>>2446218>>2446237>>2446248 Вы ебанутые? С первого дня создания стримов они были ленивыми, вот вам последствия. Вся цепочка стрима не вызывается, пока не будет вызвана какая-то терминирующая стрим операция. Тфв когда жабу ругают за отсталость, но на деле фича типа генераторов есть испокон веков но разрабы заросли мхом
>>2445834 >хуже только eclipse хз у меня древний эклипс с майнкрафтом на древнем ноуте наоборот хорошо работает даже с 4гб оперативки а вот идеякал всю оперативку сжирала еще и тема уебищная и хотсвопать на отдельные кнопки нужно да и в целом неудобный редактор неказистый какой то хотя хз за шесть лет может улучшили
>>2445705 Разобрался! Оказывается хибернейт сам заполняет сущности теневыми запросами. Ни в одной книге этот момент не объясняется. Про мурзилки ваши вообще молчу, там всякий бред только пишут, далёкий от реальных проблем.
>>2446618 Нет, нужно уметь решать медиумы на литкоде, хорошо разбираться в тонкостях многопоточной синхронизации, уметь пояснить за коллекции в деталях. Ну и да, уметь написать круд с регистрацией, авторизацией (spring core, data jpa, security), поднять в докере, уметь написать юнит тесты + желательно знать основы микросервисных хуевин. Это уровень такого слабенького стажера на самом деле в 2х22 году. Вот с такого уровня уже можно вкатываться в работу.
>>2446778 >поднять в докере Что это значит? Загрузить туда программу и запустить? Разве это не работа сис. админа? Как изменяется код от того, что он запускается в докере?
>>2446781 >Загрузить туда программу и запустить Да.
>Разве это не работа сис. админа? В теории его, но на практике все везде крутится в докере. Не умея работать с докером ты просто не сможешь удостовериться в том, что твой код вообще работает, а не просто тесты проходит.
>>2446069 А зачем это всё? Захочу сделать сериализацию в нужном месте - ну просто внутри коллбека вызову руками нужный сериализатор и всё. Зачем мне комбайн, который что-то там делает под капотом волшебное, когда я могу руками из библиотек собрать ровно то, что мне нужно?
>>2446715 Справедливости ради, идея всё же лучшее, что есть на рынке IDE сейчас. Все эти visual studio code и рядом не стояли по возможностям.
>>2446916 >А зачем это всё? Затем, зачем и всегда нужны фреймворки, уменьшить бойлерплейт код. Да и хз, что у тебя там в питоне, интерфейсы какие-то. Нативный джавовский клиент не так устроен, может там тоже какие-то дополнительные функции. Над продюсером и админ апи там очень маленькие прослойки. А над консьюмером там большой комбайн с конфигурацией еррор-хендлеров(с конфигурацией ретраев/пересылки в длт), конкурентного чтения, пакетной обработки, десятком видов фиксации оффсета, мониторингом, транзакциями, остановкой/паузой консьюмера, поддержкой евентов на каждую стадию обработки сообщения, валидацией дтошек, оберткой, чтобы клиенты кафки работали в с семантике запроса/ответа, дополнительными конверторами, делегатами десериализаторов.
>>2446916 >Захочу сделать сериализацию в нужном месте - ну просто внутри коллбека вызову руками нужный сериализатор и всё. >Зачем мне комбайн, который что-то там делает под капотом волшебное, когда я могу руками из библиотек собрать ровно то, что мне нужно? Чтобы не тратить время. Spring-kafka это неплохой компромисс между простотой и низкоуровневым апи, стандартная спринговая либа, все гибко настраивается. А вот все остальное, что там наворотили это лютый пиздец. Кафка слишком сложная вещь, куча мест, где все может сломаться и абстракции потекут. Новичкам возможно действительно лучше начинать с простого кафка клиента, и делать все вручную, понимания будет больше. А то в spring-kafka аннотацию над методом поставил, пару пропертей прописал и все, кажется, что все будет работать (нихуя).
Выхожу на связь, давненько не писал, был творческий кризис. Сделал свое личное карманное AWT с перехватом фокусов, менежментом активностей фреймов и прочая и прочая. Это все нужно для редактора карт, которому нужна своя оконно-компонентная система (использовать swing постеснялся, решил написать своё) d2d2-components обособлена как отдельная либа, со своими git репозиторием и своей mvn dependency. Нет пока только layouts, компоненты нужно выставлять вручную, указывая координаты. Пока не придумал как сделать layouts так, чтоб не было слишком больно.
>>2447250 >Нахуй он тогда нужен? Ну потому что >Minecraft: Bedrock Edition does not support mods officially or unofficially due to the universal codebase upon which it's built. However, players on the most modern version of Minecraft can still change things up with the Minecraft Marketplace, an officially supported, community-built storefront filled with new maps, texture packs, character skins, adventure maps, and behavior / resource packs with free and premium options. )
>>2447436 Пока что на этапе написания диздока, вайтпеппера, ванпейджера, сайта, вот этого всего, созвонов бесконечных. Диздок, кстати, дописал. Большие фонды пока не привлекали.
>>2447490 > Типа в мобильной разаботке > Бэкенд? Но ведь сервера все и так со всякими докерами и виртуализациями рабротают Бля чел, но джава появилась не одновременно с докером блядь, и не одновременно с ведроидом. Она появилась когда мне был годик или около того, а ещё через 7 лет появился ты. И на момент появления этот функционал вообще мозг людям взрывал.
Дорогие разработчики. Меня, автотестера побудило вместо автотестов написать банальную программу, которая открывает браузер (Selenide), кликает ссылки до тех пор, пока не доберётся до искомой страницы и парсит оттуда данные. Чтобы сэкономить время, я сделал 100 строк в классе Main, метод main. В нём же есть spring-mail dependency код. Никаких больше потоков. Ну да ладно. Идея запускает код. Браузер открывается, контент со страницы парсится, на почту успешно отправляется.
Хочу поделиться программой с "неайтишником". Да так, чтобы ему jre и jdk не пришлось устанавливать (буду ему скидывать папку со скачанным jdk и свой jar-ник запулю в jdk/bin, а корне создам bat. У друга Винда). Что делаю я: пишу mvn package. Он мне давай делать jar без dependencies. Гуглю. Пишут, мол, напиши, maven shadow plugin. Ну ок. Опять пишу mvn package. Он мне создает 2 jar файла: один без dependencies, а второй с dependencies. Тот, что без dependencies имеет манифест с прописанным Main. Тот, что с dependenies имеет лес файлов (jar-ники dependencies), но манифеста не имеет.
Фокус с запихиванием манифеста и Main класса в jar-ник с dependencies не работает. Значит я должен написать в bat файле, как запустить эти два jar файла одновременно.
>>2447666 Не силен в мавене, но в нрадле при генерации jar создается bat файл для запуска с зависимостями. Можешь его вручную сделать, просто в bat файле пропиши --classpath и все зависимости и main класс
>>2447674 В градле сам по себе этот jar с dependencies и батник создаются или нужно таску писать? Если нужно таску писать, то наприши, пожалуйста, приблизительный текст из build.gradle
>>2447660 >J2ME. Какая у них там вообще архитектура? Java 2.0 for Mobile Environment. Хочешь игры от Gameloft для кнопочных нокий и сони-эриксонов поредактировать? Я такой jar-ник раскрыл. Прикольно было. Одни if-ы. :)
Вычисление среднего арифметического числа, это как шаблон получается ? Например при ришении какой-либо задачи нужно будет вычислить это, и я буду уже знать ?
>>2447726 Если ты про паттерны проектирования, ты понял их суть. Паттерны не придумывают, их обнаруживают в коде, просто замечают, что один и тот же подход используется в самых разных местах.
>>2447711 Кастомных тасок не надо. В градл файле подключаешь плагин application. И дальше в конфигурации прописывает что то типо application { mainClassName ""}.
А вот как задача называется которая запускает это сборку - уже не припомню. Вроде как distZip
Я сантехник, только в айти. Каждый день только и делаю, что чищу унитазы с данными и вытаскиваю застрявшие какашки. Матан, геометрия, теорвер - это всё я когда-то сдавал в вузе и всё позабыл, так как это в итоге не пригодилось. Это для умных разработчиков унитазов, а я просто сантехник.
>>2448104 я думаю нет а с хуяли тем более что ввели вместе с попыткой в функциональщину где и мутабельность и персистент дата то есть на любой пук пересобираются деревья списки объекты да и жаба всегда на производительность хуй клала
Подскажите, а для java есть какой-нибудь интерактивный курс, наподобие "A tour of Go" для go? Чтобы познакомиться быстренько с синтаксисом, а далее уже более практические туториалы наворачивать?
>>2448519 Шилдт. Не надо читать от корки до корки. Но как только возникнет какой-то вопрос - сразу же открываешь книгу и читаешь статью о вопросе целиком.
Чтобы появились вопросы нужна задача, тут уже сам придумывай, я посоветую плагины для майнкрафта писать.
Почему, когда я в тестах через mockMvc посылаю гет запрос на свою страницу, требующую авторизации, мне возвращается 401 статус нот авторайзд, если по идее должен быть 302 редирект на логин пейдж? Та же хуйня, если посылать постманом, но вот если в браузере открыть, то все ок и будет 302. Чет мне эта хуйня не дает покоя, учитывая, что в видосе литкода все ок и возвращает статус редирект в тестах. Конфиги у нас с ним одинаковые плюс минус, мб дело в версиях?
>>2448773 Самый высокий = транзакции выполняются последовательно = толку от нескольких ядер 0, всё равно СУБД будет работать в несколько раз сильнее, чем могла бы.
Объясните пожалуйста , что надо сделать что бы поднять приложуху на убунту ? В конфигурационм файле nginx я прописал перенаправление с порта 80 на тот что указан в приложухе. Приложуха запустилась на этом порту. Но один хуй не могу зайти . Выдает 502ю
>>2448871 Ты проксируешь запросы, пришедшие на внешний интерфейс на этот же интерфейс. Сомневаюсь, что у тебя порт приложения вообще на нем доступен. Завязывай сочинять конфиги под веществами и скопируй готовый конфиг с первой страницв гугла, короче.
Кто-то знает как в Community Intellij Идее пофиксить этот ебучий баг, что редактор не видит импортов? Импортишь какой-то пакет, даже не из откомпиленных либ а прямо из сорцов, а он выделяет это красным, не могу типа определить класс. Бесит уже просто пиздец, скачал ради этого новую версию, сначала все норм было, а потом опять стало на некоторые классы проскакивать.
Да что с этим долбанным хибернейтом не так!? Нашёл мурзилку, где четко написано как найти сумму всех ячеек в таблице: Long sumOfAllAges = (Long) session.createQuery("SELECT sum(age) from Student").getSingleResult();
Делаю всё также, а мне выдаёт эксепшен: Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Student is not mapped [SELECT sum(age) from Student]
>>2448319 Я вообще все забывал сразу после сдачи предмета. Сейчас максимум какие-нибудь простейшие производные и интегралы смогу взять, ну и формулу для сочетаний и перестановок вспомню, не более. То есть по сути то, что и школьники умеют, лол. Вузовский материал как-то вообще быстро выветрился.
>>2447490 >А нахуя Джаве виртуалка? В 90-х это было модно. Тогда все еще существовало много других осей и архитектур. Никто не был уверен, что все сведется к тому, что через 30 лет жаба будет только в докере на линухе крутиться исключительно как бекендовый язык.
>>2448319 >>2449018 А чего вы ждали? С самого начала вката вокруг вас знакомые носились со стереотипом, что все программисты используют вышмат в работе, и вы сами в это уверовали? Не обязательно опускаться до уровня сантехника, чтобы не использовать математику в работе, она нужна единичным наукоёмким профессиям, к коим программирование как таковое, очевидно, не относится. Врачи - это тоже сантехники, да?
>>2449024 Да мне как-то все равно, я не математик-PhD, который каким-нибудь ресерчем в машобе занимается или обработкой сигналов, я обычная макака. Понадобится математика, ну открою матпрофи, какие-нибудь материалы и лекции для тупых студней и буду заново вспоминать или вообще с нуля учить, дальше-то? Но мне кажется таких задач у меня никогда не будет. А то, что не используешь, то быстро забывается.
У меня на ласт собесе на джуна час гоняли по конкаренси. И я не шучу, буквально сразу после того как я назвал что есть callable, в котором есть future, меня начили задалбывать чем же отличается future от completablefuture, и прочую ересь о которой я впринципе никогда не слышал. Когда мы отходили от многопоточки скажем на паттерны или стримы, буквально через пару вопросов мы снова к ней возвращались будто вовращались в ад. Ну и конечно же спустя час когда у меня поплавился мозг в ход пошли задачки из литкода, у меня уже бошка совсем не варила и я минут 10 тупил на задачной про поиск квадратного корня бинарным поиском и задачкой про валидацию скобок [[[]]] )(.
Очевидно отрицательный фидбек, вопрос, как мне теперь с этим жить? Есть какой-то норм гайдец по вопросам конкаренси чтобы не тупить? А то я по сути никогда многопоточного не писал, у меня все пет проекты это какой-либо crud на спринг+хибернейт +тест в cicleci чтобы показать что я шарю за это.. Ну и конечно поиск работы в Украине чичас это жепа - на одну вакансию по 200 откликов за день, в половине случаев рекрутеры даже не чекают, на собес попасть это тот еще квест, за месяц 2 раза сосебился успешно выполняя тестовые.
>>2449086 пасиб, просто я не совсем пойму на реддите в джава сабе читал что они (америкосы?) джунов не подпускают к многопоточке мол это слишком сложно и надо пару лет опыта чтобы шарить что к чему, а у нас это будто мастхев. Видимо не врут на ебаном.айти что у нас в Украине аутсорс\аутстаф компании продают 0.5г джуна как 3-4г мидла.
>>2449092 Это не мастхев. Многие мидлы на спринге не особо шарят в канкурренси. Это это не просто так, спринг-конфигураторы сами почти не пишут многопоточный код и достаточно редко ковыряются в библиотечной многопоточке. Просто интервьюер такой задроченный попался. Этот вот любит по многопоточке угарать, другой по полной иерархии io тебя бы вздрючил или еще по чему-небудь.
>>2449092 Оффтоп - чё там на украине с рынком айти? Насколько реально приехать из рф, не щемят? По идее не должны, учитывая кто выгодоприобретатель в ситуации, когда спец перестаёт платить налоги в стране, с которой у тебя война и начинает платить их твоей стране - но мало ли на свете дегенератов.
>>2449084 >Есть какой-то норм гайдец по вопросам конкаренси чтобы не тупить?
Нет, каких-то нормальных коротких гайдов по конкаренси я не видел. Но конкаренси изучить можно, правда для этого придется потратить довольно много сил и времени.
Примерный список действий:
1. Изучаешь книгу с поездами, Java Concurrency in Practice. Особых тонкостей нет, CompletableFuture, ForkJoinPool там не описаны (так как книга вышла намного раньше), но какие-то основы написания многопоточки на джаве ты получишь.
2. Смотришь лекции и семинары Романа Липовского (наверное чуть ли не единственный знающий препод по многопотоку в русскоязычном пространстве, чьи лекции есть в открытом доступе). Наверное это самая важная ступень в изучении конкаренси.
3. Параллельно (или после) курса Липовского нужно читать многопоточные талмуды. А именно: - Is Parallel Programming Hard, And, If So, What Can You Do About It?, прекрасная книжка, написана хорошо, есть в открытом доступе по ссылке ниже, либо легко загуглить по запросу perfbook, начни с нее.
- Concurrent and Distributed Computing in Java, неплохая книжка
- The art of multiprocessor programming, наиболее важный многопоточный талмуд из всех, что были когда-либо написаны (ну разве что perfbook сравнится с этой книгой)
Если хотя бы осилишь первые 2 пункта, то будешь знать уже гораздо больше многих других джавистов, сможешь разъебывать чуть ли не любой собес. Если осилишь вообще все, то можешь считать, что ты более-менее что-то понял про конкаренси).
>>2449101 я писал многопоточку и latency оптимизации в финтехе, со spring/hibernate почти не работал, в результате постоянно валю вопросы по spring/hibernate потому что эти темы мне не интересны лол
>>2449140 Нахуя это все вкатышу? Он может самые распространённые классы/интерфейсы загуглить и получить короткий ответ в кратком руководстве. Про комплитбл фьюче уж точно инфу найти не проблема, про всякие тредпулы и блокировщики пулов, скедулары инфу на страничку самой базы с небольшим примером найти не составляет труда
>>2449169 >Нахуя это все вкатышу Очевидно, чтобы вкатиться в конкаренси. Прочитать про то, что такое CompletableFuture можно из всяких мурзилок, но вот когда дело дойдет до всяких корутин в котлине или виртуальных тредов в будущем, то неплохо уже будет знать, что под капотом происходит. Вангую после выхода в прод Лума на собеседованиях начнут гонять по кишкам шедулера вирутальных тредов, как это сейчас у гошников на собесах происходит. Ну и как минимум всякие способы общения потоков через те же очереди сообщений (в простейшем случае - блокирующие очереди) это база, это каждый вкатун должен знать.
>>2449169 И да, вкатун (джун/стажер) должен иметь представление о моделях памяти, JMM в случае жабы, понимать зачем оно вообще было придумано и какие проблемы решает. Это может и не везде спрашивают, но для уровня выше джуна мастхев.
>>2449194 >JMM В этом можно увязнуть на год минимум. Там столько тонкостей и не очевидных моментов, которые нужно просто запомнить, т.к. логически до них не додуматься. Т.е. ты как стихотворение должен запомнить несколько десятков крайних случаев как работает модель памяти.
>>2449186 они оч эмоциональный и недальновидный народ, сначала стреляют потом целятся. говорю по своему опыту общения и работы с ними. С ними связываться - ошибка, лол.
>>2449186 > не пустят с родителями чай попить это если что про наших, помню когда работал за бугром в епаме, те россияне, кто ездили в коммандировки к харьковской команде, потом попадали на разговор с фсб, сейчас возможно проблем будет больше, поэтому нах надо
>>2449190 критичные куски на плюсах, околобизнесовая логика на джаве. Да, извращение пиздец, проприетарная VM и GC (zing), кодогенерация, и много сомнительных хаков. Уволился и очень рад
>>2449166 > не пустят с родителями чай попить Можно ж в белоруссии или армении собраться попить чаю. С другой стороны, если ехать в армению, то нах нужна украха.
>>2449531 Сво и сосанкции очень хорошо пролило свет на "уезжаторов". Готовы в любую порашу съебать, лишь бы съебать. Эти люди не хотят лучшей жизни на самом деле, они просто психопаты и патологически ненавидят нас с вами, остальных россиянцев.
>>2449562 Вообще нихуя подобного, прямо по всем пунктам промах. >Готовы в любую порашу съебать, лишь бы съебать "Готов" и "хочу" - разные вещи. Я-то как раз не хочу, но в моей стране решили, что я больше не нужен. >Эти люди не хотят лучшей жизни на самом деле Лучшая жизнь - это понятие расплывчатое, я хочу больше денег, занимаясь любимым делом. >ненавидят нас с вами, остальных россиянцев За что мне тебя ненавидеть? Убеждай себя в этом, если хочешь, но это неправда.
Что за особенности хибернейта или spring data jpa? В какую сторону искать? Делаю мок-тесты на duplicate update (через стандартный save метод), ошибка должна бросаться из БД. Но приходит дефолтный ответ будто всё успешно обновилось, и если затем вызвать любой метод у репозитория, то выбросится ошибка которая должа была быть при обновлении до него: DataIntegrityViolationException: could not execute batch; SQL [update users ... ] nested exception is org.hibernate.exception.ConstraintViolationException: could not execute batch
>>2449579 Специально учить не обязательно. Там все просто, примерно как в стримАпи, за полгода втянешься. >>лум Это джава 23 что ли? На нее еще не скоро перейдут. На 17 только через год потихоньку начнут перекатываться, да и то не факт - новостей от спринга чет нет нихуя, хотя до релиза казалось бы пару месяцев осталось.
>>2449598 Стоит, но дело видимо не в нём. Походу надо разбираться с сессиями хибернейта. Поставил над тестом @Transactional(propagation = Propagation.NEVER) Всё заработало как надо.
>>2449618 Перешел месяц назад на 17. Ничего интересного. Рекорды для дтошек и многострочки для квери методов в спринг-дате. В ноябре 6-ой спринг. В декабре перейду. Там вроде тоже ничего не будет, кроме изменения пакетов валидаторов.
>>2449679 По-моему там просто поменяли пакеты javaee на jakartaee и заменили несколько енумов классами. Хуйня какая-то, нахуя ради этого цифру поднимать?
>>2449618 >новостей от спринга чет нет нихуя На спринг уже забили хуй я щитаю. Раньше они в spring native пытались-пытались, но идея нативной жабы скорее всего сдохла попросту.
>>2449692 Радикальная мера, чтобы заставить всех вылезти из уютненького легаси-болотца "зачем что-то менять, если и так всё работает". В реальности получится как со вторым и третьим питоном, все будут 100500 лет сидеть на пятом спринге.
>>2449748 Нахуй нужен спринг, если можно и на голом томкате написать? Там по-русски написано, чтобы двумя-тремя строчками кофигов настроить ретраи и посылку в длт, не засоряя код. А ошибку десериализации ты через try/catch вообще не отловишь. А еррор-хендлер обработает ошибку от десериализатора-делегата. И есть понятное разделение на ретрибл/неретраибл эксепшоны. Ты хоть представляешь сколько кода тебе придется руками написать, чтобы паттерн с пика руками с try/catch писать? Мейн, два ретрай-топика и длт? Там будут тысячи строк кода-лапши. https://docs.spring.io/spring-kafka/reference/html/#retry-topic А тут все решается в сотню строчек конфигов и методов с аннотациями.
>>2449761 Хорошо, беру Try-recover монаду из vavr и делаю то же самое. >>2449763 >чтобы двумя-тремя строчками кофигов настроить ретраи и посылку в длт, не засоряя код Нет. там написано: >Вот у нас есть такая штука для обработки ошибок >И еще такая >Но они обе устарели, так что используйте третью >Третья была заменена четвертой >Если хотите, настройте четвертую штуку в одном файле, а сам листенер в другом, чтобы человек, который будет читать ваш код нихуя не понял >И конечно вместо примеров вам ХУЙ Нахуй мне ретраи, если у меня ошибка - значит все, ошибка, нехуй вола ебать дальше. Выкинь это сообщение из батча и ебашь дальше.
>>2449771 Так если тебе нинужна то просто иди нахуй не пользуйся, пользуйся try/catch. Если тебе нужен пример, то я выше по треду уже скидывал: https://www.youtube.com/watch?v=OnZ7JArSoiU Да, они поменяли апишку еррор хендлеров и написали об этом в доке. В чем твоя проблема? Почему я тоже недавно в этой библиотеке разбирался и все понял?
>>2449792 Ну мы хибером тоже не пользуемся. Но что за спринг вакуха, где sql не нужен? У нас несколько nosql, но большая часть баз все равно в реляционках. Это ж не нода какая, где многим не зазорно все в монге хранить.
>>2449753 Я хз какие наркоманы делают обратный прокси с внешнего интерфейса на тот же открытый внешний интерфейс, в этом смысла ноль - ты можешь снаружи те же запросы слать на порт приложухи мимо прокси. А общедоступный томкат - мечта кулхацкеров, через пару дней просканируют порт, пошлют какой-нибудь log4shell запрос и добро пожаловать в ботнет. Обычно проксируют с внешнего интерфейса на локалхост или где там приложение, недоступное по-дефолту снаружи, поднято. Т.е. в твоем случае нужно в конфиге спринга указать 127.0.0.1 как адрес сервера, и на него же изменить прокси_пасс в конфиге ногинска. Ну или поднимать в докере, там явно указывается какие порты контейнерам разрешено слушать.
>>2449679 >>Рекорды Вот лучше б вообще ничего не делали, чем добавление такого говна. Ломбок все равно в тысячу раз удобнее, так зачем было такие кривые рекорды делать спустя 20лет. >>2449698 >>Радикальная мера, чтобы заставить всех вылезти из уютненького легаси-болотца Так если ничего нового - тем более зачем переходить на новую версию и чинить новые баги? Те же рекорды ломают жука например. А какие-нибудь специфичные легаси либы вообще могут не завестись на новой жабе. Переписывать код ради чего? Чтоб циферку в версии поднять?
>>2449948 Компилятор говорит что у вас в проекте есть какой то Record, и он не понимает это рекорд джавы или рекорд жука(из импорта) и не хочет компилировать, пока не перепишешь. Натолкнулся на такое, когда пытался свой проект на жава11 сбилдить 17-м. Райт ванс ран евривере, но только на той же версии и желательно на той же системе.
Я сегодня был на собесе в одной госконторе, но не на разраба. У них там Service Desk веб-приложуха на каком-то айпишнике скорее всего в локалке с портом 8080, это на спринге? Или этот порт еще кто-нибудь может юзать?
>>2450372 Ну потому что все должно быть настраиваемым? В порте по умолчанию 8 - это бин, потому что похоже на кофейное зерно, а 0 - это контекст, потому что он как бы окружает все бины. Почему не 80? Для http как раз будет 80. Для https будет 8080.
>>2450029 >>Что там надо переписать? надо переписать, чтоб не использовался класс Record<T>. Использовать рекорд2 и еще 18 вариаций или мапить сходу во что то еще. Или писать везде org.jooq.Record. В принципе реально, но не очень удобно. Спасибо в общем жабе за бесполезный класс создающий сложности на ровном месте.
>>2450551 Есть Record и Record. Первый - из java.lang, второй из импорта org.jooq.Record. Пока первого не было - проблем не было. Когда появился - возник конфликт, компилятор больше не понимает какой из них использовать когда видит в коде Record record;
>>2450538 >Использовать рекорд2-18 У меня они всегда и использовались. Правда вообще похуй вроде. Перегенерил их и похуй. Или ты руками жуковские классы пишешь? Хотя я последние 2 месяца в основном nosql пишу.
>>2450485 Патамушта интерпрайз. А вообще хз, язык как язык. Со своими недостатками и достоинствами === ой ой ой блять что мы придумали потому что == занято дебилушкой который за один день наговнокодил нечто
>>2450592 > === ой ой ой блять что мы придумали потому что == занято дебилушкой который за один день наговнокодил нечто В те времена в вебе считалось, что лучше уж тихо сломаться и продолжить так работать в сломанном состоянии чем громко упасть с ошибкой, та же хуйня и в пхп. Веб ставил подстраивание под браузер выше надёжности.
У меня есть куча текстовых файлов, и если я к каждому из них добавлю точку в конце, то либо навсегда потеряю оригиналы, либо объём данных увеличится в два раза - если не сделаю бекап и если сделаю соответственно. Если я сделаю git init - объём тоже увеличится в два раза, как я понимаю. Из этого вытекает вопрос - как сделать файл-разницу, применение которого к оригиналу даст измененный файл, а к измененному файлу - даст оригинал? Такие файлы будут мало весить и позволят в любой момент вернуть всё к исходному виду.
Criteria API --- не хуже и не лучше: это просто другое. Это кусок JPA спеки, который дает что-то наподобие SQL диалекта, но не для СУБД с ее базами и таблицами, а для ORMа с его персистенс юнитами и энтитями. Без JPA и ORMа Criteria API неприменим, в то время как JooQ и QueryDSL вполне себе самодостаточны. Близкий аналог Criteria API, с которым можно проводить сравнения --- HQL из хибернейта.
>>2450874 В целом --- да. Разворачивают обычно либо оригинальную БД средствами testcontainters (долго-дорого, но близко к прод-окружению), либо используют in-memory H2.
>>2450808 upd Ковыряю git diff. Как сделать так, чтобы в своей работе он не опирался на переносы строк? Он очень неэффективен, если этих переносов нет. Например, если в качестве оригиналов взять два одинаковых текстовых файла с той лишь разницей, что во втором все переносы строк заменены на пробелы, а изменениями для этих файлов будет удаление первых и последних 50 символов, то для файла без переносов патч будет весить в сотни раз больше, чем для того, который с переносами. То есть во втором случае патч будет содержать в себе исходную строку полностью, а то и в двойном экземпляре (если не добавить параметр --word-diff).
>>2451251 >говорим про возможности языка >петушарпер начинает чё то кукарекать про перформанс, про который речь не шла, поняв, что он обосрался с возможностями . . . >и тут обсирается, пушо жаба выходит быстрее петушарпа
>>2451228 Джава расширяется за счёт библиотек, а не за счёт конструкций языка. Сишарп постепенно замусоривается этими конструкциями и превращается в непонятное нагромождение значков.
Без холивара по типу у кого какие скобки красивее или классы статичнее. У кого сейчас больше будущего? У котлина или шарпа и главное почему (ваше мнение)?
>>2451859 котлин это больше про андроид, шарп это геймдев и декстоп. есть еще немного бэкенда, но там жаба сидит и ее не выгнать. Обе хуйни какие то нишевые в которые так просто сходу не вкатишься на сотыги, но у шарпа все же чуть больше шансов - там хоть за счет легаси можно протянуть.
>>2451599 Между прочим факт, но жаба тоже замусоривается. На самом деле, все возможности жабы после 8 можно заменить какой-нибудь собственной библиотекой.
>>2452330 > все возможности жабы после 8 можно заменить какой-нибудь собственной библиотекой. С ассемблером тоже так можно. Но это не значит, что нужно.
>>2452376 По меньшей мере половина технологий, упоминаемых в вакансиях на жаба-бэкендера. Жаба, спринг и SQL само собой, хотя бы один сервер приложений, основы фронта, линукса, девопса и других смежных областей.
>>2452376 кафка, спринг клауд, спринг секюрити, хибернейт, касандра, кубернетис (на базовом уровне), умение и понимание многопоточности и асинхронности, базовые навыки архитектуры (построение микросервисной архитектуры) >>2452399 >>Жаба, спринг и SQL само собой, хотя бы один сервер приложений это набор джуна
>>2452376 EJBEnterprise JavaBeans — спецификация технологии серверных компонентов, содержащих бизнес-логику2.13.03.13.23.2 JPAJava Persistence API — управление постоянством и объектно-реляционное отображениеНет1.02.02.12.2 ServletОбслуживание запросов веб-клиентов2.42.53.03.14.0 JSPJavaServer Pages — динамическая генерация веб-страниц на стороне сервера2.02.12.22.32.3 JSTLJavaServer Pages Standard Tag LibraryНет1.21.21.21.2 JSFJavaServer Faces — компонентный серверный фреймворк для разработки веб-приложений на технологии JavaНет1.22.02.22.3 JAX-WSJava API for XML Web Services — создание веб-сервисов1.01.21.22.22.2 JAX-RSJava API for RESTful Web Services — создание RESTful веб-сервисовНетНет1.12.02.1 WebSocketJava API for WebSocketНетНетНет1.01.1 JSON-PJava API for JSON Processing — разбор и генерация JSONНетНетНет1.01.1 JSON-BJava API for JSON Binding — преобразование Java объектов в/из JSONНетНетНетНет1.0 JNDIJava Naming and Directory Interface — служба каталогов1.21.21.21.21.2 JMSJava Message Service — обмен сообщениями1.11.11.12.02.0 JTAJava Transaction API — управление транзакциями1.0.1B1.11.11.21.2 JAASJava Authentication and Authorization Service — Java-реализация PAM1.01.01.0 JavaMailПолучение и отправка электронной почты1.21.41.41.51.6 JACCJava Authorization Contract for Containers1.01.11.11.41.5 JCAJ2EE Connector Architecture1.51.51.61.61.7 JAFJavaBeans Activation Framework1.01.11.11.11.1 StAXStreaming API for XMLНет1.01.01.01.0 CDIContext and Dependency InjectionНетНет1.01.12.0 ValidationBean ValidationНетНет1.01.12.0 SecurityJava EE Security API
Пользовался до недавнего времени плагином Spring Initilializr для коммьюнити версии, но жидбрейнсы решили этот плагин даже не забанить, а сделать его частью платной идеи, что полностью лишает смысла его использовать, потому что в платной версии и так есть такой функционал. Вот вам наглядный пример истинной сущности жидбрейнсов!
>>2452417 А зачем нужна кассандра(про устройство немного)? Это olap база? У меня на проекте clickhouse есть. Понятно, что это другое семейство nosql, но применение похоже или нет? Ну и спринг клауд, вот я open feign чуть трогал, ну клиент, теоретически можно наверно config и schema registry затянуть. А остальные части спринг клауда вообще не очень понимаю зачем. Можете пояснить за самые попсовые куски спринг клауда и зачем они нужны?
- В продакшене ОРМ используют или запросы напрямую? а то в го например все без ОРМ пишут, мбы так везде - Видел некоторые вакансии где пишут что прод пишется не на самых новых версиях жабы, почему все просто не обновляются? Я такое только в плюсах видел, где челы до сих пор на с++11 сидят или
>>2452733 Там дело не столько в долбоёбстве, сколько в женериках (точнее их отсутствии). Ормки на го содержат в себе кучу магии из-за этого. Если бы го был полноценным языком, то орм бы там использовали не меньше чем в жаве.
Здравствуйте. Подскажите пожалуйста по одному вопросу: были ли на вашей практике примеры, когда человек без опыта и в возрасте подходящем к 30 начал карьеру джава разработчика?
Я просто под гнетом обстоятельств решил сферу деятельности поменять, ну и спустя месяц мытарств пришел к выводу, что наиболее реальный вариант сейчас это 1с. Но мне до ужаса не хочется туда лезть, ибо бухгалтерия не мое. Хочу в мобильную разработку или что-то подобное. Но в нынешних условиях необходимую базу я смогу только к предпенсионному возрасту освоить. Поэтому сейчас в раздумьях. Или может что-то близкое к интересующему профилю выбрать? Но без особых требований, дабы хоть какой-то релевантный опыт наработать на момент обучения.
>>2453110 >были ли на вашей практике примеры, когда человек без опыта и в возрасте подходящем к 30 начал карьеру джава разработчика? Да >Но мне до ужаса не хочется туда лезть, ибо бухгалтерия не мое. Где связь? Ты собираешься бухгалтером стать? >Или может что-то близкое к интересующему профилю выбрать? В смысле? Например?
>>2453110 В 30 вкатился с эконом вышкой в спринг. Но кроме меня все джуны-джависты - зумерки. В конторе есть и 1сники - там вкатунцов 30-летних еще больше, питонисты - там все молодые, тимлид младше меня, ну и фронт - там примерно, как у нас. Мобилка, насколько я знаю тоже модно-молодежная. Но в принципе, если возьмут - эйджизма не так чтобы вообще много было(по моему опыту и еще 2 знакомых вкатунцов). В принципе в бек/фронт/мобилки можно вполне до 40 лет вскочить, было бы желание. Ну и после начала спецоперации конкуренция за места для вкатунцов усилилась раза в 2 точно, может больше.
Сап аноны, треда по девопсам не нашёл, поэтому хочу спросить здесь. Насчёт Docker и не только.
К примеру у нас есть Спринг приложение, которое крутится на одной машине. Затем мы подключаем ещё одну машинку, разворачиваем на ней тот же Спринг. Каким образом синхронизировать данные между разными машинами? Как это делается в принципе. По простому говоря, как масштабируется инфраструктура, когда мы имеем дело с реальными, не облачными железками. Ну и в заключении, где в этой конструкции помогает Докер? Сорри, если пишу глупости. Если кто-то объяснит, будет очень круто.
>>2453137 С помощью докера ты можешь на одной машине развернуть несколько сервисов, например 10. А с помощью кубера ты можешь на нескольких машинах, скажем на 5 развернуть несколько сервисов, например 10, у которых могут быть несколько инстансов, например от 1 до 3. Данные никак не синхронизировать, приложения должны быть стейтлесс(именно поэтому можно делать несколько инстансов). Все состояние на фронте или в базах. У каждого сервиса своя база. Общаются сервисы между собой чаще всего по ресту, через брокеры сообщений или grpc. Есть еще десяток менее популярных способов. Я сам джун, поправляйте меня давайте, если я в чем-то не прав.
>>2443253 (OP) Кто-нибудь сможет пояснить зачем избавляться от null? Все предлагаемые "недорешения" требуют все тех же проверок, самое шикарное с рантаймэксепшеном которое наверн надо ловить и обрабатывать?, эти решения лишены смысла и требуют ебейшего оверхеда. Зачем тогда нести всю эту хуйню, если они скорее всего юзают либы, юзающие налы, даже в стандартной библиотеке они есть
>>2453197 Избавляться не нужно, нужно ставить аннотацию @Nullable в случае, если метод может в принципе вернуть null. Либо @NotNull, если метод гарантированно при любых обстоятельствах вернёт не нулл. Сразу же всем дегенератам, что высрутся аля "по ко-ко-контракту @Nullable ставится только тогда, когда предсказать нельзя" ссу в рот, в таком случае смысл аннотации теряется.
>>2453197 Если вкратце - джава не любит нулл и падает если он внезапно всплывает в рантайме. Чтоб не писать проверки if (op != null && op.hui != null) для каждого аргумента - делают нул сейф апи, придумывают опшиналы и прочее говно. Полностью это проблему все равно не решит, но боли немного уменьшит. >>даже в стандартной библиотеке они есть Это ж легаси. 20 лет назад считалось нормальным модифицировать входящие данные, делать кучу войд методов, возвращать нулл. Сейчас стараются не использовать эти методы.
>>2453228 Какая еще производительность? Один запрос в базу длится вечность по сравнению с этими опшиналами, стримами и прочими монофлаксами с десятком проксей.
>>2453229 Это реального процессорного времени не тратит, поток просто ждёт. А эксепшены и создание объектов напрямую обрабатывается процессором, вытесняя другие задачи.
>>2453133 >Он же написал про 1с перед этим И где связь? На 1с доля бухгалтерских проектов такая же, как на любом тырпрайз языке, проще говоря - вероятность в 1с попасть на бухгалтерию такая же, как в джаве.
>>2453237 Во всех современных JVM NPE отдельно заоптимизировано, например к нему не цепляется стек. Можно кидать NPE хоть с частотой в 10 килогерц без потери производительности
>>2453216 Ну я даже посмотрел Да, я согласен, что если есть возможность вернуть дефолтное значение- возвращай (типа пустую строку вместо null), если это не противоречит логике Если метод возвращает контейнер с элементами - то если элементов нет пусть возвращает пустой контейнер но не плодить контейнеры ради контейнеров, как сделали с Optional Да логику кодировать nullом плохо- есть enum
Пункты выше как бы и любители null выполняли и выполняют, это не фичи null-free дегенератов
Не надо сравнивать на null- шизоидная хуйня, какая разница кроме потери производительности буду ли я сравнивать на null, проверять присутствует ли Optional, или вообще ловить RuntimeException тут уже скорее assertы должны стоять, если null- нарушение логики , и мест где надо делать эти проверки не уменьшится Возвращать незаполненный объект это тоже шиза, super slow fail какой-то
Крч как по мне этот чел тоже не понимает что несет, просто ссылается на больших авторитетов как и другие статьи про null-free В чем я не прав?
>>2453500 он говорит возвращать нецелый объект, обмазаться Optional, кидать эксепшены даже для бизнес логики и никогда не юзать null,а еще он настолько неграмотен, что не понимает что null это отсутствие объекта и что он привязан к реальному миру типа пошел в магаз за молоком, молока нету, принес домой null молока
>>2453497 >>Да логику кодировать nullом плохо- есть enum Часто для каких то простых вещей тру/фолс/нул подходит больше, чем хуй пойми какой стринг. Писать енум тут - оверхед. Просто этот вышиванец любит какие то совсем дикие примеры приводить из своего прошлого в помойных галерах нулевых.
>>плодить контейнеры ради контейнеров, как сделали с Optional >>как по мне этот чел тоже не понимает что несет, просто ссылается на больших авторитетов
var op = repo.get(id).orElseThrow(new UserException())
var op = Optional.ofNullable(repo.get(id)).orElseThrow(new UserException())
var op = repo.get(id) if (op == null) { throw new UserException() }
в первом случае тебя компилятор заставит это написать, иначе хуй че получишь, а во 2 и 3 ты можешь забыть о проверке и словишь НПЕ (может через полгода, когда это выстрелит)
>>2453527 Он говорит возвращать не нецелый объект, а дефолтный - это раз. В ООП оперируют объектами и объекта null не существует - это два. Когда ты приходишь домой без молока, ты приходишь с коллекцией покупок, среди которых нет молока, а если в коллекции нет вообще ничего, то ты приходишь, что называется, "с пустыми руками" - это три.
>>2453528 >много времени ушло на обучение и поиск первой работы? До первой - полтора года на чиле, мне было спешить некуда и я больше боялся, что мне обучение наскучит, чем не вкатиться. Но там была совсем мелкая помойка, где я должен был быть 4ым прогером, я меньше месяца там отсидел и еще через два месяца поисков вкатился в текущую маленькую галеру(джавистов - около 10 человек, из которых половина джуны, нанятые вместе со мной).
>>2453546 >дефолтный покажи пример который абсолютно безвреден, что такое дефолтный объект, у него поля заполнены, если да, то чем nullами? >Когда ты приходишь домой без молока, ты приходишь с коллекцией покупок, среди которых нет молока, а если в коллекции нет вообще ничего, то ты приходишь, что называется, "с пустыми руками" но он говорит нести пустой пакет, вместо ничего, причем пакет предназначеный только для хранения молока (Optional) >В ООП оперируют объектами и объекта null не существует если объекта не существует- это null, я так понимаю в джаве неправильный ооп, покажите мне правильный в котором нет null
>>2453566 ну хз, если метод должен вернуть либо null либо 1 объект, то уж лучше optional, так хотя бы понятно, что человек всего лишь null проверить не может, а не гадать схера тут коллекция
>>2453594 >покажи пример который абсолютно безвреден, что такое дефолтный объект, у него поля заполнены, если да, то чем nullами? Заполнены дефолтными значениями, которые явно показывают, что это объект-пустышка. Можно еще эксепшоны в методах вываливать.
>но он говорит нести пустой пакет, вместо ничего, причем пакет предназначеный только для хранения молока (Optional) Ну неси, в чем проблема?
>если объекта не существует- это null, я так понимаю в джаве неправильный ооп, покажите мне правильный в котором нет null Если объекта не существует, то его нет. Если я попрошу у тебя яблоко, а у тебя его нет, то ты дашь мне ничего, а не null яблоко.
>ну хз, если метод должен вернуть либо null либо 1 объект, то уж лучше optional, так хотя бы понятно, что человек всего лишь null проверить не может, а не гадать схера тут коллекция Optional требует соответствующего отношения с проверками и так далее, в то время как с коллекцией никаких проверок не нужно. Да, возвращаемый тип может смутить, но это с непривычки.
>>2453657 Вот я посмотрел вакансии, и типа не то чтобы прям крупняк, но я слышал эти названия. Вакансии без упоминания 8 - сбер, почтабанк, россгосстрах, киви. С 8-17 - мтс, тинькофф, совкомбанк. Ну и еще пара сотен вакансий от нонеймов.
>>2453632 >Если я попрошу у тебя яблоко, а у тебя его нет, то ты дашь мне ничего, а не null яблоко Ничего это null и есть >а не null яблоко А нул-яблоко это как раз "дефолтный объект"
>>2453780 Двачую вопрос, в идеале бы еще ссылку на репозиторий, чтоб можно было со своим говнокрудом сравнить и оценить насколько парашный код я сейчас пишу
На гитхубе он лежал, пару раз интервьюеры даже смотрели его. Вроде как им было интересно видеть что то отличное от очередной тудушки с говнокурсов.
Я его писал в первую очередь, чтоб руку набить на крудах, а не для показа. Так то наверное надо было в докер запаковать, тестовые данные накидать или на хероку поднять.
По работе мучу с джавой, в свободное время планирую отдыхать, поперживая код чисто для себя на го. Какова вероятность, что все эти знания выльются в дикую кашообразную мешанину?
>>2453899 Я ж туда обычные картинки закидывал с обычными тегами, про аниме ни слова. На уровне кода - обычный круд (кроме отсылки в названии проекта, но ее поймет только тот кто в теме) То есть с виду это обычная галерея для картинок.
>>2453982 Можно на котлине со спрингом писать. Многие так делают на самом деле. А так да, либо java/kotlin backend, либо kotlin android. Этот тред про джаву бекенд.
>>2453982 >Вы чем занимаетесь Крудами на спринге. А вообще в этом итт треде был чел, который свою игруху пилил на lwjgl
>>2454095 1. Мне понравились языки со статической типизацией больше чем, с динамической. 2. Меня заинтересовал бекенд намного сильнее, чем фронтенд. 3. У джава-спринг было много вакансий и хороший коэффициент вакансии/резюме на хх.ру.
>>2453937 >>2453938 Это ты всегда из метода возвращать его будешь. А если метод должен вернуть объект, но он может этот объект не найти или не смочь создать?
>>2454156 >но он может этот объект не найти или не смочь создать Ну то есть тут есть две опции: либо объект есть, либо нет. Хуй знает даже. Вот бы был в джаве тип для опциональных объектов.
>>2454203 Добавлю, что нулл тоже не особо интуитивен, самое правильное решение - эксепшен. Однако, эксепшены, хоть и максимально интутивны, имеют следующие недостатки:
- Непозволительно руинят перформанс - Добавляют бойлерплейт код - Делают код некрасивым лапшеподобным - Усложняют процесс создания декларативных API (null легче спрятать за декларативщиной и забыть о его существовании)
Как аналог эксепшенов назову паттерн матчинг вместе с силед интерфейсами из жабы 19. Производительность херится уже меньше, но зато точно также 100%-но интуитивно и расширяемо, больше располагает к декларации кода.
>>2454223 >>самое правильное решение - эксепшен Запрашиваешь сущность - получаешь эксепшен. Теперь вместо разворачивания опшионала надо трай-кетч писать на каждый пук.
Бля, а кто - нибудь может объяснить, почему WebFlux так мало упоминается? Это ж реактивщина, без реактивщины ни один нормальный проект не сделать на голом мвс дате и прочем кале не многопоточном. Бля пиздец без WebFlux никуда, без рофлов абсолютно любая высоконагруженная система уровня чуть выше "пет проект туду лист"
>>2454478 Реактивщина нужна только там, где реально много блокирующего IO. Обычно хватает создать пул тредов побольше (опционально поднять несколько инстансов приложухи), каждый запрос будет выполняться в отдельном треде, а при блокировке треда системный планировщик тупо переключит контекст на другой тред, пока у заблокированного не отработает IO, чтобы ядро не простаивало. Тот же асинк, но средствами ОС, разве что системные треды более прожорливые и при нагрузках требуют пристально следить за их количеством.
>>2454487 Звучит как васянский костыльный пиздец. В любом приличном сервисе, где возможны тыщу запросов в момент времени на взять сохранить нужна асинхронщина. Но зачем делать каждый метод, обрабатывающий запрос, асинкнутым, если есть реактивщина? Нахуй эти костыли хуячить я так и не понял, если уже все готово, цивильно, по-европейски. Каков вообще процент реактивщины в новых проектах в тырпрайзе?
>>2454203 >лишняя сущность >контринтуитивно >добавляет бойлерплейт код Все три пункта - вкусовщина. Еще про таяние ледников от лишних тактов пожалуйся.
>>2454536 Сразу инб4 вангую записывание всех несогласных в опшианальники. Юзайте нуллы на здоровье, только не надо тут выдумывать всякую чушь, прикрытую модными словами, чтобы изобразить какое-то преимущество у святыни твоей секты там, где его нет.
>>2454478 В вакансии на мою текущую позицию тоже вебфлакс не упоминался. Уже на собесе мне предложили на выбор 2 стула - реактивщина с вефлаксом или бигдата с хадупом.
> if (value instanceof String valueAsString) { ... }
Что это за уебищный сахар для инстансофа, нельзя было незаметно создать внутри компилятора объявление переменной, а в коде если идёт обращение внутри блока где точно знаем что это стринг просто считать что это стринг, ведь это и так понятно, как в случае с еффектив файнал, компилятору же хватает мозгов?
Анончики, а ещё, я тут недавно только про Java 11 слышал, а тут теперь уже 17! Они решили каждый день новую версию выкатывать?
Что-то прям попахивает каким-то си плюс плюсом, где наваливают всего и как попало в язык.
>>2454835 > Что это за уебищный сахар для инстансофа, нельзя было незаметно создать внутри компилятора объявление переменной, а в коде если идёт обращение внутри блока где точно знаем что это стринг просто считать что это стринг, ведь это и так понятно, как в случае с еффектив файнал, компилятору же хватает мозгов? Можно было, просто не запилили. Вот в котлине подобное есть, может и в жабу лет через 10 завезут, хотя вряд ли. > Анончики, а ещё, я тут недавно только про Java 11 слышал, а тут теперь уже 17! Они решили каждый день новую версию выкатывать? > Что-то прям попахивает каким-то си плюс плюсом, где наваливают всего и как попало в язык. Версии поднимают быстро, но фич добавляют мало. Много фич касается не синтаксиса, а кишок JVM.
>>2454835 >>про Java 11 слышал, а тут теперь уже 17! Погнались за модой с релизом новой версии каждые полгода. Но за полгода нихуя не успеешь, поэтому вместо больших фич стали выкатывать сахарные микрофичи. За 6 версий нихуя не изменилось. Лум хорошо если в 23 выйдет, вальхала вообще хуй знает когда.
В spring security есть встроенная реализация JWT? Вообще на работе в реальных проектах используют какой способ аутентификации? JWT надо уметь реализовать самому? Или есть готовые решения в spring security?
>>2454901 Встроенной нет, надо писать фильтр, пишется несложно. > Вообще на работе в реальных проектах используют какой способ аутентификации? Используют ВСЕ способы, от JWT до негуглящихся проприетарных IBM-овских решений.
>>2454955 Спасибо. Реализаций много находил, но они почти все через WebSecurityConfigurerAdapter, а он вроде как deprecated. Попробую переделать без него. Просто вот тут https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter в комментариях один хуеплет написал, что есть built in JWT в spring security аж с 2017 года. А я в документации ничего найти не могу. По JWT находит только OAuth2 JWT. Может это он про него?
>>2455183 toString Equals Clone HashCode оказались в объекте в том числе потому, что это свойства объекта. Про wait() / notifyAll() не могу дать однозначного ответа.
>>2455188 Это вопрос идеологии. Как миниумум про hashCode() можно сказать что это не свойство объекта, а свойство контейнера которому этот хэш зачем-то нужен.
>>2454873 >За 6 версий нихуя не изменилось 95% разрабов джавы надо просто уволить нахуй за андерперформ и заменить нормальными кодерами. Тогда лум за недельку сделают.
>>2455093 Потому, что если они в Object, то это лучше, чем интерфейсы. Это значит, что любой объект их реализует, без каких либо исключений. Вдумайся в это как следует.
>>2455276 Если я захочу сравнивать их, то скорее всего за этим будет другая логика и логично будет вынести это в отдельны метод, ане в Equals Либо реализовывать Equalable<Self> Equalable<Square>
>>2455280 Ну так делай по-своему, выноси и т.п., тебе никто не запрещает. Правда, не совсем понятно, зачем в отдельный метод, и почему бы потом не вызывать этот отдельный метод из equals(). Или тебе просто слово equals() не нравится?
Кстати, помни, что такие вещи должны быть хоть как-то оправданы, и не должны быть похожи на изобретение велосипеда.
Также, полезно помнить equals() и hashCode() используются в HashMap и т.п. объектах и методах стандартной библиотеки, и должны реализовываться всеми объектами. И это, кстати, может дать нехилый профит и для твоих кастомных объектов, для которых ты, скорее всего, будешь использовать стандартные структуры данных.
В общем, я же сказал - вдумайся в это как следует.
>>2455235 Принципы - нет. Твой детектор нарушения этих принципов - да. Куча людей использует эти "лишние сущности" и ничего, как-то живут, код работает. А значит, либо принцип бесполезный, либо ты его пытаешься натянуть на глобус, где от него нет толка. И что-то мне подсказывает, что с принципом все ок.
>>2455373 Падажжи, если кто-то назвал неправильно где-то там, то я должен это смиренно принять и называть так же? А как же тот факт, что я личность нахуй и я так считаю верным?
>>2455235 Ну и отдельный хохотач, конечно, тот факт, что узнав про эти принципы, ты их начал применять не к каким-то сущностям из бизнес-модели, а к сраному опшионалу из стандартной либы.
>>2455383 > если кто-то назвал неправильно где-то там, то я должен это смиренно принять и называть так же? Да. > А как же тот факт, что я личность нахуй Ты не личность, а винтик в системе. Чтобы стать личностью, ты должен как минимум создать свой язык программирования, причём не в стол, а успешный.
Сап, в общем я Manual QA, хочу вкатится в автоматизацию на JAVA. Можете накидать за щеку советов с чего начать вкат и где искать инфу? С меня нихуя, спасибо
Не слушай долбоебов, защищающих этот пиздец. Это чето сродни сонибойству. Вроде бы давно все сошлись на том, что делать эту троицу частью контракта самого базового класса было ошибкой, что не для всех классов констрейны equalsа применимы, из-за чего словить мемори лик в хешмапе из-за неправильного типа ключа --- плевое дело, что хешы и логика равенства для одного и того же объекта могут считаться по разному взависимости от контекста употребления (привет, ОРМы). В языках поновее такой хуйни уже давно не практикуется. Но все равно находятся упоротые личности, защищающие это.
Правильный ответ здесь только один --- так вышло. Когда то давным давно они были частью контракта. А сейчас их не выпилить не сломав всем обратную совместимость. А жаль. Было бы клево их дропнуть.
1. Подтягиваю тестирование 2. Устраиваюсь за копейки тестировать хуйню 3. Параллельно изучаю джаву 4. Пытаюсь применить знания на практике и ищу работу/стажировку по джаве
Как вам план? Изначально была мысль сократить все до трех пунктов, но боюсь, что на обычной работе я буду очень медленно продвигаться.
>>2455973 Это понятно, просто тестирование как трамплин рассматриваю и более или менее релевантный опыт. Неизвестно сколько времени у меня уйдет на прямое и целенаправленное вкатывание.
>>2455986 Если это совсем говно-тестер-ручник, для вката в которого не нужно вообще ничего, то с чего бы там был какой то релевантный опыт для джависта? А так был знакомый тестер-автоматизатор с большим опытом из большой галеры. Ну и вот вкат в спринг у него совсем немало времени занял.
Хуйня. Из всех экс-тестировщиков, даже мануальных, на моей памяти 10летнего стажа выходили весьма годные девелоперы. С их тестерским опытом они лажали статистически реже прочих. "Путь в один конец" --- скорее всего стереотип каких нибудь снобов-анальников.
Напишите плз джентльменский набор вкатыша в нынешних реалиях, чтоб как можно быстрее получилось залететь на первую галеру жабиста, а не сидеть потом на минус морали пару месяцев без приглашений на собесы Сейчас могу сделать рест на спринг буте, прикрутить ликвибэйз, раздать пермишены, но пока еще не разбирался с jwt и oauth2, могу залить все это в докер самым дефолтным способом
>>2456253 Да то же, что и до февраля требовали в вакансиях, но шансов меньше, соответственно, дрочить всё надо тщательнее. Больше не побрезговать позициями с легаси или требованием знать фронтенд, а также таки придётся выучить алгоритмы/структуры данных. Сейчас примерно как в начале 10-х годов, когда ещё не все пизданулись с вкатом в айти.
Расскажите про устройство в сбер. Какие алгоритмы спрашивают, как глубоко нужно знать. Какие-нибудь графы за пределами dfs/bfs, верчения деревьев, дейкстру, A-star, динамическое программирование - это все нужно или лучше сосредоточиться на спринге, хибере и sql? Я говорю про стажировку ну или джуна в крайнем случае.
>>2456275 Сбер большой, у всех команд разные требования, единого стандарта нет. В большинстве случаев хватит спринга/sql ну и мочь объяснить, почему у пузырьковой сортировки O(n^2).
>>2456269 Нет, ну ты же сам пишешь, что шансов сейчас меньше, значит, чтобы выравнять их - нужно выглядеть более сильным кандидатом на фоне других вкатышей. Вот мне и интересно, с каким стеком технологий/умений у меня бы точно не возникло никаких проблем
>>2456289 Ну я и говорю, что стек тот же, но знать его надо лучше. Ты и так выглядишь более сильным кандидатом, судя по упоминанию liquibase и jwt, большинство вкатышей слыхом не слыхали про миграции и авторизацию не через традиционные сессии.
>>2456344 Кризис на российском рынке IT, вызванный всем известными событиями. Напрямую российского энтерпрайза это не коснулось, т.к. это не аутсорс, а собственные проекты, но из-за ухода иностранных вендоров и вынужденного закрытия побочных проектов не связанных с основным бизнесом, многим пришлось сильно урезать бюджеты, как следствие, закрыть много вакансий и снизить планы по денежной мотивации работников. Хз, это одна из причин, я не дохуя аналитик рынка, вот в МВП-треде, наверное, уже обсосали все возможные варианты. Впрочем, в других отраслях всё ещё хуже, так что вкатыши в айти пока не сильно задумываются о том, чтобы выбрать что-то ещё, и, действительно, это не совсем 10-е годы, ситуация несколько иная.
>>2456382 Я вот этого не понимаю, все же ноют про отсутствие айтишников, были новости, что хотят со школьного возраста начинать вкатывать, ввести льготы на обучение. Сейчас уже успели сделать ипотеку и отсрочку как минимум из того, что я знаю. И вроде бы все говорит о том, что с вакансиями все должно быть более чем в порядке, но нихуя. Конечно можно сказать, что требуются именно ВЫСОКОКВАЛИФИЦИРОВАННЫЕ спецы, но они не появятся из ниоткуда, возьмите хороших вкатышей и через год-два они как раз станут такими спецами, неужели это не очевидно.
>>2456520 >требуются именно ВЫСОКОКВАЛИФИЦИРОВАННЫЕ спецы, но они не появятся из ниоткуда, возьмите хороших вкатышей и через год-два они как раз станут такими спецами не станут
>>2456529 Так зачем тогда они ноют про дефицит? Пускают пыль в глаза обычных челов, которые еще не определились и при этом только усложняют жизнь тем, кто уже почти вкатился из-за обилия резюме выпускников всяких курснейм, на которые сейчас спрос поднялся из-за кукареканий гос сми про дефицит.
>>2456529 Да и не пизди, никто с 3 годами опыта не сидит в очереди, разве что они все три года сидели на каком-то суперуебищном проекте, параллельно ничего не изучая.
>>2456540 Ты пишешь про каких-то ебырей-программистов, которые могут практически на любой стек залететь и сходу делать чет полезное, а я говорю про конкретный стек и конкретный проект, который за год вполне можно освоить и приносить немалую пользу.
>>2456520 Ноют же эксперты и менеджерки. Им ныть выгодно. Потому что им выгоден найм нового кодерского мяса, потому что они с этого получают комиссию/откат. Про госсубсидии и курсы говорить вообще смешно. Там цель только бабок на бюджете и лохах наварить. И айтишка это еще хуита. Ноют и про отсутствие инженеров и врачей. Типа нужны еба-констукторы для роскосмоса с зп молодого спеца - 20 тыр.
>>2457000 Новая заточена под облачное применение. Вне этого она просто не имеет смысла, изменения в языке незначительны.
И это часть процесса выдавливания кастомеров в облака, в том числе оракловские. А вот хуй им - говорим мы, ветераны in-house джава-девелопмента. Пускай сами свои облака сосут с проглотом.
>>2456541 >сидели на каком-то суперуебищном проекте, параллельно ничего не изучая Это и есть типичный проект в энтерпрайзе. Найти что-то хорошее стоит большого труда.
>>2456544 >конкретный стек и конкретный проект А зачем такие нужны? Проекты энтерпрайза больше напоминают гигантский распил бабла. Проект живет несколько лет, потом его хоронят и начинают новый. Вкатунов тогда на улицу придется выбросить.
>>2456520 >требуются именно ВЫСОКОКВАЛИФИЦИРОВАННЫЕ спецы Здесь имеется в виду, что нужны ломовые лошади с большим опытом, которые за бесплатно будут работать по 16 часов в сутках.
>>2456534 >зачем тогда они ноют про дефицит Это просто реклама айти курсов, забей.
Апплеты и asm
userщик06/09/22 Втр 20:04:00№2457157648
Приветствую всех.
Меня интересует вопрос: почему wasm используется, а java-апплеты ушли из поддержки браузерами?
Где-то читал, что java-апплеты опасны тем, что это какая-то левая программа, которая работает на компьютере, однако такое можно сказать и про js, и про wasm
>>2455986 >>более или менее релевантный опыт Из тестера(ручника) ты скорее аналитиком станешь, чем программистом. Автотестер тоже очень далек, он пишет на уровне стажера на специфических фреймворках.
Если тебе похуй куда лишь бы в айти - можешь попробовать, если хочешь джавистом стать - не трать время.
>>2457157 Wasm в браузерах из коробки и не умеет нихуя, кроме вычислений, даже доступа к DOM нет. А апплеты требуют ставить левый плагин и имеют кучу доступов к ресурсам.
Бля, аноны, оче сильно интересует вопрос по поводу таких штук, как "корзина пользователя". Как они реализуются на реальных проектах? Не сохраняются ведь корзины каждый раз в бд? Но с другой стороны и в спринге всё сейчас на рестфул, сессии, как я понял, не котируются И второй вопрос, который очень мучает - какова вероятность на реальных проектах встретиться с шаблонизаторами типа таймлифа и пр? Нужно ли их дрочить, знать?
>>2457401 Ну бля, это же очень дорого, нет? Допустим, у моего сервиса дохуллион пользователей, допустим, я сделал какой-нибудь алиэкспресс на спринге. И че, мне миллион корзин каждый момент времени сохранять? Это же пиздец, каждую секунду запросы к БД и дохуилион сохранений? В реальный проектах так делают?)
>>2457404 Ну хер знает как там делают алиэкспресс, но мне кажется навар с одного успешно проданного дилдака с лихвой покрывает расходы на сто других дилдаков которые просто добавились в корзину и лежат в базе.
>>2457476 Чтобы ты мог использовать примитивы и коробочные значения в обычных арифметических и булевых выражениях вперемешку, а также присваивать значения этих выражений как в коробочную переменную, так и в примитивную
>>2457487 Такое ясен хуй бывает, но никто не гарантирует,что это будет твой случай. Если ты не тупой, есть время, желание и жопа у тебя резиновая, то вкатишся. Но как минимум вопрос у тебя уже тупой
>>2457476 Предположу, что это костыль со стародавних времен, дабы иметь баланс между производительностью арифметики и консистентностью языка. С одной стороны, все объектные типы в джаве --- ссылочные и наследники от java.util.Object, что на самом деле удобно для разработчика, и все джавовое ООП сосредоточено вокруг этого факта. С другой стороны, все примитивные типы --- не-ссылочные и не-объекты, что удобно для арифметики, но несовместимо со всем остальным. И чтобы как то работать с примитивами как с объектами там где это нужно (в коллекциях, например), есть неявное приведение примитивов к объектам (боксинг) и обратно (анбоксинг): int оборачивается в java.lang.Integer с помощью вызова статического метода valueOf в том месте, где нужен обьект (вызов добавляет компилятор, его можно увидеть прямо в байткоде, если чекнуть через javap), и наоборот.
На самом деле это все канеш костыль и говно ебаное, которое ненавидят как джава-хейтеры, так и сами джависты, но так сложилось. Языки поновее (типа котлина) не делают таких явных для разраба различий между примитивами и не-примитивами.
>>2457536 Чем тебе редис под корзину не устраивает? Его и персистить можно, конечно персистится он хуевато, но большая часть данных после ребута сервиса и ребута редиса будут на месте. И реплицируется хорошо и ttl нормально работает.
>>2457743 В новых языках как правило более чоткая и более отвязанная от рантайма модель типов. В них нет нужды девелоперу различать примитивы от не-примитивов, там даже понятия такого явно не выделяется --- "примитив". Просто есть разные типы данных и сабтайпинг-отношения между ними, все. За девелопера все что нужно соптимизирует компилятор.
>>2457400 >>типа таймлифа и пр? Нужно ли их дрочить, знать? Их для почты только используют, фронт на реакте/ангуляре. Учить отдельно не надо, если что на проекте изучишь в рамках задачи. >>какова вероятность на реальных проектах встретиться с шаблонизаторами Но вообще бывают помойные легаси с JSP/JSTL - не рекомендую такие вакансии, там шаблонизатор меньшее что тебя будет беспокоить.
>>2457882 >бывают помойные легаси с JSP/JSTL - не рекомендую такие вакансии, там шаблонизатор меньшее что тебя будет беспокоить
Буквально недавно каким-то чудом удалось вкатиться джуном на помойную галеру с таким проектом. Посадили на легаси проект с 3 спрингом, xml конфигами и jsp, сказали смотреть логи и править баги. Какие подводные? Через сколько нужно сваливать с этого давно затонвушего корабля? К слову, на хх.ру по запросу jsp всего около 50 вакух на всю москву выдается. Я думал такого говна побольше будет.
Неироничный вопрос, возникший из-за высказываний хейтерков жабы ака дрочеров си решетка и языка "идти" - начинают ли новые проекты на жабе? Или же жаба, как говорят вышеупомянутые господа - это в 90% случаев про поддержку?
>>2457929 Возможно, это тупой вопрос, но можешь объяснить, что конкретно ты подразумеваешь под тырпрайзом? Почему личного кабинета не может относиться к тырпрайзу и к какой категории тогда интернет-магазины относятся?
>>2457925 Пока что 0, работаю с конца прошлой недели. На поддержке этого говна всего 2 человека, один какой-то скуфоидный дед, не особо общительный, но вроде шарящий что происходит, а другой собственно я. Пока что даже проект не смог запустить у себя)))
>>2457929 Личных кабинетов нет в энтерпрайзе? Что тогда вместо них?
>>2457924 Ну вот конкретно мое легаси где-то из 2012-2014 года. Все как полагается для тех времен, монолит, варники, xml конфиги, фронтенд на жабе с jsp. Наверное если поискать, то и более старые проекты можно найти, на каком-нибудь java ee 6 без спринга с аппликейшен сервером по типу вебсферы или glassfish java 2010 edition
А так наверняка где-то и новые проекты есть, просто в энтерпрайзе нельзя просто взять и выбросить то, во что вложили охулиарды бабла 10-15 лет назад, приходится поддерживать что дали и умолять руководство разрешить и выделить бабло начать переход на современный спринг и микросервисы.
>>2457941 Не знаю, я вкатун вчерашний. Но по идее должно быть легче поддерживать отдельный микросервис, чем лапшу в монолите. Хотя хороший монолит наверное гораздо лучше среднестатистического микросервиса будет. Микросервисам нужно общаться между собой, что усложняет понимание всего происходящего.
>>2457945 Отдельный микросервис может и легче, а вот спланировать архитектуру микросервисную, да так, чтоб не жидчайше не дать в штаны - несколько сложнее
>>2457942 Как уже правильно заметил анон (>>2457954) - нет требований по масштабированию. Количество пользователей относительно невелико, и мало меняется со временем. При этом логика работы может быть очень сложной.
А микросервисы - это именно про масштабирование. И про облачный деплоймент. Пример - Озон-Амазон и прочее подобное.
>>2457945 А почему в монолите обязательно "лапша"? Чего ради? Монолит - это, прежде всего, одна БД, с которой работают разные части системы. И простота координации, соответственно. Откат транзакции - это просто откат транзакции, а не сага с хореографией, лол.
Микросервисы - это серьёзный оверхед при управлении транзакциями (пиздец просто). И вообще оверхед, связанный с координацией отдельных сервисов.
Если читаешь по-английски - почитай хорошую книжку про микросервисы, их есть - на scanlibs.com Например Building Microservices, 2-е издание. Или Microservices Patterns (examples in Java). Или что-нибудь ещё. Только имей в виду, что это не очень лёгкое чтение.
>>2457977 Слово "энтерпрайз" - означает "предприятие". Я под этим словом понимаю (прежде всего) внутренние информационные системы предприятий и что-то подобное.
Если кто-то понимает под "энтерпрайзом" всё, что не игры-социалки-итд - это не ко мне.
>>2457977 Самое ёмкое определения энтерпрайза: энтерпрайз - это когда пользователи называются сотрудниками. То есть любой софт, которой пишут для внутреннего использования в предприятии. Самый понятый пример - 1С, энтерпрайз в чистом виде, кому как не сотрудникам работать с документооборотом и бухгалтерией. Просто в жабашарпах решения более масштабные, где 1С по возможностям и нагрузкам не хватает. Во всяких амазонах кроме основных магазинов, безусловно, есть и внутренний софт для сотрудников, это тоже энтерпрайз, но к самим магазинам это не относится, это просто фронтальная система для внутренних энтерпрайзных сервисов.
>>2458092 >Самое ёмкое определения энтерпрайза: энтерпрайз - это когда пользователи называются сотрудниками. Это ты взял из этого же треда, или вообще сам придумал. >Озон-Амазон По-твоему это не тырпрайз? Именно для сотрудников у них весьма и весьма нагруженные и замасштабированные решения пишутся.
>>2458102 > Это ты взял из этого же треда, или вообще сам придумал. Это я и писал то сообщение. > >Озон-Амазон > По-твоему это не тырпрайз? Именно для сотрудников у них весьма и весьма нагруженные и замасштабированные решения пишутся. Тырпрайз, конечно.
>>2458102 >По-твоему это не тырпрайз? Ты надоел уже, клоун. Это e-commerce.
А есть ещё финтех. И много чего другого. И всё это очень разные вещи. И везде java.
>замасштабированные Это по-каковски?
Ты точно понимаешь, что значит слово "масштабирование"? И в каком смысле это относится к микросервисам? И в чём разница с "высоконагруженным"?
Кстати, белые люди говорят не "высоконагруженное" а "высокопроизводительное" (high performance). Т.е. highload - это псевдо-английская калька с русского, используемая только в русскоязычном пространстве. Можешь на досуге подумать, почему так, и в чём разница.
>>2458107 >И всё это очень разные вещи. И все это тырпрайз. >Кстати, белые люди говорят не "высоконагруженное" а "высокопроизводительное" (high performance). Т.е. highload - это псевдо-английская калька с русского, используемая только в русскоязычном пространстве. Можешь на досуге подумать, почему так, и в чём разница. Ебать ты чушь высрал, петушара.
>>2458107 > Т.е. highload - это псевдо-английская калька с русского, используемая только в русскоязычном пространстве. Двачую, несколько раз попадались блоги на инглише, и по использованию слова highload сразу становится понятно, что писали русские.
Ты охуел даун? Ты блядь в этой жизни бич подплинтусный, еще требовать чего то вздумал? Давай пруфай свой паспорт и свою несчастную хибару в пердях, а я тебе взамен покажу свои заказы в яндексе на десятки тысяч в месяц в мишленовских рестиках
>>2458130 Ну например. Если корзину хранить на сервере ты можешь рассылать напоминалки тем кто положил что-то в корзину неделю назад но еще не купил. Или показывать предупреждение что такого цвета труселей осталось 3 штуки и 2 уже у кого-то в корзине. В самых простых случаях если продаешь например подписку на порн может и на куках прокатит.
>>2457976 >>2458092 Ну мы вот пишем типичный тырпрайз на микросервисах и 11/17 жабе. Как раз переписываем уже имеющийся сервис на 1с, потому что 1с негибкий и медленный. Причем в старую версию никто не смотрит, работаем по тз. Основной смысл, для нас-разрабов во всяком случае - в раздельном деплое. Изначально вообще две галеры разрабатывали разные микросервисы отдельно друг от друга, но с общей инфраструктурой. Уже намолотили 15 микросервисов. И еще 2 новых вырисовываются в течении пары месяцев. Сообщения между микросервисами - эвент в кафку и потом консьюмер забирает нужные ему данные по ресту. До распределенных транзакций мы еще не дошли правда. Тут даже внутри моего сервиса еще не везде, где нужны транзакции есть транзакции из-за особенности nosql-базы, где есть acid, но реализовано это криво. Но тут до релиза в прод - хз сколько, но по моим ощущениям - явно не меньше года.
>>2458107 > Кстати, белые люди говорят не "высоконагруженное" а "высокопроизводительное" (high performance). > Т.е. highload - это псевдо-английская калька с русского, используемая только в русскоязычном пространстве. > Можешь на досуге подумать, почему так, и в чём разница. На досуге подумаю над причинами, почему меня это должно ебать
>>2458206 А можешь тезисно объяснить как раздельно деплоить монолит? Я до этого работал на легасном монолите и там с деплоем были большие траблы. Даже запустить локально было непросто.
>>2458212 От сервера приложений зависит и от самого монолита. Если сервер может перекомпилировать и перезагружать классы на лету, то вот так и делать - просто грузить нужные классы. Но, это всё нестандартно, естественно.
Если не надо налету, а можно рестартовать (а иногда это обязательно) - то надо мутить свой способ деплоймента, чтобы всё не было в 1 war, например. Короче - никакой магии, просто это очень зависит от системы.
Сап аноны, я к вам не с пустыми руками, а с тупым вопросом. Сейчас разбираюсь с авторизацией посредством jwt, написал токен провайдер, который умеет создавать токен и валидировать, а так же добавил фильтр на валидацию токена, который он забирает из хедера и чет не могу понять, как все это связать. Где хранить полученный токен? В куках? Мне же он нужен постоянно в хедере. Чет тупняк пздц, подскажите, как правильно делать
>>2458527 >>2458547 Крч положил я значит свой токен в куки, тк в интернетике пишут, что это самое лучшее решение, но оказалось, что если я хочу дергать его из хедера, то надо писать какой-то js скрипт что я конечно же делать не умею, который будет доставать токен из куков и класть в хедер. Теперь вот думаю, как мне сделать так, чтобы этот скрипт при любом запросе срабатывал
>>2462822 Зависит от дроча твоего лично или лида на все это. Можешь вообще обмазать все это лобком и не ебать мозги. Олсо, хули ты делаешь в мертвом треде?
>>2468571 >а потом гадай откуда этот метод. Во-во.. для кого они эти гайды пишут? Для гениев, которые и так все понимают? А бестолочи вроде меня ноют и страдают потом
>>2468577 Перекатывайся из бестолочей в гении значит. Обычно к гайдам прилагаются сорцы на гитлабе, если совсем сложно - ищи в них. Ну или просто загляни в сигнатуру метода, что он там ожидает параметром.
>>2468603 >Перекатывайся из бестолочей в гении значит. Да тут два варианта. Либо совсем нахер пошлю джаву, либо случится переломный момент и в гении да..
>>2468588 По поводу этого можешь подсказать что-то? Причем тут контекст?
Вопрос такой: чтобы мне протестировать какой-то метод контроллера.. мне нужно приложение запускать сначала, а потом врубать тест? Или я просто тест врубаю и он эндпоинт дергает.. я крч концептуально не понимаю тут