Прошлый: >>1608778 (OP)Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?А: Нет, не поздно.https://github.com/random76/Java-Thread/wikihttps://github.com/qqqlll/Java-Thread/wiki
>>1620524 →>тот анон который думает укатиться с дотнета в жавамирКстати, у нас на работе есть крутой дотнетчик, который тоже решил перекатиться. Но выбрал он не жабу, а ноду и тайпскрипт. Перекатился, думаю, по тем же причинам, но я его порасспрашиваю.
>>1620982Звучит уже как патология, хотя скорее всего речь про фронтент? Они там уже как взрослые, себе пару ультимативных йоб запилили, это тебе не верстальщик с jquery.
>>1621074Там такое говнястое api на ноде. Вот радость с сбалансированного, продизайненного языка нырнуть в пучину дерьма.
В прошлом треде озадачился вопросом, как с помощью Мавена менеджить зависимости в веб приложении (без Мавена Хибернейт не ставится, да и всё равно понадобится рано или поздно). Анон посоветовал плагин для embedded Tomcat. Собственно вопрос: я нашёл следующее http://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/usage.htmlЭто оно? Если да, то можно ли где-нибудь почитать нормальный гайд по этому плагину? А то информация разбросана вообще непонятно как. Настройки вообще не описаны, только их список нашёл, инструкцию по деплоингу собираю по разным васянским сайтам, куча нюансов, вообще не упомянутых в документации.
Есть Spring Boot webapp, собирается мавеном в war. Внутри war в корне есть META-INF, WEB-INF.Как сделать/что прописать чтобы в корневой META-INF добавлялся файл при сборке?Хочу положить context.xml для томкэта. Пишут что в src/main/resources надо положить META-INF с нужным контентом, но в этом случае пользовательский META-INF появляется тут:/WEB-INF/classes/META-INF/...а надо чтоб в корневой/META-INF/...
>>1621179Научите парня уже собирать толстые джарники и писать на embedded сервере спринг бута. Хера он варниками страдает
>>1621192В микросервисы я уже умею, а тут я хочу наоборот, по-старинке, хостить несколько аппов на одном сервлет контейнере. И для тонкой настройки каждого приложения хотел побаловаться с context.xml.
>>1621223Я только что с JAX-RS/PayaraFish ушел.>>1621217>хостить несколько аппов на одном сервлет контейнереЗачем? У меня есть десяток (and counting) небольших телеграм ботов и других инструментов с рестом, хочу хостить в одном месте всё. Никакого хайлоада, простая эргономика.
>>1621227Хотя бы потому что так порт один юзается, а не у каждого embedded свой. Конечно можно единую точку входа сделать выставив вперед nginx и проксипасить на разные порты, но это же при развернывании нового аппа править конфиг nginx, это лениво, проще вар задеплоить в контейнер.
>I found a few posts that claim that this also works with Tomcat 8, but it's not clear how to configure maven plugin to run Tomcat version 8, instead of version 7.Этот васянский плагин - точно единственный способ использовать Мавен в веб аппе? Как-то это подозрительно выглядит.
>>1621369Я пока пытаюсь просто запустить уже сделанный проект через Мавен. Но tomcat7:run даёт слишком старую версию контейнера, которая не поддерживает какие-то фишки, которые есть в некоторых зависимостях. Поэтому я ищу, как настроить версию запускаемого контейнера.
>>1621375А почему нельзя просто взять томкат, подсунуть ему взорваный варник в шеб-апп и запустить томкат?
>>1620861 (OP)Пиздец, ебал я в рот эту идею. По мере добавления новых мавенвоских модулей в проект она их не подцепляла и максимум подсвечивала синтаксис. Отладка работала только в декомпилированных классах, их исходники игнорились. Куча классов подчёркивалась красным из-за "незарезолвенных" импортов. При этом мавен всё собирал без проблем. Синхронизация не помогала. Реимпорт не помогал. Инвалидация кеша не помогала. Помогло только удаление папки .idea, блеать. Жду, когда в следующий раз придётся это проделать.Но ничего лучше нет.
>>1621383Потому что тогда Мавен не будет за меня ресолвить зависимости, и надо будет их загружать в либ или ещё куда-то.
>>1621392Ты чо, ебобо?1. Собираешь всю хуйню мавеном в экплоуженый варник.2. Натравливаешь на эту папку томкат.3.???4. Профит.Вся жизнь так программировали до спрингбута.
>>1621390А ты не проебал маленькое такое окошечко с предложением на автоимпорт? Без него новые зависимости перечитываются редко никогда.
>>1621396Хорошо хоть, что проблема всего лишь в кешах. Если бы обход по дереву модулей был реализован криво, так бы и пришлось смириться, что не работает.
>>1621400>Собираешь всю хуйню мавеном в экплоуженый варникТак ведь получится то же самое, что если бы я руками всё загрузил в папку либ?
>>1621402Не проебал, всегда жмакал. Даже специально добавлял/удалял пустые строки в помник, чтобы заставить идею повторно его распарсить.
>>1621404>Если бы обход по дереву модулей был реализован криво, так бы и пришлось смириться, что не работает.Либо завести баг на багрекере идеи. Но тебе лень.
>>1621410Это не баг, это хуёво настроенные зависимости в помнике.Я это проходил кучу раз. Как переехали на спрингбут ни разу не случалось.
>>1621410Он заведён до меня, я выяснил, пока гуглил. Проблема ещё и в том, что обновлять софт я сам не могу.
>>1621413>Как переехали на спрингбут ни разу не случалось.В чем проблема сделать у себя так же, как в спринг буте? Там стандартные фичи мавена используются.>>1621416>Проблема ещё и в том, что обновлять софт я сам не могу.Ха-ха, ну ты и лох, а я обновился с 2018 если не более ранней на 2019 идею и у меня хуй встал.
>>1621413Ничего подозрительного в помниках не видел, все теги <module> и <parent> были на месте. Даже навигация церез ctrl по ним работала. Но вот лежит один модуль, и в нём всё норм, а рядом лежит другой похожий модуль с практические таким же помником, но идея его игнорит.
>>1621409Ну, я про конечный результат.Вообще, я за это беспокоюсь в свете того, что я не смог таким же образом установить руками Хибернейт. Все зависимости поставил (одну), код скомпилировался, но не заработал. Устанавливал по инструкции, шаг за шагом. В итоге анон мне посоветовал либо танцевать обскурные танцы с бубном, либо брать Мавен и ставить как все.Вот я и думаю. Сможет ли Мавен всё нормально сделать? Или дело вообще не в этом?
>>1621375Еще раз, ты что пытаешься сделать и чем тебе не подходит вариант с распакованным/запакованным варником? Мавен собирает варник на таргете package и на таргете site (вроде site, если нет то deploy) копирует в tomcat/webapps. Тот следит за изменениями и автодеплоит. Чем эта схема плоха?
>>1621438>Чем эта схема плоха?Тем, что гораздо удобнее все запускать одной кнопкой из проекта, прям как со спрингбутом. Без отдельно стоящих томкатов.
>>1621464Спринг бут запускается либо в докере, либо через Run Configuration, нахера возиться с плагинами?
>>1621466>Спринг бутЕсли есть спрингбут, то незачем, конечно. Но там анон только-только хибернейт с мавеном осваивает, может оно ему не надо пока.
>>1621464Так-то мавен тоже одной кнопкой запускается (пик 1), но я тебя услышал, ты скорее всего имелл ввиду что запаковка это лишний этап для быстрого дебага, и тут я согласен. Хотя это же ты там писал команду tomcat7:run? Мне кажется что это не кнопка, больше похоже на команду в консоли. В общем я не знаю этот плагин. Но я не понимаю всё же зачем нужен лишний плагин когда в идее это нативно делается (пик 2). Да, все еще нужен будет standalone tomcat, но как по мне это даже лучше - условия приближенные к продакшену.А еще могу посоветовать юнит-тесты вместо студенческого воркфлоу "изменил пару строк - перезапустил все приложение".
>>1621493> пик 1К вопросу об уёбищьности против консоли. Если человек юзает консоль ты ему тупо пишешь:mvn packageон тебе если надо копирует выво консоли.UI-банаты же постят картинки со стрелочками и пояснениями куда, в каком порядке жмякать.
>>1621513Да я обожаю консоли, выдохни. Но человек попросил кнопку и я вынужден показать ему кнопку, даже две.
>>1621522Я не консолеёб я мимо котлиноёб, но стоит заметить, если ранее уже была написана команда, то повторное использование - это всего лишь одна стрелочка вверх (ну и enter)
>>1621375>>1621464Ну так и зачем запускать tomcat плагином, но не standalone, если можно в этом случае напрямую запускать спринг бут на деве с embedded tomcat? А на проде уже собираешь раз в день мавеном и грузишь куда надо.
>>1621584>это всего лишь одна стрелочка вверх (ну и enter)Ну то есть столько же, сколько мышкой, но с доп условием.
>>1621584>>1621619Бросишь фразу "одной кнопкой" в значении легко и просто (не надо волочить сбоку томкат) - начинают занудный срач про консоль или гуй, как будто, блять, enter на клавиатуре это не кнопка. Другие в 5й раз спросят "зачем xxx, если есть спрингбут". Я хуею с контингента.
>>1621624На мышку надо рукой отвлечься и еще её покатать.Если считать по количеству прерываний процессора, стрелка "вверх" победила.
>>1621645>хуею с контингентаТак и есть. Вчера спросили как context.xml в топовый META-INF засунуть в спринг буте; в итоге решили что нужно переезжать на vert.x %)Ну так-то чо, здесь не стаковерфлоу, здесь более философские вещи обсуждаются, спроси хоть котлиноёба.
>>1621645Пик 1А зачем каждый раз мавен дергать? IDE предлагает компиляцию и так вроде? Пик 2На крайняк можно выставить таску в меню компиляции и дергать по хоткею (хотя я чаще клацаю по кнопке)
Как найти работу джунскую? Какой проект запилить на се? Или на ее? Или он должен быть обязательно на спринге?
>>1621140Охуительно удобная штука для домашних поделок. Может запускать embedded или подключаться к уже работающему томкэту. А главное — даёт возможность отладки в IDEA Community.В простейшем случае выглядит так. Добавляешь настройку плагина в свой pom.xml, в элемент <build><pluginManagement><plugins> (там, где maven добавляет по умолчанию свои плагины), такую настройку: <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <path>/myapp</path> </configuration> </plugin>где /myapp - адрес, по которому будет работать твоя приложуха.Работает всё это по команде mvn tomcat7:run. Чтобы запустить из Идеи, нужно добавить Run Configuration с этой командой.>>1621375Ппоставь себе девятый томкэт и пропиши его в настройки плагина. Он же умеет не только embedded запускать, но и подключаться к другому контейнеру. Если ещё надо, могу написать, как настроить.
>>1621840Это точно нужная в современных реалиях хуйня? Я что-то сомневаюсь. Выглядит как говно мамонта:- 404 на картинке-логотипе- последняя версия - SNAPSHOT- датируется 2014м- заявлена поддержка Tomcat7, когда позавчера десятка вышлаСайт явно заброшен, как и разработка. Что плагин еще делает помимо деплоя с настраиваемым context-path? Обычным курлом можно того же добиться, не говоря уже что современная идея это поддерживает искаропки.
Таблицу в javaFX вообще можно заполнить БЕЗ ObservableList? Объекты, которые я помещаю в таблицу уже хранятся в массиве, и менять мне этого не надо. А везде гайды с ебаным списком.
>>1621888>современная идея это поддерживает искаропкиКоммьюнити-версия не поддерживаетОн просто работает. Я его использую для учебных целей, меня пока всё устраивает. Приложение деплоится, код отлаживается, профит.
>>1621888>Что плагин еще делает помимо деплоя с настраиваемым context-pathЗапускает встроенный контейнер, что удобно (тут же все любят спрингбут?). Но именно этот плагин, да, стар и заброшен. Для новых томкатов может быть есть какой-то другой, или можно использовать jetty, как я выше советовал.
>>1621919>Запускает встроенный контейнерСам плагин содержит в себе контейнер или он отдельно скачивается или подтягивается из установленного? Иначе от семерки-то наверно мало пользы, сервлеты 3.0, вебсокеты только-только появились. Да и версия семерки получается несвежая и с багами, давно пофикшенными в сегодняшних семерках.
>>1621911>>1621919>>1621934Для обучения он как раз-таки слабо подходит: обущающийся по-определению еще "зеленый" и наверняка столкнется с тем что какая-то фишечка из гайда не будет работать и он не будет понимать что с этим делать, ведь он делает все по гайду.
public String getUnitName() { String db_query = "select unit_name from fm"; try { mySql.dbQuery(db_query, resultSet -> { while (resultSet.next()) { final String unit_name = resultSet.getString("unit_name"); } }); } catch (Exception e) { LOGGER.error("Failed get unit_name from fm.", e); } return unit_name; } Будет работать или почему не работает?В системе разбираться даже Аллах не сможет, единственный костыль не ходит, говноява хуже червя, а у Анона прошу помощи.
>>1621950Синтаксически все верно. Работать будет при условиях:1) mySql проинициализирована и у нее есть коннект к бд2) У mySql есть метод dbQuery, принимающий строку и лямбду, и кладущий в лямбду стандартный резалт сет3) В самой ьазе данных есть таблица fm с полем unit_name(3) не так критично - код работать все равно будет, выкинет эксепшн
>>1621954Ну, всё логично.Таблица есть, метод есть, коннект есть.Ответа от бд нет.Сейчас проверю, связанно с интерфейсами и взаимодействием или бд неопределённо себя ведёт, потому что рядом в коде есть похожие куски, откуда и брался копипаст.
Хм, тестовый ответ возвращается.Наверное, неправильно вопрос поставил.Выше по коду к БД обращаются, но возвращают либо булевое значение, либо ничего. Так что у меня интерес к тому, будет ли возвращаться само значение, потому что на практике этого не вижу.
>>1621954>Синтаксически все верноИзвиняюсь, не верно. Поидее тут ошибка компиляции на 540 строке т.к. unit_name во внутреннем scope объявлен.
>>1621962Синтаксичиски верно, так как именно с объявлением внутри и final компилится, но если обновлять вне - кидает ошибку.
>>1621957Так что с учетом этой правки - >>1621962 - в результате вызова всей функции должно будет возвращаться значение unit_name из последней строки резалт сета.
>>1621968Idk, тут тоже восьмёрка, но gradle не валит ошибками, как если объявлять вне пространства. Судя по SO, ругается на то, что оно в цикле и нужен final, с которым трудности.мимо не явист, поэтому извините за нубство
Какие вообще сферы деятельности у компаний чаще всего в энтерпрайзе? Услуги или производство чего-либо? Торговля?
>>1621969Давай решать проблемы по очереди. Вот так измени чтобы с лямбдой не ебаться. Измененные строки: 544, 548, 555.
Какой ide для java посоветуете? пробовал intellij, но по не понятным мне причинам, он у меня лагает, или придётся смирится с лагами, ибо лучше него нет?
>>1621965Может быть оно и не компилится на самом деле. Легко проверить из консоли:javac /путь/до/класса.java>>1621988Дело в том что лямбды они по идее не должны иметь т.н. side effects (привет forEach). Считается что ты резалт сет должен внутри обработать и забыть про него, не возвращая ничего во внешний мир. Еще для проверки работает ли оно вообще, компилится ли, вызывается ли, можно вывод сделать: LOGGER.info("hello") между 546-547 (1) и между 547-548 (2). Только (2) недостаточно, вдруг там резалт сет пустой по какой-то причине.А если надо все-таки вернуть что-то из лямбды, тогда такие варианты:1) враппер, например, массив на картинке, либо коллекции2) поле класса можно использовать в лябдах
>>1622011Не знаю, скомпилится ли, потому что система.Не знаю, как оно отдельно работать будет. А сборщик и в нормальном состоянии ругается на всё.Да, это имеет смысл, потому что в коде, который упоминал, как раз заполняются поля классов.А про присланный пример с массивом подумал, что это такой-то явовский грязный хак.Вроде собирается пока. И если переменные сами по себе не возвращаются, в отличии от массивов один хер указатели, что этим компайлерам не нравится :c, то проблема почти решена.Осталось всего зайти по голень в ангуляр-парашу и приписать сеты к написанному гету. :3
>>1622002>intellijНу он самый лучший на мой взгляд: красивый, функциональный, много чего умеет, классные хот-кеи, напр. Ctrl+W, теперь жить без него не могу. Лагало как? Пикрил отключать пробовал? Если hdd а не ssd, еще и старенький, то может и лагать.Если не идею то даже не знаю, я только эклипс пробовал, нно это такое. Рабочая штука конечно, но медленная, корявенькая и тд
>>1621934И так, и так. Если не указываешь сервер явно, он запускает свою embedded семёрку. Но можно указать ему свой установленный томкэт, и приложение развернётся на нём.
>>1622021нажимаю ентр, а оно могло на секунду зависнуть.после отлагивает, но фриз в 300/400 мс есть. hdd на 7200, со всем справляется, кроме прог от jetbrains
>>1622011>>1622017Заработало :3Спасибо, Анончик. Не думаю, что додумался бы прочитать про доступ к разным типам данных в разных скопах.
>>1622002Два стула, idea и eclipse выбирать тебеРазумеется есть ребятки которые сидят и на виме с плагинами и на vscode, но в основном два стула
>>1622017>Не знаю, как оно отдельно работать будетКомпиляция? А не надо чтобы оно отдельно работало, надо было просто посмотреть будет ли ошибка компайлера как пикрил или нет. Может там к грейдле еще какие инструменты предварительной обработки участвуют, а javac дал бы чистейший результат.>явовский грязный хакТак оно и есть, это хак, так говнокодить нельзя. Но это быстрый способ получить результат с минимальными изменениями окружающего кода.>>1621988Еще можно изменить while на if в 547 строке. Поидее у тебя там одна строка в таблице всего раз тебе while подошел? Если строк допустим 10 то после while в результат попадет последняя строка, а после if - первая. В общем-то этот код не подходит для обработки нескольких строк в том виде в котором он есть, т.к. из метода возвращается одно значение, а резалт сет может содержать много.
>>1622002У меня на стареньком компе с лялихом дико тормозит, до полной невозможности работы, на относительно новом с виндой ещё ничего, но тоже не ожидаешь такой подставы от "лучшей IDE в мире".
>>1622029Ну, костыль состоит в методе, который возвращает одно значение из таблицы, да. И хоть в таблице строк много, запрос же должен вернуть лишь одну строку?Про while/if да, так написал с самого начала, потому что одно значение, просто от бессилия пробовал по-разному.>>1622029Это хак на хаке, потому что по системе вызываются методы, которые по цепочки приводят к.. Они, блять, просто открывают сокет и пишут в него, например, просто "get". И даже найдя место, где серверный сокет создаётся, не смог найти обработчик. Поэтому пришлось к такому методу "методу" прибегнуть.>javacПросто привык, что при компейляции большого проекта куча зависимостей, о коих компилятор сообщит не дойдя до самого кода.Может в яве по-другому, конечно. Но пока что работает.
>>1622052>запрос же должен вернуть лишь одну строку?>select unit_name from fmНет. Таким запросом возвращается один столбец (unit_name) по всем существующим сотням-миллионам строк таблицы, так что while перебирает их все, постоянно затирая предыдущее значение, и возвращает последнее, а if вернет первую строку и выйдет. Изменения SQL запроса нужны, но я логику вашу не знаю. Можно поставить LIMIT 1; и будет тупо одна строка возвращаться, нельзя гарантировать какая именно, а можно предикат написать типа WHERE id = 1 или WHERE name LIKE '%world%'.
>>1622073Блин, очень знакомое что-то, в 15-16 годах под глассфиш писал.Обновления сервера не было? Ну там типа админы без ведома девелоперов ночью апдейтнули сервер приложений.
>>1622073как вариант, в класспас, пробралась лишняя зависимость, и подгрузилась первой; либо вариант от джентльмена выше
>>1622076>>1622083Я вчера немного игрался с настройками, но, вроде, ничего критичного не делал. Только юзера добавил (уже убрал) и менял пару раз порт.Сейчас убрал jar вообще из всех мест, где она предполагается. Ошибка осталась. То есть, видимо, и правда где-то в класспасе что-то не то. Сейчас собираюсь его проверить. Если наберу в консоли echo %path%, это будет та самая переменная, которую использует класслоадер?
Можно ли на Яве написать покерного бота? Это хороший Пэт проект для работодателя? В голову ничего больше не приходит.
>>1622093>Если наберу в консоли echo %path%, это будет та самая переменная, которую использует класслоадер?Хуйню, похоже, какую-то написал. Но я правда не в курсе, какие пути берутся в класспас, кроме базовых классов и -ср.
>>1622093>echo %path%Детектит в тебе очень начинающего %)Нет, это переменная среды и к джаве относится только тем что оттуда собственно ищется java. А класспас можно посмотреть в команде запуска джавы, например ps -ef | grep java в линуксах
>>1622098>Детектит в тебе очень начинающего %)Да я уже покаялся. Просто не понимаю вообще, откуда может эта библиотека браться, если я её отовсюду удалил. Вот и предполагаю всякие небылицы.
>>1622104Весь класспас обычно в командной строке передается. Для не-винды выше написал, а в винде можно в process explorer посмотреть.
>>1622073Just in case, аппсервер может предоставлять некоторые зависимости (например, Java EE), которые у тебя прописаны в pom.xml. В таком случае нужно им проставить <scope>provided</scope>.
>>1622113>>1622114>>1622122В общем, заработало обратно. Оставил архив только в одной папке из двух. Может быть, он как-то самостоятельно восстанавливался во второй папке, когда я его оттуда удалял.Спасибо анону, сам бы я, наверное, и не подумал на classpath так сразу.
Как же заебало разворачивать приложения. Всю последнюю неделю только и делаю, что деплою что-то куда-то.
>>1622213Все уже автоматизировано до меня. Я просто хочу код писать, а не перебирать параметры деплоя.
Надо ли идти в qa, если не берут в джуны, с целью перекатывания в девелопмент, позже? Или это тупиковая ветвь развития?
>>1622289Чисто qa тупиковая, т.к. почти непересекающийся скиллсет. Можешь в автоматизаторы попробовать, там хотя бы погромировать будешь и фреймворками обмазываться сможешь
>>1622304Вот пишут автоматизированное тестирование по, проект по внедрению oracle siebel crm. Что это все значит? Чё платят автоматизатооам? Надо ли вообще, все это?
>>1622309>Что это все значит?Значение очевидно>Чё платят автоматизатооам?Деньги>Надо ли вообще, все это?Нет
>>1622289Ну смотри, работает это так:ты идёшь куа-джуном, работаешь, пусть даже что-то автоматизируешь на каком-нибудь селениуме или типа того, короче мало мальски программируешь, тебя повышают, до куа-джуна+, ну ты работаешь дальше и работаешь, того и гляди, куа-мидлом поставят, заебись. И тут ты рашаешь, что пора в программирование. Вот только никто тебя мидром не возьмёт. Пойдёшь заново джуном.Проще подрочить какие-нибудь курсы, да пойти на джуна девелопера сразу.Нет, есть конечно мифический сценарий, где ты работаешь пол года куа-джуном, параллельно задрачивая погромирование, а потом свитчишся в девелопера, но это скорее из области фантастики.У нас в конторе были куа, которые не смогли в девелопмент и пошли в куа, но они там в куа и оставались, потому что тупые. А если куа попадается толковый, то ему проще переквалифицировать в автоматизатора, чем начинать всё с начала джуном.
>>1622289Иди в автоматизаторы. Головняков меньше, з\п чуть меньше, есть возможность вката в дев потом.
>>1622379> Требуют выучить аннотацию @Test и класс AssertionsНикогда не понимал таких требований. Как не понимал "Умение пользоваться Jira". Ещё бы стековерфлов в требования написали, блеать.
>>1621520Ну так кто тебе мешает писать консольные команды? А он уже пусть разбирается где в UI эта кнопочка.>>1621522Вот только мышьку надо еще переместить, а еще меню Мавена может быть скрыто и дерево проекта свернуто.
>>1622447Тут везде есть свои затраты, но я в общемто-то и не писал про скорость.Речь шла о том, что использование консоли:1. Требует более глубокого понимания как работает система, будь то git или Maven.2. Консольные команды проще передать кому-то, чем объяснять какую кнопочку жмякать.3. Консольные команды не привязаны к IDE - перешел ты с IDEA на Visual Studio, все твои навыки работы с git остались с тобой.
>>1622377Да, там есть запары, но не уровня "у меня в браузернейм не работает кнопка увеличения хуя", фикс чего занимает пару дней просто потому, что разрабатывали браузер левой пиздой пятки.Передаю привет разработчикам Сафари, btw.
>>1622459Бессмысленный спор. Вообще по настроению выбираю консоль или тыкнуть. Главный минус консоли - помнить команды, даже если ты их давно не юзал.
Что надо выучить чтобы в жаву из .нета успешно перекатиться? Планирую собеседование через неделю, из знаний жавы только то что спринг монструозная хуйня и что сахарный диабет жавистам не грозит.
>>1622486Когда привык коммитить и пушить через иде, запросто забываешь даже то, нужно ли ставить / между origin и master.
>>1622489Собрался за неделю вкатиться в стек джавы, который сам называешь монстроуозным? Ага, щас.Собственно, нужно знать основные вещи спринга (core, data, jdbc, test, boot), разбираться в мавене и, возможно, иметь представление о EE (те же сервлеты). Ещё хибернейт, поиграться с одним из серверов приложений, хотя бы томкатом и, вроде, всё.
>>1622493Да я думаю микропет накатать на спрингбуте а остальное на работе уже догнать если возьмут без снижения зп лолМне интереснее скорее что нужно к собеседованию знать, как в >>1622503 корочехотя наверное эффективнее у Гугла спросить, наверняка списки вопросов с 2000 не менялись
>>1622493>>1622503>>1622505>>1622507>>1622515>>1622520Самое главное-то не упомянули..КЕМ ВЫ ВИДИТЕ СЕБЯ ЧЕРЕЗ 5 ЛЕТЕСЛИ БЫ ВЫ МОГЛИ ПОГОВОРИТЬ С ЛЮБОЙ ИСТОРИЧЕСКОЙ ЛИЧНОСТЬЮ КТО БЫ ЭТО БЫЛ И ПОЧЕМУНАЗОВИТЕ ВАШИ СЛАБЫЕ СТОРОНЫМЫ ВАМ ПЕРЕЗВОНИМ
>>1622527>ЕСЛИ БЫ ВЫ МОГЛИ ПОГОВОРИТЬ С ЛЮБОЙ ИСТОРИЧЕСКОЙ ЛИЧНОСТЬЮ КТО БЫ ЭТО БЫЛ И ПОЧЕМУВерцингеторикс.Потому что он был одним из тех, кто просто любил жизнь!
>>1622527>ЕСЛИ БЫ ВЫ МОГЛИ ПОГОВОРИТЬ С ЛЮБОЙ ИСТОРИЧЕСКОЙ ЛИЧНОСТЬЮ КТО БЫ ЭТО БЫЛ И ПОЧЕМУМартин Лютер!
Господа джависты, есть jar-утилита, ее как бы можно запустить по двойному клику (в винде). Но получается так, что джарник отрабатывает без консоли. Можно конечно через консоль и запускать или батник сделать, но хотелось бы узнать, можно ли как-то вывод перенаправить (или что-то где-то подкрутить), чтобы консоль все-таки сама появлялась и ты был вывод утилиты?Просто так-то она пишет только во время ошибки (записываю в файл), но хотелось чтобы прям консолька появилась и там весь лог посмотреть сразу.
>>1622710Напиши батник-зарускатор. По умолчанию жарники исполняет javaw, который да, скрывает консоль.Либо можно через какой-нибудь swing создать окно с текстовым полем и срать туда.
>>1622683Помимо того, что тебе уже порекомендовали, есть ассерты. Но это не куски кода, это небольшие выражения для логических проверок, и методы там вызывать хоть и можно, но не желательно, потому что side effects. И чисто технически, ассерты все равно "попадают" в релизный код, просто не исполняются.
>>1622710Запускают по двойному клику обычно экзешник-лаунчер, а не jar-ник. Параметры, с которыми лаунчер запускает jar-ник обычно лежат рядом в ini-файле, либо можно на живую посмотреть в process explorer.Я не верю что у тебя прям .jar файл запускают по даблклику, потому что .jar не является исполнимым файлом MS Windows, и для этого нужно в реестре прописывать кто будет такой файл запускать. Если какая-то твоя прога так сделала, то проверь в реестре и узнаешь что является лаунчером.
>>1622792> ЛегчеНу да, и тесты для динамической дрисни, делающие проверки, которые в лигосижабе есть из коробки, пишутся легко и мгновенно.
>>1622807Ты недооцениваешь степень умственной неполноценности некоторых экземпляров. Я например пару дней назад проходил интервью где мне на полном серьёзе затирали что проекту над которым предстоит работать уже 10 лет, но каждые 2 года они переписывают его почти с нуля, релизят, находят новые модные технологии и начинают всё с начала. Чувак к слову именно "модные" и говорил, я даже подумал что он траллирует так.
>>1622807>тесты для динамической дрисниНинужны. Пока ты пишешь тесты, конкурент уже делает питч бизнес-ангелу где-нибудь в LA.
Народ, помогите, пожалуйста.Написал простенькую прогу на java, на компе. Недавно начал изучать язык и слышал, что он кроссплатформенный и что много приложения на андроид написаны на java.Так вот, у меня есть пару классов-файлов .java, как мне их запустить на андроид?Если я правильно понимаю файлы .java уже скомпилированы и мне нужна виртуальная машина для их запуска, и в архитектуре андроида она есть(Dalvik, но сейчас что-то другое). В общем, помогите, кому не сложно, что нужно делать, хотя бы примерно?
>>1622917С андроидом не всё так просто. Там не обычная jvm, а своя, и работает она со своими форматами. Оракл даже судился с гуглом из-за этогоНо ты можешь положить файлы .java в проект на андроиде и собрать там. Возможно, заработает.
>>1622917Я не понимаю, вас гуглить не учили? Первая же ссылка. Как ты дальше будешь программу писать?От себя добавлю что ты неправильной дорогой идешь, сталкер, проще скачать андроид студию и подключать свои классы туда. "Кроссплатформенный" тут всмысле и на windows, и на бубунту, и на кофеварке, но не на андроиде.
>>1622995>в котлине нет точек с запятымиСерьезно? А как тогда no-op стейтменты писать? Без них же код становится совершенно нечитаемым!
сап жабаны, кто может знает какие видео курсы по жаве, начальный уровень хотя бы, что бы обьясняли про жава машину как там память работает и всякие другие интересные штуки. Наподобие видеокурсов хтмлкокодемии. Слышал про ITVDN но хз где найтии слитые курсы. Если у кого есть ссылка на трекер или хотябы где лежит, буду благорадарен
>>1623037>начальный уровень хотя бы, что бы обьясняли про жава машину как там память работает и всякие другие интересные штукивот у этого парня https://shipilev.net/ нормально для новичков. всякие интересные штуки, как ты просил
В россии нет энтерпрайза, у нас гопники и хачики бизнесом мутят и там максимум 1с склад юзают.>>1623062Новичку будет интересно про бенчмарки String'ов? У него еще и сайт на табличной верстке, буэ.
>>1623082Да там тоже не так уж много. Лишь маска цивилизованности у вчерашних дикарей, как общество "Белая перчатка".
>>1623136А sun закрывали глаза на это и не подавали иск. Только при смене руководства на оракл это началось.
>>1622752>Я не верю что у тебя прям .jar файл запускают по даблкликуВсю жизнь так запускал (причем и питоновские файлы тоже. Хз, сам попробуй. В реестре тоже самое что у тебя.
>>1623037>>1623062Не, там интересные штуки уже для олимпиадников, а мне для нюфань. Структуированную и последовательную лучше бы в формате видео. Думал у вас в шапке будет но там ссылок на видео курсы нету. У вас шапка вообще какая то скучная, даже у фронтендеров лучше.
>>1623179Попробуй заменить javaw.exe на java.exe в той строчке. Гугл пишет, что >отличается от java.exe тем, что при его работе не отображается окно команд
>>1622995Какой-то обиженный пук в лужу. Тута я. Еще утром вам покушать приносил>>1622633И мне же еще надо гнездо гофером палкой растормошить.>>1622584 →Нет времени на контент, надо йоба-софт на котлин переписывать. Сам себя не перепишет, а часики то тикают.Дал Бреслав котлин, даст и среду разработки.
>>1623002Да, теперь точка запятой не роскошь, а средство разделения выражений.https://pl.kotl.in/gbS5Y9mpi
>>1623228Код в UTF-8, а в памяти UTF-16, как везде. Дело в том что UTF-8 компактная, но "ебанутая" - в ней символ может занимать 1 байт, 2, 3 или 4 байта. И работа с ней сложнее чем с UTF-16, где возможны случаи только 2 байта или 4 байта для суррогатных пар. Ну тоесть UTF-8 не поддерживает свойство "кратно 2", что при работе с памятью вызывает определенные трудности.
>>1623237>>1623228Например, строка UTF-8:FF FFFF FF FF FFFFFFFF FF FF FF FFFFтогда как строка в UTF-16:FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFFДаже количество символов в UTF-8 не подсчитаешь если не прочтешь всю строку. А в UTF-16 это просто bytes/2. Потом уже ввели работу с суррогатными парами и с тех пор str.length() считает неправильно если в строке есть символы по 4 байта из старших "планов" (Unicode planes)
>>1623141Где-то в нулевых мелкомягкие пытаются увести и сделать свою жабу. Сан судится и наказывает. Мелкие - плохиеДесятые гугл уводит и делает свою vm - оракл судится и наказывает. Но почему-то плохой оракл
>>1623217Нужно больше точек с запятой, так чтоб еще в javascript пересыпалось, а то там через раз пишут.Эх, Семён Семёныч...
>>1623341Мелкие пытались проделать своё EEE с жабой. Дошли уже до второго E, вот сан и понял, что добром это не закончится.Да и так понятно, что они все пидорасы-копирасты
>>1622683Есть способ с константами public static final boolean DEBUG = false;если в коде писать: if(DEBUG) { ... }то компилятор выбросит этот код или наоборот оставит без условия вообще смотра что там true или false.Тут вопрос в том, что значение DEBUG должна быть константа времени компиляции, выкрутасы типа getDebugValue() не пройдут. Так что тут или переключать значение в исходниках или делать предпроцесинг исходников во время билда.Тут вопрос зачем? Если просто перфоманса ради, то JIT эффективно устранит условие if(DEBUG) если DEBUG это static final переменная. Заморачиваться с полным вырезанием имеет смысл если софт публичный, а дебаг логика содержит что-то секретное.
>>1623179>>1623188Консоль java.exe закроется сразу после того как java приложение отработает. Чтобы консоль осталась открытой надо её через cmd /k выполнять.
>>1623380Ну так тут надо модифицировать само приложение, плюс если оно не стартанет из-за ошибки конфин не найден то консоль закроется.
>>1623388Там идея в том, что не нужно железобетонно переходить, скачивай хоть все версии какие хочешь и какую-то из них включай как default. Точнее как current.
>>1623383Я, кстати, видел (или приснилось) как собирали джарники сразу в скрипт прям (сразу по соседству в баш и батник)
>>1623387А javaw на java в реестре менять это кроссплатформенно?Для кроссплатформенности и bat, и sh поставляют вместе.
Господа матерые джависты, если ли в джаве/котлине де-факто стандарт аннотаций, который бы показывал какие классы это публичное API и его нужно юзать и читать, а какие классы, это внутренние кишки и вспомогательное "нутро"?Я просто думал свои аннотации накатить, но потом подумал что по-любому такое уже кто-то делает, че велосипедить.
В джаве неудобно писать. Эти точки с запятой скучные. Их ставишь, ставишь, все одно и то же. И грузится все долго, старт спринга надо секунд 30 ждать, а нода за 8 секунд стартует.
>>1623705Так старт самого спринга это и есть старт хелловорлда. Большие приложения стартуют дольше в основном за счет своих инициализаций, в которых спринг не виноват.
>>1623037спасибо за то что не помогли как обычно, я нашел свои видео, и теперь смотрю изучаю что такое байты и биты, больше в ваш тред не приду так как не помогаете.
>>1624043>а я что потвоему делаю? >больше в ваш тред не приду так как не помогаете. пиздишь как русский
Итак, учу джаву уже с сентября 2019. Ранее опыта в программировании не было вообще. Учился в основном на джавараш, но, будучи на 20-25 уровнях, понял, что прогресс обучения дико торомозится из-за постоянного зависания на какой-нибудь сложной задаче. Стал смотреть видосы Алишева, читать книжки по алгоритмам, повторять вопросы и ответы на собеседованиях - то, что ранее было непонятно, вся эта куча стала более менее раскидываться по полочкам. В итоге, на данный момент более менее разобрался в коре, изучил SQL на уровне базовых запросов и простые команды Git. Продолжаю дрочить джавараш.Планирую повторить многопоточность и приступать к EE-фичам и спрингу. Вот только беспокоит, что к какому-либо самостоятельному проекту я так и не пришёл. По сути, за плечами знание теории и синтаксиса. Реально ли вообще найти работу джуна/стажера без портфолио в СПб?
>>1624051>Реально ли вообще найти работунет (а те собесы куда попадешь завалишь изза того что не знаешь олимпиадные задачи) живи теперь с этим. >портфолио Ты вот наверное был вебмакакой да? Считай это приговором.
>>1624061Под портфолио имел ввиду гитхаб со своими проектами. Друг недавно устроился джуном после джавараш и видосов по Спрингу. Из проектов на гитхабе был только повтор кода по видео. Но он перед тем, как начал серьезно учиться, ушёл с работы и из дома не вылезал, штудирая книги и задачи на джавараш.
>>1624055Чтобы видя только URI без другого контекста, можно было автоматически распознать, что это строчка для JDBC. Очень редко, но всё же иногда это требуется.
>>1624070как там в 2010? сейчас просят инплейс мержсорт минимум не говорю уже про прочие задачки с олимпиад.
>>1624066>>1624073Мне просто интересно, кто именно этим префиксом пользуется. ДрайверМенеджер? Так ему это не надо. Сама база? Но зачем? Это как-то влияет на то, в каком виде возвращаются результаты?
>>1624071>Друг недавно устроился джуном То друг, а не ты>ушёл с работы и из дома не вылезалВангую появилась возможность подвязки в каком нибудь месте, сказали подтяни возьмем. Он и рванул. Адекватные люди не дропают работу ради нихуя.Впрочем ты начнешь оправдываться, что он сам, ведь ты свечку держал когда его брали.
>>1624095Ну вот скажи, например: зачем в адресной строке браузера нужны префиксы http/https? Браузер может и сам разобраться, чо там, а пользователю это не интересно.
>>1624105То есть от наличия/отсутствия этого префикса зависит, в каком виде будут отправлены результаты? Например, если jdbc, то в том виде, в котором они, по каким-то причинам, определены спецификацией?
>>1624095>>1624055Странный вопрос. А зачем нужен префикс http(s) в урлах? Его тоже никто "не использует": в HTTP хедере он передается, только хост и адрес ресурса относительно хоста. "Не использует" в кавычках потому что это все-таки не совсем так - по схеме (эта часть урла называется по-научному "scheme") определяется как именно клиенту общаться с сервером, по какому протоколу. Так же и в jdbc. Подозреваю что ничего другого там поставить сейчас нельзя, еще не придумали, но это же задел на будущее, может потом будет jdbcs. Возможно и с http не подозревали что когда-то другая схема появится для передачи именно HTTP, но люди-архитекторы они такие создания умные - могут думать наперед. Возвращаясь к jdbc - наверняка в клиенте, будь то драйвер менеджер или непосредственно драйвер, стоит проверка if (!scheme.equals(THE_ONE_AND_ONLY_ACCEPTABLE_SCHEME)) throw new Unsupported...
>>1624120Но ведь это же никому не интересно. Как не интересны порт, с которого делается запрос, какие именно там хелеры, сколько IP-пакетов, через какие шлюзы. Так зачем пользователю в принципе давать знать про http, если браузер может выяснить это полным перебором по десяткам протоколов, переходя к следующему в случае ошибки?
>>1624128А меня вот больше раздражает не http, а www. Ебучая приставка из девяностых, никак не сдохнет. Хотя с текущей тенденцией заводить все больше и больше хипстерских доменных зон действительно разпознать интернет-адрес становится всё сложнее. Пишет тебе челик, "подскочи на karasique.meme", и хуй проссышь это его ебучий скайп с такой фамилией, или корпоративный аккаунт почты без домена компании...
>>1624116>в HTTP хедере он передается, только хост и адрес ресурса относительно хостаон не передается, конечно же
>>1624142Это как пример хипстерского домена. Так-то я обожаю виндоус, еще со времен 98.inb4: почему рот в говне?
>>1624097Вангую ты сам вкатыш и специально дизморалишь конкурентов, потому что нихуя не умеешь и ссышь.Или чсв хуесос из мфти или шитмо.
>>1624147Ну типа угадал, я вкатыш, который повидал дохуя шизов и чсв хуесосов из мфти и шитмо, кто дают такие задачки на собесах.Но почему я плохой в твоем воображении?
>>1624151Ну ты как-то агрессивно начал надсмехаться, хоть жавараш и говнище. Я другой анон, если что.
>>1624166Сорян, что что реальная оценка окружающей действительности вам кажется агрессивной. Мыж вроде не в сшп пока еще.
>>1624292Не, нет таких. Либо ты спрингогосподин и против перекатов после 500, либо ты котлинохолоп, послушавший питона-искусителя.
>>1624623Да, всё заебись.Что за дичь? Ещё пару тредов назад шарписты были такие бравые и пророчили смерть джавы, а сейчас аж собираются перекатываться в неё.
>>1623465Публичное API это немного размытое понятие: - есть классы с которых надо начинать - тут обычно в тьюториале пишут- есть классы которые для продвинутого использование - тут обычно документация или JavaDoc- в целом - все что public - то публичное API разной степени продвинутости, все что не public - то или приватное или advanced API
>>1624728Какой же ИТ юмор тупой. Серьезно, когда-нибудь задумайтесь насколько туп этот юмор. Он выглядит как шутки про матан или физику от студентов которые только вкатываются и узнают новые понятия и свойства хахаха биссектриса это взбесившиеся крыса И хватит форсить это динамичное и однопоточное говно - питон. Тем более, когда есть божественный котлин, с вменямым sdk, а не продукт больной фантазии какого мужика вечно, блядь, лезешь в SO чтобы узнать как эта известная херня делается именно на питоне, ебанные "не такие как все" кодеры.
>>1622683В application.properties:logging.level.com.seriouscompany.seriousbusiness.SeriousClass=DEBUGВ SeriousClass:@Component@Slf4jpublic class SeriousClass {public void myAwesomeMethod() {log.debug("My debug message!");} }
>>1624643Самоподдув треда закончился. Раньше это вообще был тред мертвее жабьего, периодически тонувший, потом пришел какой-то анимешник и их шапку сделал про язык багофф!
>>1625027Slf4j - это типа универсальный интерфейс к другим логгерам. Полезно если разрабатываешь библиотеку которая может использоваться в проектах с разными логгерами - просто надо будет подключить соответвующий бекенд, Это была его основная фишка.Но теперь и log4j тоже так устроен - API отдельно, сам логгер - отдельно. И тоже возможны варианты, в том числе и logback.
Прошел короче джавараш и там доп курсы еще с ним шли. Вроде более менее нормально, но вроде и все это же есть и бесплатно. Для шарпа один в один professorweb. Такое. Ну для не самых быстрых и по большой скидке сойдет за год со скрипом.
error: incompatible types: String cannot be converted to boolean if ((unit_name = Utils.readFile(filename))) {Что делать, господа жависты?
Или иначе.Есть машина. rootfs каждую перезагрузку стирается. Сначала брал данные из БД, о чём недавно писал, но, оказывается, бд тоже стирается при перезагрузки. Видимо, хуком каждый раз перезаписывается, ведь вроде бы находится на разделе, который не перезаписывается с перезагрузкой.Сейчас хотел брать/записывать строку в файл. Но может ещё какие-то варианты лучше будут?
>>1625092Нет.>>1625094Не знаю.>>1625130Я бы и эту жабу в руки не взял. Но долг перед Родиной зовёт окунуться мордой в это.>>1625164Так код быстрее работает. Мне так на дваче сказали.>>1625166 Сейчас взял всякие FileUtils из модуля, который уже был подкручен, но пикрил выбесил. Как жависты жрут эти 500 уровней с try-except. Пиздец же.
>>1625192>Так код быстрее работает. Мне так на дваче сказали.А ответил, что не тупой. Приоритет оператора =
>>1625081Привет.>unit_nameЭто с тобой мы во вторник лямбды решали?Операция присвоения (=) имеет меньший (самый наинизший кстати) приоритет чем операция сравнения (!=). Скобочки правильно расставь.Но это не решит всех твоих проблем. Сравнение строки с "-1" тоже невозможно. Зато у строки есть .isEmpty()
Пришёл. Узнал, что то, что должно работать, не работает. Пинаю хуи во время сборки йобы.>>1625204>>1625213Это же было ирония, ну.>>1625213Да, вновь привествуем.Да, проблем не решит. Он сейчас вовсе выдаёт 404 в какой-то момент.А, как писал выше, хоть варинт с бд рабочий, но отчасти, потому что БД с каждой перезагрузкой машины перезаписывается.
>>1625208Пришёл одним из первых, запилил сегодня одну фичу и сейчас пилю вторую. Когда все уходили праздновать, съебался раньше всех, ибо скучно.Выходные долгие, будет очень скучно.
>>1625130Так уныло, серо, пресно..Куда как интереснее писать вот такое живое, яркое, броское:Files.lines(Paths.get(fileName)).forEach(System.out::println);
Когда использовать class.getResource()?, а когда class.getClassLoader().getResource()? До сих пор не понимаю, объясните.
Где можно почитать про то, как и в каком порядке расставлять филды, методы, вложенные классы и тд? Или без разницы?шизоид-перфекционист
>>1625578>>1625583Спасибо.>>1625581Очень хотел бы посмотреть, не составит труда завтра кинуть в тред?
>>1625377Пример на котлине читает построчно. Чтобы все за раз скушать:File(fileName).readLines()File(fileName).readText()
У меня есть ArrayList который содержит в себе <Integer [][]>, то есть двухмерных массив. С помощью massiveName.contain(new Integer {a, b}) я проверяю наличие элемента в массиве, но это почему то не работает. При использовании обычного ArrayList, без массива всё ок. Как быть?
>>1625896>содержит в себе <Integer [][]>, то есть двухмерных массив>list.contain(new Integer[] {a, b})Ты говоришь двумерный массив, но добавляешь одномерный с двумя элементами.Все просто: методы коллекций ArrayList.contains() и другие, напр. Map.putIfAbsent(), используют Object.equals() для определения есть ли элемент в коллекции. Если List<Integer> или List<String>, это работает потому что и у Integer, и у String метод equals переопределен и с помощью него проверяется равенство. Но ни у одного массива этот метод не переопределен и содержит стандартную имплементацию от Object.equals(), которая проверяет лишь равенство ссылок. Тебе нужно делать вместо массива свой собственный тип данных (класс) с переопределенными в нем методами equals() и hashCode(), только в этом случае коллекции будут нормально работать так как ты ожидаешь.
Сап, такой вопрос. Java, как первый язык - это нормально? Или до него лучше выучить Python, или даже паскаль какой-нибудь чтобы легче далось. Или нет разницы с какого начинать и можно начинать с джавы?
>>1625950Полагаю Java вполне подойдет. Это пример "стандартного" языка, в ней есть все фишечки, которые нужно разобрать новичку: статическая типизация, модификаторы доступа, ламбды.
>>1625896>>1625947>System.out.println("Arrays.equals(iArr1, iArr2): " + Arrays.equals(iArr1, iArr2)); // trueЕще добавлю что именно для этого случая - проверки массивов на равенство - был добавлен статический метод Arrays.equals(). Но в твоем случае тебе это не поможет, т.к. в лист не передать компаратор для contains() - только для sort(). Но в своем кастомном классе вполне можно вызывать Arrays.equals() внутри твоего собственного equals(). А вот как ты переопределишь hashCode() тут дело твое: equals() и hashCode() нужно переопределять только вместе.Общий вердикт такой: ты используешь неправильный тип данных для своей задачи. Тебе точно нужны именно массивы? Или у тебя там всегда будет лишь два элемента (насколько я вижу это координаты x, y)? В твоем случае можно и нужно создать собственный тип данных - класс. Это не так сложно как звучит. Читай, делай.
>>1625947>>1625959Кароче я не хочу думать и просто сделал список где каждый нечётный номер - x, а каждый чётный - y
>>1625947Ну вообще я хочу всё таки по-человечески сделать. Значит мне нужен свой тип данных. Это будет класс:public class WorldMesh { public WorldMesh(int x, int y) {// конструктор и две нужные переменные }}Потом создание массива:ArrayList<WorldMesh> world = new ArrayList<WorldMesh>();И добавление туда элементов:WorldMesh.add(new WorldMesh(573, 278));Так же должно быть? А вот про переопределение методов equals() и hashCode(), я вообще не понял. Что такое переопределение хотя бы.
>>1626046> А вот про переопределение методов equals() и hashCode(), я вообще не понял.Тогда тебе срочно нужно читнуть 3 глава, 1 и 2 параграф.
>>1626129>перекрывание вместо overrideПочему хотя бы не переопределение? Тошнит же.И вообще, я в идее alt+enter жмякну и мне все переопределит.
>>1626151Может у тебя проблемы с энергией, повышенная утомляемость? Витамины может нужно, меньше фапать.
>>1626046Совершенно верно, начало положено. Про переопределение тебе лучше конечно читнуть как выше посоветовали. Вкраце это переопределение метода в классе-наследнике. В Java все объекты неявно наследуются от Object, поэтому у каждого объекта есть методы которые есть в классе Object, в частности equals и hashCode. Но они имеют дефолтную не очень полезную реализацию, и поэтому в своем классе мы их переопределяем, добавляя нужный функционал.Методы equals и hashCode тесно связаны: equals проверяет равны ли объекты, а hashCode проверяет, могут ли быть равны объекты теоретически. Если два объекта имеют разный хэшкод, то объекты гарантированно разные, а если хэшкод совпадает, то объекты могут быть как равны, так и не равны. Хэшкод это быстрая предварительная проверка, префильтр, перед тем как вызывать медленный equals. Еще по хэшкодам формируются корзины (buckets) чтобы группировать объекты. И еще хэшкод не должен меняться после добавления объекта в коллекцию, иначе все по пизде пойдет.Вот полная реализация твоего класса, обращайся.
>>1626297Он просто data class WorldMeh(val x : Int, val y : Int) напишет наверное.Как и на джаве, надо только подождать середины марта.
>>1626325>И почему не Objects.hashCode(this)Я не думаю что здесь есть "правильный" вариант. Разработчик сам определяет значения хэшкода для его класса исходя из предположений о количестве объектов этого класса в коллекции, например. Если хочешь положиться на стороннюю реализацию - вперед, никто же не запрещает. Тут же я, во-первых, хотел продемонстрировать как это делать вручную, потому что это учебный пример в первую очередь, и во-вторых, performance-wise лучше написать свою простую формулу чем ощущать всю мощь рефлекшена и цепочки внутренних вызовов. Микрооптимизация, ну. А если серьезно, то я не смотрел реализацию этих методов, но даже и так понятно что общий случай сделать сложно, что все очень субъективно. А %16 это опять же во-первых чтобы показать как легко определять корзины, во-вторых, интуитивно "16 корзин хватит всем" (c).
Можно ли сделать юнит-тесты с помощью рефлексии? Вот у меня с лабы 100500 стратегий сортировки, как мне сделать отдельный тест на каждую из них, просто пройдя по циклу for (var streategy : strategies) ? Потому что сейчас у меня один тест на все стратегии.
>>1626363Лично я не понял что ты хочешь. У тебя же есть и базовый абстрактный класс, и интерфейс. Ну вот первый пикрил с рефлекшеном, но это можно сделать и без, как на втором.
>>1626395ну некрасиво же, не хочу плодить темлейтный код. Хотя, есть ли смысл в отдельном тесте на каждую стратегию? Я ведь и так проверяю каждую из них и если какая-то не сработает, то с логов пойму какая именно>>1626396ubuntu mono
>>1626458>ну некрасиво же, не хочу плодить темлейтный код@Testpublic void test_BubbleStratedy() {doTest(BubbleStrategy.class) или new BubbleStrategy()}Реализацию doTest пишешь одну на всех.
>>1626494Лучше пусть объяснят, как он методы изобретает, которых в сорцах вообще нет. И аннотации тоже мы не ставим.
>>1626494CRUD = Create Read Update DeleteОбычные операции с данными (обычно БД)Repository это паттерн доступа к данным, который рекомендуют на замену DAO, потому что он позволяет абстрагироваться от непосредственно самого доступа. Но внутри репозитори все равно зачастую используют те же DAO. Еще один уровень абстракции.
>>1626494>>1626504Ну а в частном случае это интерфейс спринга, для доступа к данным опять жеhttps://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/CrudRepository.html
Че вы делаете, когда написали какое-то решение, а потом находите уже готовое в какой-то библиотеке? Причем, ваше решение уже работает и поддерживать его не надо.
>>1626633Тогда, просто скинь ей фото хуя, тем самым ты намекнешь на секс, и уже она сама станет более активна.
>>1626648Чел я с людьми в офисе вообще не разговариваю, о чем ты. Да и зачем мне секс, когда я подрочить могу.
>>1626644Безопасность. Во внешнем мире смогут сделатьUnsafeStates.getStates()[0] = 'ОП-Хуй';Если это не твоя оригинальная задумка - возвращать ссылку на изменяемую сущность - то так действительно лучше не делать.
>>1626651И кто из них это написал?В любом случае, иммутабельности на джаве нет.Хотя, ты можешь каждый раз возвращать копию массива. В большинстве случаев нахуй не нужно.
>>1626653>В большинстве случаев нахуй не нужноВ большинстве может и не нужно, но для некоторых случаев парни даже CopyOnWriteArrayList написали.
>>1626656Комментарий "Не делайте так" скорее указывает на общую рекомендацию, а не на такие случаи. Часто ты видишь использование CopyOnWriteArrayList? Я даже Collections.unmodifiableList не вижу.
>>1626644Для сохранения иммутабельности, помимо копирования всего массива каждый раз, можно добавить в апи вот такой метод:getState(int stateId) { / провеки индекса / return states[stateId]; }>>1626659Нет, не часто. Я бы даже сказал что наверное не видел вообще. Но он есть %)
>>1626675А если нужно перебирать, предоставляешь итератор. Или наоборот, процессишь у тебя, попросив консьюмер.
>>1626681Эксельщик, а у тебя есть график ненужных в джаватреде вещей? К аннотациям и лямбдам надо добавить иммутабельные коллекции.
>>1626685Такой график построить намного сложнее, это не просто сводная таблица по датам, тут нужно в каждом сообщении искать "не нужно".
>>1626709javaagent на китайском сайте.Подробности на самых популярных раздачах идеи на рутракере. Сам торрент качать не надо, с офф сайта бери.
>>1626721У меня на линуксе snap пакет сам обновляется вроде. Ничего не слетает. 2019.3.3 сейчас же, да?
>>1626729А ты думал прогресс на месте стоит? Котлин это просто тестинг новых фич для джавы. Пусть они сначала грабли все соберут, а serious business дяди возьмут только то, что взлетит.
>>1626739С офф сайта ультимейт скачать, с китайского сайта javaagent. Китайский сайт в конце комментах к раздаче idea на рутракере. К самой популярной по-моему.
Какая же жава уебищная блядь Пиздец 2020 год все еще нет автосвойств, нужно вручную гетеры-сетеры прописыватьДа даже если генерировать их через IDE, все равно тонны уебищного бойлерплейтаПиздец блядь
>>1626751Жри records или ломбок.Такой язык ему изобрели охуенный, который в 90-ых совершил революцию в айти, а он без чайной ложки сахара ебальник скривил.
>>1626771Нет, там просто файл javaagent.jar перетащить drag n drop'ом в окно "Manage License", насколько я помню. И джарник не удалять!
>>1626751Нахуй вообще нужны свойства и геттеры-сеттеры? Почти во всех случаях в подобных классах нет ничего, кроме данных, и поэтому поля можно тупо сделать публичными.
>>1626771Usage: 0. Download the zip package and get jetbrains-agent.jar first. Download page: https://zhile.io/2018/08/17/jetbrains-license-server-crack.html 1. Run the IDE and evalutate for free. 2. Drag the jetbrains-agent.jar into the IDE window. (Actually you can drag jetbrains-agent-latest.zip too) Click "Restart" button to restart your IDE. 3. You will see the JetbrainsAgent Helper dialog. Select license type, check/uncheck offline option and click button. 4. Restart IDE, and all done. x. Support "License server" and "Activation code": 1). Entry license server address: http://fls.jetbrains-agent.com (If failed see no.2 [below]) 2). Active offline with the activation code file: ACTIVATION_CODE.txt If the activation window always pops up(error 1653219), remove jetbrains' domains from hosts file License key is in legacy format == Key invalid,check your agent's config again If you need a custom license name, visit: https://zhile.io/custom-license.htmlХуй знает, я просто перетащил и заработало.
>>1626740>serious business дядиА это кто, кстати? Если те люди из бизнеса, которые заказывают работу джавистам, то этих дядь обычно как раз совершенно не волнует, из каких исходников ты компилируешь байткод. Не их это уровень. Точно так же, как они не придут проверять, руками ты геттеры рисуешь или ломбоком. А если так, есть ли смысл ждать?
>>1626751Ну канеш, самое главное же, это геттеры-сеттеры. Нахуй жвм, нахуй гарбедж коллектор, нахуй всё, самое главное, чтоб дебилу с двача не надо было геттеры и сеттеры писать.
>>1626799В том, что найти девелоперов на джаве проще, чем на ёбаном котлине. Серьёзным дядям надо не 1.5 студента, а штук по 100 двелоперов на средний проект в ентерпрайзе. Джава получает, только проверенные и нужные фичи. А всякие скалы, котлины и груви - это чисто воды песочница на посмотреть пойдёт или нет.
>>1626825>найти девелоперов на джаве проще, чем на ёбаном котлинеДевелопер на котлине получается из девелопера на джаве буквально за несколько дней листания мануалов. Причем, что видно по той же популярности ломбока, девелопер только спасибо скажет. Потому что котлин это не скала, а именно что скорее "всего лишь" better java. Ну и тот же гугл насчет песочницы уже с тобой не согласился, например.
>>1626834Они мудаки.Ебались тут на работе с кваркусом о фан, на гитбахе что не ишью, то ответ от редхата уровня "съеби, парниша". Нормальные пчелики из того же пивотала себе такого не позволяют, например.>>1626836Всего лишь беттер джава, которую потом заебёшься поддерживать, и придётся обратно переписывать. Проходили уже. Опять же, на работе черпи пытались писать на котлине, проблема в том, что он хуёво поддерживается примерно всем, включая грейдл, мавен и вообще без пердолинга нихуя нормально не работает.
>>1626848>хуёво поддерживается примерно всем>без пердолинга нихуя нормально не работаетИнтересно. Есть конкретные примеры? Может речь о болячках первых месяцев, которые уже решены?
>>1626854Недавно было, пол года назад может. Специфические вещи, плагины, код анализаторы и т.п. - всё это работает дико хуёво. Грайдл заебали настраивать, чтоб он в джарник всё собрал. Чтоб тесты запустить тоже ебля. Короче, первое впечатление обосрано. Захочу подобного - пойду во фронтенд.
>>1626862Спрингуха заебись, ещё бы научилась нормально в нативный имедж собираться граалом, цены бы не было.
>>1626861>Грайдл заебали настраивать, чтоб он в джарник всё собрал. Чтоб тесты запустить тоже ебляЗвучит очень странно, потому что у нас все нормально. Такие-то уж базовые вещи еще бы не работали. Что-то ваше особо специфическое могло и не заработать, понятно. Но, кстати, если на джаву завязаны какие-то локальные штуки типа кодогенераторов, можно прекрасно джаву сочетать с котлином даже в рамках одного проекта.
>>1626875Перманентно заменили на всех проектах шеб на шебФлакс. Где нужно реактивщина - используем, где не нужна - не используем, и шебФлакс работает, как обычный шеб.>>1626886Это уже пердолинг начинается. Ну и да, тот же ломбок мы используем не для геттеров и сеттеров, а для геттеров, билдеров и реквайрд аргс конструкторов. Ни рекорд, ни котлин такое не решает.
>>1626895>Это уже пердолинг начинаетсяДвуязычный проект пердолинг? Спорно, но дело вкуса скорее.>геттеров, билдеров и реквайрд аргс конструкторов>котлин такое не решаетВ смысле? Что именно из этого не решает котлин?
>>1626685Разбираться, что именно там было не нужно, мне лень, поэтому я просто построил частоту употребления этой фразы. Простыню с постами выложил сюда: https://pastebin.com/YnvZEFqbИскал по шаблону /[^а-я]н[еи] ?нуж[еи]?н/
>>1626910Такие билдеры в котлине не нужны, потому что заменяются конструкторами с именованными аргументами.
>>1626819И как всё перечисленное не даёт сделать автогеттеры? При чем тут оно?А гк вообще в большинстве языков, охуеть аргумент конечно
>>1626729Жук есть и на котлине (да много чего под синтаксис котлина портируют)https://www.jooq.org/doc/3.13/manual/getting-started/jooq-and-kotlin/Но я реально не понимаю зачем заворачивать нормальный SQL-синтаксис в псевдо-языковой синтаксис.Чтобы потом в очередной сложной ситуации сидеть и дрочить документацию, чтобы узнать как написать эту йобу, которую на чистом SQL уже бы написал и забыл.
>>1627168И что? Кто этот код проверял?Ладно там какие-то организации иногда софт открытый исследуют на наличие бэкдора или подобного, а тут кто будет это тестить?Чаще распространителю кряка нужен ботнет, а не народная любовь.
Поясните мне, делаю первые шаги со спринг. Есть такой код, это пишет некий специалист, не я. Есть шабллонизатор еще, есть крудРепозитори, есть энтити. НИГДЕ не создается Map<String, Object> model, почему проходит вот эта строка model.put("name", name); ???? @GetMapping("/greeting") public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Map<String, Object> model) { model.put("name", name); return "greeting"; }
>>1627535Его создаёт сам спринг под капотом и передаёт его в твой контроллер. В контроллере ты его заполняешь, а дальше спринг сам его передаёт в шаблонизатор.
>>1627548Пока что иди дальше. Многим магия не нравится, но вначале можно просто верить в неё и продолжать изучать.
>>1627566Сервлеты помогут понять, как работает спринговый DispatcherServlet, но в спринге неявно ещё много чего делается - всевозможные автоконфигурации, автосканы и интерсепторы, и в этом сервлеты не сильно помогут. Поэтому в начале в любом случае придётся смириться с множеством странных и неочевидных вещей.Магии будет меньше, если забыть об аннотациях и делать всё через десятки старых xml-конфигов. Но она всё равно будет.
>>1627535Методы Контроллера (@RequestMapping/@GetMapping/...) вообще достаточно волшебные: что в них ни попроси - всё доставляется. И в каком угодно порядке, неважно вообще. Может можно даже tyanochku попросить и спринг доставит, я не пробовал.
>>1627640Сахар. А в 15 версии впервые фундаментальная фича со времен 8 джавы. А именно превью project Loom.
>>1627651>15Ну что же, внучек попишет на асинхронной джаве. Проигрываю как костыли прибивают в жабу, а оно то никому не нужно, все повисли на восьмерке
>>1627809Официальное обращение от Oracle, что они отдают jvm, команду по разработке джавы и копирайт в Жидьрейнс.
>>1627818>все повисли на восьмеркеТак потому что ближайшая LTS 11-ая, в которой кроме модулей ничего нового нет, а они оказались многим не нужны.[ for excel ]не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно не нужно
>>1627818Мне интересно, бизнесу то это все говно то надо?Корутины, конечно, инструмент реальный, но вот все остальное? Они реально очканули что котлин может хапнуть кусок пирога? Или их напугало что шарфик уходит полностью в опенсорс? Или их тревожит го с микросервисами и больше ничемЧто блин с джавой происходит??
OpenJDK от оракля получается получает обновления только 6 месяцев до следующей версии джавы, и у них не бывает LTS? То есть 8 и 11 уже не поддерживаются. Хотя есть же oracle openjdk 8u242 и 11.0.6 - самые последние версии.И чтобы был долгий саппорт нужно ставить сборку например от AdoptOpenJDK?
>>1628007Что так? Обычный openjdk сейчас 11.0.6 от 14 января, а по идее он не должен обновляться после 12 openjdk.Или это какие-то сборки от самих дистрибутивов линукса?
>>1628001>OpenJDK от оракля получается получает обновления только 6 месяцев до следующей версии джавы, и у них не бывает LTS? То есть 8 и 11 уже не поддерживаются. Поддерживается. Текущая лонг тёрм сапорт сейчас 11, следующая, вроде бы будет 17. Поддержка восьмёрки кончается в этом году.
>>1628052>https://www.oracle.com/java/technologies/java-se-support-roadmap.htmlТут можно всё посмотреть.
>>1628040>Обычный openjdk сейчас 11.0.6 от 14 января, а по идее он не должен обновляться после 12 openjdkОн обновляется, но уже не ораклом, а только силами сообщества. Примерно то же самое, как с AdoptOpenJDK и т.п.
>>1628052>>1628054Так я тебе про openjdk, а ты мне про oracle jdk.Алсо, сейчас бы купить восьмерку до 2030 года и не перекатываться. Рай для вычищателей ереси.
>>1628070Понятно, спасибо. Наверное лучше от adopt ставить, я слышал где-то например openjdk redhat глючные были.
>>1626715Понял, спасибо. Нашёл, поставил, работаетЗы. Эт я, автор оригинального вопроса. К тем дегродам что не смогли найти кряк в комментах отношения не имею
Аноны, есть ли смысл писать свою реализацию Event Bus как пет проект? Если да, то что такое Event Bus?
>>1628371>Event Busкороч это автобус, оборудованный для проведения всяких эвентов. те там внутри диванчики, бар, диско шар и музыка. вы с посонами загружаетесь в автобус и катаетесь по городу.
>>1628371https://github.com/greenrobot-team/greenrobot-examples/blob/master/eventbus-java/src/main/java/Main.javaЯсно, опять все до меня написали.
>>1628052Ну вот закончилась восьмерка, все же на асп дот нет коре чото там перейдут. Смысл платить деньги за то что бесплатно можно брать. Ну край на какое нибудь си плюс плюс куте уйдут. А те у кого есть бабки, зачем им эта ваша джаба скрипт. Они САПОАБАПЕРАМ занесут. И будут правы.
>>1628487Так и будет поверь, важен не язык, а знание основ, базы и умения учится. Перейдут сначала те кто не готов рисковать отсутствием поддержки восмерки. А дальше уже рынок стабилизируется и выработает свои новые стандарты. Конечно оракл скажет что мы все хотим вернуть в зад, но будет уже поздно.
>>1628491Ты со своей толстотой должен был в 2022-3 придти, когда закончится бесплатная поддержка openjdk 8 от других компаний.
>>1628517А ну окей, я тогда передам чо делать битрик разработчикам и 1с внедряторам, что делать когда их параша схлопнеца. У них вроде похожая ситуация их говно вроде вообще умерло. Одно радует что это говно серьезные фирмы не используют. Так и вижу как мухосранская вебстудия с 3мя макаками ковыряет свое говно, что бы оживить.Ну а если серьезно подумать то перевели если без жертв, то как раз есть 2 года на перевод на другой стэк. Если были жертвы, то наверняка пользуют старую 8ку но уже пилят на новом стеке во всю и каждый день чекают новости и молятся, чтобы не нашли очередную дыру в восьмерке.
>>1628491>поверьДа кто ты такой, чтоб тебе верить, мразь?Пошёл нахуй.У дотнета и сишарп литерали полумёртвая экосистема. Учитывая, что сейчас уже кругом контейнеры и прочие облачные технологии, в такой проприетарной хуйне вообще смысла нет. Я скорее поверю, что все ломанутся на каком-нибудь расте/го писать ентерпрайз, нежели на сишарпе.
>>1628525А в чём проблема с 8 мигрировать на 11? Учитывая, что джава чуть более бэквард компатибильная, чем полностью, проблем вообще нет никаких.
>>1628565>А в чём проблема с 8 мигрировать на 11?Вот мне тоже интересно. У нас в компании все на 8, а я стесняюсь спросить почему.
>>1628566У нас уже все минимум на 11 перешли. Новые сервисы дали разрешение пилить на 13 азуле.На чмох с 8 джавой смотрю с пренебрежением.
>>1628563До 2017 вообще ни про какие опенждк слышно небыло. А вот сисярп кор уже появился. Прошел поезд жавы, смирись. У дотнета то мертвая? С их нугетам который сама мс держит? Сириусли? Вот оракл это уже давно стало что то наподобие 1с у них там. Какая то тухлая контора, которая втюхивает курсы оракл спешиалистов за дохуя денег.Оракл считай сейчас убила жабу, своими платными ждк. Это остается только признать. И потихоньку перепиливать свое по на что нибудь посовременнее. Вообще уморительно с точки зрения оракла думать что кто то будет покупать их говно, только потому что они туда лямбы с фп запихнули. Еще бы блять за покупку ждк наклейки выдавали в качестве бонуса.
>>1628565Тем что платить надо ораклу не? Ну как вариант опенждк которое не известно кто и как поддерживает в отличие от того же дотнет кора.
>>1628565> джава чуть более бэквард компатибильная, чем полностьюНа словах-то может и так, а на деле всё упирается в кучу мелких особенностей реализации. Если попробовать запустить достаточно большой проект, работавший на 8, на 11, и он заработает, то повезло, и достаточно немного перепилить девопс. А если нет - хуй, придётся искать и фиксить сотни всплывших багов.
Зачем удалили сообщения парня с проблемами при чтении Concurrency in practice?>>1628525 - после вот этого было еще три сообщения, их потерли, что за лол? Свободная борда, свободное общение, мда..
>>1628574>Свободная борда, свободное общение, мда..Лул кто то еще в это верит? Свободное общение с чмодерами)))0
>>1628565>А в чём проблема с 8 мигрировать на 11Вся экосистема ЕЕ слоамалсь нахуй из-за модулей и переименования пакета javax.
>>1628580Нет, но я примерно догадываюсь что там: вести себя прилично и по большей части обсуждать тему доски. Что из этого было нарушено в сообщении "У меня туго идет чтение Concurrency in practice, у всех так?"?
Сап, антоны. У меня есть массив строк из русских слов. Но, проблема в том, что у некоторых из них есть знак препинания в конце типо: {"мама", "мыла.", "раму!"}. Как убрать их наиболее аккуратно? Мне кроме как дробить строки на массив чаров и проверять каждый последний на знак препинания ничего не приходит на ум, какой то убогий способ, или нет? Если что эти слова парсятся через jsoup. Стягивается одной строкой и делиться через str.split(" "), не русские слова отсеивает через регулярку.
>>1628589Не правильно выразился мне не слова со знаками препинания убрать нужно, а сами знаки препинания удалить из этих слов.
>>16285891) В апаче коммонс есть по слухам продвинутый трим, принимающий вараргс. Можешь скормить ему серию символов к удалению.2) Если у тебя уже есть регулярки: \b - word-boundary, \W - не_буква. Дальше сам.
>>1628578>>1628573Потому что надо было во время переходить на 9ку, а потом на 10ку и т.д. Сам оракл об этом ни раз говорил, что "ребята, если выбудете переходить только каждый ЛТС - вам будет пездец". Ну и да, монолиты на миллионы строк кода нахуй не нужны. Микросервисы во все поля.
>>1628632> Ну и да, монолиты на миллионы строк кода нахуй не нужны. Микросервисы во все поля.Ну наконец-то нашёлся тот, кто перепишет с нуля всё легаси, написанное до популяризации микросервисов. И будет не один большой проект, а куча маленьких, которые независимо друг от друга всё равно не могут работать.
>>1628632>Сам оракл об этом ни раз говорилНу тык, бабло кончется, надо как то гоев разводить, вот и содавали 9ки 10ки, при этом усираясь кричать, что пора поцаны двигаться в светолое будущее. Пистон от такой хуйни аж на две мажорные версии раскололся.>монолиты на миллионы строк кода нахуй не нужныНу а в микросервисах кода нету. Одни абстракции с композициями, верно говорю?
>>1628637Ну а хуйли ты хочешь? Ебаться с поддержкой в случае обновления какой-то технологии? Добро пожаловать. Нормальные проекты даже в кровавом ентерпрайзе, уже если не мигрировали, то мигрируют.>которые независимо друг от друга всё равно не могут работать.Не умеешь срать - не мучай жопу. Иди вот в дотнет, будешь с другими шизиками десктопные приложухи пилить из говна и палок.
>>1628641Поддержка 2 версии питона кончается в этом году. Адыхай.>Ну а в микросервисах кода нетуНе миллионы строк, но тысячи. А тысячи строк куда проще отрефачить, или на худой конец тупо переписать.
>>1628645>АдыхайА вместе со мной отдохнут от пистона разрабы, потому что это говно будут юзать только ученые в датасаенсе большом моченые, и полтара инвалида, кто подумал что это неплохая идея на новомодной поделке запилить свой интернет магазин. Так же срыгнут на какое нибудь похапе.Тоесть если раньше было 3 вакансии на мухосрань то теперь осталось 0.5.
>>1628650Сомнительно. Вся бигдата написана пидоне, и я очень сомневаюсь, что кто-то ломанётся всё это переписывать на хуй пойми какой язык.В этом собсна вся суть, что написать всё можно на чём угодно, но важно на самом деле стереотипное отношение к языку.
>>1628642Точно так же будешь ебаться с обновлением технологий в каждом микросервисе.> Нормальные проекты даже в кровавом ентерпрайзе, уже если не мигрировали, то мигрируют.Энтерпрайз всегда использовал очереди сообщений между множеством проектов и никогда не называл это баззвордом "микросервисы".Но ведь это всё неважно, важно обмазываться десятком апишек вместо того, чтобы просто вызвать нужный метод! Да здравствует построчная оплата кода!
>>1628652Ну вот для биг даты и останется, а все то будущее которое пророчили петону как убийце похапе руби, теперь перечеркнуто. Тупа в паскаль превратился кароч.
>>1628654Забей, я думаю молодой человек думает что если разбить монолит на микросервисы из милиона строк кода станет 10000 в каждом из 100 сервисов.
>>1628654Это проще. Во-первых, у тебя есть ответственные за микросервисы люди а.к.а команда, которая его разработала и поддерживает. Работать таким образом гораздо менее болезненно, чем пытаться обновить весь монолит. Это факт.>Но ведь это всё неважно, важно обмазываться десятком апишек вместо того, чтобы просто вызвать нужный метод! Глупый ты. Разобрался бы сначала в вопросе.
>>1628681Первый на го, второй будет сидеть на 8 жабе и заставлять оракл исправлять баги, так как это дешевле чем переносить всю кодовую базу.Тритий на плюсах все ядро, а остальное переведут, так как им похуй на стеки, что моднее и дешевле, то и будут юзатьЧетвертый уже давно убийцу жабы в попенсорц выпустил, между прочим цветет и пахнет Неткор.
>>1628685>ответственные за микросервисы люди а.к.а командаБоюсь спросить, а монолит написан одной макакой, которую держат в подвале?
>>1628688За монолит ответственны все, кто в него контребьютит. Если мы говорим, про нормальный проект, где хотя бы 10 команд - за такой монолит ответственный кто? Правильно, никто. Потому что такая вещь, как групповая ответственность в ИТ не распространяется на группы свыше 10 человек.
>>1628690>никтоБред какойто, как это никто не ответственнен? Это же не совковое нии. Есть модуль или часть системы как угодно обзови. Так же эти части монолита поделены на команды. И у каждая своя граница ответственности.Я так понимаю у тебя пост трамватический синдром, когда то один ковырял монолит где все падало. И потом серебрянную пулю изобрели в виде микросервисов. Так вам стало проще спихивать с себя отвественность. Хотя по факту вам нужен был грамотный тимлид.
>>1628685> Это проще. Во-первых, у тебя есть ответственные за микросервисы люди а.к.а команда, которая его разработала и поддерживаетВжух, и мы вернулись к монолитам, каждый монолит в системе тоже пишет отдельная команда. Вообще, "монолит" - это начиная со скольки строк? С 1000? Со 100000? Кто устанавливает этот предел?> Разобрался бы сначала в вопросе.Разобраться надо тебе, раз ты веришь, что любые проблемы решаются микросервисами сами по себе.
>>1628700>каждый монолит в системе тоже пишет отдельная командаТолсто. Во всех проектых про которые я знаю, или в которых работал, монолит делился между дюженой команд минимум. Опять же, если мы говорим про кровавый ентерпрайз. Да и монолит от количества сток не зависит. Идея в том, что у тебя вся бизнелогика в одной код базе. Т.е. чисто технически, если ты нарушает сингл респонсобили и опен-клоуз принцип на уровне бизнес логики - у тебя монолит.>любые проблемы решаются микросервисами сами по себеНе все, но многие. Очень многие. Цены за это - сложность системы. Вместо одного квадратика, у тебя сотни. Многих такой тред офф отпугивает.
Анчоусы, есть тут кто работал с openCSV? Я бы хотел пару вопросов задать, а то туториалов нету, доки сухие, а разобраться для работы надо
Раз тут зашел разговор про монолиты и микросервисыИмеется старый монолит часть функционала уже выпилена часть еще нет, поэтому его еще нельзя убрать. Собственно вопрос как грамотнее всего его уничтожить разобрав на сервисы. Самый простой способ что вижу это логировать все что работает сейчас и по одному убирать попутно покрывая тестами. Есть какие то советы или рекомендации?
>>1628743> Идея в том, что у тебя вся бизнелогика в одной код базе. Т.е. чисто технически, если ты нарушает сингл респонсобили и опен-клоуз принцип на уровне бизнес логики - у тебя монолит.Очень размытое определение. Прям представляю, как десятки тысяч программистов пишут одну убер-систему на всю корпорацию и запускают её на одно сервере приложений. Я уверен, что никогда никто так не делает, а из этого по твоему определению выходит, что термин "монолит" описывает несуществующее явление.Да и про сингл респонсибилити - опять же в каких масштабах? Если упороться этим принципом, то можно вообще создавать по микросервису на каждый класс, и в каждом классе должно быть не больше одного метода.
>>1628790>Прям представляю, как десятки тысяч программистов пишут одну убер-систему на всю корпорациюПроект. Я работал в проекте, где было 11 команд по 10-12 человек. Расскажи мне, про то как удобно её поддерживать, и что это дурацкий оракл виноват.Алсо, у гугла вся код база всего находится в одном репозитории.>то можно вообще создавать по микросервису на каждый классПогугли OpenFaas, или AWS Lambda, или Azure Functions(как у гугла называется я хз, не работал с GCP). Только в обморок не падай.
>>1628782Я к тому, что монолит может разрабатываться как одной командой, так и десятком. Дело не в количестве девелоперов или строк кода.
Если есть вопросы по микропенисам, с удовольствием отвечу.Или по евент-дривен архитектуре а.к.а. "я прикручиваю кафку везде где надо и не надо".
>>1628820То есть выходит, что монолитная и микросервисная архитектура - не взаимоисключающие понятия? В одной системе могут быть и монолиты, и микросервисы? Значит, дело не в какой-то "архитектуре", а тупо в количестве кода и логики в отдельно взятом проекте.>>1628820> Расскажи мне, про то как удобно её поддерживать, и что это дурацкий оракл виноват.Пиздец как неудобно, кто спорит-то, лол.>Алсо, у гугла вся код база всего находится в одном репозитории.Монорепозиторий - это не монолит. Это вообще непересекающиеся понятия.>Погугли OpenFaas, или AWS Lambda, или Azure Functions(как у гугла называется я хз, не работал с GCP). Только в обморок не падай.Видел уже.
>>1628842>То есть выходитЗачастую, именно так и есть. Есть легаси говно, написанное на коболе, и есть моднейшие микросервисы на всём чём попало(жаба есесно). А дальше - "ебитесь".>Пиздец как неудобно, кто спорит-то, лол.Ну дык мыкросервисы подразумевают, что одна конкретная команда отвечает лишь за несколько мыкросервисов(самый крутой рейт, это чёт типа 3 на девелопера, но это надо нормально систему запилить).
Аноны, я тут читаю про шедулинг процессов в операционных системах. JVM -- это ведь один процесс, так? Операционка, в независимости от кол-ва ядер, всегда обрабатывает один процесс на одном ядре. То есть это что же получается, что в жабе один хуй, запускаешь ты свою программу на одноядерном проце или на многоядерном? Я уверен, это не так естесна. Кто - нибудь может объяснить?
>>1629006Единица исполнения кода - поток, а не процесс. Многопоточность, потокобезопасность, слышал? Процесс это коллекция потоков + метаинформация + статическая память. Один процесс может содержать много потоков (на пике - 39), причем этих потоков может быть быльше чем ядер. Вот они и свичатся.
>>1629010По делу есть что сказать?>>1629017Спасибо. То, что единица исполнения это поток, я знаю. Вопрос был не в этом. В ОС есть понятие процесса. Внутри процесса есть потоки уровня пользователя и потоки уровня ядра (user-level и kernel-level). ОС о потоках уровня пользователя не знает ничего (о них знает только библиотека, которой пользуется пользователь). Потоки уровня ядра ОС шедулит сама. Так вот, по идее треды в жабе -- это потоки уровня пользователя и они никак не контролируются ОС, а контролируются только JVM. Получается ОС отводит время JVM, а JVM распределяет это время по своим потокам и как бы неважно, сколько ядер в системе (потому что JVM -- это один процесс). Короче, пока писал, сам ответил на свой вопрос. В джаве есть две реализации многопоточности. Большинство из них мапят потоки уровня пользователя на потоки уровня ядра и как бы все на этом (шедулер ОС сам их распределяет по ядрам). До версии 1.2 была еще поддержка green thread-ов. Это были чистые потоки пользователя, которые полностью контролировались JVM. Как следствие, у них был более скоростной context switch, меньше оверхеда, но при этом они никак не выигрывали от многоядерности.
>>1629025>Так вот, по идее треды в жабе -- это потоки уровня пользователяЭто называется зеленые потоки и в Java это не так с версии 1.1. Сейчас все потоки в Java это потоки ОС.Вот придет project loom - будут тебе зеленые потоки, а пока юзай Котилин или Акка.
>>1629058Просто до этого JVM утилизировала только одно ядро процессора (как например современный CPython или Node.js). А с нативными потоками JVM стала использовать все доступные ядра.Речь идет о той реализации, что была на тот момент, project loom будет конечно все доступные мощности использовать. Просто посмотри на дату выхода 1.1
>>1629065Это не я писал, но loom это действительно зеленые потоки. Но улучшенные по сравнению с тем что было 1.0 - тут тебе и поддержка IO и прочие плюшки.Если интересна тема, можешь ещё этих отчаяных парней посмотретьhttps://www.youtube.com/watch?v=94eTZsNYYBEони запилили свой prolekt l00m.
>>1629068Поясни, нахуя китайцам ебаться с жабой и чото там допиливать, когда можно было взять шикарный неткор или, на худой конец, го и сделать то же самое, только быстрее и лучше?
>>1629079Потому что не было понимания что нужно и зачем - это 1997 год. Ява тогда на сервера даже не пыталсь зайти, не было ни JEE ничего. JIT - только представили и то не на всех платформах. Java Memory Model - тоже еще не существует.>>1629191.Net Core первых версий неюзабельный прототип, только с 3-й версии им стало возомжно нормально пользоваться. На Java же у них было уже работающее приложение, куча разработчиков, библиотек, тулов и прочее. Просто были проблемы с масштабированием и они решили их. В принципе их можно решить и по другому - перейти на неблокирующие IO и фиксированный пул воркеров - но это опять затраты на переписывание всех приложений.Го же тут вообще не пришей кобыле хвост. Горутины это те же акторы, но с немного другим синтаксисом. А еще незабываемое:if err != nil { return err}
>>1629436С лета вкатываюсь, сейчас изучаю многопоточность. Сначала было тяжело собраться, потом начал регулярно каждый день по 4-6 часов заниматься, благо, друзей нет и из дома не выхожу никуда кроме колледжа.Тот самый тугой.
>>1629436Расскажу, как делаю я. Ищу на хх вакансии на стажёра, ждуна, откликаюсь. 40% смотрит по 3 раза на моё резюме и пропадает. 40% присылают отказ. 5% дают тестовое, почти всегда там круд на спринге, сохранение сущностей в бд, получаемых из JSON и/или XML. Первый раз было запарно, я жидко обосрался не став делать 5 абстракций на каждый класс и городить хелоуворлд-EE. Закономерно был послан нахуй, сделал выводы, пошёл читать Мартина. Стало проще. 5% зовёт на собеседование сразу.На собеседовании всегда один и тот же набор одинаковых вопросов про связанные списки, методы класса обжект, хешмапы, ООП, SOLID, паттерны, уровни доступа. Иногда спрашивают про Stream, ORM. Всегда SQL, один раз дали написать запросы, там хуета на джойны пары таблиц и т.д.Последний раз обосрался на вопросе "какой ассерт при создании своего функционального интерфейса".Неважно, как я отвечаю, ответ один. Схожий с названием соответствующего треда в разделе.Отсюда вопрос, чяднт?
>>1629456Мда, сколько же нужно изучать джаву, чтобы ответить на весь тот список, что ты перечислил?И да, в каком городе вкатываешься?
>>1629458>сколько же нужно изучать джавуЯ начал осенью, до этого другой язык пытался выучить, но схожий. Там ничего сложного нет, в гугле есть списки с этими вопросами, я их просто вызубрил уже.Но собеседующие никогда на них не останавливаются, т.е. ебут до конца, до тех пор, пока не найдётся вопрос, на который ты ответить не сможешь. Я хз зачем так начинающих давить, я ж не на синьёра пришёл.>в каком городеСеверо-запад дс, но в целом мне похуй, я уже и на другой конец города готов ездить.
>>1629436>>1629456Вакансии ждуна это, по-моему, днище полное. Обычно там нужен единорог, т.е. фактический миддл, готовый работать за доширак и рыбную котлету. Наверное, потому, что джуна нужно обучать и менторить, а они этого делать не хотят, ты потом ещё запросишь денег или свалишь.А вот стажировки, "лаборатории" и прочие "java-школы" это да, реальный шанс вкатиться.
>>1629473Летом будет год, как я вкатываюсь. Правда, никуда особо не тороплюсь, так как помимо основной еще две работы упали. Понимаю, что никакое собеседование сейчас не пройду, поэтому кодю в свое удовольствие, недавно на кодварсе начал задачи решать. Вообще, наверное, джава - странный выбор для начинающего. Почитал сейчас про фичи, которые появятся в 14й версии, есть прикольные штуки. Но в целом, груз обратной совместимости не дает языку развиваться так, как он мог бы, имхо. Удачи тебе в трудоустройстве.
>>1629481Я хз как отличить стажировку, где через N месяцев ты устроишься ждуном, от очередных курсов "вкат за 72 часа", где по их окончанию просто пошлют нахуй и наберут новых.Ко всем эти курсам, вроде того же джава-раша, у меня вообще хуёвое отношение, я лучше книгу прочитаю, чем буду ходить слушать какого-то долбаёба, который для абсолютных даунов по 2 часа разжёвывает очевидные вещи. От большинства за версту несёт наебаловом, может я не прав, конечно.
>>1629491На самом деле я на торрентах нашел некоторые видеокурсы. Типа, пишем приложение и тупо сидишь повторяешь. В определенный момент ты понимаешь, что у тебя так не работает, как у чувака из курсов. И ты начинаешь гуглить проблему. И пока ты ее гуглишь, ты узнаешь овердохуя всего рядом с этой проблемой. Мне для того, чтобы подключить сраный JAXB для работы с XML-ем пришлось +- освоить мавен, так как просто подгружать либы в виде джарников не очень получалось. Так что теперь реально понимаю, почему все говорят, что для того, чтобы научиться кодить, надо тупо кодить. Задачи только себе надо подходящие искать и это самое сложное.
>>1629488>джава - странный выбор для начинающегоНу хз.Литературы тонна, всё что ты захочешь написать за эти годы уже кто-то написал. Работы вроде тоже дохуя, комьюнити большой, значит всегда можно найти того, кто ответит на вопросы. Осталось только вкатиться.Или это вообще твой первый ЯП? Ни в школе, ни в вузе никаких паскалей, бейзиков, дельфи не изучал?
>>1629500Да, для меня это условно первый ЯП. Я по специальности инженер, но решил наверстать упущенное. Родители когда-то сказали, что прогеров и так много, и что работы не найти и вот отказался от этого. В школе изучал Паскаль, но это был цирк. Самое мощное достижение - это машинка, которая езди из левой части экрана в правую. Потом пол года в университете были плюсы. Но там самая сложная моя работа - это курсовой проект, где нужно было из рандомного текста убрать все гласные или все согласные. Джаву выбрал за ее универсальность, стабильность, вроде как вакансии есть. Плюс сама идеология чего-то фундаментального мне ближе, чем то, что стильно/модно/молодежно.
>>1629498Я читать люблю больше, чем видео смотреть.Когда со спрингом начал заморачиваться, на один из вопросов гугл выдал канал letsCode. Пару видосов глянул, норм. Но потом понял, что чел просто переписывает всё из офф. доков чутка поясняя. Это я и сам могу.Более менее заходят какие-нибудь лекции, но они само собой всегда на английском, чаще всего уж устарели, и их хуй найдёшь. Глянул так пару видосов с Venkat Subramaniam, ну и там тоже почти всё это пересказ его же книги.Вкусовщина короче.>Задачи только себе надо подходящие искать и это самое сложное. Знакомо. Поэтому я (почти) никогда от тестовых и не отказываюсь, хоть чем-то гитхаб забить.
>>1629491Наверное, ты не так понял. Я имею ввиду курсы, которые проводят компании. Такие есть практически при каждой крупной конторе, они длятся два-три месяца, и после успешного прохождения тебе берут ждуном. Суть там не в охуительных знаниях, а в том, что ты поболтаешься в их системе и покажешь, что ты не хер с горы, а вполне себе обучаемый разработчик.
>>1629507>машинка, которая езди из левой части экрана в правуюАлгоритм Конвея? Делал похожее тз.>вроде как вакансии естьАга, для синьёров.
Сап, программач, есть односвязный список, написанный в 2 классах:1) class Node https://ideone.com/4kFXbi2) class MyList https://ideone.com/pMWcaAКак новичок, не могу понять следующее:1. Почему в классе Node объявлена переменная типа Node (private Node next в 3 строке)?2. Что за конструкции типа this.value = value; this.next = next; в классе Node?3. Как работает этот метод? public Node getNext() { return next; }4. Ну и на закуску в классе MyList почти всё непонятно:Что делает этот код? (2-6 строки) private Node head; public MyList() { this.head = null; }Что за переменная?Node node = head; (17 строка)Зачем переменная присваивается себе:node = node.getNext()С меня как обычно, но кто ответит - спасибо
>>1629511>после успешного прохождения тебе берут ждуномИли не берут.А раз >Суть там не в охуительных знанияхТо я просто проебу 2-3 месяца жизни. Хотя вариантов особо нет.
>>1629509Я тоже больше читал раньше. Теперь и видосы подключил. А вообще пришел к выводу, что найду себе ментора, который работает в этом всем, пусть лучше он расскажет-подскажет. Тем более, что в ДС2 такие есть.
>>1629513>private Node nextСсылка на следующий элемент.>Что за конструкции типаКонструктор и есть, буквально. Т.е. ты будешь создавать экземпляр класса, передавая ему значения элемента и ссылку на следующий элемент. Зис это указатель на сам объект. >Как работает этот метод?Возвращает тебе следующий элемент. Ты же в курсе что такое связный список? У каждого элемента есть указатель на следующий, вот это оно и есть. Если следующего нет, то ты в конце. Если есть, то тебе дают next.>Что делает этот код? (2-6 строки)Конструктор пустого списка. В пустом списке первого элемента (хед) нет, но создать его как-то надо, поэтому присваивается нулл.>public int size(){>Node node = head; (17 строка)Это метод, который возвращает размер списка. Для этого ты создаёшь переменную, счётчик int count = 0;Берёшь первый элемент в списке (хеад, голова), если он есть, значит в списке есть элемент, т.е. сайз как минимум 1. В цикле перебираешь все элементы, пока они есть while(node != null). >Зачем переменная присваивается себеОна не себе присвается. Ты берёшь первый нод, угу, ага, значит сайз +1. Потом делаешь также для второго. Каждый раз переключаясь на следующий (getNext).
>>1629535Node.Первое слово это ограничение доступа, private.Второе тип данных. Оно идёт перед третьим, next. Это название переменной.
>>1629515Тебе решать. Знакомый так перекатился в 30 лет в прошлом году, раньше был юристом.Ну и не везде это унылые курсы джавы SE, есть куча мест с реальными проектами, по сути тот же испытательный срок, но почти без денег.
>>1629545Где их найти? Я в целом готов на всё что угодно уже.>>1629548Ты создаёшь класс с именем Node, его же и используешь в самом классе.
>>1629551Epam, Luxoft и иже с ними — чекай все крупные аутсорс-конторы в своём городе. И вот сюда глянь: https://github.com/solarrust/junior-friendly
Анон, а правда говорят, что жаба-энтерпрайз - одна из самых рутинных работ в программировании? Когда-то был тред, в котором аноны писали свою ЗП, область работы и комментарии. Так вот, обеспеченные жаба-господа часто писали, что их заебала их работа, интереса не приносят.С другой стороны, жаба бэкеры часто обзывают фронтов "формошлепами", якобы это вообще не "настоящее" программирование, а вот в бэке все трушное и сплошные промывания архитектур и других важных штук.Опытные господа-явисты, внесите ясность. Спасибо.
>>1620861 (OP)Джавач, как видишь, все любят попрограммировать на джаве в субботу. А говорят - пятница, пятница...
Имеет смысл вкатываться пока учусь на вышке, а если позовут на стажировку/примут уходить на свободное посещение и кое как сдавать предметы? В вузовые практики не верю, 2 курс.
>>1629891Так что лучше, кряк или сброс триала?Сам я на коммьюнити сижу (стану большим и важным, обязательно куплю)
>>1629902Таки я его знал, я просто не сразу понял твой контекст и подумал, может кто-то другой чем отличился (Мартин Лютер Кинг).
>>1629903Не знаю, я кряк поставил и живу.Сброс триала они вроде поменяли, если найдет конфигурацию предыдущей идеи, скажет что 30 days left. Удалять надо со всеми настройками и плагинами.
>>1629456>Отсюда вопрос, чяднт? Никто тут не ответит: потому что у разных компаний разные критерии тебе могут отказывать по разным причинам и непонятно что и как ты отвечаешь. Ну и плюс твои зарплатные ожидания - может ты просишь как мидл.А может это что-то лично, мотивация им твоя не нравится или ты лично чем-то им не понравился.
>>1629988Не редко, по ту сторону стола сидит еще более глупое существо чем ты, с искаженным восприятием себя и мира. И оно, почему-то, будет спрашивает тебя о том, что ты на работе делать не будешь (или к чему тебя даже не допустят).Переставь, приходишь устраиваться маляром, а у тебя расспрашивают о перспективе или теореме Дезарга. И это блин реалии текущего мира айти.
>>1629960Просто хотел послушать истории анонов, взглянуть как делали другие люди, сделать свои выводы, понять где я делаю не так.>зарплатные ожиданияНа любую готов.>ты личноВозможно. Но с этим я ничего поделать не могу. Стараюсь улыбаться, нормально говорить, кошу под нормиса изо всех сил.>>1629983Оставшиеся 10% это то, что не вписывается в остальные рамки.Зовут на собеседование, потом переносят, потом ещё раз переносят, потом хуяк, "о извините вакансия закрыта".Или приезжайте, приезжаешь, а там "ой тимлида нет, извините, давайте в другой раз".Или мы посмотрели ваше резюме, на эту вакансию вы не подходите, есть другая, а там вообще какая-то шляпа, про которую я никогда не слышал. Или Saleforce.С математикой у меня более-менее, читал несколько книг по алгоритмам. Хотя ни разу ещё про алгоритмы не спрашивали, про деревья один раз чё-то было и всё.
>>1630004Не думаю что до конца поборол, просто увидел себя со стороны в таких же балбесах как я. И появилось желание личного роста из макаки в профессионалы. Правда, скорее, больше повлияла работа с грамотными людьми в ответственном проекте.
>>1630054>заваливаютПо джаве вопросы из топ 10, почти всегда. Я не могу сказать, что это сложно, обычно я на них отвечаю.>по спрингуОдин раз попросили назвать примеры аннотаций. Сидя на стуле перед двумя ёблами я смог назвать только рестконтролёры, аутовайред очевидный, Data, но потом вспомнил, что это из ломбока и исправился на Ентити. "Ещё что?" Я хз, не помню, начал что-то про репозитории пытаться вспомнить, но там просто расширяет же. Короче про Service я не вспомнил.
>>1630067Да, про хибернейт тоже спрашивали, но как-то вскользь.>>1630069Про это ничего не сказали. Я так понял, надо было про Service что-то рассказывать.
>>1629645Ну если энтерпрайз не интересен, то я даже не знаю, что может быть интереснее. Ну разве что, может быть, машобчики на питоне пилить.
>>1630015>На любую готов.Так и отвечаешь на вопрос о зарплате?>>1630064>Один раз попросили назвать примеры аннотаций. Сидя на стуле перед двумя ёблами я смог назвать только рестконтролёры, аутовайред очевидный, Data, но потом вспомнил, что это из ломбока и исправился на Ентити. "Ещё что?" Я хз, не помню, начал что-то про репозитории пытаться вспомнить, но там просто расширяет же. Короче про Service я не вспомнил. По мне так вполне нормальный ответ, если хотят услышать @Service - то пусть явно спрашивают как создать бин с помощью аннотаций.
Так records нельзя будет юзать как Entity из-за final класса и final полей. А где их применять тогда?
>>1630227ну мокито к файнал классам прикручивается с помошю костыля, так и тут скорее всего костылем прикручивать будут, нассав на всю жабасемантику
>>1630081Ты в курсе что Service, если мы оба про Service, который от Component, который MVC-шный, вообще НИЧЕГО не делает нового? Он просто имеет другой стринг в себе, разницы в @Component и @Service - 0
Помогите, а то я туплю и обмяк уже. У меня лист со стрингами, а стринги это названия городов. Проблема в том, что некоторые города имеет в себе апостроф ', а если value такого чара в стринге это '\'', а эта ебаная палка мне ломает кверю в SQLite, ибо выдаёт (near "k": syntax error). Как мне сделать так, чтобы жаба не всовывала эту хуйню, а содержала просто ' ? Я сейчас окончательно обмякну и пукнув сдоху, ибо заебался искать решение
>>1630260Отбой, как только расписал сюда, сам понял что делать. И нет, preparedstatement или buffer с builder-oм я не могу юзнуть.
>>1630269>сам понял что делатьпиши как решил.если ты задаёшь вопрос на ссаче, попутно понимая, как решить свою проблему, а потом съёбываешь в закат - это плевок в ебло всему почетному пр/ коммунити
Джависты и котлинисты, я вам тут интеллектуальную задачу принес.В общем, нужно придумать альтернативу слову Util (MyClassUtil). Я знаю что не правильно и так нельзя, бла-бла-бла, но реально нужно иногда просто хелперы в кучу объединить и да, слово хелпер не предлагатьПоехали..
>>1630342С дата-классами (анемическая модель) будет пересекаться.User // дата-классUserUtilUsers // стиль как в java, но очень режет глаз с дата-классами
>>1630155>Так и отвечаешь на вопрос о зарплате?Да, без задней мысли. Один хрен у всех начинающих плюс-минус одинаковые зарплаты. Больше я не стою.Или тут подвох какой-то, как в вопросах "кем вы видите себя через 10 лет?">>1630258Хз, что они хотели от меня услышать. Для себя решил, что почитаю поподробней про всю эту хуйню.
>>1629565Спасибо за наводку.С некоторых в голос выдал, типа >Двухгодичная стажировка для студентову Касперского.В КРОК попытался сделать тестовое. Заебись, так списки я ещё не крутил. Ещё и когда таймер в углу.Хз, как там вторую задачу решить, я тупой слишком.Брутфорсом не вышло, я пытался.
>>1630385Двухгодичная это для тех кто вообще с полного нуля. Я так книгу по жабе читал и проект первый делал год с чем-то. Читал headfirst по 1 странице в 2-3 дня. Потом за неделю подготовился к интервью на стажировку, а попав туда дали проект игру на libgdx, где нужно было и сервер и аккаунты и анимацию и саму игру, там пришлось рвать жопу на спринтах и скрамах, но зато ебать поднялся в знаниях, потом устроился на 800 евро первую работу
>>1630399Нет, про вообще другую компанию. Про касперский я сказал, что возможно они согласны и на Васяна с завода, у которого компухтера дома нет
>>1630329MyRoutines? MiscRoutines?>не правильно и так нельзяА мне теперь за вот это поясните пожалуйста. В каждом проекте по классу есть со статическими методами-хелперами. У всех же есть методы которые ну некуда больше присунуть.
>>1630329Так как сервисы в мире жабки это классы без состояний (набор функций). Решил называть ServJarServUserServMyClassServСовсем плохо?
>>1630423JarFuncUserFuncMyClassFuncКоллега предложил сокращение от слова assistantJarAssUserAssMyClassAssНо чую подвох
Привет, гайс. Вот я прочитал всю книгу Брюса Эккеля Философия Java(с кривым переводом) и учился по ней. А теперь куда дальше двигаться? Какие проекты можно делать с этими знаниями полученными из книги? Или без задней мысли стоит переходить на изучение андроида или спринга?
Вот предположим у меня есть несколько Closable объектов, соединения с бд, транзакции, во-втором и третьем треде I/O полным ходом. И в какой-то момент я вызову System.exit. Будет ли утечка памяти и какая? Я сам хз
>>1630457Погуглив понял, что это вызовет освобождение всех ресурсов JVM и потому всё нормально. Разве что если там что-то намудрёное и таки что-то случиться, то это уже винда протекает
>>1630454Я хз как вообще спринг учить. И зачем.В моём понимании это та штука, которая делает всё проще. Если что-то надо учить, чтобы сделать жизнь проще, то тут что-то не так.Со спрингом у меня всегда выходило просто. Как сделать мэни-ту-оне в гугле - ответ в двух строчках.Вот хз что тут учить. А в кишках этой хуйни копаться жизни не хватит.
>>1630457>Будет ли утечка памяти и какая?Памяти - нет, т.к. память освободится вместе с процессом. Файлы и сокеты закроет ОС, но вот если было соединение с БД, то на стороне сервера сессия какое-то время будет жить и занимать ресурсы.
>>1630473Делай свой интернет магазин с крудами и спрингом.Логин, пароль, сохранение в бд, возможность изменять заказ, JSON во все поля.Они любят давать тестовое в таком формате. Могу кинуть пример.
>>1630474>Если что-то надо учить, чтобы сделать жизнь проще, то тут что-то не так.Вообще-то абсолютно во всех сферах жизни так.
>>1630476У меня есть работа, я все это и так каждый день вижу. К тому же такой простой проект вообще через Spring Roo делается.>>1630481Она и так нормальная.
>>1630483Просто надо нормальные фичи делать, вроде свича с лямбдами, а не кривую хуйню, которая противоречит предыдущим жепам.
>>1630506Ну хз, обычно вещи, которые должны упрощать что-то не требуют гайдов на 9000 страниц.Смску отправить не сложнее, чем голубя. Грубо говоря.Если ты в кишочки не лезешь конечно, и свою вышку строить для этого не придётся.
>>1630511К спрингу гайды тоже не нужны. Добавил конфиг, поставил аннотацию и все работает. А чтобы узнать как нужно просто...
блядь модули реально полная хуйнявзяли тупа скопировали мавен с ненужным наваленным сверху сесурити и без версионирования
>>1630775Я могу ошибаться, но добавь сверху такую строчку:import java.io.*;вместо твоей IOException.Ну, или рядом import java.io.FileWriter;
>>1630801Бля, круглые скобки у try убери.Вот так:try { String text = "huy"; FileWriter writer = new FileWriter("huy.txt", false); writer.write(text); } catch (IOException e) { e.printStackTrace(); }
>>1630814Только сейчас дошло. Ты создал класс FileWriter, свой собственный, создал его объект writer и теперь пытаешься вызвать методы, которые ты в своем классе не написал. У тебя и передача аргументов в конструктор подчеркнута. Либо переименуй свой класс (и файл, соответственно), либо, если ты пишешь в идее, то внимательнее смотри на пакет, в котором лежит класс, который ты вызываешь.
>>1630818Получилось. То есть FileWriter это стандартный класс из библиотеки? Какой-то хреновый пример метанит выдал.Блин, почему вы такие умные, а я довн?
>>1630829Ну .lang, .io и .util желательно знать хорошо. На Метаните много ошибок, но когда начинаешь копать, что не так, качаешь скилл. А вообще, спасибо тебе, анон. Ты немножечко укрепил мою веру в то, что я чему-то научился.
>>1630829Ты смотри в следующий раз что высвечивается когда new пишешь. Там адрес пакета каждого класса. От тупых ошибок спасает.
>>1630832А у тебя было такое, что создавал инстанс класса из jfx, а из за невнимательности импортил одноименное говно из awt?
>>1630840У меня было такое, что я написал свой класс Currency и каждый раз, когда создавал его объекты, внимательно следил, чтобы он не оказался из java.util.
Сейчас придет котлиншизик и скажет, что у них нет проблем с неймспейсом и файл читается ключевым словом.
>>1630847Ну там, наверное, другие есть, которых нет в жабе. А вообще, кто в курсе, на Котлине сейчас можно делать все тоже самое, что и жабе или все таки есть какие-то фундаментальные ограничения? Когда-то давно читал, что у них нативных методов то ли нет, то ли очень мало.
>>1630862Надо исходный код смотреть что используешь. Ну хотя бы javadoc сверху метода. Ctrl + мыффкой кликни.
>>1630865Физика, схемотехника, теормех. Наверное еще что-то было, уже не помню. А тут я просто пытаюсь проникнуться мудростью местных анонов.
>>1630857> append - boolean if true, then data will be written to the end of the file rather than the beginning.>>1630836Ты точно тот файл смотришь? Не перепутал test.txt и text.txt? Не держит ли его другой процесс?
>>1630880Вроде не перепутал. ТХТшник перезагружал.>>1630881Могли б локализацию накатить)Ладно, попробую посмотреть видео про исключения, а то по книге не очень вкурил. Рано мне в главу с файлами лезть.
>>1630883>Рано мне в главу с файлами лезть.Лучше бы как раз научился файлики читать, будет на чём исключения обрабатывать. Покажи вообще, что там у тебя идея запускает, какая строчка в консоли
>>1630905Там первой строчкой, её нужно раскрыть, выводится собственно команда, которой Идея запускает твой класс. Покажи, что там написано.
>>1630909>RandomAccessFileЛадно, попозже, тут еще по работе приёбываются, заколебали. Скорее бы в гомонаносеки выкатиться с завода.
>>1630939Записать строку в файл.>>1630947>Там первой строчкой, её нужно раскрыть, выводится собственно команда, которой Идея запускает твой классСложна!
Пилю хуйню на спринге, круд обыкновенный по сохранению сущностей(задач), но вот это насторожило>параметр запуска ограничивающий количество незавершенных задач в списке, если достигнут, то задачу поставить нельзяКак бы хочется просто счётчик поставить, на отъебись. Но тут ведь по любому подвох какой-то?
>>1631005инт каунт = число.При получении новой задачи буду проверять сколько несделанных в бд, если это число больше каунт, то задача отбрасывается, респонсэнтитит, бад реквес, хуё-моё.Ну это первое, что в голову пришло, идея хуёвая, сам понимаю, поэтому и решил спросить у кого-то ещё.Как нормальные люди это реализуют?
>>1630814Нет бы узнать что там за ошибку выдает, половина анонов треде перебирает различные варианты синтаксического пиздеца, не относящиеся к проблеме.Не удивлюсь если анон запускает другой файл.
>>1631021Либо сделать maven-проект, тогда не надо весь путь указывать, потому что он в target будет рядом при компиляции, а текстовый файл засунуть в resources.Не юзаешь мавен - значит ты пидор!
Что здесь происходит? Почему синхронизация идет по myLock? Почему бы просто не сделать синху по PrivateLock?
>>1631224Наверное для гибкости. Если каждый раз синхронизироваться на this, то методы класса, не зависящие друг от друга, будут зря друг друга ожидать. А при таком подходе как на пике можно легко добавить еще один виджет не зависящий от первого, со своим монитором, и лочиться уже параллельно с первым, а не последовательно при использовании всего одного монитора.
>>1631231Стоп, правильно я понимаю: при добавлении новых виджетов нужно добавлять и новые объекты-локи?
>>1631234Да. Если функции класса (в общем смысле этого слова) независимы друг от друга, то каждая функция контролируется отдельным монитором (объекты-локи).А если весь класс выполняет что-то одно, т.е. у него одна функция (в общем смысле этого слова), и всё свое состояние он мониторит сразу, то тут удобно изпользовать всего один объект-монитор, либо объект-экземпляр класса, либо отдельный объект-лок.Ради интереса открыл Collections.SynchronizedCollection (на нем основан, например, SynchronizedList): тут они используют все равно выделенный объект-лок, названный mutex, а не синхронизируются на this, что я в принципе поддерживаю.
>>1631239Ох лол, а в конструкторе объекту-локу mutex присваивается this. Недосмотрел =) Видишь, эка гибкость. То есть по факту у них идет synchronized (this) {...} везде.
>>1631241Хех, ясно. Ну, может, в данном случае тоже гибкости чуть больше, чем просто this из-за того, что там конструктор принимает какой-нибудь специфичный мьютекс, хотя фиг его знает.
Подскажите, какое регулярное выражение надо для отсечения всяких символов кроме латинских и кириллических букв, и цифр?Pattern pattern = Pattern.compile("?"); Field.textProperty().addListener((observable, oVal, nVal) -> { if (!pattern.matcher(nVal).matches() ) { Field.setText(oVal); }
>>1630918Привет, анон. Специалист по гаданию на скриншотах в треде. Если ты еще не решил проблему, то давай разбираться. По картинке у тебя не совсем понятно что ты сделал.Для начала скажу, что конфигурация запуска [1] показывает, что как минимум запускаешь ты все правильно, нужный класс и тд, а то некоторые в треде сомневались (и правильно делали). Далее, тебя просили показать как IDE запускает твой класс, т.е. развернуть командную строку. Это можно сделать, кликнув на [2], но я думаю нам это ничем не поможет.Теперь ближе к сути. Откуда появляются файлы [3] именно в том месте в котором они сейчас лежат - сиблинги относительно класса ([6])? Ты их вручную создал? Потому что код, написанный в main(), такого не сделает. Файлы должны появляться в [5], в корне проекта. Я подвожу к очень важному моменту: файлы создаются самостоятельно, их не надо предварительно создавать руками, FileWriter способен сделать это сам. Т.е. ты удаляешь файлы [3], убеждаешься, что в [5] их тоже нет, запускаешь программу [1], и файл с именем [4] автоматически появляется в [5] (а не в [6]!).Несколько замечаний по коду:1) Использовать нужно try-with-resources конечно же. У тебя он изначально был (это конструкция try () {...}), но в процессе рефакторинга с анонами ты его потерял. Верни как было. И после этого close() можешь убрать (он вызовется автоматически т.к. AutoCloseable).2) flush() можно не использовать при записи маленьких файлов, точнее файлов, которые ты очень скоро уже закроешь. При вызове close() флаш вызывается автоматически, данные не потеряются никогда. Ну конечно не "никогда", но это уже не связано с ручным вызовом flush(), так что смело удаляй.3) Ошибки приятнее выводить в System.err, а не в System.out. Интерфейсы этих объектов полностью совпадают, просто замени три буквы и запомни: ошибки -> err.PS: Если третий параграф не поможет тебе найти файл, в который осуществляется запись, то пиши, у меня уже готовы планы куда ковырять дальше. Но я предполагаю что это ты просто файл потерял.
>>1631257Optional.of("JABA NO COBOL").map(s -> s.replaceAll("NO", "YES")).ifPresent(System.out::println);
перекатhttps://2ch.hk/pr/res/1631266.htmlhttps://2ch.hk/pr/res/1631266.htmlhttps://2ch.hk/pr/res/1631266.htmlhttps://2ch.hk/pr/res/1631266.html
Охуенно, оп перекатил на 75 постов раньше, чтоб от своего имени в свежем треде спросить про спринг дату. Мда.
>>1631321Он уже не в первый раз так называет. Пост потерли, да и ты специально будешь провоцировать, если я скажу.
>>1631257Тут у вас какой-то обмудок посты трёт, так что пока его санными тряпками не выгоните, я ливаю. Двач превратился в форум нулевых, лол.
Если на собесе на Джуна предлагают заняться олимпиадным программированием, о чем это говорит, чё они хотят? И надо ли стремиться к ним решая литкод, например? До этого изучал, совсем иное просто.
>>1631257Тут у вас какой-то обмудок посты трёт, так что пока его ссаными тряпками не выгоните, я ливаю (и вам рекомендую).Двач превратился в форум нулевых, лол.
Всех приветствую.Я со студентами-джава[недо]программистами делаем одной командой проект - на базе Kurento API создаём разворачиваемое на отдельном сервере приложение для проведения онлайн видеоконференций.В рамках этого проекта потребовалось реализовать технологию WhiteBoard (белую {интерактивную} доску), чтобы участники конференции могли в режиме реального времени рисовать на доске и видеть нарисованное.Прошу что-нибудь посоветовать, какой-нибудь готовый проект на гитхабе где это реализовано, какую-нибудь технологию, в общем что-то, чтобы не создавать с нуля эту доску.
Есть jackson. Есть json с двумя уровнями вложенности. Дальше что?Пробовал через mapper.readValue, выдавало кучу исключений. СО не осилил. Подскажете?Это всё тот же Анон, которому нужно хранить одно значение. БД отправляются в Вальгалу с каждым ребутом, а вариант с одним значением в файле начальство отвергло. Хоть и оправданно.
Что такое стажировка по java? Надо ли на нее идти? Или лучше пытаться сразу найти что-то полноценное? И после таких стажировок ведь отсеивают 99%, так ведь? И берут скорее всего не всех!?
>>1631962Че хочешь сделать-то? Обычную десериализацию? Создаешь два класса, внешний и внутренний, во внешнем будет поле типа внутреннего класса. Дальше readValue, да. Два, три уровня вложенности - ничем в этом плане не отличаются от десериализации самого базового json вида {"hello":"world"}. Обвязка аннотациями не обязательна.
Поясните нахуя джуну в конторе со штатом в пару тыш человек нужно знание устного английского, а чтение/письменный даже не тестили обосрался на собосе с диким проебом по времени на курсы
>>1632361Чтобы не получить через год миддла без знания устного английского. И чтобы ты мог нормально общаться с коллегами/заказчиками.
>>1632371нахуя мидлу устный англ он же разраб >с коллегамия в бульбостане, тут тарашкевицу знать надо>c заказчикамиесли я хотел бы общаться с заказчиками то пожалуй фрилансил бы, и нахуя тогда там работают было-манагеры?
Суп АнонВкатываюсь в ваши эти программирования. -Есть Фрайм F1 на ней jCombobox1.-Есть Class с методом который читает Ексел Таблицу и выводит данные. Вопрос как мне занести их в jCombobox1?Строка 52В VBA пиздец как просто из любого класса(модуля) а в Джаве как?F1.Combobox1.additem c
>>1632497Забыл дополнить что этот метод вызывается при нажатия батонa (kek) на F1. Фрайм уже инициализирован.
>>1632497Что не так-то? У тебя подчеркивает переменную, а не метод. Как у тебя jComboBox1 инициализирована? Какая ошибка компилятора?
>>1632526Переменая работает.Если написать System.out.print(c) то данные с екселя видны в консоле. Теперь мне нужно их занести в jCombobox1. Как это реализовать?
>>1632537>Теперь мне нужно их занести в jCombobox1. Как это реализовать?Именно так как ты и пишешь, методом addItem(). Что именно у тебя там не работает я угадать не могу. Собери маленький тестовый пикрил, потом увеличивай до своего исходного.
Котаны я разобрался.1. У меня Combobox была декларирована как private поэтому я не мог из другого класса её вызывать. 2. Класс ктомуже откуда я её вызываю статический а Метод во Фрейме где лежит Сombobox не статический.Вот теперь думаю как сделать это рабочим. А мне говорили Жаба лёгкая.
Гаес, вопрос по аннотациям. Решаю задачку, пишу типа фреймворк для тестирования, через аннотации и все такое. Хочу сделать так, чтоб в каждом классе можно было использовать только одну аннотацию @Before (ну и after тоже), как можно ограничить расстановку аннотаций? В таргете можно задать, например, что аннотацию можно ставить только на конструктор и т.д., а как бы количество на один класс ограничить?
>>1633171Задание по изучению аннотаций и рефлекшн апи. Тупо учебная.Значит никак, ну ок. Тогда сделаю как в JUnit. Типа, выполню все, но проядок не гарантирую
>>1633788Раз ты используешь рефлексию, то можешь просто подсчитать количество аннотированных методов.
Сап двач.Пытаюсь захуярить сервер GlassFish в IntelliJ IDEA.Не получается, происходит какая-то непонятная хуйня (см. скрин).Анон, помоги, прошу, очень прошу..
>>1634124Windows:>Эта папка пуста>Элементов: 0IDEA:>Warning: The selected directory is not a valid GlassFish home>Application server libraries not foundUSER:>Не получается>какая-то непонятная хуйня
>>1631261Да там весь путь надо прописывать просто, разобрался уже.Проболел три дня, думал коронка, но хуй там я так просто умру
>>1633809Но мне нужно ограничиться конкретным пакетом. Типа, протестировать все, что в com.example.ExampleTest, а не вообще все, что в com.example. Типа, разумеется, скорее всего аннотации висят только там, где и надо тестировать, но по условию задачи на вход идёт название пакета и я не должен трогать всего остального
>>1634179Не надо ничего руками прописывать, ты же программируешь не для этого.У тебя "путь по-умолчанию" стоит - папка проекта, т.е. [5] как я на картинке выше писал. Путь по-умолчанию это пустой путь, т.е. "" (пустая строка).А часть пути от корня проекта до конкретной папки с классом можно получить из имени пакета, вот так: <ClassName>.class.getPackage().getName().replace('.', '\\')Только нужно помнить что это всё лежит в "src".Получается итоговый вариант такой (относительный путь - "относительно" корня проекта):>String filename = "src\\" + WriterTest.class.getPackage().getName().replace('.', '\\') + "\\test.txt";Если прям очень хочется получить именно абсолютный путь, от корня, то рекомендую java.nio.file.Paths:>String filename = Paths.get("") // получаем порень проекта> .resolve("src") // спускаемся на src> .resolve(WriterTest.class.getPackage().getName().replace('.', '\\')) // спускаемся на папку класса> .resolve("test.txt") // получаем файл> .toAbsolutePath() // конвертимся в абсолютный путь> .toString();
>>1634206Двач такой двач. Поправил код.>String filename = Paths.get("") // получаем порень проекта> .resolve("src") // спускаемся на src> .resolve(WriterTest.class.getPackage().getName().replace('.', '\\')) // спускаемся на папку класса> .resolve("test.txt") // получаем файл> .toAbsolutePath() // конвертимся в абсолютный путь> .toString();
>>1634189По выводу [1] видно что условие [2] не дает коду дойти до [3] из-за return, элементарно, Ватсон.
>>1634216>>1634219Чето ты совсем нулячий. Ну да ладно, все такими были.>почему ретурн не дал выполнить блок трай?return ничего не дает выполнить, это выход из метода, а у тебя это метод main, так что return тут это полностью выход из программы. Поэтому после него ничего не выполнится.>В книжке ретурн прописанВерю. Но в книжке же еще прописаны параметры запуска, ведь правда? Ведь ты не дословно скопировал сообщение, выдаваемое при ошибке, ты его переврал на свой лад как понял. То, что у тебя в коде звучит как "Использование файла .txt" в оригинале в книжке выглядит так: "Использование: ShowFile имя_файла". Это и есть параметры запуска. Эту твою програму надо запускать: "java <package.name>.ShowFile <filename>". А "if (args.length != 1)" как раз проверяет, передан ли программер ровно один параметр.
>>1634226>java <package.name>.ShowFile <filename>Это запуск из командной строки, к такому ты еще возможно не готов. Идея тоже может запускать твою прогру с параметрами, вот так:
>>1634231Подставил файл, не сработало, убрал - при компиляции "шоуфайл" стал открываться старый файл "QExcDemo". Что за хуйня?
>>1634250Наверное потому что передавать командные параметры в программу это к джаве напрямую не относится.В общем виде в любой операционке это: cmd arg1 arg2 arg3...В твоей книге это: CopyFile откуда куда
Почему у меня открывается старый файл при компиляции и выдается ошибка какая-то? >>1634247 Я и закомментить его пробовал, тогда ломается интерфейс. Поудалять всё нахуй или что? Идею перезапускал.
Всех приветствую.Я со студентами-джава[недо]программистами делаем одной командой проект - на базе Kurento API создаём разворачиваемое на отдельном сервере приложение для проведения онлайн видеоконференций.В рамках этого проекта потребовалось реализовать технологию WhiteBoard (белую {интерактивную} доску), чтобы участники конференции могли в режиме реального времени рисовать на доске и видеть нарисованное.Прошу, ЕСЛИ кто-то из присутствующих знает соответствующую js/java-штуковину, что-нибудь посоветовать, какой-нибудь готовый проект на гитхабе где это реализовано, какую-нибудь технологию, в общем что-то, чтобы не создавать с нуля эту доску.