Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна. Сейчас все советуют Hyperskill. Более продуманный план обучения. Но, как и любой %COURSENAME% не гарантирует тебе успешного вката. Выучиться можно и самостоятельно, не отдавая свои кровные васянам-наставникам.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать? A: Книги: https://libgen.is
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
>>1802157 → >2) Результат зачем-то проверяется на объект-константу (типа как Integer.MAX_VALUE - это паблик статик файнал объект), хотя достаточно было бы возвращать null
>>1802935 Развели процедурщину в объектно-ориентированном языке. Бог дал им эксепшены, нет, будем прокидывать ошибки и сравнивать их коды. Так и до голанга какого-нибудь недалеко.
>>1803030 Я зелёный, поэтому отвечу, что никогда, я уяснил на лабах в институте, что в хеш-таблицах такого вида всегда список, и ни про какие деревья там речи не было.
>>1803114 >Магия плоха просто в силу того, что она магия В спринге нет магии. Если ты не понимаешь, как работает автоконфигурация и аннотации, то ты тупой.
>>1803117 Автоконфигурация и есть магия. После запуска бута контекст засран сотней невесть откуда взявшихся бинов мутного предназначения, и без чтения про каждый хуй пойми, как оно там работает по умолчанию. Ну уж нет, лучше всё руками делать.
>>1802373 (OP) А есть у джавы готовый шаблон MVC как у .NET? Просто у C# .NET можно создать готовый сайт с настроенным рест апи и интерфейсом. Есть что такое на джаве, может фремворк какой или что? СОС
>>1803131 >>1803140 Это потому что у тебя едя коммунити, в ultimate выбор побольше. Также есть start.spring.io, всевозможные архетипы и некий Spring Roo.
>>1803131 Spring MVC очевидно. Трудно сказать как шарпе он или нет, шарпом не пользовался. Но веб сайт хэлоу ворлд склепать можно за пару минут.
Если у тебя не ультимей - инициалайзера встроенного нет - воспользуйся внешним https://start.spring.io/ Можно сразу накидать нужные зависимости, спринг сам все сделает. Скачаешь архив заготовки проекта - откроешь в идее и работай дальше.
>>1803360 Так это что угодно, что требует больше 1 минуты на построение последовательности действий, назвать магией. Хватит лениться и иди разбираться.
>>1803366 Прелесть исходников спринга в том что разбираясь в них ты хорошо поймешь как работает АОП и как работает рефликсия, потому что это основа на которой лежит спринг, если же данные темы у тебя вызывают вопросы или читая исходники ты не знаешь что делает условный .getClassLoader то возможно стоит вернутся к изучению javaCore
Помогите дауну, у меня лыжи не едут. Нашел проект https://github.com/ezst036/EasySeats-Java. Документации нет. Скачал, нашел build.xml, запустил ant, появилась папка build, в ней еще папки ну и основное это папка с кучей классов. Как приложение-то запустить?
Можно ли в идея коммьюнити подключить JDBC драйвер от MySQL? Я чёт гуглил, но там ушлые пацанчики только про ультимейт версию говорили. В Эклипс там быренько все настроил, но чёт к интерфейсу так и не могу привыкнуть.
>>1803419 рутреккер в помощь если ты не разработчик, Который следит за версиями идеи, то скачай какую нибудь 16-18 года к ним как раз ключей куча в интернете
>>1803400 При чём тут вообще исходники спринга? Каждый раз в них лезть что ли, когда что-то непонятно? А кор - это основа, и вопросов к ней быть не может.
>>1803451 Ну да каждый раз лезть, а как ты вообще что то учишь? базовое знание возможных методов, без изучения реализации это уровень джунов - мидлов. Или ты всегда в гугл за ответами лезешь?
Насколько необходимы знания алгоритмов и математики в java-бэке, в перспективе на высоком уровне разработки? Я не то, чтобы прям неосилятор полнейший в этих вещах, но удовольствия они мне не доставляют точно. Поэтому думаю, стоит ли выбрать бэк?
>>1803675 > алгоритмов Надо знать. Не то чтобы каждый день придётся с этим сталкиваться, но понимание алгоритмов/структур данных может иногда выручить.
> математики Этот вопрос пора добавлять в шапку. В обычном бекенде максимум будет арифметика или простейшая статистика.
>>1803890 Это я так назвал бекенд "в самом общем случае". Ну, в теории может быть что угодно, какой-нибудь специфический бекенд со сложными научными расчётами . Но такое обычно пишут не на джаве, а если и пишут, то расчёты отделяют от бекенда. В общем, не бери в голову, с таким вряд ли столкнёшься.
>>1803675 Даже работая ждуном мне приходится вертеть хешмапы со значениями из хешмап делая выборки из разных таблиц, работа с бд напоминает sql-ex на харде, блок схемы что в экран не влезают уже никого не удивляют, между stream() и collect(toList()); может быть не один десяток строк. Использую лямды чаще чем ругаюсь матом, хотя совсем недавно я не мог простейшую flatmap функцию сам написать. И всё это надо делать быстро, чтобы понять куда пропали данные с фронта прежде чем на это обратят внимание и исправить свой косяк. И работать оно разумеется должно тоже быстро. Если ты асимптотическую сложность сраного квиксорта запомнить не можешь - лучше даже не пытайся. Хотя может где и есть места, где надо поля раз в месяц переименовать, не знаю.
Методы MockMvc для загрузки multipart файлов не работают что ли (MockMvcRequestBuilders.multipart)? Не понимаю, почему один способ работает, другой нет. Весь сука день сижу и не могу поверить, потому что все примеры в интернете как будто рабочие.
Анон, помогай. Пилю лабы по джаве. В заданиях малоадекватная для современного JUnit хуета вроде Создать класс для методов тестирования, производный от класса основной программы и Создать объекты классов программы и тестирования в функции main(), хотя в гугле и даже в методичках нихуя не от чего не производно я так понимаю это значит наследовать основной класс в тестовом, блядь, везде отдельный тестокласс с @Test аннотациями и запуск тестов из него отдельно, а не из основной программы, как оно собстна и должно быть. Так вот. На похуй пишу по-правильному, препод скорее всего и так примет если конечный результат будет как в задании, но вот теперь задача состоит в том чтобы собрать в новом пакете новой лабы предыдущие из прошлых лаб и запустить все тесты из всех лаб одновременно. Я пилю проекты руками из консолечки мавеном, пишу и запускаю в вскоде с джава-расширениями. Кое-как нагуглил как собрать предыдущие пакеты в джарники и подключить их в новый, и даже как соединить все тестоклассы в один, но теперь проблема в том, что из этих джарников только основные классы импортятся, а тестовые - хуй. Как сделать чтобы можно было? Или что делать-то теперь, бочку?
я начал учить Java уже три дня усиленно вздыхаю над ней.
либо я тупой, либо уже просто задеревенел за 30лвлов (тож =тупой). чет трудно дается некоторые вещи, начиная с банальных пониманий основ ООП, как организуются классы, как ссылки с классов на классы/преременные мутить. ну и другое
подскажите какие-то мб каналы ютуб или книгу где разжевывают для тупых основы
>>1804452 тем не менее, есть какие-то курсы где понятно объясняют основы? множество курсов, которые я успел пролистать - там будто уже для знающих рассказывают. мб для учивших другие языки. а мне бы для тупого
>>1804720 Максимум ССЗБ, нарочно до такой хуйни и не додуматься. Решил с нуля без кора вкатиться в андроид, так ещё и сразу в котлин, но не осилил Боже, я наконец-то понял, откуда в котлин-треде столько тех, кто ничего другого не учил. Скачал философию джавы, нихуя не понял, решил сначала выучить C, причём сразу по K&R. Опять нихуя не понял, решил учить Computer Science по каким-то мутным книгам и курсам. > Начинаю осознавать, что для полной картины понимания Computer Science, мне необходимо будет заново учить алгебру, а затем и ВысшМат Ну это просто эпик.
>>1804792 Корзина должна быть в правом нижнем углу. Ещё я бы убрал идею с панели задач, легко на неё случйно кликнуть, а затем ждать, пока запустится, чтобы закрыть. Ну и добавил бы туда git-bash рядом с cmd.
>>1804828 В WSL слышал докер не пашет, хотя сам не пробовал. Ну и это всё-таки линукс со своим собственным окружением, когда гит баш - это более удобная замена командной строке.
>>1805106 Блин это же наоборот все усложняет, понимание ооп, мне кажется, приходит со временем, типо по началу можно писать код просто в один большой мето тоесть писать в процедурном стиле как деды делали, а потом уже будет легче понять ооп главное в js не иди а то там то вообще хаос
>>1805159 Кстати вот согласен, полгода назад первый раз сел за программирование и когда впервые столкнулся с ооп вот эта вся дрочь с "взято из реальной жизни" очень запутывала и отвращала. А когда почитал примеры кода - стало немного понятнее. Особенно, когда прочитал про первые несколько паттернов(фабрики, шаблонный метод) и решил по ним задачу. Хотя пока задачки мелкие процедурный удобнее и ооп нужно в 10% случаев. Но может все вот эти философские моменты и не до конца вкурил и определения инкапсуляции и полиморфизма из головы вылетели сразу. Зачем эти философские штуки вообще нужны?
>>1805202 Скажем так сокрытие реализации, наследование и.т.д. это просто признак хорошего тона при написании классов, условно если ты будешь делать все методы паблик никто не умрет же, но есть условности при которых прайват методы считаются методами для обработки внутри класса, вообще имхо лучше не ооп читать а солид, там все как то более точно описано
>>1805234 Мое мнение по поводу паттернов, они 100% не панацея, и использовать их постоянно ведет к говно-коду, потому что все паттерны кроме некоторых типо фабрики и сингелтона написаны сразу для максимальной масштабируемости, но в 90% случаев эта масштабируемость не нужна от слова совсем. в крации если получаешь кайф от разборов примеров то почему не поизучать
>>1805342 Ожидающий тред это тред которого насильно заставили ждать через .wait, блокированный это тот который долбится в блок synchronized или метод с аналогичной сигнатурой
Анон, нужна книга, лично рекомендованная тобой(важно уточнить оригинал или перевод), я по сто раз уже начинал несколько книг, сыпаться начинаю в районе многопоточности, откладываю, вспоминаю через неделю, все повторяется, лол.
>>1805409 Проблема в том, что в этом — сама суть Java: язык, в котором на разработчика надевают смирительную рубашку, так что даже человек без опыта, изучивший Java на двухнедельных курсах может что-то писать по данному ему техзаданию.
Kotlin в эту нишу не вписывается от слова «совсем»… с чем разработчикам, долго работавшим на Java, тяжело смириться.
P.S. Собственно если вы посмотрите на историю развития Java — то это постоянная борьба между людьми, которые хотят новые фичи, так как это позволяет писать более читабельный код — и людьми, которые пытаются их не допустить, потому что они также позволяют читать менее читабельный код…
>>1805630 В том, что нет никакого смысла везде тащить функциональность, которую никто не будет использовать. Хоть и надмножество, применяются они для совсем разных задач. Тебя ведь не удивляет, что нигде из коробки не поддерживается XQuery, а только его подмножество XPath. Потому что всё равно никто бы не пользовался.
>>1805643 Для тех, кого реально беспокоит количество передаваемых байтов, придумали бинарные форматы. А экономия на кавычках почти никакого прироста не даст.
Анончики, надо сделать веб приложение обработки заявок. Логика такова, что вход на сайтик осуществляется через вход под именем юзера, либо сервиса, либо адиинистратора. Юзер может создать заявку, в ней указано имя, дата создания, фото и комментарий. Сервис может менять статус с "в ожидании" на "в исполнении" и "выполнено". Администратор видит все поля. При смене статуса на почту юзера и администратора приходит уведомление о статусе и времени.
Поля заявки: имя, адрес, время создание, время отклика на заявку, время исполнения, имя сервиса, комментарий, фото.
Выполнил фронт часть и сделал в sql таблицу заявок и таблицу пользователей. Я нихуя не программист, по этому прошу помось вас. Что гуглить? Собираю проект в градле, юзаю спринг, из сделанного есть только работающий код, загружающий заявку из хтмл в sql табличку, но без имени пользователя.
научите меня заполнять массивы вводом с клавиатуры. например, есть 2 класса: first и second. в первый вводятся с клавы 2 значения последовательно. наприме имя и возраст. 5 человек, например.
в классе first есть переменные name и age. могу ли я сделать так, чтобы у меня был объект chelovek c параметрами name, age. и потом подставлять их в другой класс в массив?
>>1807019 >>1807076 Там не совсем так, они хотят стать технологичесим партнером ТикТок. В первую очередь, они хотят перенести данные с клаудов Гугла и Амазона в свой клауд, и обеспечить полную защиту этих данных от китайских властей.
>>1807106 Посмотрел ролик Немчинского людям, которые только начинают работать в сфере, он категорически противопоказан. Иначе получим повсюду возвращение условного EmptyComponent, из базы когда этого компонента там нет от слова совсем и кучу find методов хотя они норм, но не каждый чих же
В этом семестре, в универе у нас изучение джавы. Дали задание, но про сам язык ничего не объяснили.
С чего начать, чтоб быстро и эффективно войти в курс дела? Книга/курс/сайт? Джава программистом не собираюсь становится, просто надо понять базу языка.
>>1807364 https://metanit.com/java/tutorial/ Самый понятный из коротких туториалов, что я встречал на русском. Но мне не хватило практики и некоторые моменты без задачек я не понял. Задачки на https://hyperskill.org, но там сейчас регистрация по рефералкам, а с января будет платный.
>>1807480 >prototype Вообще в ЖЕПе по DI такой скоуп был как бы дефолтным. Но в спринге сделали лучше. А зачем он - хуй знает. >request Хранить токен пользователя, например. >session Хранить параметры сессии.
>>1807649 Я два месяца пообтирался на гиперсреньке, 140 топиков жопы, ессеншлы и прочие интересности выдрочил. Потом сделал 9 проектов, смотрю, а все остальные это какое-то дрочево массивов.
>>1807691 Если бы я делал по-тупому, создал бы класс со свалкой статик-полей и synchronized геттерами-сеттерами. А так, наверное, была бы только одна мапа<Class, Object> и пачка методов для инициализации и поиска.
Сука, гиперскилл дальше 25$/месяц, что делать, аноны Вроде норм ресурс, но мне чот не охота в такую делюгу рога макать На гиперскилле всё вроде норм разжёвывается Или то ресурсов у меня нормальных для изучения не было?
>>1807756 там вроде если ты что-то быстро делаешь, то фри триал до 3х месяцев продляется, а за 3 месяца можно этот гиперскилл весь пройти и проекты все сделать
У меня кончились адекватные идеи, нужно реализовать одну хрень, причем с расчетом что этот кусок кода будет выполняться быстро, часто и не жрать лишней памяти. У меня получается пиздец как не оптимально.
Есть два множества (Set) объектов, хотя фактически может быть хоть массив в реализации так-как множества приходят по сети уже готовыми. Допустим А и Б. Нужно найти в первый результат одновременно все элементы которые есть только в А но отсутсвуют в Б. И второй результат только элементы из Б но без А. Да в готовой библиотеки есть готовый метод. Но в своей базовой реализации он медленный. И его нужно вызвать дважды, а мне желательно за один проход все сделать.
>>1807762 В том то и дело, что я попроходил и ебловал А потом когда вошёл во вкус, так сказать, уже поздновато, блять Теперь чую, мне только хуи во вкус будут входить, блять
>>1807668 Без понятия, я осилил 170 и 8 проектов. Думаю еще 100 осилить и еще 10 проектов до нового года, потом наверно пойду учить андроид. Осталось очень много важного - многопоточность, лямбды, стримы, базы данных, спринг бут, паттерны. Для меня гиперскилз это кроме задачек еще и в первую очередь тренировка английского, там очень примитивный язык, а у меня инглиш был околонулевой. Ну и я задачек по темам с автотестами не видел лучше.
>>1807691 Делаем свою анотацию прихреначиваем её к полю, во время старта приложения мониторим все объекты на наличие этой антации, собираем все объекты в одну кучу и вызываем, их конструктор через рефликсию а ещё лучше через классы cglib, так как так быстрее, после создания экземпляра класса смотрим нет ли у него требующихся для заполнения полей, заполняем через рефликсию, если есть, готово. Спринг делает так же? а ну простите, я тупой
>>1807763 Set<Integer> intersection = new HashSet<>(s1); intersection .retainAll(s2); s1.removeAll(intersection); s2.removeAll(intersection); Вот решение, не знаю о каких двойних проходах идет речь
>>1807691 >>- Как реализовать DI-контейнер? Это ж просто хешмапа с наворотами. HashMap<Class, Object>. В спринге просто сделали вместо обжекта специальбный контейнер - бин, чтоб метаинфу хранить. Можно тож сделать, если хочется.
>>1807708 >>1807873 >>1807879 А теперь самое интересное - как построить дерево зависимостей и определить порядок инициализации. А потом усложняем вопрос - как сделать так, чтобы можно было и циклические зависимости делать.
>>1807988 > порядок инициализации О каждом бине хранился бы где-нибудь список его зависимостей, например, List<Class> в самом классе бина. Ну и при запуске бежим по ним, смотрим, проинициализировано ли, и если нет, рекурсиано обходим зависимости и инициализируем.
> циклические зависимости Разве что ленивая инициализация, инициализировать не при запуске контейнера, а при попытке непосредственного обращения к бинам из других бинов.
>>1808088 я гоняю 2 цикла в том примере, intersection просто для красоты, можно делать вот так: Set<Integer> buff= new HashSet<>(s1); s1.removeAll(s2); s2.removeAll(buff); Нам в любом случае придется проверить и s1 и s2, так как задача так поставлена
>>1802373 (OP) Бля какая ебля с этой хуйней, пиздец. Решил попробовать покодить на Джаваскрипте, скачал ебучий еклипс, и мне просто не дает писать. Сука, ну че за хуйня?
>>1807825 >>1807668 Одно разочарование этот hyperskill. Та же laba_2.pas, только в профиль. С таким гиперскиллами в IT-компанию разве что уборщиком возьмут.
>>1808140 >Однако сто тысяч записей вставляются почти 2 минуты. Так и должно быть разве? Это ж медленно пиздец, не? Вовсе нет, не очень быстро, но и не медленно что пиздец. Если хочешь напиши на чистом JDBC и PreparedStatement.addBatch() и посмотри время там.
В целом там много параметров: 1. Какие запросы генерит хибер, батчовые ли они. 2. Размеры вставляемых данных - чем меньше тем лучше. 3. Какие на таблице индексы/констрейны/триггеры - все это конечно тормозит вставку. 4. Надо подобрать оптимальный размер батча. 5. Оптимизация самого постгреса.
>>1808188 Спасибо, уже нашел проблему. Оказывается, для Postgres нужно обязательно ставить reWriteBatchedInserts=true, иначе JDBC-драйвер всё равно будет использовать отдельные инсерты. 2 минуты уменьшились до 20 секунд.
>>1806909 Ну, чисто технически, под капотом ArrayList при превышении capacity происходит то что ты написал. Нахуя я это пишу, ведь ты хотел написать ему как проще
>>1806907 Несколько советов тебе: 1. Пик2 - Убери сканнер из конструктора. Если тебе понадобится создать экземпляр класса то этот сканнер тебя заебёт. Лучше новый метод написать аля fillWithScanner(). 2. Для каждого свойства писать отдельные геттеры & сеттеры. Ну это ты и без меня знаешь. А вообще, анон выше задачу хуёво объяснил, сотюда все вытекающие.
Приветствую уважаемых, вопрос такого рода: кто-то сдавал экзамены OCA/OCP и если да, то те знания, которые ты задрачиваешь чтобы сдать экз окупаются или это тупая трата времени?Да, я молодой йоба 19lvl Спасибо за ответ.
>>1808388 Экзамен не сдавал, но луркал много по этой теме. Малоэффективно с точки зрения профессиональной прокачки, чуть более эффективно при поиске работы, но основное применение этого экзамена — когда галера может тебя подороже продать заказчику как сертифицированного java-разработчика. Что сказывается на твоей зп, вот тебе и окупаемость. Кстати, называются теперь Java Programmer I и II.
>>1808412 >>1808388 Кстати, с октября этого года экзамен для 11 джавы останется только 1, старые два будут неактуальны. В новом экзамене 90 вопросов, стоит 225 баксов, не мало, но дешевле чем два по 150. Для восьмерки схема сертификации остается прежней. Само наличие сертификата конечно мало чем поможет, хотя в каких то гос подрядчиках может повысить твою ценность (в тендерах бывают указывают требования наличие в команде OCP - это полная хрень с объективной точки зрения, но что уж поделаешь, российская бюрократия). Но подготовка имеет все же смысл, будешь знать какие-то тонкости, прокачаешься в новых api, там же и на многопоточку есть вопросы (хотя и простые). В некоторых конторах все еще имеют место быть паззлеры и бреинтизеры - как раз тренировка. Короче, если есть 225 баксов, время на подготовку и пока не видишь свою карьеру в будущем - почему бы и нет? Хотя понятно что это и не замена боевому опыту
>>1808537 Это как рассуждать, зачем нужны IDE, если есть вим/нотепад++/сублиме. Макакаскриптеры теперь тоже любят размазывать логику, и навигация по коду без помощи IDE там пиздец.
Плюсов не так много, но они есть: 1) Пока готовишься, пробегаешься по всему языку, что не может не сказаться положительно на твоем опыте 2) Можно на hh поставить охуенную плашку с сертификатом и бантиком, выглядит стильно, модно, hr'ы говорят "молодца" (серьезно, на это сильно прям клюют - количество предложений увеличилось в 2 раза, у меня правда бэк сеньеровский был, а для джуна может и не прокнуть) 3) Неплохо апает самооценку, типа "нихуя, я и так могу?" и можно потом на дваче хвастаться. Но тут аккуратнее - если с первого раза не затащишь, то словишь дизмораль.
Вообще экз достаточно сложный, в плане того что надо думать очень быстро, практически интуитивно. Первым делом смотришь, есть ли в ответах вариант "не компилится", и если нет, то очень быстренько чекаешь логику и идешь дальше, а если есть то ты попал, нужно внимательно читать код, ища ошибку. По правде сказать, по книжкам складывалось впечатление, что будут наебывать часто и много по ошибкам компиляции, а на деле все очень благоразумно - чекать парные скобки или запятые не приходится, все методы названы правильно (т.е. не будет такого что у коллекций .length() вызывают), все ошибки компиляции что есть это в основном из-за сигнатур методов, и из-за принадлежности метода к конкретному классу. Вопросов с "компиляцией" где-то 50%, может даже меньше. По времени расклад такой: первые час-полтора делаешь медленно и аккуратно ~30% вопросов, изучаешь систему, помечаешь некоторые вопросики для ревью позже. Далее охуеваешь с того что у тебя остался всего час, а вопросов еще больше половины, открывается второе дыхание, отбрасываешь неуверенность и начинаешь ебашить, ничего более не помечая. Как то-так.
Объясните, как мне запаковать хеловорд с 2 классами на джаве 11 в исполнительный джарник , чтобы я мог запускать на других пк без установки jdk/jre (ведь отдельного jre на 11 вроде нету, а переставлять на основной комп ранний jdk и засорять path я не хочу). вот тут есть ответ :
>>1808704 как ты хочешь сделать исполнительный именно jar`ник, если в системе нет jdk jre. Упаковывай в exe свой jar и jdk (вроде jre сейчас отдельно не идет), а лучше возьми native image graalvm
>>1808712 Я хочу то, что челик на стековерфлоу объяснил. Но я не понял полную последовательность действий. Запихать какие-то модули с jvm то ли в отдельную папку, то ли в джарник. Я ничего ни о мавене, ни о модулях не знаю, ньюфаг.
Или еще как то. Короче мне нужен простой способ поставить джава машину 11 на комп пользователя, чтобы весило поменьше и не надо было ковырять всякие path.
>>1808590 Любой литкод с задачками по основам языка. Хоть джавараш. Хекслет выглядит весьма годным и приближённым к реалиям разработки, но вся годнота платная. Я в своё время основы жабы выучил на курсе Седжвика по алгоритмам, но тогда уже работал программистом на другом языке.
Самая засада в том, что до уровня "пишу консольные приложения и гоняю массивы в три потока" можно научиться где угодно, но без баз данных, гита, веба и спринга с хибером ты нахуй никому не сдался. А это всё постигается в работе над настоящим проектом.
>>1808721 Для начала тебе нужно создать не просто jar, а java-модуль, упакованный в jar. Потом запускаешь утилиту jlink, как в примере, но со своими названиями. Она создаёт тебе в указанной директории рантайм джавы и батник для запуска твоей программы. Всё это хозяйство (джарник и директорию с рантаймом) берёшь с собой и запускаешь на другом компе с помощью всё того же батника.
>>1808804 Кстати и с гитой, бд и.т.д ты тоже не особо кому то оперся, так немного знаешь методы разных либ, по хорошему дальше утыкаться носом в какую нибудь технологию и нюхать пока не прозреешь.
Но соглашусь, только на первой работе понял как работает вся эта кухня вместе.
>>1808704 Раз у тебя возник такой вопрос, то скорее всего для твоей задачи тебе нужна не джава, а более подходящий инструмент. Способы, конечно, есть, можно хоть пхп запаковать в экзешник, но зачем забивать гвозди микроскопом?
>>1809012 Я изучал через исходники джавы, просто заходя в директорию и тестируя каждый метод каждого класса, по другому не умею так как по книжках вылетает инфа через неделю, но по итогу самый простой совет просто гуглишь вопросы на собес джавы и на каждый у тебя должен быть ответ, если ответа нет идешь либо разбираться либо гуглишь ответ либо там уже ответ будет
>>1808804 Жабараш платная, с идиотскими картинками и по отзывам хуже гиперскилса. Платить за гиперскилс я не собираюсь, так что сравнение не уместно. Ты бы еще "где угодно" - офлайн курсы назвал или универ. Ты так говоришь где угодно, как будто тебе эту хуиту от жидбрейнса, как золотую пулю продают. Я до того, как такие задачки начать гонять шел чисто по учебники и вообще не догонял. Ну и твои наезды вообще странные, особенно когда приводишь нерелевантный опыт. Само собой ясно, что гиперскилс это для совсем нулевых, для кого жаба первый язык. Так я вот скоро закончу. Раз ты такой опытный - скажи, где я могу получить знания по джаве получше погоняв массивы в консольных приложениях.
>>1809132 Когда первый раз на работу пришел, со мной пришел ещё один чувак мой будущий коллега с которым мы проработали 2 года вместе, а потом разошлись по разным компаниям, так вот я дрочил джаву по книжкам дедов, а он прошел джавараш, по итогу у меня были более глубокие знания в некоторых областях, а он знал намного больше но вширь, и по итогу он уже гуглил бест практики для стримов, а я сидел и говорил "кто это такой ваш стрим?" Никаких выводов не делаю, просто история из жизни
>>1809173 Это был 2015 год, проект на java 6 + EE, каким стримы? Мы просто новую бизнес логику писали на 8, потому что какой то чувак выпросил обновить джаву
>>1809170 Мне тут же в треде отсоветовали джавараши, да нагуливал я часть курса, она не очень. И если ты про стримы, которые фукциональные, а не ввода-вывода, то их вроде нет в их курсе.
>>1809202 https://javarush.ru/quests Вот можешь посмотреть. Задачки у них под пейволом, но "теория" сейчас почему то открыта. Там уровень сильно ниже, чем в гиперскилсе.
>>1809132 >Ты так говоришь где угодно, как будто тебе эту хуиту от жидбрейнса, как золотую пулю продают Ну как бы рекламная замануха была именно такая. А в итоге всё то же самое, но в хорошей упаковке. Да, удобнее, задачки лучше, прогресс и мотивация есть, но доводят в итоге до того же уровня, что и остальные. А потом крутись как хочешь. В этом была суть моего послания.
>Так я вот скоро закончу. Раз ты такой опытный - скажи, где я могу получить знания по джаве получше погоняв массивы в консольных приложениях. Обычно советуют после основ пилить свои проекты, изучая отдельные темы по мере возникновения проблем, пытаться коммитить в опенсорс. Но на практике это невероятно сложный и демотивирующий процесс, особенно после структурированного курса для начинающих. Мне кажется, что самое эффективное это либо обучение с ментором, которое стоит денег, либо пытаться попасть на стажировку за еду.
Товарищи джависты, помогите. Где можно найти гайд по правильной архитекутре программы? Ну там где написано что куда, типа есть контроллер, он ложится в конфиги, есть апликейшн пропертиес, они ложатся в ресурсы и т.д. Надо программу писать на работе, а я не ебу че каво. Спринг+ градле, если что.
>>1809170 >первый раз на работу пришел, со мной пришел ещё один чувак >он прошел джавараш Вспомнилось, как сидел в переговорке, ждал кого-то, а в соседней собесили вкатывальщика. И вот на вопрос про проекты он сказал "задачки решал с жавараша". Возникло неловкое молчание, затем сначала я из-за стены взвизгнул, потом тимлид, спустя секунд 5 и хрюша перестала сдерживаться и мерзко захихикала. Парень сделал вид, что ничего не произошло. Что дальше было, я не знаю. >>1809223 >либо обучение с ментором, которое стоит денег >либо пытаться попасть на стажировку за еду Сходи в армию, там тебе и сержант будет, и бесплатно поработаешь. Конченный, блядь, ты хоть понимаешь, как выглядишь перед работодателем? Любой блог открой, того же хохла, например. У него в каждом втором видосе идёт разговор про софтскилы, эстимейты, обучаемость. И тут ты приходишь. "Гражданин начальник, я не могу сам обучаться! Работать тоже не смогу, нужно чтоб сзади стоял погонщик и кнутом щёлкал. На нормальную работу меня не берут, я готов хуярить за еду (читай - от меня будут одни убытки)." Инициативность? Самостоятельность? Любознательность? Способность быстро обучаться в условиях постоянно изменяющихся технологий и бизнес-требований? Впизду, берём этого! (Нет) Вишенкой на торте идёт ещё и отсутствие в/о, верно?
>>1809881 >Вспомнилось, как сидел в переговорке, ждал кого-то, а в соседней собесили вкатывальщика. >И вот на вопрос про проекты он сказал "задачки решал с жавараша". Возникло неловкое молчание, затем сначала я из-за стены взвизгнул, потом тимлид, спустя секунд 5 и хрюша перестала сдерживаться и мерзко захихикала. Парню надо было после собеса, написать на вас мудаков, отзыв на всех платформах отзывов о работодателях.
>>1809869 Посмотрел, везде по-разному, накидал свой вариант, нормально? По терминологиям именований противоречий, вроде бы, нет. Хотя некоторые тонкости трудно различать.
>>1809863 Самое годное это книжка Мартина Фаулера "Шаблоны разработки корпоративных приложений" (Patterns of Enterprise Application Architecture). Это сухая теория, практически не устаревшая за 10 лет. Ещё у спринга есть "эталонный" проект Pet Clinic, можешь туда заглянуть.
>>1809881 Ого, ну ты и порвался. Ты ещё скажи, что сам в джуниорстве не на рабочем проекте учился, а пришёл уже с готовыми знаниями после самообучения через интернет. Если ты, конечно, не школьник, изображающий себя бывалым гребцом.
>>1810128 Слишком подробно. У нас в команде структура разбивается по функционалу, то есть там configuration, controller, repository, service, integration, model. Внутри уже лежат специфичные классы для разных бизнес сущностей. В спринг пет клиник наоборот, папки под отдельные бизнес сущности, а внутри разные по функционалу классы вперемешку. Не знаю, что лучше, решай сам.
>>1810128 Контроллеры надо вывести из бизнес-логики. Вообще, делать можно как угодно, прям жёстких требований к этому нет, вопрос лишь в семантике. Можно хоть положить всё в один пакет, и будет работать, потому что обычно классам в одном проекте стараются давать уникальные имена.
>>1810168 Понял. Ну, не знаю, лично мне нравится, когда каждый класс лежит на своей узкой полочке, аж дышать легче становится.
>>1810169 >Контроллеры надо вывести из бизнес-логики Точно, спасибо. Хотя тут пакет businesslogic скорее для разграничения конфигурации и логики приложения.
>>1810180 >когда каждый класс лежит на своей узкой полочке, аж дышать легче становится. А еще можно писать так, чтобы в классе было не больше одного метода.
>>1810326 А как по одним книгам учиться? Вот читаю я книгу, погонял пример из книги, но не все и не везде понял. Для закрепления нужно бы задачки порешать, но в большей части книг задачек нет, а в тех, что есть - можешь сделать, но их никто не проверит.
Jlink работает только с модульными jar. То есть всё твое приложение, включая все твои зависимости должно быть модульным. На сегодня 95% библиотек на жабе нихуя не модульные. Максимум добавили строчку в манифест с объявлением имени автомодуля и всё. Некоторые да же этого не смогли сделать за 3 года.
Нахуй тебе такая глубокая вложенность? Чем более плоская модель - тем проще она в понимании. Выкидывай "application", "businesslogic" и "domain" они никакой информации не несут. DAO и repository это одно и то же, выбери что-то одно.
>>1810341 >в большей части книг задачек нет В большинстве нормальных книг есть задачки после каждой главы. Вот сходу могу точно сказать, что у Кормена были задачки. В красной книге по скале были задачки. В её java-аналоге они были. В SICP они были. >их никто не проверит Я выше перечислил пару книг издательства Маннинг, там есть решения с тестами, где можно проверить. На крайний случай всегда можно загуглить те же "99 problems in ...", пикрил, открыть литкод, открыть sql-ex. Дальше уже просто открывать ХХ, писать хрюше - она найдёт тебе задачку. Если решишь - ещё и на работу устроишься.
>>1810454 Кормен это алгоритмы вроде, сикп - лисп, непонятная книга по скале тоже само собой не джава. Зачем ты привел столько нерелевантных примеров? Я же не об этом спрашивал. Я не нашел адекватных учебников для новичков с задачами, иду по Хорстману(там нет задач), решаю задачки в гиперскилсе.
>>1802980 Динамический состояния представлять исключениями, это вообще костыль. Без налла, как без анала, никак, просто надо как-то маркировать методы.
>>1810412 > DAO и repository это одно и то же Есть мнение, что это не так, мол, DAO - это голый SQL, работающий с таблицами напрямую, а репозиторий на уровень выше, работает уже с сущностями через ORM. Ну и другое мнение, что хуйня это всё.
>>1810698 в сервисе бизнослогика в репозитории персистенс сущностей(юзает интерфейс дао или юзает интерфейс орм) дао содержит реализацию персистонса(вместо дао может быть нихуя, если юзается орм)
Я смотрю, эклипс второй по популярности после идеи, раз про него здесь так часто пишут. Надо бы попробовать, и если норм, снести ебаную идею, чтобы видеть её только на работе.
Поставил эклипс. Юзабилити какое-то совсем хуёвое, будто переход на Borland C++ Builder с какой-нибудь современной вижуал студии. Даже STS так себе. Снёс.
>>1810937 Потому что это шаг назад, шаг к усложнению. Вместо декларативного описания тут чуть ли не пишешь скрипты сборки, со всеми вытекающими последствиями.
>>1810943 Достаточно много людей думает, что новое всегда значит лучше. Да и копнёшь чуть дальше пет-проектов и хеллоуворлдов - везде мавен, даже если и были попытки юзать градл, то потом выкидывали.
>>1810953 Ага, и написал дохуя плагинов, скриптов и конфигов, чтобы работало нормально, он-то может себе позволить. А большинству нужно пилить фичи вместо ебли с системой сборки.
>>1808534 Интересная информация про новый вид сдачи экзамена,благодарю. Готовлюсь по дефолтным книжкам OCA OCP от Boyarsky, думаешь будет достаточно для сдачи нового экза? просто если сейчас есть 2 экзамена - 2 книги, то с новыми порядками я даже не знаю, вряд ли литература соответствующая появится. >>1808552 Спасибо за развернутый ответ, слушай, я живу в умирающем миллионике, тут что-то с пунктами сдачи туговато и я пока не разобрался есть ли в моем городе что-то такое(если что не проблема скататься в какой-нибудь дс).Можно ли через какой-то сайт посмотреть пункты сдачи по РФ? Туповатый вопрос, понимаю, но может ты сам сталкивался)
Как проекты пилятся в компаниях? Вы берете тз и сами решаете какую сегодня фичу запилить или вам дают четкие задания реализовать такой-то класс или такую-то логику? Я имею ввиду, вы всегда четко знаете, что вам нужно реализовать? Часто приходится самому что-то выдумывать?
>>1811033 Есть заказчик, и он говорит, что за фичи ему нужны, и заводит задачи в джире. Причём какие-то фичи ему нужны поскорее, а какие-то могут подождать. И ебитесь как хотите. Ну а дальше бизнес-аналитики расписывают, что именно нужно сделать, тимлиды создают задачи поменьше и распределяют, кто, когда и что будет делать. Если ты джун, то частенько тимлид расписывает задачу подробно с указанием того, как именно нужно реализовывать, на какие места в коде обратить внимание и т. д. А если поопытнее, то как правило сам уже всё понимаешь и делаешь.
Сдавал 1z0-808 в августе, готовился по книжке Боярски и мок-экзаменам Enthuware. Последнее очень рекомендую, вопросы сложнее, чем те, что на реальном экзамене, и главное, к каждому вопросу есть описание и дискуссия на сайте. 10 баксов стоят, можешь поискать ломанные.
Пункты сдачи можешь посмотреть на сайте Pearson Vue, там же, где будешь бронировать экзамен. Есть опция сдавать из дома, т.н. Proctored exam, но это то еще удовольтсвие: ручкой и бумагой пользоваться запрещается, смотреть в камеру, вставать нельзя, глаза отводить нельзя. По-моему, лучше в соседний город съездить.
Есть шанс сейчас полностью выбрать один из двух стеков java (+kotlin) или C# (.Net Core) Я совершенно не ньюфаня, просто предоставляется возможность полностью погрузиться в одну из платформ, но внятной и глубокой информации по этому выбору нет (везде что-то поверхностное). Есть у кого интересные мысли по поводу той или иной технологии, любое мнение будет полезно.
>>1811329 >но внятной и глубокой информации по этому выбору нет (везде что-то поверхностное). У обоих платформ есть свои достоинства и недостатки. Из плюсов Java- более распространенная больше вакансий, больше библиотек и фреймворков видел доклад, где чуваки делали Java-.Net интероп чтобы использовать Java библиотеки, хороший тулинг. У Java есть альтернативные JVM - да, не все сидят на Oracle JDK. Java поддерживается и развивается, не только Oracle.
У .Net и C# - больше сахара. Все необходимые инструменты - IDE, пакетный менеджер, система сборки, без изысков, но есть. Платформа развивается.
В целом C# более продвинутый язык чем Java, но JVM превосходит .Net Core как платформа и по количеству и качеству фреймворков и библиотек.
Динамикопетух на связи Писал около 2х лет на Ноде, к которой с недавнего времени добавился ТайпСкрипт. Подумываю взять статически типизированный язык и в перспективе перекатитсья в него. Присматриваюсь к Жаве, но что-то мне сдается что большинство вакансий будут дремучим легаси, а мне б этого не хотелось. Какие версии Жавы на данный момент чаще всего юзаются в коммерческой разработке? (бэк, энтерпрайз или мобилки)
Учу джаву чуть больше пары недель. Дрочу пока книжки, ну и пишу код, естественно. Мой первый ЯП, до этого абсолютный 0.
Примерно через неделю после начала изучения, я записался на белорусский онлайн курс по JS. Для общего развития и из интереса. На днях осознал, что изучение обучение на курсе внезапно занимает дохуя времени и страдает джава. Так вот вопрос - стоит ли так разрываться меж двух языков или лучше сконцентрироватьяс на одном и забить на курсы? Я вообще не уверен, нужны ли мне знания по JS, но осознаю что инструменты и задачи у них абсолютно разные.
>>1811995 Все же решил сконцентрироваться на джаве. Но все же готов выслушать мнение ананасов о том, насколько тупа или охуенна затея учить два языка одновременно
>>1812005 Да к тому же у меня автошкола + подработка, и времени считай вообще в обрез.
И я тоже ахуевал, и продолжаю порой ахуевать от джавы, но это хорошо же =) Главное влиться в поток и там уже попрет. В начале всегда сложно. Ну, надеюсь что так и будет лул
>>1812006 я бестолочь в языках, но мне чет мне кажется, что тут большинство тебе скажет, что это просто извращение без особого толку. сам себя запутаешь
>>1812016 ахах еще и автошкола) ты че, перфекционист? настроил много планов, но тем проще будет тебе обосраться
опытный прогер тебе скажет что знает много языков, но одновременно вряд ли использует.
>>1811487 >Какие версии Жавы на данный момент чаще всего юзаются в коммерческой разработке? (бэк, энтерпрайз или мобилки) У нас основная 11, и некоторые сервисы переводим на 14.
>>1812091 Покупать джавараш не обязательно, ставишь эмулятор андроида, ставишь их апкашку, пишешь в идее, копипастишь в эмулятор. Но это прям пердолинг, проще раз отдать за месяц 1200р (это со скидкой для новичков) и понять нужно тебе это или нет не нужно
>>1812091 Я вот честно не понимаю откуда столько хейта в их сторону. Там охуенно можно прокачать знания джава кора. Все эти задачки по выводу говна в консоль даются только на первых где-то 10 уровнях. Дальше сложнее темы идут.
Ребят подскажите плиз. Делаю аплекуху со статьями и нужно вывести самые популярные, как сделать эту логику? Думал добавить статье поле long rating; и просто делать инкремент на каждый GET запрос на эту статью. Потом доставать статьи с наибольшим числом. Так норм будет или есть получше решения?
>>1812264 > добавить статье поле long rating; и просто делать инкремент на каждый GET запрос на эту статью Так это и работает же, нет? Зачем какую-то гига-сложную логику придумывать?
Сап. Нужен совет бывалых. Хочу сделать сайт-библиотеку (для портфолио чтобы показать на собесе), чтобы была возможность сортировать их по категориям, популярности и авторам. Бэк: spring boot, spring data, postgresql, lombok, mapstruct. На фронте будет react. Нормальный стэк выбрал или говно?
Двощ, как протестить сервис с замоканным дао? @Transactional public boolean isUserSetForDate(UUID id, LocalDate date) { User user = this.dao.getById( id ); return user.getListOfDates() -тут НПЕ .isDateBooked( date ); } @Test void isPlaceSetForDate() { User user = new User(); mockRepo.save( user); Assertions.assertEquals( this.userService.isUserSetForDate( user.getId(),LocalDate.now() ),false ); /TODO correct/
>>1812361 Создай таблицу с ip и id поста и добавляй туда записи при первом просмотре, а посты сортируй по group by post_id order by max(count(*)) desc.
>>1812373 Попроще,чем в ЕПАМ, беларусы - аутсорсеры. Хотя отсев неплохой, начиная с тестового на вход в курсы,заканчивая нагрузкой. Процентов 50 уже слилось из 12,где-то.
Вот, поэтому мне нужен консалтинг по мокито, а то кукуха его не переваривает,увы.
>>1812376 То, что отсев неплохой это неудивительно конечно. А вот то, что всего 12 человек пробовалось - это маловато как-то. Хотя они походу на стадии набора в группу отсеяли много. > мокито К сожалению не использовал его, поэтому ничего не могу сказать.
>>1812405 По слухам, фармят топ людей сейчас.Вкатится довольно трудно. Хотя лет 5 назад свитчились знакомые в СПБ без опыта работы, в целом, положительно отзывается,хоть и галера.
Посоветуйте сервис для генерации и отправки эмейлов для микросервисной аплекухи. ThymeLeaf and FreeMarker на спринг буте современное решение или есть уже сервисы(желательно фришные), которые всё делают лучше, красивше, удобнее?
>>1810326 >>1810341 Вобщемта, я начал свою программерскую жизнь с того, что изучил сисярп практически по одной тоненькой книжке, ну ещё прошёл текстовый курс на Интуите (курсеры тогда ещё не было). И у меня была реальная задача: для диплома нужно было сделать программку-расширение, которая общалась с одной монструозной системой через .NET API.
Работающие аноны, подскажите, как у вас на галерах принято оформлять комменты к классам и методам. Строго Javadoc с перечислением параметров везде и всегда или какой-нибудь внутренний code convention, или вообще каждый как хочет комментит?
>>1812665 А КОГДА ТОГДА БЛЯДЬ ПОНИМАТЬ zalypa has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
>>1812671 Ждк включает в себя жре. Чтобы получить более новое жре, надо обновить ждк. А потом ебаться с жлинк, чтобы сгенерировать жре отдельно, если нужно. или скачать здесь: https://adoptopenjdk.net/releases.html
>>1812701 Да нихуя анон, нихуя. Все пробовал, и один лишь вкус головки полового члена в своей ротовой полости ощущаю я. Вот я делаю вид, что мне никто ничего не должен, что я сам отчасти виноват в своих проблемах, что все мы в равных условиях и развиваемся по мере возможностей и издержек эволюции, но в глубине души прекрасно осознаю, что всякая сволочь, съевшая хоть булку хлеба на рубль со спекуляций на человеческих слабостях, продаж бесполезной хуеты и прочей капиталистической содомии, должна принести мне в жертву всех ближайших родственников, и в один прекрасный день это произойдет. Ибо в том, что я не родился в ламповом анимешном социалистическом раю, где нет места подобному пердолингу, виноваты вполне определенные пидорасы, не хотевшие участвовать во всемирном благоустройстве.
>>1811033 > Как проекты пилятся в компаниях? Вы берете тз и сами решаете какую сегодня фичу запилить или вам дают четкие задания реализовать такой-то класс или такую-то логику? Я имею ввиду, вы всегда четко знаете, что вам нужно реализовать? Часто приходится самому что-то выдумывать? Дают ТЗ. В нем дай бог хотя бы половина будет описана так, как это должно работать. В процессе кодинга ебешь мозги аналитикам, задаешь вопросы. Где-то ближе к концу аналитик осознает, что нужно переделать половину логики, потому что ему или заказчику это кажется пиздатой идеей. Доеиливаешь проект
>>1812759 > Знать нужно? Муторно выглядит, не каеф в это лезть.. Не нужно. Если и припрет на каком-то проекте, разберешься. Таким никто не дрочит на собесах. Я, ковыряю в носу, за неделю прикрутил spring security + ldap аутентификацию.
>>1812344 Я как обычно наверное не понял сложности задания... Ты говоришь >с замоканным дао , ну так возьми этот замоканный дао, и сделай when(daoMock.getById(anyInteger()).thenReturn(user). Юзера ты уже создал, в чем проблемы? По необходимости твикай, создай еще юзера, создай зависимость от параметра.
>>1812739 > Где-то ближе к концу аналитик осознает, что нужно переделать половину логики, потому что ему или заказчику это кажется пиздатой идеей. ПЕРЕДЕЛЫВАЕШь @ ТРАТИШЬ ДОХУЯ ВРЕМЕНИ НА ФИКС БАГОВ @ ТЕСТИРОВЩИК ТРАТИТ ДОХУЯ ВРЕМЕНИ НА ПОЛНЫЙ РЕГРЕСС
Каждый пользователь имеет свою сессию, что позволит тебе не засчитывать просмотры от обновления страницы и.т.п. Это первый фильтр. Второй фильтр только через JS, чтобы просмотр статьи фиксировался только после нахождения на ней более 30 секунд (1 мин.)
>>1812091 Ну они не только джава раш проходят потому что. Некоторые мои знакомые-вкатывальщики как раз прошли где то двадцать заданий, потом по-другому оттачивали уже навыки (с ментором или еще что-то). Вот и получается что джава раш было лишь одной ступенью к началу карьеры. Т.е. это вполне рабочая схема.
Мой проект ВСЁ, пидорят на другой. Джаву в глаза не видел, быдлокодил до этого три года на крестах, вышка есть. Так что входить и вкатываться мне не нужно, но нужно быстро переквалифицироваться. Просто хуярить майндмап из шапки и переписывать свои петы на Джаву?
>>1813216 >>1813200 Ошибка выжившего. "Я решил войти в айти, ходил на курсы и проходил джавараш. Было трудно, но я не сдавался! А потом нарисовался мой однокурсник и без собеседований взял меня в свой проект"
Может ли джавовый драйвер интерпретировать null-овый clob из оракла не как null, а как пустой? Я нихуя не понимаю, у меня все работает, а баг известно где. Гуглил, написано, может на каких-то версиях websphere application такое быть.
>>1813268 Не знаю, при чём тут сфера, драйвер кладётся в неё отдельным жарником, и сфера в него по идее не должна лезть. Можно попробовать скачать разные версии драйвера и попробовать на них. Но сейчас проверил на 8 сфере и 12 оракле, для clob вернулся именно null.
>>1813371 Делание чего-либо под музыку безошибочно детектит пустышку без талантов. Такому человеку "нечего терять" в плане способностей к глубокой умственной работе, вот и похуй на шум. А музыка еще и создает иллюзию более насыщенного времяпрепровождения, прям такой движ по жизни, чтоб наш кабанчик, вырвавшийся из грязи в князи и прочитавший пару умных книг, не дай боже не усомнился в своей продуктивности. Ведь это так пиздато с видом Ерохи делать всякую бесполезную хуйню с КПД 15% и рассказывать скромным задротам, какие они ленивые уебаны теоретики.
>>1813371 Под ASMR, только в которых слов поменьше, и строго обязательно на англ. - неплохой фон получается, и не отвлекает, и странным образом придает сил.
>>1813591 Ты не прав. Если делать типовые задачи( которые ты уже делал раньше и ничего нового там нет ), то можно и под музыку. Так даже легче не отвлекаться.
эй, красавчики, можете максимально просто (для идиота) разъяснить суть конструктора в java. как он работает и че он. зачем его использовать, зачем показывать явно?
>>1813641 Ну вот есть класс с перечислением полей, которые будут у созданного объекта. Непонятно, как и чем эти поля заполнять при создании нового объекта, и конструктор как раз этим и занимается, то есть берёт аргументы, которые ты ему передаёшь, и основываясь на них инициализирует поля нового объекта.
>>1813650 Инфоцыгане опять высрали какие-нибудь курсы наверное, сейчас же к нг будут появляться исследования типа сколько зарабатывает средний погромист)))
>>1813676 Ура, по 500 человек на вакансию с модной молодёжной хипстерской джавой! Сотни вопросов про System out.println()! Лабы! Почему цикл for не компилируется!
>>1813683 > Ура, по 500 человек на вакансию с модной молодёжной хипстерской джавой! Сотни вопросов про System out.println()! Лабы! Почему цикл for не компилируется! Пацаны, хочу вкатиться. Какие книги читать, посоветуйте видосы, а че вообще по практике делать, как вкатиться за месяц и рубить 300к/нс
Анонче, разъясните пожалуйста за разницу между разработкой под андроид и энтерпрайз бекендом на джаве в условиях полевых действий. Свои плюсы, минусы, насколько быстро веб заменит нативные приложения, насколько что перспективно и т.д. Разговоры про котлин отставить.
>>1813371 Когда думаю - то чаще всего в тишине. Когда задача уже готова в голове, осталось только перевести мысли в код - то иногда врубаю что-нибудь под настроение, вот недавно часа 5 под слеер хуярил, заебись ваще, если б жрать не захотелось то хрен бы остановился. Так-то всё равно, главное в поток войти, а там уже хоть клоуны вокруг скакать будут, мне уже насрать.
>>1813924 Андроид это ебля с разными версиями андроида и кучей разных устройств и разрешений. Плюс немного проблем с самой платформой - типа приложение выгрузили из памяти, до того как пришел HTTP reponse и все наебнулось.
Энтерпрайз - это ебля со 100500 разных фреймворков, невнятных и противоречивых бизнес требований (7 красных линий), просраных дедлайнов и все это сверху смазано девопсом - джар в докере, докер в кубернетисе, кубернетис в облаке, облако в 2-х зонах.
А еще есть верстка и жопаскрипт, это отдельная очень увлекательная дисциплина. Тут, для успеха, тебе понадобиться латексный костюм и кошачьи ушки.
>>1813635 Двачую. Музыка для суходрочеров. Никогда не понимал на соревнованиях, нахуя перед подходом нюхать какую-то ссанину, по спине бить, музыку громче делать, кричать. Уебанство. Онли спокойствие, онли невозмутимая силушка, ух бля.
>>1811033 Бывает по-разному. В команде здорового человека - проходят планирования с участием всех членов команды, задачи оцениваются с учётом всех мнений и набираются в план на итерацию. В команде курильщика - хаос
>>1814653 > либо не связано с джавой Потому что это действительно несвязанные вещи, и изучаются отдельно друг от друга. Докеру без разницы, джаву ты в него пихаешь или C++. Джаве без разницы, на чём запускаться, лишь бы была JVM. Но докер и джаву можно юзать вместе, нужно специальным образом подготовить докер-образ, дать ему на вход java-приложение (хоть жарник, хоть сервер приложений с war/ear-никами) и тупо запустить. Начать можно с видеомурзилок на ютубе, просто вбить "основы docker" и смотреть плейлисты. Ну а дальше гуглить "java как сделать docker-образ". Кратко: создать файл с названием Dockerfile с таким содержимым: FROM java:8 WORKDIR / ADD myapp.jar app.jar EXPOSE 8080 CMD java -jar app.jar
И запустить: docker build -t myapp . docker run -p 8080:8080 myapp
Здесь создаётся образ на основе существующего образа java:8 (из центрального репозитория докера), в него копируется файл myapp.jar, указывается порт 8080 и команда для запуска жарника. Дальше двумя командами билдишь образ и запускаешь, пробрасывая порт 8080. Вообще ничего сложного.
>>1814663 Суть докера не в том, чтобы запустить приложение в виртуалке, а в том, чтобы изолировать приложение со своим окружением от остального мира, сохранить всё это и мочь быстро развернуть где угодно. Теоретически, можно и без виртуалки, просто как ещё создать изолированные окружения? Разве что chroot, но у него много своих проблем, да и на винде не работает.
>>1814678 Одной jvm мало, приложение юзает внешние файлы и всевозможные СУБД, очереди сообщений, кеши и прочие сервисы. И предлагается всё это разворачивать в докере, чтобы не мешать хосту.
>>1814686 В общем-то, это может решить некоторые проблемы с конфигурацией и развёртыванием. Если для собесов, то я даже видел тестовые задания, где один из пунктов - запаковать своё приложение в докер.
>>1814792 Два варианта: - если БД на хосте, то просто подключаешься к её порту, но не через 127.0.0.1, а через IP хоста - если тоже в докере, то к IP контейнера. Правда, обычно делают не через IP, а DNS-имена, которыми управляет сам докер, как в примере docker compose: https://hub.docker.com/_/postgres
Подскажите плиз. Есть микросервисная аплекуха, всё на спинг буте, клауде и т.п. Есть апи гейтвей для фронта. Есть сервис авторизации, который возвращает аксес и рефреш токены. Где лучше их проверять, что мол DELETE /mySecuredService можна делать только если токен валиден и у акка есть админ роль. Вставлять фильтры в каждый сервис или это можно в апи гейтвее наконфигурить где-то со списком эндпоинтов всех сервисов, куда ходить незя, если ты не админ.
>>1814921 Надо проверять это в микросервисе, потому что это его зона ответственности. Апи-гейтвей просто роутит запрос к этому микросервису и возвращает ответ, в данном случае ошибку.
Поясните своими словами что такое энтерпрайз разработка на Java. Я так понимаю это логика какого-то айти бизнеса допустим. Или какой-то менеджер транзакций работающий по своим алгоритмам написанный на Java и т.д. И как выглядит вообще эта разработка?
>>1815316 Тупо аатоматизация бизнес-процессов. Проект выглядит так: у тебя сравнительно небольшие по количеству кода эндпоинты и DAO, но при этом ебически огромные сервисы, в которых куча условий, настроек, интеграций, сущностей и прочего. И бизнес-требования в духе "необходимо автоматически изменять статус заявок от таких клиентов в будни и в первые дни месяца, но только если есть такие-то данные и включены такие то настройки, а если нет, то делать что-то другое". Пишет это целая толпа разрабов, даже самые опытные из которых полностью не понимают, как работает проект, и поэтому все специализируются на какой-то части проекта, и они всё время общаются с аналитиками, чтобы хоть как-то худо-бедно прояснить, чего именно хочет заказчик.
Ребзя с монгой работал кто? Есть задача, ломаю голову уже несколько дней. Допустим в монге хранятся сущности Food (String name, List<String> ingredients)
Задача такая: Я присылаю с фронта список ингредиентов "sugar","milk","meat","eggs"
И нужно вернуть из базы ответ с едой с хотяб 1 из этих ингредиентов, НО! отсортированной в порядке количества совпадений. Т.е. еда у которой всё совпало 1я, у которой совпало 3 из 4х - 2я и т.д. Можно это как-то через агрегаторы напилить, а то я ебусь уже столько времени и только на джавке написать сортировку смог.
Я писал трейдинговую платформу, где надо было максимально быстро получить базовую цену от прайсинга, посчитать цену для конкретного клиента и отправить ему, потом так же быстро получить его заявку, провалидировать ее и гарантированно отправить в лайфсайкл систему. Тут реально надо было понимать, когда хешмап работает медленней цикла по массиву и когда и сколько памяти аллоцируется.
Был проект где был метаязык на котором клиенты телеком описывали формат данных в основном бинарные, местами даже надо было парсить побитово, а мы этому описанию генерировали парсер на лету, прямо в байткод. Тут реально надо понимать кишочки JVM и байткода.
Есть интересные проекты, но их надо поискать. Опять же есть стартапы, где гринфилд и любые технологии.
>>1815420 Эх, не люблю низкоуровневщину, но тоже интересно узнать больше о кишках платформы, проштудировать спецификации языка и жвм, да всё руки никак не дойдут из-за няшного спринга.
>>1815326 >бизнес-требования в духе "необходимо автоматически изменять статус заявок от таких клиентов в будни и в первые дни месяца, но только если есть такие-то данные и включены такие то настройки, а если нет, то делать что-то другое Хех, а я думал, только у меня такие шизики попались.
Такая история, планирую вкатываться в мидла джависта, опыт работы на джаве 2 аппа на ведро которых нигде нет. Основной опыт C++/C Контроллерчики, 2.5 года в микро-заводе (2 прогера на разработке). English level ~ B1-B2. Reading docs and viewing vids on English without problems.
Джаву освоил сам, после крестов все ну ПРЯМ сильно проще. Джава кор есть, даже немного прыгал в мультитреад, но насколько понял у мидлов редкая тема. Вкурсе про коллекции, и даже поделал немного код тасков.
Понимаю, что без маня-фреймворка, я - хуй. Берут ли с таким стаком на мидла?
Какие фреймворки для Java нынче востребованны, дрочить джуном после 2.5 года крестовиком за 500$ ну такое (дефолт зп джуна РБ)?
>>1816358 Меня бесит, что идея от него красная, например. Пока не скомпилируешь не узнаешь где ошибся. А так вообще удобная штука. Если не знать, что идея половину делает за 2.5 хоткея. Она должна быть встроена в язык.
>>1804751 Computer science - это информатика. Зачем тебе информатика? Просто учи JAVу Сначала java за 21 день далее javafx(можешь swing но он тепа подыхает) тут ты поймешь зачем учил джаву за 21д
отсюда легче плясать, можешь в сторону андроида, можешь в java ee
ps sql быстро учится, он и разрабатывался для операторов, а не для программистов
>>1804720 >Наверное, мои познания математики остались на уровне уроков математики 5-6 классов. Типичный вкатывальщик в 2020. А потом такому дауну местные олды с корками какой-нибудь бауманки или мехмата будут говорить, что SQL это хуйня, за пару дней учится. И он искренне не будет понимать в чём проблема.
>>1816826 > Джавач, после начала учебного года активность здесь немного упала. Как думаешь, с чем это связано? Все вкатывальщики домашку по матеше делать начали, либо с отпусков на смены на заводе вышли
Курсы по java ee(да и se рассматриваю) кто че скажет? Или это отьем денег? Видел какой-то на 8 месяцев, мне кажется этого более чем достаточно. 100тр потратить за результат готов.
>>1817316 Напрямую использовать Entity кроме как в Репозитории и ДТО - плохая идея. В сервисах и контроллерах лучше использовать свои модели, заточенные под конкретную задачу. А с БД работать через ДТО. :-)
>>1817427 Ну, например, класс достает пользователя и в зависимости от его активности адаптирует содержимое конкретно для него (как рекомендации в ютубе). К какому слою отнести такой класс?
>>1817316 >>1817456 Ты хочешь что-то странное. Думаешь, как назвать класс? Называй как хочешь, хоть MyEntityUtils, хоть MyEntityHelper, хоть MyEntityProcessor. Не бойся, он не перестанет компилироваться, если его название не заканчивается на Service, хоть его и можно классифицировать как таковой.
>>1817427 >Напрямую использовать Entity кроме как в Репозитории и ДТО - плохая идея. В сервисах использовать entity вполне нормально, иначе слишком ного перекладываний их одного POJO в другое. Если у тебя огромный моноли, то там конечно это может быть оправдано, но в микросервисах я бы так не делал.
В контроллерах да, там обязательно надо иметь отдельное DTO.
Подумываю свитчнуться на джаву... Но не охота терять в ЗП. Как вы думаете, если позадротить списки вопросов для интервью, смогу ли я сделать вид, что я сеньер с десятилетним опытом? (Ну параллельно поздротю хибернейт и спринг).
На синьора врятли, а вот на мидла вполне. Резюме только правдоподобное подготовь. Напиши в ключе минимального пиздежа, максимального умолчания и однобокого представления фактов. Пиши что писал бэк и на java и на .net (или с чего ты там перекатываешься), создай впечатление что в основном писал на java, пиши что всегда интересовался другими технологиями и несколько последних проектов писал уже на .net но все же java больше по душе.
>>1817860 > >На синьора врятли, а вот на мидла вполне. Резюме только правдоподобное подготовь. Напиши в ключе минимального пиздежа, максимального умолчания и однобокого представления фактов.
То что хрюша через каналы способна пробить всю защищенную законодательством личную инфу в том числе о предыдущих местах работы и проектах, включая рекомендацию и вредные привычки, конечно же, не смущает?
Пацаны, дело такое. Создал в идее новый проект, открыл в новом окне старый, кое-то покопировать, и в этом окне слетела нахуй кодировка, SDK отсутствует куда-то, все классы переназвались в .java Что за хрень? Идея не может работать в разных окнах одновременно?
Короткие лекции типа сами гуглите доп инфо. Появился "Про" где лекции намного лучше, советую его паралельно читать.
Тупые и бесполезные задачи начинают проскакивать все чаще и чаще
Плюсы хайперскилл: Проектная система - хорошо учит думать как в реале, продумывать программу. Джавараш оч сильно этого не хватает. Их тупые игры не в счёт.
Минусы: Ужасные лекции (очень короткие, непродуманные, и с плохим английским)
Ужасный английский, иногда заметно, что Гугл транслейт пользовались [я заканчивал школу и универ в Британии, английский свободный, мне есть с чем сравнивать]
Слабое комьюнити
Медленный валидатор и медленный сайт
Подавляющее большинство проектов связанны с углубленной математикой! Нафига? Сейчас все больше про вэб.хотите математику идите в плюсы. В общем большинство проектов бесполезны, так как не учат языку особенно, а учат математике.
Очень частно не понятно что от тебя хотят в задании (плохой английский). Сначала тебе кажется, что надо написать что то на джаве, а оказывается, что математику надо знать
Очень мало заданий, материал объективно хуже усваивается чем на Джавараш.
ОЧЕНЬ много опечаток и ошибок в валидаторе, который не принимает правильное решение.
В общем не знаю кому там хайперскилл нравится, он сильно уступает Джавараш. Если только вы не типичный высокомерный математик который считает, что везде она должна быть и ничему больше учиться не надо
>>1818044 >потому что комплаенс Как красиво объясняют собственную лень. Не надо пиздеть - кто чем занимается, не compaince sensitive инфа. Детали - с кем идут перговоры, некий алгоритм - это да, это может быть закрытая инфа. Но то что Вася прогер трейдингового приложения, а Ганс директор, эта инфа не может быть закрытой.
>>1818068 Ну изначально речь шла о пиздеже в резюме и пробивании прошлых проектов. Подходил хр к лиду, и спрашивает, тут Сычев вписал в резюме опыт работы с еба-криптопровайдером и опыт настройки апп сервера, правда что это все в вашем проекте используется? Как-то подозрительно будет, и хр эта информация ни к чему.
Хелп Как run app на микросервисах? Есть 3 сераиса, а и б зависят от в. Также, а и в имеют run класс, в - сборка моделей. Как все это в идее стартануть ? Никак не хочет.
Где прочитать про то как собирать в вашей джаве проект? Сам я плюсовик. Ну так вот, довольно тупо получается, решил поковырять джаву т.к. возникла идея под андроид одно нужное только мне приложение замутить, пишу стандартный хелловорлд чтобы понять особенности построения программ, а в IDEA просто нет кнопки запустить. Buidl есть а Run - нет. Ну, я же не совсем тупой, нажимаю кнопку создать конфигурацию, там какая-то куча темплейтов. Ну я почесал репу, протыкал все, решил что, наверное нужно Application, там просят указать класс Main, я прописал путь к файлику с исходником где у меня метод Main, а Ok не нажимается. Не понимаю короче. Что тыкать чтобы собралось? Объясните? JVM, JDK и прочие J при установке поставились. Наверное следовало из консольки собирать, было бы и привычнее и проще, а то тут какие-то Groovy, Gradle, JarApplication, JavaScratch и прочие непонятные штуки и какие тыкать - тоже непонятно.
>>1818392 В джаве три основных системы сборки. 1. Ant - тот же Make, но в виде xml. Сейчас юзается редко, ибо сам умеет очень мало. 2. Maven - тоже xml, но другой: сборка проекта описывается декларативно. Из коробки сам умеет скачивать и разрешать зависимости. 3. Gradle - на основе Groovy, юзается в основном на твоём андроиде. Представляет собой что-то среднее между первыми двумя, ещё его можно сравнить с CMake + Conan.
По градлу можно найти какие-нибудь статьи, но из того, что я видел, всё пишется для тех, кто уже знает мавен. По мавену есть такая мурзилка: https://proselyte.net/tutorials/maven/ . Но если просто хочешь аппку для андроида, вникать во всё это не особо нужно. Вместо IDEA тебе нужна Android Studio, там уже всё настроено и прописано, можно юзать, даже не разбираясь в Gradle, и конфигурации создавать вручную тоже не нужно.
> из консольки собирать, было бы и привычнее и проще Это только для хеллоуворлдов. В джаве в целом не принято делать руками то, что уже давно сделано и автоматизировано. Поэтому нужно смириться, что в свежесозданном проекте куча непонятных файлов, и непонятно, как всё работает вместе. Просто жмакать на волшебные кнопочки, и всё само.
Лучше начни с самого низа. В java все просто и понятно и понять как всё это бутсрапится займет у тебя несколько часов всего. - Пишешь простенький helloworld.java - Компилируешь его в байткод с помощью javac.exe (файлы с байткодом уже называются .class) - Запускаешь получившийся скомпилированный .class файл с помощью java.exe - ВСЁ. Фундаментально все эти этапы одинаковы для всех систем сборки java - Теперь попробуй написать 2 java файла с разными классами, но чтобы один из них использовал другой. - Так же скомпилируй и запусти - Осознай что виртуальная машина java.exe работает именно с .class файлами и будет их подгружать из того пути который ты указал. - Теперь чтобы не таскать папки с сотнями .class файлами придумали их все паковать в zip архив, который назвали .jar - Чтобы можно было сразу понять с какого файла стартовать приложение придумали это описывать в спец файле MANIFEST в этом .jar архиве. - А чтобы всё это ручками не делать используют Maven и Gradle которые делают то же самое + другие плюшки.
>>1818392 Запускаемый класс должен иметь метод с сигнатурой psvm. Пишешь эти 4 буквы в идее, открывается менюшка автозаполнения, жмакаешь интер и у тебя получился метод, который можно запустить зеленым треугольничком слева на "полях", там где номера строк. Java в этом плане не ушла далеко от сишки с main, winmain, dllmain...
>>1818454 > Запускаемый класс должен иметь метод с сигнатурой psvm. Пишешь эти 4 буквы в идее, открывается менюшка автозаполнения, жмакаешь интер и у тебя получился метод, который можно запустить зеленым треугольничком слева на "полях", там где номера строк. Java в этом плане не ушла далеко от сишки с main, winmain, dllmain... Как будто что-то плохое
>>1818392 >в IDEA просто нет кнопки запустить. Buidl есть а Run - нет Потому что в джаве запускается не приложение, а определённый класс с точкой входа (методом public static void main). Любой класс с таким методом можно запустить. Названия чувствительны к регистру, так что скорее всего у тебя был Main() вместо main()
>>1818004 Идея создает свои файлы для индексирования проекта, скорей всего у тебя почему-то второй проект перетер эти файлы первого. Обычно, когда ты пытаешься создать несколько проектов из одной директории такое.
>>1819362 Ну я вот ни разу туда не заходил. Работаю уже год. Достаточно мочь в самые основы - DDL/DML, нормальные формы, констреинты, джоины. Какой-нибудь ебически сложный SQL как правило только в OLAP увидишь.
Аноны, как я знаю, тесты должны быть независимыми. Но, если я использую аннотации транзакции и коммита, то не могу в одном тесте сохранить данные в бд, считать их и потом удалить. Надо разбивать на разные тесты, которые запускаются в разном порядке. Для того, чтобы они запускались в правильном порядке, я использую сортировку по имени метода теста. Но, допустим, есть 3 теста, которые надо запускать по порядку, а остальные лучше рандомно, как быть в таком случае? Я понимаю, это говнокод получается, но не знаю, как правильно тестировать работу с бд.
>>1819818 У тебя тест должен сетапить все необходимые ему данные - создать пользователя, дать ему права и т.п. Тест не должен использовать данные других тестов, потому что первый тест задисейблили или он стал фейлиться - посыпались все зависимые.
В пределах одной транзакции все твои действия с БД видны для всех последующих запросов в рамках этой транзакции. - ты начал транзакцию - отправил запрос на удаление данных (транзакция еще не завершена) - отправил запрос на поиск только что удаленных данных В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ и тебе вернулось пустое множество, так как ты их уже удалил ранее В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ (транзакция еще не завершена) - добавил новые данные В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ (транзакция еще не завершена) - отправил запрос на поиск только что добавленных данных В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ и тебе вернулись все твои добавленные данные, так как ты их добавил ранее В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ (транзакция еще не завершена) - рубль упал, все изменения напрасны, ты ролбекаешь транзакцию (транзакция завершена) - после ролбека транзакции все изменения сделанные В РАМКАХ ЭТО ТРАНЗАКЦИИ отменяются и их как будте никогда и не было. Другие подключения к БД действующие в рамках своих собственных транзакций никогда о них не знали и не узнают.
>>1820046 Что у тебя все так категорично? Ты сейчас описал самый высокий уровень изоляции, иди ознакомься с другими чтоли, учитывая что Serializable применяется гораздо реже предыдущих.
>>1820046 Да, я перепутал транзакцию с сессией, которую Jpa repository, должно быть, открывает и закрывает при каждом запросе, и идет взаимодействие с БД, а не кэшем. Хороший способ тестить что угодно и роллбекать, не считая тонкостей с уровнями изоляции..
То что я описал характерно для всех уровней (кроме совсем уж мусорного read uncommited). Одна транзакция никогда не увидит незакомиченные изменения из другой транзакции, но всегда видит свои изменения.
Главное пойми что транзакция как таковая есть только на уровне JDBC connection. Именно здесь она открывается и закрывается. EntitytManager (та же Session хибера) это обертка над JDBC connection. Он будет держать транзакцию открытой пока ты ее лично не закомитаешь, ну или в конце своей жизни (а она у него короткая) если не было ролбеков он сам все твои изменения закомитит за тебя. Спринговый тест контекст как раз и эксплуатирует транзакции для того чтобы не вносить изменения в БД, откатывая все транзакции по завершению тестового метода. Можешь почитать про это поподробнее -> https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/testing.html#testing-tx А так как на всех вменяемых уровнях изоляции другие транзакции не могут увидеть незакомиченные результаты из других транзакций то мы получаем систему где для каждого тестового метода БД выглядит одинаково, сколько бы параллельных транзакций не долбилось в пулл.
>>1820114 Получается, кэш сессии и есть кэш самой дб, который она может подтвердить, а может наоборот. Мне казалось, он что-то, не имеющее отношения к бд, вроде оберток на стримы. А транзакции более мелкие промежутки для коммитов, которых может быть несколько в сессии, получается. Спасибо, анон, я наконец-то понял хотя если что поправьте. За магией Спринга не особо понятно, когда именно открывается сессия, а когда транзакции. Вот, например, у меня Jpa репозиторий сам работает без аннотирования транзакцией должен работать, хотя я пока только тесты по нему писал, а в тесте я помещаю его в транзакцию. Получается, он проверяет открыта ли сессия и если да, то присоединяется к транзакции, а если нет, открывает и закрывает после операции? А тесты когда открывают сессию, одну для всех, или для каждого свою. > Можешь почитать про это поподробнее Завтра почитаю, спать хочется.
>>1819362 Я штук 30-40 решил, хоть и мало, но понимаю, что хуй бы сосал сейчас лиду, если б не это. Знал бы - потратил бы времени больше чем на сраные алгоритмы. Но вообще, соглашусь с другим аноном. Может так сложиться, что ты за год ничего сложнее обычных селектов не напишешь. >>1819415 >ебически сложный SQL как правило только в OLAP увидишь Оказывается у этого и название есть.
В целом ты прав. Но я немного не понял что ты имеешь в виду под кэшем бд. Вообще можешь читнуть суперкраткую выжимку про кровь и плоть JPA - кэш -> http://tomee.apache.org/jpa-concepts.html
> Получается, он проверяет открыта ли сессия и если да, то присоединяется к транзакции, а если нет, открывает и закрывает после операции? Да это прям эссенция декларативного подхода к транзакциям в спринге. Текущее подключение к БД ( в виде JDBC Connection или JPA EntityManager (за которым прячется Session хибера)) создается и сохраняется в кармашку текущего треда. Когда по ходу выполнения программы ты пытаешься сделать запрос через JDBCtemplate или же прокированный EntityManager то внутри себя он сначала проверяет есть ли в текущем треде уже созданный Connection или EntityManager и если да то использует его.
> А тесты когда открывают сессию, одну для всех, или для каждого свою. Конечно для каждого свою. Session (тот же EntityManager ) это короткоживущий объект который просто инкапсулирует JDBC connection. Для каждого треда он будет свой.
Ребятки, а есть что-то типа справочника или учебника по ФХМЛ и ЯваФХ? Желательно на кириллическом. Почему-то меня так напрягает смотреть видео на ютубе. Пи кран дом
>>1818975 есть react native но это медленно и на js. И еще есть flutter от гугла, он на дарте вообще и сырой, но следующая ос гугла для мобил будет именно на нем.
>>1820248 >А если я подключу мавеном и А и Б версии 1.0 Если ты имеешь в виду, что будет, если у тебя будет одна и та же зависимость дважды добавлена (один раз напрямую, а другой раз транзитивно) с разными версиями - то на практике, зависит от того, какой класс первым будет загружен класс лоадером, лучше делать exclusion для одной из версий, чтобы не было сюрпризов.
>>1820265 в мавене насколько я знаю будет использована версия, которая ближе всего в дереве зависимостей (т.е. та, которая не транзитивно подключается)
но
в моем случае, насколько я понимаю, gradle implementation scope не создает транзитивную зависимость
поэтому я пытаюсь понять, будет ли все работать в таком случае. т.е. в либе А будет работать либа Б_2.0, а у меня в проекте будет работать либа А и либа Б_1.0 (а под капотом в либе А будет Б_2.0)
>>1820265 >лучше делать exclusion для одной из версий, чтобы не было сюрпризов. Лучше делать <dependencyManagement> секцию в корневом поме, тогда у всех будут гарантированно одинаковые версии, а в своих помах версии вообще можно будет не писать. И чтобы обновить библиотеку достаточно в одном месте поправить.
>>1820396 Но живёт же вроде. Релизы выходят, FireMonkey их рекламируется, по рекламным постам там кросплатформенность ояебу, жаба сосёт с проглотом. В реальности, говорят, всё грустнее. Вот хочется самому пощупать.
Чюваки Вы скорее всего нахуй пошлете, но тем не менее. Куда этот обосранныйлист пихать? В майн, контроллер или сюда на пике? В учебниках примеры с кнопками и лейблами.
Тут нужно сделать поиск с тем чтобы в строке поиска были доступны регулярки или недоступны по выбору. я вот так написал: if (isRegex) { pattern = Pattern.compile(search); } else { pattern = Pattern.compile(search, Pattern.LITERAL); } Matcher matcher = pattern.matcher(text); но что-то оно работает через раз как то непонятно.
>>1820399 Маленькие проекты для себя ещё можно делать, всякие круды десктопные для тёти Сраки, но что-то серьёзное уже через боль и страдания. Нет нормальных либ, нет сообщества, нет управления зависимостями, одна полуживая ORM, один полуживой тест-фреймворк. И куча багов. Эдакий .NET, если бы его поддерживал не майкрософт, а шарага из 10 человек.
>>1820471 Ну есть обсёрваблЛист, он засунут в листвью, он в инициалайз, инициалайз в документе ФХМЛ, он в майн. При запуске окна списка нифига не видно. Куда пихать слушателей для мультиполСелекшонМод, в метод в майне, в класс с контроллером или в этот метод, где он у меня?
>>1820490 Нафига создаешь новый листвью? фхмллодер создает его для тебя и сетает в анотированное @фхмл поле, в initialize просто берешь getItems() и пихаешь туда свои строки. Ну или itemsProperty без задней мысли байндишь на какой-нить ListProperty
>>1820511 На самом деле неплохой способ практиковаться в языковых конструкциях и ООП. События, потоки, обработчики, вот это всё. Так что пусть анон поковыряется.
>>1820545 >Или гугл так стал писать при любом логине без https? Зис. В гугле стоит сниффер, который просто засёк передачу твоего пароля в открытом виде. Лечится запуском хромого с флагом, отключающим такую проверку не помню каким.
>>1802373 (OP) Чуть больше года работаю в ДС в небольшом интеграторе, за это время неплохо поднялся по скилам, но получаю по-прежнему 100к, имея в сумме уже 2.5 лет на джаве. Поднимать собирались но ковид дал повод зажидиться. Немного пощупав рынок понимаю что могу найти за 150к+. Трабл только в том что я уже в последних 5 местах работал где-то по году с чем-то, плюс тут комфортно и есть чему поучиться дальше. Как считаете, стоит ли сейчас менять работу или лучше досидеть до двух лет? Оправдывает ли это разницу с рынком в 50к
>>1820498 Там задачка это свинговское приложение и этот isRegex активирует JCheckBox(галка не стоит - поиск без применения рулярок, стоит - с регулярками). Вот думаю я ошибся в свинге или в логике. В чем ошибки - мне лень объяснять всю эту гуи-шнягу. Вообще подход то правильный? Можно как то по другому?
>>1820738 В целом вроде примерно правильный, но для случая с "без регулярок" я бы лучше String.indexOf(String str, int fromIndex) использовал, в цикле если надо. Но это лишь потому что я никогда не использовал флаг LITERAL. А если он работает именно так как я только что прочитал - просто парсит строку-паттерн как литерал, игнорируя спецсимволы - тогда действительно можно унифицированно на паттерне сделать, если не встретится подводных камней.
Поэтому, в целом подход правильный, но вот тебе два момента для раздумий: 1) Ты можешь легко разделить "свинг и логику", просто как консольное приложение запусти в psvm, где будет только Pattern и Matcher и тестируй чисто логику без гуя. Более продвинутый путь - тестовый фреймворк: JUnit, TestNG. 2) Опасно от юзера принимать и исполнять сырой regexp без валидаций, это подвержено атакам (DoS). Если у тебя не сервер, а просто desktop app, то максимум что юзер сможет это повесить только себя, а не сервер, но все равно обидно будет для тебя как разработчика. Для дальнейшей инфы гугли "regexp attack".
>>1820772 Мне просто еще кнопки-стрелки нужно там замутить по вхождениям в найденное, чтобы курсором на JTextArea ездить туда-сюда. Ну и я складываю в лист все пары начало вхождения/текст вхождения. while (matcher.find()) { isFound = true; founds.add(new Pair(matcher.start(), matcher.group())); } Можно ли это без регулярок провернуть? Хотя можно наверно со счетчиком и циклом, надо попробовать, потому что что не так может быть в свинге я хз, глубоко в нем разбираться лень, да и тут не советуют. Если не поможет, тогда покурю немного свинг побольше. Что с регулярками что-то не так я догадывался, если например ввести []emo, чтобы найти remove - в консольке сразу ошибки вылетают.
>>1820600 это даже в яндексе не спрашивают, чел. Я вот знаю алгоритм, знаю где используется, и даж, наверное напишу, но не за час, а, может, за день. Требовать такого на интервью - бесчинство. мимо 300к/сек
>Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред. а не пойти ли тебе самому нахуй? Дайте по джаве на русском учебник, английский в процессе буду учить. Пожалуйста.
>>1821113 >Дайте по джаве на русском учебник, английский в процессе буду учить Это так не работает. Я читал SiCP и другие мурзилки в оригинале и одновременно учил язык. Тяжело было, но сейчас худо-бедно читаю техническую литературу, so, блоги, даже на слух стал неплохо понимать. Осталось научиться писать и говорить.
Чет погуглил какие вопросы задают мидлам-сениорам по Джаве, ничего не нашел. Может у кого-нибудь есть список вопросов или, что лучше, кто-то даже записывал вопросы с интервью? Поделитесь, хочу обмазаться и снова начать ходить на собеседования
С помощью чего работать с изображениями на веб сервере без облачного хранилища и только с базой данных? На сколько плохо хранить в бд, а не в каталоге файлов?
>>1821185 ну хз, как по мне стоило сначала выучить грамматику и 2-3 тысячи самых распространённых слов, так гораздо легче на самом деле. Учить чтением/сериалом со словарём это не лёгкий способ, как это позиционируют некоторые. я это в книжке прочитал, а как все знают, в умных книжках не врут
Нахуй английский, по кору куча литературы на русском, хоть и не самой свежей, но кого это волнует, когда все на восьмёрке сидят. Дальше почитать пару мурзилок по базам данных и спрингу, опять же на русском, и можно уже работать, попутно гугля вопросы на qaru.site (или что там сейчас вместо него), сообщения коммитов и комменты в коде писать на русском, а методы называть с помощью гугл транслейта.
Впрочем, у меня в должностной инструкции было прописано, что я должен знать инглиш, но с моим B2 проблем не было.
Что-то я не понимаю, если у нас @RequestMapping(value = "/", method = RequestMethod.POST) а в параметрах функции @RequestParam("fname") String fname @RequestParam("lname") String lname То эти данные возьмутся из параметра или тела запроса?
>>1822096 А как тогда сформировать запрос с телом, а не параметром <form method="POST" enctype="multipart/form-data" action="/upload"> File to upload: <input type="file" name="file"><br /> Name: <input type="text" name="name"><br /> <br /> <input type="submit" value="Upload"> Press here to upload the file! </form> если эта форма, получается, отправляет через параметр? В туториале данные принимаются через @RequestParam. https://spring-projects.ru/guides/uploading-files/
Я не хочу, чтобы у меня ограничения на файлы накладывались.
Мб она все таки выдергивает их из тела, если не может найти в запросе?
В бд имеет смысл хранить только если это небольшие изображения плотно завязанные на какой-либо энтити (аватары, превью, фото). Всё что больше лучше всего хранить на диске, лучше всего вообще обернуть в отдельный сервис с собственным api.
Тебе бы почитать про HTTP запросы вообще и какой у них формат. Исторически параметры передавались либо GET запросом, прямо в строке: 2ch.hk/pr?abu=soset&admin=petuh Или в теле POST запроса: abu=soset&admin=petuh Касательно того что POST запрос с типом multipart/form-data проходит автоматический парсинг с мапингом всех параметров это традиции еще времен сервлетов. Можешь почитать про это в документации https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web.html#mvc-ann-requestparam
Зачем нужен депрекейтед в параметре метода? Вот как в примере. Чем это отличается от всего задепрекейтедного метода? public boolean haveSuchAmount(@Deprecated int amount) { return inStock >= amount; }
>>1822687 У тебя задача получить желаемый список (пусть и традиционными циклами) или во что бы то ни стало сделать это стримами, чтобы была нечитаемо, неподдерживаемо и по-борщехлёбски? Если где-то задачки решаешь, шли нахуй такие задачи и пиши цикл.
>>1822687 Не слушай его, корректно нельзя, только с внешними относительно стрима костылями. Чтобы выполнить то что тебе надо необходимо внутри стрима иметь представление об общем состоянии листа - количестве элементов, а этого без костылей не сделаешь. В общем, стримы - они не для этого. Даже самый простой случай "обрезать до 10 если больше" даст тебе новый лист, а не обрежет в текущем (collect(Collectors.toList()))
>>1822821 Стараюсь перейти на стримы, у них читаемость должна повышаться наоборот, так что подумал, может есть какое-то хипстерское решение, которым это в два счета сделать. >>1822822 Спс.
>>1822833 Сам факт использования стримов не повысит читаемость. Их нужно использовать в меру и с умом. Есть много кейсов, когда они что-то улучшают (обычно их предлагает сама idea), но далеко не всегда.
>>1802373 (OP) Всем привет Хочу запилить приложение на мобилку. Простенькое, для личных целей (для целей локального коммьюнити, если точнее). Окончательно разочаровался найти какие-то видеоуроки по приложениям на котлине (изначально хотел делать на нем), потому прошу подсказать аксакалов: есть какие-то годные признанные отцами уроки по созданию android-приложения на java? Мне простенькое запилить, особо в дебри погружаться не хочется, да и я не профессиональный программист.
>>1823055 Могут, но тут как правило больше на дизайн, чем синтаксис. Хотя есть уебаны с вопросами в стиле "что выдаст этот код" и ответами - не скомпилируется - выдаст ошибку - напечатает хуй-пизда-джигурда
>>1822833 >Стараюсь перейти на стримы, у них читаемость должна повышаться наоборот Вкусовщина, же. На работе некоторые олды хуярят свои циклы везде, я норм читаю это. Сам делаю почти всё через стримы. Мутабельность меня больше раздражает. >>1823055 Я больше скажу. Как-то искал ошибки в коде на js, хотя пришёл то я на другой язык устраиваться. "Не ну а чё там синтаксис то схожий, ещё и динамикодрисня, ещё проще!" Сам код был написан ещё в стиле "лаба1", стена текста. Я просто сказал, что вся эта хуйня, сплошная, ошибка и антипаттерн. Теперь понимаю, как же мне повезло, что они не перезвонили.
Хз, как с откликами, мне просто сказали пройти для проекта и вернули деньги за сам экзамен
Вопросы там в принципе очень полезные, однако очень часто завернуты в ебейшие ситуации, поэтому придется шарить
Для OCA достаточно хорошо разобрать книгу для подготовки к этому экзу. У меня на подготовку к тесту ушло 2 дня. Есть еще моки, которые я настоятельно рекомендую купить и пройти, потому что вопросы там очень сильно отличаются от вопросов в книжке, и они более похожи на тестовые. OCP же намного серьезнее и без моков и тщательной подготовки ты не сдашь
>>1823385 Я плохо помню, что там в JavaFX, но я уверен, что там есть список, на элементы которого можно навесить какой-нибудь onClick и там уже открыть окошко редактирования твоего элемента. Поэтому конечно можно
>>1823507 По твоим вопросам складывается ощущение, что ты и на JavaFX нихуя не умеешь. Возьми лучше что-нибудь реально более подходящее для десктопных приложений. C# + WPF или более новый UWP, например. Microsoft пишет хорошие туториалы для начинающих Oracle в этом смысле полное говно. Ну или правда, перетекай на Андроид.
>>1823512 >>1823513 Я и так хочу в андроид вкатиться, пытаюсь дома изучать. У меня рабочий комп андроид студио не тянет, поэтому ЯвуФХ ковыряю пока тут "работаю". Буду благодарен за туториалы по андроид, вдруг у кого есть? И неужели я год яву дрочил чтобы в кресты вкатываться? Сейчас вообще сижу ардуину насилую
Что должен знать джун? Подрочил стандартную библиотеку. Сейчас дрочу Spring Boot. Потом думаю что-то свое без тутора написать на спринг буте. Потом на сервлетах. Потом какое-то REST приложение на спринге. Потом какую-нибудь имиджборду/форум написать и читнуть какую-то умную книженцию по джаве не для начинающих. После всего этого можно будет начинать ходить по собеседованиям?
>>1823640 SQL знаю. Скоро в универе еще с МонгоДБ поработаем. Из алгоритмов что надо знать? Кроме пузырька и квиксорта. Мавен как надо знать? Что там кроме синтаксиса прописывания зависимостей знать еще надо? Гит кроме пуша что еще знать надо?
>>1823645 Из алгоритмов, вообще говоря, почти нечего сложного - уметь пройтись по дереву, например, или бинарный поиск. Руками писать на работе не понадобится, но на собесе могут спросить, типа, как у тебя с алгоритмизацией.
Мавен - модули и профили ещё.
Гит - основные фичи, то есть ветки, мерж, ребейз, черри-пик.пулл, реверт, ресет. Ещё почитать про git flow.
Учишься в вузе на специальности Информационные системы и технологии @ Познания преподов заканчиваются на ООП и vml @ На программировании ставят всем 3 автоматом @ Дают доххулиард ненужных предметов @ По ним задания с профильных факультетов @ Доебываются до каждой мелочи @ ... @ На последнем курсе умеешь с ахуенной математической точностью собирать ПК, считать погрешность своего пердежа до 10^100 точности, знаешь философов 19 века и золотовалютный резерв России 2003 года. Можешь написать змейку, используя только битовые операции.
>>1823607 Мое имхо, но джун должен отлично знать javacore, и хоть немного понимать как происходит сетевой обмен. Потому что знание как spring boot, так и hibernate будет плюсом, но особо роли не сыграет, так как ты еще не знаешь как это используется в коммерческой разработке. А твердое знание кора позволит тебе выбиться на фоне остальных, так как даже не все мидлы знают как банально работает многопоточка под капотом, как функционирует GC и какие виды есть, какой использовать лучше в различных ситуациях, не говоря уже о сокетах и тд.
>>1823855 >как банально работает многопоточка под капотом, как функционирует GC и какие виды есть, какой использовать лучше в различных ситуациях Приведи пример, когда это нужно знать, пожалуйста.
>>1823858 Все зависит от выделенных ресурсов машины, на котором будет запускаться приложение. При скудных характеристиках рекомендуется использовать SerialGC, так как с возрастающим временем STW увеличивается время жизни программы, при возможных утечках. На приложениях, которые чувствительны к скорости отклика, так же необходимо выбирать GC, так как ты никак не предскажешь когда все потоки уйдут в сон, чтобы вычистить память и сколько секунд это займет. Не стоит недооценивать эту тему, особенно когда дело касается энтерпрайза и бабок.
>>1823858 Я не тот анон, но расскажу свой экспириенс. У нас лид ключами ставит приложениям кому G1, кому Parallel. Плюс логгирование GC в файлик (ага, и такое есть, погуглите). И вроде еще какие-то пара GC ключей, не помню. Я так сильно не разбирался, но видимо разбирался он.
>>1823891 Я не осилил, слишком высокий порог вхождения. Структура обычных нативных PE/ELF/COM мне показалась простой и понятной в сравнении с class-файлами.
Что делать, если Спринг не хочет создавать метод List<Role> findByUsername(String username); при @ManyToOne @JoinColumn(name = "username") private User user; ?
>>1823804 Учишься в шараге по специальности погроммист не в Рахе/СНГ @ Тысяча и один курс по всему что можно придумать @ На джавараше/хтмлакадеми/другой цыганщине учат в сто раз глубже @ За то умеешь писать хелловорлды на реакте, андроиде, пхп, джаве, си, питоне, крестах, ассемблере и знаешь что такое архитектура Фон Неймана (и та глубже по википедии была изучена нежели на лекциях) @ И знаешь что такое бит
Это норм вариант(внутри контроллера), если я хочу обновлять по таймеру объекты всех активных сессий в HttpSessionListener? И ещё, где гарантия, что объект сессии не уничтожится в тот момент, когда я буду ее обновлять? Лять, сначала подумал, что ВеснуБезопасность будет сложно подгонять под мой проект.
>>1824134 >Посему не UE - потому что люди у нас долбоёбы, XML туда же. Не у нас, сокращать слова начинающиеся на ex как X это стандартная практика в США. Можно вспомнить BM PC/XT - eXtended Technology который был еще в 83 году выпущен.
>>1823871 >Все зависит от выделенных ресурсов машины, на котором будет запускаться приложение От бюджета скорее зависит. Адекватные люди помнят, что их время стоит больше ещё одной плашки с памятью.
>>1824268 Корочка поможет, но как счастливый билет её расценивать не стоит. Деревья на листочке покрутить придётся, как и 5 крудов в качестве тестовых сделать.
>>1824314 >Адекватные люди помнят, что их время стоит больше ещё одной плашки с памятью. А опытные знают, что "плашка с памятью" в облаке стоит сотни, а то и тысячи баксов в месяц.
>>1824331 Я про это и пишу. Хотя слышал, что в нормальных вузиках можно легко на стажировку устроиться. А помощь при первом трудоустройстве это всегда благо.
Кто-нибудь работал с MySQL на макбуках через терминал? Может подкините какой-то годный гайд? В гугле все что не искал - постоянно в каждой ссылке разные ответы, разные команды на одни и те же вещи, половина не работает, половина с ERROR как результат выполнения и т.д. Какая-то гомоебля. Еще чуть-чуть и как макака через MySQL Workbench создавать таблицы буду
Я надеюсь у вас отработана процедура выбора GC ? Написанны отдельные тесты на пропускную способность и время отклика + сбор реальной статистики с боевых машин?
>>1824350 Проще поставить виртуалку и там все разворачивать, потому что не представляю кейса опытной эксплуатации, где БД сидит на маке. А так накатил на виртуалку любой линукс и из под нее стартанул, я на своем макбуке 19 года так делаю, полет нормальный.
>>1824500 По мере надобности конечно. Для получения нового апи обычно бывают официальные гайды, туториалы, мануалы, квикстарты и т.д, их как раз и читают все. А сухие доки - это просто справочник.
Как чаще всего выглядит конфигурация в производственном проекте? Хмл или джава? Насколько сильно конфигурация расходится с шаблонами из документаций? Часто приходится ее ковырять? Часто приходится конфигурировать кишки спринга (писать самому сервлетные фильтры, например)? Часто приходится связывать бизнес логику со спрингом?
>>1824849 > Как чаще всего выглядит конфигурация в производственном проекте? Хмл или джава? Чем больше код легаси, тем больше в нём хмл. Явных преимуществ у хмл-конфигов перед джавой нет (есть только надуманные), а недостатков предостаточно.
> Насколько сильно конфигурация расходится с шаблонами из документаций? Бывает, что и расходится. В документации обычно описаны самые простые случаи, в реальности всё сложнее.
> Часто приходится ее ковырять? Часто приходится конфигурировать кишки спринга (писать самому сервлетные фильтры, например)? Крайне редко. Это ядро приложения, его настраивают один раз и потом редко туда лезут.
> Часто приходится связывать бизнес логику со спрингом? В бизнес-логике от спринга обычно только @Autowired и @Service.
>>1824215 Лан, запилию одну прохладную хотя и хуй она будет кому интересна.
В общем в генераторе байткода в цепочке if-else-if был пропущен один else и вместо выполнения одного блока выполнилось 2 и был сгенерирован лишний байткод. Дальше при старте код вылетал с лютейшей ошибкой валидатора из которой вообще ничего не было ясно. И сам код генератора не менялся и был сломан с самого начала, просто из-за другого бага он раньше не вызывался. В общем пришлось брать javap и смотреть байткод и пытаться понять, что не так.
>>1825115 Всё равно придётся пересобирать итоговый еар-ник, передеплоивать и перезапускать приложение, и ещё не факт, что запустится, если опечатался в хмл.
Как грамотно учить Спринг? Я студент. Сейчас смотрю туториалы от Гоши Дударя по спринг буту. Но там вся суть заключается в том, чтобы смотреть и повторять. Понимания особого почему, что, куда и как нет. После туториала планирую читать сервлеты, после сервлетов напишу на них что-то и взять почитать книгу по спрингу. А вы как со спрингом начинали работать?
>>1825149 >А вы как со спрингом начинали работать? Прочитал пару мурзилок из блогов. Повторил то, что там было. Сделал пару тестовых. Потом спринг про пробежал по диагонали. Вот уже полгода как работаю, но всё равно нихуя не понимаю. Когда-нибудь хочу всё таки выучить эту ебалу на уровне хотя бы 20% от уровня Борисова, может и пригодится когда-нибудь. Но и гуглить нужное по мере необходимости тоже несложно.
Блять. Есть где нибудь адекватная matrix compatibility между Curator Framework и Zookeeper? раньше же была на оф. сайте, куда дели, почему я не могу нагуглить?
>>1825035 Ну а смысл в целях обучения наворачивать костыли, когда есть простое решение с кучей советов, которые ты можешь найти на просторах интернета, в отличии от накатывания бд на macos. Такой хуйней никто не страдает, потому и разбирающихся людей в этом нет, как и банальной поддержки.
>>1825068 Да, мутили тоже что-то типа пост-процессора для логирования активности методов, помеченных аннотацией. Основная ебля оказалась в банальной разнице объектных типов на уровне языка и на уровне jdk. Для jdk нет никакой разницы напишешь ты long, int, short, byte или boolean, для него это все long и потому производить битовые сдвиги буфера оказалось гемором, так как память он выделяет по другому. Но это еще ничего относительно массивов на уровне байткода.
>>1825149 Может наоборот сначала с сервлетами поработаешь, чтобы понимать что да как, а уже потом к спринту. Потому что учить что-то, но не понимать для чего это и почему так - пустое трата времени, тебе все равно после изучения придется возвращаться к этому, чтобы подробнее разобрать. А пока мог бы на сервлетах накатать вывод простой странички, потом потихоньку прикрутить web-фильтр для авторизации, а вот уже после этого смотреть про спринг - где, как и зачем он тебе в этом упрощает жизнь.
>>1825203 > Может наоборот сначала с сервлетами поработаешь, чтобы понимать что да как, а уже потом к спринту. Стандартный пост про то, что так и до изучения ассемблера можно докатиться.
>>1824849 >>1825036 >>1825115 >>1825124 А как же запуск к разными контекстами без xml? Рассовываем фичи приложения по разным xml-кам, на вход в main передаем нужный список, строим бины только из переданных контекстов. Все контексты при этом лежат в джарнике, ничего пересобирать не надо, а приложение меняет конфигурацию параметрами запуска. Никогда не интересовался как это делать по-другому, и так работает. Иначе нужно в конфиге делать фичам true/false, но бины все равно будут инициализироваться, значит их надо делать максимально ленивыми чтобы ускорить запуск, а это усложнение, синхронизация и тд.
>>1825394 > разными контекстами без xml А, так это ты. Я сразу так и подумал.
Для настолько странной задачи в спринге есть профили. @Configuration @Profile("profile1") public class Feature1 { ... } @Configuration @Profile("profile2") public class Feature2 { ... }
И при запуске указывается ключик с нужными профилями: -Dspring.profiles.active='profile1,profile2'. И бины из неупомянутых профилей инициализироваться не будут.
>>1825419 Спасибо, покажу нашему главному, хотя вряд ли он одобрит рефактор на аннотации, наверное скажет "наглядность потеряется, переезжать на пятерку" и т.д.
Что-то я ничего найти не могу. Как проверить строку на соответствие какого-нибудь из шаблонов? Типа такого boolean cont = string.contains{"par1", "par2"};
>>1825831 .matches("(par1|par2|par3)") Но тут есть подводные, если шаблон будет содержать точки, скобки или еще что такое - то пойдет по бороде. Лучше прогнать несколько раз contains().
Кидаю JSON через Postman: PUT http://localhost:8080/masters/save/{"id":"fd28657d-2c2d-4f6e-adc3-22d1efb21f9f","calendar":{"bookedDates":{}},"fullName":"basil","dailyPayment":20.0,"speciality":"MECHANIC"}
Вылетает ошибка com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 112 path $.dailyPayment - если кавычек вокруг дабла нет, если поставить, то com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 113 path $.dailyPayment Сигнатура метода: @PutMapping("save/{json}") public void saveMaster(@PathVariable String json) ЧЯДНТ?
>>1826377 Через тело запроса, см. @RequestBody. URL в первую очередь для идентификации ресурса, а не передачи данных. К тому же с ростом размера json можно рано или поздно столкнуться с ограничением на длину url (да, оно есть, и не такое уж и недостижимое, всего лишь ~2К символов).
Почему эта тварина создает директорию, но не создает файл? Каталог называл C://files C:\\files C:/files/ Байты не нулевые Название файла правильное Файлов в папке нет Менял путь на документы Эта хуйня еще утром, блять, работала, а теперь я ебусь с ней уже час, не понимаю, почему нихуя не сохраняет
File dir = new File("C:/files"); if (!dir.exists()) dir.mkdir(); File file = new File(dir, imgName); file.createNewFile(); BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(file)); stream.write(bytes); stream.close();
Помогите придумать способ лучшем образом переписать функцию. Дано: public <T> Stream<T> function(int x1, int x2, int y1, int y2) { final ArrayList<T> list = new ArrayList<>(); for (int y = y1; y < y2; y++) { for (int x = x1; x < x2; x++) { list.add(getObject(x, y)); } } return list.stream(); }
То есть нам нужно получить стрим из объектов класса T для диапазона заданного четырьмя параметрами по два на каждую ось. И есть метод который возвращает нужный объект по координатам. В целом всё работает. Однако очень хочется убрать ArrayList так-как метод вызывается в нескольких потоках и очень часто.
>>1826738 Можно в Stream.generate() засунуть свой Supplier, который будет возвращать следующий элемент требованию, что идеально вписывается в идеологию ленивости стримов, а потом накидывать limit и возвращать.
>>1826969 Убил сегодня час времени, пока копался в стектрейсе говнохибернейта и пытался понять, что не так. И хибернейт топчиком не считаю. Даже не хочу вспоминать, как я полгода назад пытался вникнуть в JQL-запрос на 500 строчек, который ещё и не запустить просто так в консольке с ораклом. В общем, все мнения имеют право на жизнь.
>>1826984 Типа такого, но хуй знает. @After("execution(YourType yourpackage.⚹.⚹(..)) && @annotation(yourannotation)")
>>1827432 >Структур данных? Это имеются в виду коллекции и примитивные типы? А алгоритмы это в каком объеме? Весь Кнут? И зачем, ведь все реализовано в библиотеках?
>>1827442 >А алгоритмы это в каком объеме? Весь Кнут? И зачем, ведь все реализовано в библиотеках? Ну все правила дорожного движения тоже написаны в правилах дорожного движения зачем их учить-то?
>>1827498 > Что такое бэльдунг? Вот этот сайт: https://www.baeldung.com/ Я хуй знает, что там на главной, и как на нём что-то искать, обычно гуглишь %фича_нейм% из спринга, и одной из первой ссылок видишь ссылку туда со статьёй-введением. Это как стековерфлоу.
> Что такое мурзилки? Так здесь называют любые неофициальные учебные материалы по технологиям, когда ты вместо того, чтобы открыть документацию, гуглишь статьи разной степени хуёвости, возможно, даже на русском, и читаешь. Все понимают, что это не лучший подход к обучению, но зато можно быстро вникнуть и сразу же начать юзать. Эталонная мурзилка - metanit.com, но по спрингу там ничего нет.
>>1827527 >Слабо - это насколько? Я смотрел ютуб, и повторял за неким специалистом. Он после каждого действия повторяет, вникать не надо, вникать не надо. Вот спринг секьюрети, хуяк, хуяк, все работает, вникать не надо. Но как что-то сделать самому я пока не понимаю.
>>1827555 Он имеет в виду, что вникать не надо прямо сейчас, пока он объясняет пример, потому что если вникать, то там всё очень сложно в сравнении с тем же Spring MVC. И тем более сложно найти такой материал, где объяснялось бы для новичков, но полностью и исчерпывающе. Ну и способы изучения у всех разные, кому-то хватает официальных доков, кто-то читает талмуды pro spring или spring in action , а кто-то - мурзилки. ОБычно, когда мурзилок недостаточно, я изучаю что-то путём взятия минимально работающего примера фичи и последующих экспериментов с не: что будет, если поменять порядок вызовов методов, гугление, почему не работает, зачем нужен этот аргумент, как сделать то-то и т.д.
Механизм действия: По сути в начале пытаемся захватить лочку в non-blocking моде (потому что AtomicBoolean), делая максимум maxSpins попыток и если нам это не удается -- ложимся спать, чтобы не тратить такты процессора.
Где использовать: в критических секциях, которые исполняются редко, а значит первые несколько спинов будут успешными и мы не пользуемся дорогостоящим (вроде как) syncronized.
киньте полезных ссылок с заданиями чтобы набить руку (шутки в сторону, господа) теорию всю понял и шарю, но инога делаю дурацкие ошибки которые уйдут с практикой дайте практики рандомпик
Сука сори, что с ламерским вопросом Но вот кароч у меня есть массив с чарами и мне нужно каждый чар написать н раз и хуйнуть это все в одну переменную Хелпаните, в этом вашем джаве вообще крыша едет
>>1828022 > strToArray[ i ]⚹n Джава - не питон, здесь нет такого синтаксиса. Хуярь StringBuilder и вложенный цикл от 0 до n. Ну или местые streamapi-наркоманы что-нибудь подскажут.
>>1827996 Ты немного путаешь, если у тебя параметризованный класс -- ты не можешь определить какой у него реально тип, если тебе просто дать его класс (то есть скажем List.class). У него действительно все стерто. Но если у тебя есть класс как в примере выше, у которого полем List<String>, то эта инфа есть в классе Test.class. Но опять - таки это относится не к List.class, а именно к Test.class.
>>1802373 (OP) Крч я заебался дайте какой нибудь годный курс/канал, желательно на русском, чтоб можно было фоном ставить, чтоб там пошагово создается спринг приложуха с полным стеком сопутствующих технологий с нуля на практике, чтоб вот прям показывал как оно делается и говорил на что обратить внимание, ибо книги уже доебали их блять читаешь -читаешь и через месяц все, хз шо там вообще было написано, ибо блять пока прочитал книгу/документацию по одной технологии, то за время чтения про другую нахуй забываешь я три месяца назад въебал книжечку про гит и был гуру гита, а ща опять гуглю примитивные команды я вот вообще хз нахуй гит нужен, если в одно рыло делать, а практика методом повторения за кем-то, вроде бы топ
>>1828248 Ну это мне нихуя не помогло, всё ещё хз что делать и куда ставить IDE JCreator кстати, поставил бы с радостью другое, но оно слишком зависает
>>1828475 На c++ проблем не было, просто подскажите что и как делать. Если можно, закиньте на файлообменник содержимое папки lib или самые нужные javaFX файлы
День добрый, аноны. Есть тут люди из Люксофта или собеседовавшиеся туда? Сколько там нахуй кругов ада из интервью надо пройти, чтобы устроиться? Прошёл первый, все ок. Прошёл второй, уже с техлидом проекта, все ок. А щас ещё третий какой-то проходить с ПМом и ещё каким-то директором проекта. Что за нахуй блять. Мне потом со всеми ребятами на проекте собес проходить?! Поясните хоть, что за третье собеседование, оно вводное или опять ебать будут вопросами?
>>1828328 >если у тебя получится сделать cas-операцию, то у тебя никакого действия не последует? Зачем такое нужно? Ну, смотри. 1. У лока есть флаг, если он true, то лок захвачен каким-то потоком. Соответственно, если false, то лок свободен. 2. Если флаг false, CAS-операция ставит его в true. Возвращает при этом true. Это значит, что мы только что захватили лок. 3. Если в флаге true, CAS не выполняется и возвращает false. Это значит, что лок уже захвачен => надо подождать. Для чего и выполняется while: это тупо цикл ожидания освобождения блокировки, ждём и проверяем. Когда лок освободится, CAS в очередной итерации его захватит и вернёт true. 4. Секция syncronized нужна, чтобы не грузить процессор бесконечным циклом. После достижения "таймаута" (максимального количества спинов) блокировка переходит на системный механизм wait/notify.
>>1828352 Анон, а нахуя ты поставил самый последний jdk ? Ты в курсе, что большинство фреймворков еще не перешли на него и соответственно поддержка уровня коленки.
>>1828593 LTS версии, в данный момент это 8 и 11. Можешь со спокойной душой ставить jdk 11 и быть уверенным, что не словишь никаких непредвиденных ошибок и у фреймворков будет фулл-супорт.
>>1828581 ок, понял, зачем там второй while; на практике у mutex-а в линуксе, который вызывается synchronyzed-ом как раз такая логика - он сначала крутит спин чуть чуть, а если не выходит - засыпает.
>>1828634 >на практике у mutex-а в линуксе, который вызывается synchronyzed-ом как раз такая логика Это правильно, чтобы не тратить ресурсы на дорогую остановку и запуск потока. Но все равно есть такой момент, что вызов системных функций дороже чем крутить спиннер внутри приложения
>>1828700 Потому что фронтендеры решили поднять себе зарплаты и стать frontend developer-ами вместо просто верстальщиков, и хуякты с вуями этому больше способствуют, чем жквери.
>>1828715 Очень интересно, конечно. Ну так че мне брать-то? Ангуляр для упрощения разработки на жс, а дальше? Чем мне реально будут полезны эти ваши бутстрапы, реакты, вью и тд?
>>1828723 Ангуляр сложнее, бери реакт. В SPA-фреймворках всякие фичи наподобие виртуального DOM и компонентного подхода. Но это всё для больших приложений, и если у тебя только пара страниц, то толку мало будет. В js-треде больше расскажут.
>>1828728 В жс-треде страшно, лучше здесь поспрашиваю. Хорошо, с ангуляром и реактом понятно. Можешь в двух словах сказать, чем будет полезен бутстрап и жквери, или они так же заменяемы ангуляром?
>>1828738 Да не, там весело. Заходишь и прямо чувствуешь своё интеллектуальное превосходство. Бутстрап - это просто набор готовых стилей и анимаций, чтобы меньше писать css. Бутстрап под капотом местами тоже юзает жквери, и есть версия бутстрапа для реакта. Чистый жквери плох тем, что с ростом проекта код превращается в неподдержиаемую лапшу из коллбеков и прочей хуиты.
>>1828734 Будем обсуждать js. Кто-то же обсуждает javafx, которая тоже в широком смысле фронтенд.
>>1828022 В лоб пробовал решать, разбивать на подзадачи? Результирующий массив будет по длине = текущий n, значит шаг 1: найти длину результирующего массива int len = arr.length n; шаг 2: создать новый массив с этой вычисленной длиной char[] arr2 = new char[len]; шаг 3: заполнить новый массив данными цикл в цикле напишешь сам - внешний по arr, внутренний по n, индекс стандартный: кол-во полных блоков * длина блока + позиция в текущем непоном блоке
>>1828760 }{отя бы для программерской доски выключите разметку по звездочкам, каждый раз, сука, аж трясет.
>>1828022 В лоб пробовал решать, разбивать на подзадачи? Результирующий массив будет по длине = текущий x n, значит шаг 1: найти длину результирующего массива int len = arr.length x n; шаг 2: создать новый массив с этой новой длиной char[] arr2 = new char[len]; шаг 3: заполнить новый массив данными цикл в цикле напишешь сам - внешний по arr, внутренний по n, индекс стандартный: кол-во полных блоков x длина блока + позиция в текущем неполном блоке
>>1828742 >Да не, там весело. Заходишь и прямо чувствуешь своё интеллектуальное превосходство. А я как-то раз зашел к ним и спросил где у ноды такой же менеджер как мавен, чтоб не в каждом проекте полная копия зависимостей, чтоб кешировались локально в папочки по подверсиям... Страшно вспомнинать что там началось, сколько говна выхватил. В итоге сам потом нашел pnpm, максимально похоже хотя все еще не совсем то.
>>1828772 Вроде, и в обычном npm можно установить зависимости "глобально". Но у них так не принято, зато принято засорять каждый проект одним и тем же node_modules на полгигабайта и каждый раз качать всё заново. Ещё и удаляется по 10 минут, ведь аналог жарников они так и не изобрели и хранят свору js-файлов напрямую, а операции с отдельными файлами медленные.
>>1825355 Более-менее похоже. Тоже акцент не на завалить, а на общение. Те же вопросы по основным принципам и кору. Впрочем, везде по-разному, где-то за гит могут спросить, где-то за мавен.
>>1828777 >и в обычном npm можно установить зависимости "глобально" Деталей не вспомню, но с этим вариантом что-то тоже не то. А pnpm максимально похож тем что с одной стороны, имеет единый репо, с другой стороны, делает в их принятом стиле - node_modules с ворохом файлов внутри в каждом проекте, но хак в том что это все легковесные хардлинки (поэтому репо должен быть на каждом винте где есть проект, но обычно это всего один винт).
>>1802373 (OP) Я не совсем понимаю, что от меня хотят. Я должен на Java Spring сделать сервер обработки и лицевое приложение для аутентификации? Или что? Помогите, пожалуйста.
>>1828849 > frame work > on front > need to have > all is Зачем ты к индусам собеседуешься? Но да ладно. Юзер будет вместо браузера запускать гуёвое приложение на электроне, которое будет дёргать спринговую апишку. А RBAC - гугл подсказывает это: https://en.wikipedia.org/wiki/Role-based_access_control - то есть у каждого юзера есть список ролей (обычный юзер, админ, рид-онли юзер и прочее, в ВеснаБезопасность есть, к примеру. аннотация @Secured({список ролей}), которая вешается на контроллеры и не пускает юзеров без нужной роли).
>>1828631 Бротишь, возьми да запусти без второго while-а, у тебя ассерт упадет Попробуй додуматься сам, а я в спойлере поясю почему так произойдет: Второй while нужен, потому что без него может произойти такая ситуация: Скажем поток A покрутился в цикле и не получив лочку пошел спать. Для этого он захватил монитор (this). Теперь представь что другой поток B, который держал лочку вызывает notify. Наш спящий поток A просыпается и тут шедулер ОС переключается на какой - то другой поток C. Теперь он сразу захватывает лок (compareAndSet вернет true сразу, потому что поток B установил его в false) и ОС поток С сразу выгружает. Теперь поток A просыпается и думает раз уж он проснулся -- значит он теперь держит лочку. В то же время поток C как только он проснется -- тоже будет так думать и тут начнутся все странности параллельных программ. Вот как - то так.
Продолжаем изучать concurrency. Сегодня рассмотрим классическую задачу: есть 2 (parent и child) потока, и один должен дождаться, пока другой поток выполнит некоторую работу. Заметьте, дождаться не завершения работы потока (для этого можно просто вызвать join()), а именно некоторого условия, на которое повляет другой поток, который вправе продолжить выполнение после.
Несмотря на простоту, есть несколько моментов, на которые стоит обратить внимание. Первое -- это лочка. Она в данном случае обязательна, так как защищает общую переменную done. Если бы ее не было, то был бы возможен такой баг: 1) parent запускается первым, проверяет флаг done, видит, что он false и прямо перед тем, как лечь спать -- ОС выгружает его и запускает child-а 2) child отрабатывает до самого конца, вызывает notify(), но будить некого, потому что parent был выгружен аккурат перед тем, как лечь спать 3) parent заснул навечно
С лочкой же такая ситуация не произойдет, так как после того, как ОС выгрузит parent-а перед тем, как он ляжет спать, child не сможет войти в критическую секцию и вызвать notify на пустом месте.
Второй момент -- это цикл while. В критических секциях всегда лучше перестраховаться и использовать именно while (это можно сказать идиома). Хотя этом простом примере на самом деле можно использовать if, в шедулерах ОС бывают такие штуки, как spurious wakeups. То есть когда поток ушел спать, его вроде как никто не будил, но ОС решила его разбудить. Хоть я прогнал тест много раз и мне так и не удалось этого наблюдать (возможно в жабе такого не бывает, хз)
>>1828900 Он прав, два вложенных спина сбивают с толку. Проще было сделать 2 последовательных - код читался бы намного легче. Ну и в целом лок сделан некорректно, начиная с того что его может разлочить любой, а не только владелец и разлочить можно даже не залочив предварительно.
>>1829097 Да, это такой дизайн у джавовских мониторов, защищающий от подобного рода багов. Но например в POSIX-овских кондишенах ничто не мешает тебе вызвать на нем signal (notify в терминах джавы), поэтому хотел на этом внимаение акцентировать
>>1829176 >Он прав, два вложенных спина сбивают с толку. Проще было сделать 2 последовательных - код читался бы намного легче. Согласен, да) >Ну и в целом лок сделан некорректно, начиная с того что его может разлочить любой, а не только владелец и разлочить можно даже не залочив предварительно. Да, по-хорошему нужно еще сохранять айдишник треда в лочке и проверять, не подумал чет об этом
>>1828545 Сап. Полуркай общую схему найма на сайте люкса. На деле сначала идёт технический скрининг, потом всё на усмотрение проекта: это может быть как одно "менеджерское" интервью (самый простой случай), так и несколько интервью, сначала со стороны проекта, потом на стороне заказчика. Короче, да, адок при желании могут устроить. >Поясните хоть, что за третье собеседование, оно вводное или опять ебать будут вопросами? Да не должны вроде. В конце концов, время тех. спецов дорогое и дефицитное.
>>1831117 Бин - сущность, которую видит спринг. "Эй весна, я сделал хуйню, смотри как она выглядит. Такие-то поля, такие-то параметры, вот так это надо собирать." Автосвязывание - ты как бы говоришь весне, что где-то в области видимости есть бин, который можно использовать в качестве параметра. "Эй весна, я сделал хуйню, но чтоб она работала, тебе надо подставить куда надо вот такие параметры. Найдёшь их по интерфейсу, названию, ну разберёшься короче." Это делается, чтоб руками не собирать каждый раз объекты.
>>1831117 Всё спринговое приложение представляет собой свалку объектов, которые взаимодействуют друг с другом. Свалка - это так называемые контекст приложения, а бины - объекты, которыми управляет контекст. У каждого бина могут быть зависимости, то есть другие бины, которые нужны этому бину. Ты даёшь спрингу конфигурацию, в которой написано, что кому нужно, а спринг после запуска сам разбирается, в каком порядке создавать бины, совать их в контекст и давать ссылки на бины другим бинам, эта идея называется dependency injection. Ну а через autowired в каком-то бине можно указать зависимость, и спринг сам его найдёт по типу или другим параметрам и проинициализирует ссылку.
>>1831126 >>1831148 Аноны, я так понимаю, что если нужных бинов не хватит, или будет неоднозначность (много классов на один бин), ошибка вылезет только в рантайме при инициализации контекста. Есть какие-то способы это определить заранее, на этапе компиляции, чтобы не соснуть хуйца при запуске?
>>1831227 См. интерфейс BeanPostProcessor. Плохого ничего нет, но нужно пиздец как редко, и если кажется, что возникла необходимость, нужно ещё раз подумать.
Почему вот здесь https://spring.io/guides/gs/accessing-data-mysql/ в пункте Create the Repository я перед public interface не пишу @Component? И потом в самом контроллере тоже не пишу @Component? Ведь и то и то это bean? Ведь если я потом пишу @Autowired я как бы хочу инжектнуть значение бина? Или я не правильоо все понял?
>>1831243 Над контроллером не надо вешать @Component, потому что уже есть @Controller. @Controller, @Service и @Repository ведут себя как @Component. @Component вешается на реализацию интерфейса, а не на сам интерфейс, поэтому перед public interface и нет аннотации. Ну а реализацию репозитория не видно, Spring Data JPA под капотом генерирует её само.
Понимаю что в жабу с такими приколами не лезут, но мне нужно получить объект ПО ССЫЛКЕ (в подчёркнутых местах) уже послали на identityHashCode но так как он не гарантирует уникальность (а объектов Tag ОЧЕНЬ много), то он идёт нахуй. Но проблема таки осталась. Нужно как-то получать ссылку на объект. Как это сделать то блять?
>>1832558 жабаист не может понять концепцию ссылок лол
Мне нужно присваивать переменной не копию объекта а сам объект.
По коду не видно что я пытаюсь добраться "гетами" до чего-то? Получаем путь, разделяем его на кусочки, потом каждым кусочком пытаемся гетнуть другой тэг который лежит внутри начального тэга.
>>1832789 >Сап, поясните за JetBrains Runtime. Он для чего? Желательно ли его ставить с установкой Идеи? Программа для установки и обновления других приложений жидюрейнс.
>>1832872 Стоп, я напиздел, перепутал с Toolbox App.
А JetBrains Runtime это просто сборка OpenJDK от жидбейнс https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime После того как оракл анально огородил свою ЖДК жидбрейнс пилят свою сборку вернее бел лабс им пилит. И предлагают тебе поставить версию этой ждк в качестве системной.
>>1802373 (OP) С геймв дева ~5 лет коммерческого а то тут зп вообще маленькие и скилл не растет почти реально вкатиться в Java EE хотя бы на мидла, там писал на backend Java но без спринга
Че не так с этими компораторами? Нужно отсортировать по вхождениям, затем в лексикографическом порядке и 10 штук распечатать. На сортировке внутри энтрисета я слился.
>>1833545 Кормена купи себе, даун, если уж ты так хочешь потратить деньги. Но вообще, если тебе нужна причина заниматься ("я же деньги потратил") или наставник, который бы тебя подгонял - то лучше даже не пытайся.
>>1833575 Я другой нюфаня, но вот у меня не очень выходит заниматься только по книжкам. Без упражнений и чтобы их кто-то проверял очень многое непонятно. Как это преодолевать?
>>1833595 Найди другое занятие, где не надо будет себя заставлять, чтобы учиться. >Как это преодолевать А дальше ты как это будешь ПРЕОДОЛЕВАТЬ? Превозмогатор, мамкин, силы воли доселе невиданной. Или ты думаешь сидя в офисе писать такие же классы и методы будет дохуя интересней?
>>1833613 Дибил, я не про преодолевание и не про интерес. Я про упражнения, задачи. Без них не ясны многие темы. А они если в учебниках и есть, то никто их не проверит, не написал ли ты говно.
>>1833613 Хуле раскукареклся? Наличие ментора — охуенный бонус к качеству обучения. Круто, когда у тебя друх\родственник шарят и ты можешь спрашивать без лишнего оверхеда. Когда я учил жабу, с радостью бы платил чувачку за возможность показать ему код и пострашивать ответики.
>>1833757 >никто их не проверит, не написал ли ты говно Сам проверь. Особенно круто посмотреть какое говно ты писал спустя время. И попробовать написать нормально. Но только тут снова, тебе самому должно быть это нужно. >>1833768 >с радостью бы платил чувачку за возможность показать ему код и пострашивать ответики Вдумайся в то, что ты написал. Где-то есть чувак, который явно знает больше тебя, притом для нормального результата он должен значительно превосходить твой уровень. И вот этот ментор будет сидеть и за спасибо читать твою хуйню, которую ты высрал без использования паттернов, без всякого кодстайла, просто, блядь, лаба1, стена кода на несколько страниц. Зачем ему это? Это твой тимлид, ему за это платят деньги, код ревью входит в его обязанности. Но тебя то будет учить какая-то рандом-манька, которая сама то и не знает нихуя. Он и пошёл эти курсы для вкатышей вести, потому что в нормальное айти не смог.
>>1833825 >Это твой тимлид Ебобо, штоле? Чел только начинает вкатываться. А учитывая огромный объем жаба домейна, лучше иметь чувачка, который поможет не охуеть от всего этого. Круто, когда тебе легко дается, но многим нужно немного помощи. И круто, если у тебя есть кого доёбывть. Что я хочу сказать: если он хочет потратить деньги, то мать его ёб, пусть тратит.
Здравствуйте. Критически важно обновить либу в проекте, при этом в некоторых либах, откуда она подтягивается транзитивно, нужно держать старую версию (нет обр. совм.) Как это можно сделать? Слышал что-то про шейдинг зависимостей, но не могу что-то толковое нагуглить
>>1833926 В общем: зависимости, шейдинг - это все хуета времени компиляции. В рантайме у тебя один классас где и лежат классы. Можно туда положить несколько разных версий, но загрузится один, если они не совместимы - то будут проблемы. Единственный вариант - это кастомный класслоадер для библиотеки, у которого будут свои версии библиотек. Но это не так просто реализовать. Я бы сильно подумал, надо ли. Ну или все перевести на OSGI - там все автоматом делается, но перевести все на OSGI это прям задача.
>>1833937 как я понял когда шейдишь депенденси у тебя может быть два класса в класспасе - с разными FKN (пакет другой типа будет, как я понял) а может я долбаеб.
>>1834888 Можно глянуть доки по Apache Commons и Guava, вдруг появятся идеи. Но там, наверное, есть вообще всё, что только можно.
> & в генериках Тут вряд ли можно придумать что-то лаконичнее, чем: public interface C extends A, B { } public <C> void myMethod(C c) { ... }
> класс в for при реализации интерфейса Iterable Разве что Class. var items = Arrays.asList(String.class, Integer.class); for (var clazz : items) { ... }
>>1834935 >но когда записываю в файл этот массив, то у меня записывается не содержание массива (как выводится в консоль), а просто две скобки квадратные: [] полный текст своей хуйни скинь, по ошметкам гадать не получается
>>1834940 Очень сильно поменялись подходы, много что перепилено, что-то выпилено, что-то впилено, в общем, даже не открывай. Понятно, что на русском читать приятнее, но ничего не поделать, раз более свежих переводов нету.
>>1834952 а есть че на русском, чтоб быстро по основам пробежаться и начать что то делать? а тонкости и best practice я уже на инглише бы осилил, тупо из документации я просто на инглише ну оч медленно читаю, эффективней будет несколько других на русском прочитать
а если на инглише но очень кратко без даунских примеров про собак, флейтистов и тд, просто грубый перечень того куда смотреть для реализации приложения по шагам и краткого описания взаимосвязей и работы фреймворка
крч чтоб было мол: делаете хуйнянейм- используйте хуйнянейм2, для интеграции с хуйнянейм3 юзайте хуйнянейм4(она реализована на хуйнянейм5) либо технологию хуйнянейм6, но она морально устарела и тд если че, то я ебучие сервлеты знаю и связанную с ними древнюю хуйню- пролетел на курсах епама- ебучая корона
>>1834992 Всё бумажное, что я читал это ацкая хуита. Спринг про 5 это размазывание соплей на 9000 страниц, притом в двух вариантах, конфигом и аннотациями. Погляди пару роликов, есть на английском много, они там час, два бывают. Где делают обычный круд с пояснениями. Потом почитай мурзилок, чтоб разжевали что не понял. И уже потом во время работы будешь гуглить доку и смотреть что тебе надо.
>>1834975 >просто грубый перечень того куда смотреть для реализации приложения по шагам и краткого описания взаимосвязей и работы фреймворка pro spring 5, chapter 16. 80 страниц
>>1835002 >medium.com чтоб найти поиск надо его загуглить, в разделе программирования подразделы гавна и мочи - все остальное в подразделе программирование какие же люди гавноеды >>1835009 >Погляди пару роликов дай самый годный/ые видосы/каналы, ибо я уже хз сколько раз пытался начинать разный бред смотреть- там то прерывается курс, то купите наши курсы, то просто гавнокод >>1835020 >80 страниц гляну джва дня читать буду
>>1835046 > medium.com Там мне в одно время показывалось сообщение, что у меня осталось N бесплатных статей в этом месяце, а дальше регистрация и подписка. Я просто открыл в приватной вкладке, и счётчик сбросился. Очень тупо. Что поделать, раз уж большинство постит контент в первую очередь туда.
>>1835046 >дай самый годный/ые видосы/каналы Мне понравился letscode, я его выше упоминал. На английском почему-то запомнился тот видос, записанный внезапно чернокожим. Там ровно за час он делает на спринге простейший круд, amigos code или как-то так.
Попробуй книгу Professional Java for Web Applications by Nicholas S. Williams. Не смотри на то что книга вышла в 2014 (как раз успели затронуть фичи 8 жавы), содержание там весьма современно и мало чем отличается от современных подходов в спринге. К тому же это чуть ли не единственная более менее современная книга с объяснением и примерами работы именно с обычным Spring (не Boot), ведь 99% современных гайдов что в сети, что в книгах пишутся под Spring Boot only, что весьма печально на самом деле. Параллельно с книгой обязательно читай основную доку -> https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/index.html (Core часть в ней вообще отлично написана) так как в самой книге многие моменты не раскрываются с нужной глубиной. Плюс сверху обязательно навернуть цикл лекций от Евгения Борисова: Spring-построитель: https://www.youtube.com/watch?v=rd6wxPzXQvo Spring-потрошитель: https://www.youtube.com/watch?v=BmBr5diz8WA
У вас есть группа целых чисел. Напишите метод, который находит два числа, складывающихся в заданное значение — и сразу выдайте эти числа. Верните два значения ‘null’, если ничего не найдено. На размышление дается 30 секунд.
>>1835637 Про свой ApplicationContext было интереснее.
Идти внешним и вложенным циклом по массиву (как в пузырьковой сортировке), сравнивать заданное значение с суммой arr[ i ] и arr[ j ], если равно, то сразу возвращать, после цикла, если ничего не нашли, возвращать null.
>>1835816 В какой-нибудь банк, дорабатывать большую банковскую систему вместе с ещё 50 разрабами. Заниматься будешь одним таким проектом годами вместо принятого в пыхоплеяде "сдал проект и забыл".
>>1835819 Большинство кандидатов сразу предполагают, что «группа» чисел находится в массиве. Вы можете успешно решить эту проблему, используя массив для хранения чисел. Скорее всего, это будет алгоритм квадратичной сложности O(n²), потому что для каждого значения вы будете перебирать остальные значения. Но существует более эффективный способ решить эту проблему за линейное время O(n), выбрав другую структуру данных.
>>1820599 а тут вариков не много. Или ты просишь выше рынка с расчетом на то, что не придётся через год смотреть на лево, либо идёшь на зп по рынку для твоего опыта, а через пол года - год меняешь работу. Вообще, до 4 лет опыта я бы пользовался второй схемой. Так ты и прокачаешься лучше и бабла больше сгребёшь, поскольку прибавки нормальные ты не будешь получать, пока на проекте не посидишь пару лет. Вот и получается: уходишь, просишь выше рынка, опыт растёт. Проходит год, ты снова просишь выше рынка, снова уходишь. А вот после 5 лет опыта - садишься на проект(снова за больше рынка) и там уже увеличиваешь зп в рамках одной компании, не меняя мест.
>>1836371 > это нужно уметь? В сервлетах мало интересного, почти те же контроллеры, но кишки сильнее торчат наружу. Достаточно иметь о них общее представление. > И насколько хорошо нужно знать кишки фреймворков джуну? Не особо нужно, пока можешь верить в магию и не особо думать, но лучше разобраться.
>>1836379 Несколько раз уже слышал подобное мнение, не пойму, чем оно подкреплено. По факту от джуна всегда требуют знать минимальный стек со спрингами и хибернейтами.
>>1836395 >не пойму, чем оно подкреплено Зависит от ебанутости тимлида, проводящего собеседования, могут выебать как алгоритмическими задачами, так и тонкостями работы с фреймворками. В глазах собеседующего, нынешний кандидат в джуны это мидл с 5+ годами опыта, задрачивающий литкод в свободное время для удовольствия.
Всем привет. Поясните суть XML в программировании. Например я заметил, что можно парсить XML файлы и с помощью них подключать зависимости в Spring. Но на сколько надо вглубляться в XML для Java?
>>1836476 XML - это просто способ записи любых данных, структура, смысл и применение этих данных ничем не ограничены (как, например, в HTML), можно юзать как угодно. Разные технологии, будь до мавен или xml-конфиг для спринга, не имеют между собой ничего общего кроме того, что у них одинаковый способ записи данных.
>>1836486 я тут нашел просто курс в интернете по использованию XML и XSD для тестировщиков. Там затрагиваются такие темы, как пространства имен, схемы, соответствие схемы, типы данных, элементы sequence, all, choice, enpoint, http и всё-всё-всё, похоже на ещё один язык программирования. Вот я и спрашивают про это углубленное изучение.
>>1836500 Если будешь пилить свой формат на основе XML, то придётся в это углубиться. А до этого от знания XML тебе хватит синтаксиса записи тегов, неймспейсов, ещё, возможно, чтение XSD.
>>1836395 подкреполено мнение опытом. Я сам часто собеседую от джунов до помидоров. Во всяком случае, именно этаких знаний я от джуна и жду. Первое, что надо - это сам язык и стандартная либа, как можно больше. Т.е. собес строится так: сперва спрашиваешь, что кондидат знает, а затем от его ответов копаешь в глубь. Ну и sql тоже обязателен, по крайней мере для нашей конторки. Без этого у нас даже не понятно, что вообще можно делать. Как только закончили с коркой - спрашиваю про фреймворки. И это уже мало важно, скорее даст преимущество перед другими. А об хибер джун себе зубы сломает, если чуть глубже копнуть, чем "а что это вообще такое?" Аспекты и прочее из той же оперы.
>>1835838 Ок - за O(N) - в лоб вот что пришло сразу без подвохов - за один проход все в сет складываем - за второй проход каждый раз ищем есть ли в сете элемент равный SUM - current.
>>1836489 Я другой ньюфаг. Иду сейчас по Хорстманну. Тут 80 страниц по xml. Стоит читать? С моей скоростью это дней 5 просто, а в первом томе я уже по совету анонов полторы главы пропустил(по swing и javafx).
>>1836739 Там в основном про парсинг хмл. Нужно это не всем и не всегда, так что можно просто просмотреть, чтобы понимать, что к чему, и вернуться, когда будет нужна конкретика.
>>1836742 Можно пропустить главы 8-12 и вернуться при необходимости.
как реализовать поиск строки/строк в текстовом файле? я должен сначала прочитать файл и записать его в какой-то массив, например, а потом там уже искать чет? или как?
>>1836783 Наивное решение именно такое: ты читаешь весь файл хоть в строку, а потом ищешь в нем то, что тебе надо, но этот вариант не будет оптимальным - тебе надо будет загружать в память весь файл. А если он 10ГБ? Более правильное решение - читать поток из файла в некий буфер и искать подстроку там.
>>1836797 Если ты уверен, что файл разбит на строки, а не одна гигантская строка, то можно так: https://pastecode.io/s/EZLSCX8nQ8 Если все это может быть одной строкой - то там надо читать по кускую байтов, потом еще склеивать куски на границе, чтобы проверить кейс, что стока поиска между двумя кусками попала, влом сейчас это писать, гуглится легко же.
>>1837332 На этот вопрос тут вряд ли ответят, тут только джуны со спринговыми контроллерами, сеньоры, которые почти ничего не говорят, и немного вкатывальщиков.
Допустим я хочу написать форум на spring boot , или имаджборду, почему так мало таких проектов на спринге? Особенно форумов, все форумы пишут на вордпрессе, либо на php. Почему никто не пишет на спринге? Че вообще бля пишут на спринге, кроме офисной залупы и банковской душнины логриование логирования логов дашборда.
>>1837510 Linux.org.ru Бывает, что и пишут. Я в зелёном банке даже про лендинги-визитки на спринге слышал. Просто спринг, да и джава в целом - это про серьёзные крупные проекты, где пхп не хватает, и важна в первую очередь надёжность, а не скорость клепания фич.
>>1837543 Ну форум - не лендинг. Если имаджборду написать на спринге, то это нихуя не просто будет. Я не понимаю почему нет мейнстримных опенсорсных решений на спринге, типа гуглишь скачиваешь допиливаешь, для пхп и Джанго такого добра навалом, например, а как гуглишь какое нибудь тривиальное решение для спринга- нихуя нет.
>>1837579 Джава, несмотря на открытие исходников, сохранила дух проприетарщины. Сидят в корпорациях тысячи джавистов и спокойно юзают проприетарные либы, сервера приложений и прочий софт, и им вообще без разницы, какая там лицензия. Даже больше - отдаётся предпочтение скорее дорогим проприетарным технологиям с поддержкой, чем бесплатные аналоги от анонимусов, который воспринимается как васянство. Даже если у жабы снова закроют исходники, никто и не заметит. Да и сам факт того, что Java - официальная торговая марка, и чтобы сторонней реализации получить право зваться джавой, надо согласовать это с Ораклом (можно вспомнить драму с oracle vs google). Ну и какое развитие опенсорса может быть в атмосфере копирастии и кровавого энтерпрайза? Технические возможности для развития опенсорса есть (тот же apache commons и всякие жбоссы), но большинство анонов трижды думает перед тем, как начать пилить опенсорсный проект на джаве.
>>1839012 То есть запускается на JDK 8, но не запускается на JRE 8? Где-то слышал, что такое бывает, что жарник не работает на голом jre, и ничего с этим не сделать, ставить jdk. А для более новых версий джавы разве что генерировать дистрибутив jre через jlink и распространять вместе с жарником.
на данный момент я просто его подключил в диррективах plugins и в supprojects/apply задеплоил в локальную репу, подключил в тестовый проект - вижу что зависимости зашейдились как мне нужно. Но! Идея просто не видит их (пикрил2). Что странно, в дирректории для тестов эти же импорты работают (пикрил3)
Может кто нибудь подказать в какую сторону копать? я так понимаю нужно что-то донастроить в publishing, но что именно и как диагностировать проблему - без понятия
Какой петпроджект написать на java/spring, чтобы было не стыдно показать на собеседовании и указать в резюме. На ум приходили разные имиджборды и сайт типа пикабу, только с историями уровня /b про то как кто-то обосрался в универе на лекции. Еще интересна автоматизация osint'а, но тут нужно много времени имхо.
Как думаете такое зайдет или нет? Не посмотрят на меня как на наглухо ебанутого? Или лучше сделать что-то более нормисное, по типу торговой площадки?
>>1839262 Если будешь заполнять контентом что угодно, то посмотрят как на ебанутого. Ты же разрабом идёшь, а не контент-менеджером, лол. Достаточно сделать всё пустым с парой тестовых постов. Да и редко действительно смотрят сайт, обычно достаточно рассказать про него самому. Изредка могут пролистать код.
>>1839260 если бы я пользовался только maven, чтобы ты посоветовал почитать на эту тему? я просто не знаю даже как гуглу нормально сформулировать свою проблему
>>1839257 UDP отбой, я обосрался в тестовом проекте, сам модуль test назвал. Все куда ебанутее: зависимости не резолвятся в kotlin файлах, а в джава файлах резолвятся. ну с такими проблемами мне не сюда, наверное сука
>>1839317 если кому интересно проблема была в каких-то криво смерженных файликах в META-INF папке, решил не шейдить все зависимости, а только пару штук реально нужных - проблема ушла
>>1839262 >Какой петпроджект написать на java/spring, чтобы было не стыдно показать на собеседовании и указать в резюме. Это называется тестовое задание, которое тебе придётся сделать, чтоб пойти на собеседование.
>>1839262 Никакой, учи кор, основные концепции и алгоритмы, spring, rest, sql и ходи по собесам. На мой взгляд пет проект должен быть хороший, либо никакой, хуйню с курсов и копипасту видно сразу, а написать годный код ты скорее всего не сможешь все равно, ввиду отсутствия опыта
>>1839815 С фантазией это к гуманитариям, а программисты в большинстве своём без фантазии. Они пришли не рисовать красивые диаграммки и интерфейсы для заказчиков, а реализовывать. Даже код пишется максимально тупо и однообразно без всяких креативных выебонов, чтобы было легче поддерживать.
>>1839173 А курс от оракла тебе не подойдет? https://docs.oracle.com/javaee/7/index.html Вообще, не знаю, что там учить - DI оно везед одинаковое, пользуюсь только референсом чтобы детали узнать. Spring Boot на мой взгляд куда адекватней сейчас учить, чем Java EE.
Дошел значит на джавараше до 9 лвла, а там StackTrace и я нихуя не понимаю как это работает. Есть где то в сети разжеванное донельзя обьяснение как это все работает?
>>1840406 Ну вот хочу имиджборду с нуля написать на spring, либо торговую площадку, что-то типа клона авито. Правда не уверен, что моих сил во фронтенде хватит на то, чтобы сделать не супер вырвиглазно
>>1840434 Чому скучный? Ну у меня была идея написать приложение для автоматизации osint'а, что-то уровня этого https://v1.postuf.com/projects но не под мобилки, а просто в виде сайта. Правда не уверен, что получится хоть что-то рабочее за разумный промежуток времени.
Аноны, нужна ваша помощь. Требуется срочно сдать простенькую программку. Собственно, её я уже сделал (суть программы не существенна), но возникли проблемы с одним из ебучих условий. Требуется, чтобы прога запускалась в виде оконного приложения.В этой теме я полный 0 (да и в целом в джаве пока мало освоился, только с азами ооп разбираюсь). Но прогу доделать надо. Я что-то глянул на ютубе, сделал по видеоуроку простую форму с 2 кнопками. Теперь надо сделать так, чтобы при нажатии на кнопку (хотя бы на одну из них) поле с текстом "Какой-то скучный текст" менялось на другой текст. Как это сделать? Почти всё, что я нашёл, связано с заменой текста на самих кнопках, либо с изменением фона, либо с выводом ещё одного окна, где написан текст. И да, я понимаю, что сейчас меня погонят читать тонны литературы по курсу GUI, но у меня нет на это времени. Буду благодарен за развёрнутый ответ.
>>1840452 Почитай Java 8 in Action, Spring in Action 5, обдумай примеры, поэкспериментируй, четко знай sql, освой JPQL, Criteria API, Specification, REST API, spring boot web, integration, test, jpa-data, осознай JPA-связи @OneToOne, @ManyToOne и все, что с ними связано, SOLID и ACID принципы, Maven и Gradle (гредл современнее, а мавен - прошлый век).
По закону протекания абстракций, загнанные под капот сложные вещи однажды выстрелят, поэтому разбираться в низкоуровневых вещах необходимо. Абстракции типа Data JPA сокращают время разработки, но удлинняют время обучения, поскольку надо знать все, что они абстрагируют.
>>1840457 Ёпта, что за магия?! Я ввёл именно так (ну, только другой текст в кавычках написал), именно с setText, и среда разработки послала меня нахуй. Подчернкула label красным, типа не знает, что это за хуйня такая. Ввёл сейчас код, написанный тобой, и всё заработало. Спасибо, анон, выручил.
>>1840798 >А как ещё Ну, например, с каким-то пердолингом вокруг отдельного понятия reactor build, который нужно запускать только на уровне родительского проекта, да еще с дополнительными ключами типа --also-make https://maven.apache.org/guides/mini/guide-multiple-modules.html Это уже не актуально все?
>>1840811 Там в самом первом предложении говорится, что это случай, когда у тебя project aggregartion, а не project inheritance. В нормальном мавен-проекте есть корневой помник, и у каждог модуля есть свой помник. Естественно, рекурсивно все работает. Это де-факто стандарт работы с проектами в джава мире, думаешь там нет какой-то базовой вещи?
Дали тестовое на java джуна круд spring boot + spring data + spring web с авторизацией и разграничением ролей spring security + фронтенд на бутстрап + jQuery с динамическими формами. Срок сказали назвать самому. Какой адекватный срок назвать?
>>1841179 Смотря несколько хорошо умеешь делать подобное. Когда я проходил на джуна, наверное, плюс-минус неделю бы возился, сейчас за несколько часов наклепаю.
>>1841289 Т.е. короче > <packaging>pom</packaging> и тег <modules> не нужны, а нужен только >parent и вот тогда-то сборка модулей с зависимостями заработает как надо. Охуительная история.
>>1840822 > В рабочем проекте, где 200+ модулей, не сталкивался с таким. Допустим, среди этих модулей если модуль A и есть модуль B, который зависит A. Ты внес изменения в код обоих A и B и хочешь собрать/запустить B, чтобы посмотреть, что получилось. Что конкретно нужно сделать? Достаточно "как обычно" выполнить package в B?
>>1841309 Нет, надо сначала сделать mvn install в A, иначе подтянет старый артефакт из репозитория. Но я так не делаю и запускаю mvn package из корня с packaging = pom, который сам пересоберёт изменившиеся модули в нужном порядке. Ты это к чему? В градле эта задача удобнее решается?
>>1841336 >mvn package из корня с packaging = pom, который сам пересоберёт изменившиеся модули в нужном порядке А если захочется не все (изменившиеся), а только то что нужно для запуска B, то надо еще их явно указывать, кажется, через -pl. А если хочешь запустить что-то из плагина, который настроен только в B, потом все равно запускать отдельно.
>Ты это к чему? В градле эта задача удобнее решается? Именно к этому. В грейдле оно просто работает, интуитивно, так как ожидаешь. Запускаешь что-то в B, он видит, что есть изменения в A, сначала собирает A. Когда грейдл только набирал популярность, многие на него переходили в основном как раз ради удобных мультимодулей.
>>1841338 Тред живой, его многие мониторят, раз отвечают быстро, просто постов мало в последние несколько дней.
Я хотел услышать краткий список преимуществ градла, чтобы смотивироваться его учить, но вместо этого получился срач про модули в мавене. Это обескураживает. Гуглить я умею, но хотелось услышать конкретику вместо статей на хабрах и медиумах. Ну и хрен тогда с тредом, пусть тонет без дальнейших перекатов.
>>1841416 Для меня не работает. Если я однажды решу уйти на другой проект, а там совсем другой стек, то рискую потратить там слишком много времени на его изучение. Система сборки, конечно, не язык программирования, чтобы её долго учить, а сущая мелочь, но если таких мелочей будет много, времени уйдёт уже немало. Вот и тыкаю иногда альтернативные решения, чтобы однажды не остаться EE-диинозавром.
>>1841521 Есть, но там выкинуты нахуй сервлеты, JSP/JSTA, JAX-WS, что не очень хорошо для вкатывальщика. Поиграться с голыми сервлетами полезно, все надстройки станут гораздо понятнее.
Аноны, помогите. Есть один металлургический завод, пилим для него проект с автоматизацией процессов, отображением информации и прочей хуйней. На дейли сказали учить Камунду, NiFi и ISA-95. С последним как раз и проблемы. Если верить википедии (https://ru.wikipedia.org/wiki/ISA-95) и некоторым внутренним документам, то это просто стандарт, каким хуем он нужен программистам в разработке - я хуй знает. В моем понимании этой хуйней занимаются как раз заказчики. Есть еще какая-то вот такая хуйня – https://github.com/jpdillingham/B2MML4j
Мб кто-то тут сталкивался с этой шнягой? Как ее понимать и для чего она нужна мне, разработчику?
>>1841763 > это просто стандарт, каким хуем он нужен программистам в разработке - я хуй знает. В моем понимании этой хуйней занимаются как раз заказчики. Да.
>>1841763 Короче, вроде как что-то да понял. По сути это просто набор классов, представляющих собой разные структуры данных. Репа как раз содержит все эти структуры в виде Java классов, но в формате B2MML, который реализует этот самый ISA-95. Хз, мб кто-то тоже столкнется с этим, вдруг поможет
Есть класс сущности, тут две проблемы: хибер не игнорирует проверку на null и выбрасывает LazyInitializationException
если использую org.springframework.transaction.annotation.Transactional не убирает LazyInitializationException could not initialize proxy - no Session(хотя то же самое у другой сущности работает), возможно из-за того, что у другую сущность я достаю в одном месте и в том же методе использую get, а эта попадает в другой метод и только потом я хочу получить roles.
Потратил пару месяцев на изучение С++, понял, что это не совсем моё. Подумал вкатиться в джаву, в том числе, для веб разработки. Целесообразно ли это? Слышал, что джава в целом проще и удобнее сишки. И да, я понимаю, что у языков немного разные цели. Учусь кодить для того, чтобы этим зарабатывать на жизнь.
>>1802373 (OP) аноны, дайте годную задачку на выполнение. чтобы было интересно и глаза горели. Вот сейчас я например делаю простую змейку. Чтобы еще такого эдакого интересного сделать?
Сап, джависты. Посмотрел видео туториал по Java + Hybernate + Spring с созданием простого круда.
Блять, какой же джава ебучий пиздец. То что в ruby делается за два тыка в джаве надо описывать через ебучий пиздец. Ещё ко всему геттеры и сеттеры хуярить. Один пиздец. Какая же лажа. Почему вы на этом пишете?
Понимаю почему среди джавистов так популярны IDE типа интеледжа. Тут без IDE придётся так дохуя печатать что можно и ёбнуться.
>>1901934 Попробуй на руби написать высоконагруженное api, с кучей потоков, и чтобы это работало быстро, тогда поймешь. В целом я с тобой полностью согласен то что уже есть языки с большой функциональностью и описать стандартную ситуацию можно в две строчки, но увы приходиться чем то жертвовать. Именно поэтому до сих пор много пишут на С++ и Java.