Шапка слегка дополнена и красуется в ОП-посте, т.к.количество слабоумных, которые не могут перейти по двум ссылкам растет.
Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна. Сейчас все советуют Hyperskill. Более продуманный план обучения.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать? A: Книги: https://libgen.is
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
>>1769582 (OP) > Шапка слегка дополнена и красуется в ОП-посте, т.к.количество слабоумных, которые не могут перейти по двум ссылкам растет. Не спасёт от других слабоумных, которые не читают шапку перед тем, как спросить. ШАПКА НЕ НУЖНА
Каково это ловить сегфолты и плавающие баги вместо программирования?
5-10% большей производительности и 50% меньшего потребления памяти (которая в облаках стоит муку, а абсолютно все современные софтовые продукты облачные) действительно стоят того гемора в который ты вкатился?
>>1769810 Конечно корректно. Просто конкретно тут можно зарефакторить и вынести что-то в отдельный метод хелпер который будет сетить филды и обрабатывать ошибки, чтобы было более читабельно.
>>1769776 >потребления памяти (которая в облаках стоит муку Держи наркомана! Память в облаках стоит конских денег. И вообще облако, как только у тебя начинается потребление ресурсов выше минимального, начинает стоить каких-то неебических денег.
>>1769816 Да и еще пара моментов: 1. У тебя есть логгер, но ты пишешь в System.out 2. Скомбинируй сообщение об ошибке "Failed to parse number" и саму ошибку в одной записи лога 3. Пиши лучше log.error() это более читабельно. 4. Ты пишешь по русски - оставь эту привычку навсегда, в логах только латиница, без русских букв, псевдографики и умляутов. Только ASCII, чтобы потом не страдать геморроем с правильным декодированием логов в ELK.
>>1768646 → Отучился в бауманке кстати в прошлом году на робототехника, отходил почти на все пары, диплом со средним баллом 4.5, ни разу не работал, с 3 курса просто с ноутом сидел на последних рядах и лениво ковырял пердун и курсачи, гордость не позволяла их купить за 5-6к оглядываясь назад, лучше бы я их купил, они сожрали месяца два моей жизни в часах. Денюжка была с различного рода шабашек на фрилансе, телеботы, боты для любимой игры, чтобы автоматизировать процесс гриндилова и всякие задачки долбоебам и т.п.
Щас я понял, что пердун говно и собираюсь ПЕРЕАБУЦЦА чтобы в офисе сидеть. Но фактического опыта-то у меня нет, интересно, смогу ли я найти стажировку на жабе\котлине и как это гуглить.
>>1769987 Решил всё левое не ставить, типа AWS, git и прочее. Выдаёт 900 Мб схаванной памяти. А так вроде работать можно. Пека старая, не удивительно, что будет подлагивать.
>>1769938 >гордость не позволяла Ничего, скоро придёшь стажёром к 22 летнему синьёру, он тебе объяснит чего твоя гордость стоит и диплом со средним баллом 4.5. Будешь с 30 летними таксистами в одном опенспейсе параметры у методов на нулл проверять, нюхая их пердёж и слушая истории о личинусах.
JetBrains Academy will remain in the Early Access Program (EAP) with free access until July 1, 2020.
If you register on the platform before July 1, 2020
You will continue to receive free access to all JetBrains Academy learning activities and resources until January 1, 2021. You will get a 50% discount off a regular price of $49.90/month for the following 12 months after the free period ends, and will need to pay only $24.90/month for your subscription.
Понятно, а я зарегался 5 июля. Куплю ваш аккаунт на хайперскиллс
>>1770162 Там нечего фильтровать. Тупо пропускаешь главы по графике, апплетам и подобной хуйне, все остальное читаешь. Если ты не можешь отфильтровать материал в книге, то в программировании тебе делать нечего.
>>1770142 >>Your free trial ends on January 1, 2021 Времени то полно еще, тебе там 2-3 месяца хватит на все. или ты не регался там когда все бесплатно было и теперь хуйца соснул?
Привет, посаны. Начал изучать Джаву по Герберту Шилдту(месяца два не спеша), которое полное руководство и устал от воды без упражнений. Хотел было забросить, но тут услышал о книге Java. Методы программирования. Мне понравилось изложение. Первую главу прошел, все задания из варианта А сделал и уже скучно становится, опять чувство чего-то не того. Может быть выполнять не все упражнения надо, а 1-3 выбрать, сделать и двигаться дальше, не? Как сопоставить процесс изучения и упражнений, чтобы не было желания забросить обучение? Вот в C# можно каждую функцию через десктопное приложение делать, там не только консолька.
Почему кстати только в джаве такое повально кол-во вакансий исключительно для челов с высшим? У меня 4 человека, включая меня, вкатились в питон/ноду бэк, во фронтенд, все мы без высшего. Но вот кореш, который выбрал джаву, уже три месяца не может устроиться. А у него единственного прогерский бэкграунд был, в школе моды на майнкрафт писал. мимо полз в свой тред
>>1770325 Знаете, что меня больше всего раздражает в айти?
Это обилие программистов с мозгами подростка. Почему половина программистов - это парни в футболках с программистскими приколами или героями мультфильмов, в огромных кроссовках, с наушниками на шее и полупустым рюкзаком за спиной. Большинство их разговоров - это программирование и фильмы по комиксам. Часто они неухожены, носят козлиные бородки или несколькодневную щетину. Свои зарплаты они тратят на развлечения или на всякие айфоны и тд, но при этом не могут себе купить нормальную одежду для мужчины.
Казалось бы, у тебя есть деньги, купи себе одежду, постригись/побрейся, запишись в тренажерку. Но нет, хочу выглядеть как бомж, или как великовозрастный подросток.
>>1770282 >месяца два не спеша Я через 2 месяца уже на первое собеседование пошёл. У тебя, наверное, мама вкусный борщ готовит? >>1770316 >прогерский бэкграунд был >в школе Улыбнулся. >моды на майнкрафт писал Заорал. Ты о таком лучше вообще не говори. Про курсы, олимпиады, вот это всё. Что ты там задачки с жабараша решал. Просто не надо и всё.
>>1770332 О, новосибирский до жаба-треда добрался? >программистов с мозгами подростка Хз, я только типичных женатиков с 2-3мя детьми вижу вокруг. Подкачанные, загорелые, в дорогих шмотках. Выглаженные белые рубашки (притом, что дресс-кода нет), разговоры только о путешествиях, хобби (дайвинг, верховая езда, иностранные языки). Где-бы найти таких же сычей, чтоб двач и маняме обсуждать, а джинсы с рынка не вызывали ухмылок?
>>1770380 >>Я через 2 месяца уже на первое собеседование пошёл. С чем пошел? Что знал/умел? Диплом погромиста? я тут 3 месяца спринг ковыряю, думаю как микросервисы, докер и ангуляр в дополнение к нему осилю можно будет вкатываться
>>1770382 С верой в свои силы, знанием кора, SQL, алгоритмов и 3х аннотаций спринга. Чё на жопе то сидеть? Берёшь тестовое, делаешь, потом на собеседование. Работа сама себя не найдёт, а узнать, что конкретно надо учить можно только на собеседованиях. В любом случае, на самой работе тебе придётся учить в разы больше. Во всяком случае в первые месяцы, дальше не знаю. Думаю, что так будет всегда.
>>1770640 С хорошей работой интересней жить. Хотя, даже сейчас, я бы не стал никому рекомендовать в их лучшие годы сидеть в офисе и смотреть в монитор.
>>1770670 >>я бы не стал никому рекомендовать в их лучшие годы сидеть в офисе и смотреть в монитор А что бы ты рекомендовал? Отдыхать на своей яхте с блядями на Карибах?
>>1769582 (OP) >Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? >A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий
"Охуенно" такое читать, когда ты там работаешь....
Там же есть не только для начинающих задачи. Та же стажировка или секция с играми..
>>1770758 Делай, что приятно. Мультики китайские смотри, спи до обеда, дрочи 3 раза в день. Нахуй офис, нахуй работу. Успеешь ещё. В любом случае придётся лет 30 вставать по будильнику 5-2 каждый день до самой смерти, когда бы ты не начал, в 20-25-30.
>>1770836 Бабла на жрат можно и в пятёрке поднять. А там брейндед деятельность, коробки по полкам раскладывать. Не надо по несколько часов усиленно думать.
В теплом комфортном офисе давить на кнопочки и пердать в стул, коллеги обычно нормальные люди. Зп 100к+
То ли дело на дно работе, где-то в пятерочке где тебя начальство даже за человека не считает, а большинство коллег просто опустившееся быдло. Ну и зп раза в 4 меньше
>>1770856 Ты серьёзно сейчас? В твоём тёплом офисе сидит такое же быдло, просто получает 100к. Начальство не просто не считает тебя за человека, оно ещё и не стесняясь с этого рофлит. Просто им хватает ума не хуесосить прямо в лицо, в отличии от менеджера в пятёрке. Или ты сыч и никогда не был на корпоративах? Сходи разок, посмотри, послушай о чём они говорят. Это если тебе вообще повезёт и барин соизволит сесть за стол с плебсом. Самая мякотка, это если ты будешь участвовать в рекрутинге, собесах. Ехидные комментарии о твоих возможных коллегах быстро откроют тебе глаза. Зарплата это вообще не показатель хорошей работы. По лесу с рюкзаком и телефоном шастать выше оплачивается, или сосание хуёв. Я вот недавно 6к за час такой оставил, по сути для неё это был час фитнеса. Мне для этого надо 2дня перед экраном сидеть, хешмапы в идее крутить. Ладно там финансовых аналитиков или нейрохирургов считать представителями престижной профессии, но сраное айти?
>>1770885 Ты серьезно сравниваешь секс с всякими рандомами, в том числе и неприятными тебе людьми с проперживанием стула за компом? Ну так перекатывайся в проститутки, какие проблемы. Желающих отполировать хуем твое очко, думаю хватает. Как разраб, ты видимо не очень состоятлся, раз так мало зарабатываешь.
Теперь возьмем челика за 100к. Удобный офис, оплачиваемые больничные, нормальный отпуск, еда в офисе кофе чай в офисе, спокойная работа - действительно просто нечеловеческие условия труда. Рабство одним словом, кек.
Большей части этих устройств всё равно, потому что половина - это уже выброшенные на помойку кнопочные мобилы с ж2ме, а вторая - ведроид, где всё равно не жававм.
Читаю статью про рефлексию > На момент старта java приложения далеко не все классы оказываются загруженными в JVM. Если в вашем коде нет обращения к классу MyClass, то тот, кто отвечает за загрузку классов в JVM, а им является ClassLoader, никогда его туда и не загрузит. Поэтому нужно заставить ClassLoader загрузить его и получить описание нашего класса в виде переменной типа Class Поясните тугодуму, что тут имеется в виду? Как так может быть, что в коде нет обращений к классу, но мы к нему обращаемся через рефлексию, а может сразу напрямую обратиться? Или это все нужно для ленивой инициализации?
>>1771318 >>1771322 Вообще, что имеется в виду? Почему мы заставляем окольными методами JVM загрузить класс? И если, допустим, это про ленивую инициализацию, то зачем это нужно, учитывая JIT компиляцию?
>>1771315 Предполагается, что иногда на этапе компиляции неизвестно, какая именно реализация какого-то ресурса будет юзаться, при этом с ресурсом ты будешь работать не напрямую, а через специальный интерфейс. Ну а в интерфейсе под капотом в рантайме будет подгружаться и настраиваться ресурс. Например, конкретный драйвер базы данных.
Method m = myClass.getClass().getDeclaredMethod("name"); Method m.invoke(myClass); myClass предполагает, что можно выполнить метод любого класса, имеющего метод с таким же названием/аргументами и типом? А если до этого мы сделали method.setAccessible(true); То приватный метод любого класса?
>>1771418 >myClass Это Class myClass илиии? Это не класс? Тогда почему так назвал? >Method m.invoke(myClass); ммм... В доках всё есть, советую заглянуть.
Сначала рефлексия, дальше процессоры аннотаций и генерация байт-кода, потом обмажутся спрингом с хибернейтом, а там и до динамикодрисни на js недалеко.
>>1771439 >>Сначала рефлексия, дальше процессоры аннотаций и генерация байт-кода >>потом обмажутся спрингом с хибернейтом В спринге все это знать нахуй не нужно, там написал анотацию и все работает. А все эти генерации рефлексивных процессоров для упоротых.
>>1771459 Лучше и гугли ещё при этом. Так лучше запоминается, да и узнаешь в итоге больше, чем если бы просто написал код. Когда всё по отдельности это не прокатит. Если просто прочитал, без практики - то быстро забудешь. Если просто написал, без теории - то нихуя не поймёшь по итогу.
>>1771509 Ну а что тебе интереснее разгребась индусский говнокод и неебической логикой в 10 слоев или изобретать велосипед для запуска костыля для обхода граблей на костылях с повторением процесса для каждой версии андроида и марки телефона? >>на интересной работе работать не смогу За это можешь не переживать
>>1771513 >За это можешь не переживать Не очень понял твой посыл. Возможно какая-то попытка подколоть тем, что я никуда не устроюсь, ну да ладно.
>>1771513 >для каждой версии андроида и марки телефона? >Лично мне api андроида показался настолько уёбищным Я скорее гей-разработку имел в виду iOS Не знаю, насколько это принципиально.
>>на интересной работе работать не смогу >>на интересной >>не смогу Не интересную работу тебе всегда найдут.
>>Я скорее гей-разработку имел в виду iOS А вот это хз, с аёсом должно быть проще, но мобильные разработчики часто пишут на все платформы разом. Андроид и аёс наверное даже ближе, чем андроид и спринг.
Добрый вечер, котаны. Подскажите мурзилку по валютным рынкам, чтобы максимально быстро вкатиться в предметную область. Можно на английском. Интересуют ордеры, маркапы, теноры, кат-оффы, вот это вот все из FIX области.
>>1769582 (OP) Привет, пишу на Spring Boot и Hibernate. Когда пишу контроллер на эндпоинте из-за bidir отношения OneToMany и ManyToOne они рекурсивно подгружаются и в респонзе json первого, потом по нему внутри json второй сущности, а там cнова тот первый и т.д. в итоге только он и выводится. Как правильно расписать отношения в hibernate?
Первый раз открыл вопросы ОП на собеседованиях, удивило то, что там перечислены ВСЕ функциональные интерфейсы, это рофл, или их надо ВСЕ учить? Хотя можно по названию догадаться, наверное. И еще, кто-то в 2020 будет спрашивать про время работы методов и алгоритмов? То есть, не абстрактно сказать, что добавить элемент в список быстрее, чем выделить память под массив и копировать элементы, а прямо время считать?
>>1772029 >прямо время считать В чем считать, в минутах, секундах? Хуйню какую-то говоришь, никогда такого не было. Есть оценка сложности в биг-О нотации, time complexity еще называют. Вот ее надо знать, это обязательно. Ты должен будешь пояснить для чего она нужна вообще ну и разница между основными оценками, что меньше O(n) или O(2n).
>ВСЕ функциональные интерфейсы Что, неужели ВСЕ двадцать? Ну так они похожи все, там всего несколько типав разных, а потом лишь параметры меняются. Загружу тебя еще сильнее: спрашивают не просто имена функциональных интерфейсов, но и дефолтные методы в них. Так очень легко понять с чем ты работал, а с чем нет, знаешь ты их по книжке или реально в серьезном деле применял.
>>1772029 > ВСЕ функциональные интерфейсы Если их реально где-то спрашивают, это ваще пиздец. То, что у тебя каждый частный случай лямбды имеет какое-то нерегулярное название - это само по себе эпик, а тут ещё и запоминать надо.
>>1773151 Лень вникать, но из систем.ин.реад() идут вообще все символы, включая нажатие на энтер. Сканер же пропускает пробельные символы при чтении непробельных.
Вопрос не совсем по джава. Какой второй язык взять чтобы фрилансить на легке (всякое легкое говно поделывать)? Думаю в сторону PHP. 7ая версия чуть ли не копия джавы. А то на работе фикс, а денег хочется больше.
Вкатуны, сколько вам удается заниматься в день Java? Вот я больше пары часов учебник грызть не могу, наступает предел. Пока разберешься, пока все примеры и задачи сделаешь. Потом иду на работу.
>>1773871 5-7 часов. Иногда до 10. Но я не учебники грызу, петпроекты пилю по гайдам и много времени уходит на гугление всякой поеботы. Что касается учебников - Хорстман уже неинтересен, до Фаулера не дорос. А спринг, докер и тп изучаются по официальной доке. >>Потом иду на работу. Без работы проще же. Пока работал учеба шла хуево, щас - ок. Правда хуевый из меня вкатун - жабу со спрингом и жс я более-менее знаю, но вместо того чтоб работу искать, лезу в очередной фреймворк.
>>1773871 Не работаю, поетому 5-10 часов с перерывами по 10 минут. Ну или меньше, все зависит от того, как я проснусь и как быстро я начну отвлекаться на двачи.
>>1773871 Если тасков нет, то стараюсь страниц по 20-30 читать книги, по часику на ютубе смотреть какого-нибудь задрота или статьи какие почитать. Если таски есть, то вообще нихуя не делаю кроме них.
>>1773993 где-то третью неделю, читаю книгу Философия Java, какие-то примерчики набираю. Я просто профессиональный программист на ++, так что на работе еще мозги выносят. Сейчас потребовалось создать приложение на андроид и вот решил вкатиться. Начал сразу с андроида, но через две недели соснул хуев и откатился до изученя джавоньки.
>>1774103 Каких тасков? Каких задротов с ютубу смотришь, я прост. бумер, когда мы учились никаких ютубов не было, все приходилось делать по старинке книга + консоль
>>1774139 Таски - это на работе задачи. На ютубе смотрю то, что попадётся. Вот сейчас Борисова смотрю, например, про спринг и все эти ПостБинПроцессоры. >бумер 30+? Сейм.
>>1774139 Книги годятся для азов и для архитектуры/рефакторинга. Конкретные технологии лучше по официальным докам на сайте изучать, они сейчас весьма годные почти у всех. Примеры из книг часто устаревшие/нерабочие. А книги от индусов это пересказ их же видео на ютюбе.
>>1774164 >Конкретные технологии лучше по официальным докам на сайте изучать Ну кому как. По тому же спринг мвц дока достаточно скомканная, и не всегда понятная, в отличие, например, от доки по спринг дате. Поэтому я читаю "spring mvc: beginners guide", там как для маленьких все поэтапно объясняется. Хотя после нее все равно надо будет прочитать доку с новыми силами.
>>1774152 Как скажешь! Я когда по собесам бегал, то достаточно сильно меня там поебали по всяким контекстам и прочим прокси-классам. На работе вот тоже чувствую слабость собственных знаний на фоне старших коллег. Моя цель, за год(ы) джуниорства изучить всё это говно, также как я сейчас знаю кор. И (No)SQL ещё задрочить до уровня хорошего знания пары диалектов.
>>1774195 >опыт Небольшой, само собой некоммерческий. >зачем задрачивать No(SQL) Чтобы быть тем самым чуваком, который спокойно в уме пишет запросы уровня 3,4 с sql.ex. Сейчас я чувствую, что всё ещё плаваю во многом.
Как в идее нормально комментить? Я до сих пор не могу привыкнуть к тому, что мне надо выцеливать строчки после удобных комментариев в пайшарме, чтобы не было такого говна.
захотел написать утилиту, которая будет по ссш делать мне минет команды, вроде изи, подумал я. А сейчас сижу с разодранным сгоревшим пуканом, что нужно подключать парашную jsch, из-за которой моя небольшая утилита превратится в огромную хуиту. есть альтернативы нормальные?
>>1774805 > У меня сосед в общежитии купил подписку на джавараш, пол года задротил, месяц назад устроился в банк восточный джуном на 40к не в дс, я ахуел конечно. Ну что сказать, красавчик твой сосед.
>>1774870 >Что говорят обычно? Ну, если эйчарка соизволила не отправить мое резюме в мусорку (просмотрено -> отказ) то так: 1. Звонок хэрочки 2. Обычный разговор по теме 3. "А вам же 20 лет, вы получается студент? Почему не указали?" 4. "А, вы не учитесь? Кхм-пук знаете досвидания"
>>1774892 Дальше пытаться конечно, егэ я сдавал по гуманитарным предметам после школы, а для универа айтишного математику сдавать ну его нахуй (мне 3 рисовали за софтскиллы). И денег мало. Я за полгода работы прокачался с эникея до младшего сисадмина, но это путь в никуда, я не хочу сгнить в серверной. Я хочу в разработку, а мне шансы нехило срезает ебучая корочка.
>>1774897 Немчинский утверждает, что работодатель не хочет брать совсем юнцов без корочки по той причине, что он может надумать через месяц, полгода свалить в другую профессию, свичнутца короче. Следуя этой логике работодатели больше боятся буйства твоих гормоно, в то время как наличие обучения и\или корочки говорит о твоих серьезных намерениях развивтся в профессии. Хотя, странно что ты выбрал жабу ее выбирают старые пердуны анимедрочеры же. >о это путь в никуда Почему в никуда, девопсы востребованы и зряплата на уровне разрабов
>>1774897 > Я за полгода работы прокачался с эникея до младшего сисадмина, но это путь в никуда, я не хочу сгнить в серверной. Зря так думаешь. Грамотный админ получает не хуже рядового разработчика. Тут тоже есть свои ветки развития.
>>1774900 >жабу ее выбирают старые пердуны анимедрочеры же Я сначала даже парился немного, что у меня и гитхаб с немного странным именем, и аватарки в мессенджерах соответствующие и вообще. А потом сначала у лида увидел маняме обои на ноуте, потом ещё у кого-то футболку и как-то отпустило.
Работаю в крупной гос. конторе, у нас зарплаты для джава разрабов смешные, порядка 100к, но у нас без вышки берут только блатоту разную или по рекомендациям. Разрабы так и говорят, что им похуй знает чел джаву или нет, главное что бы программерская или математическая вышка была, вот заставят его какие-нибудь нейросети осваивать или дисперсию считать или CUDA ну и что делать с челиком без вышки? Он два вектора сложить не сможет, а от слова интеграл в обморок ебнется. На мой взгял сложней без знания джава в джава разрабы вкатиться, чем без технической вышки в джава разрабы.
Умные аноны, помогите, пожалуйста. Нужно написать бэкэнд для мобильного приложения используя Spring. Скорее всего мне нужен конкрентно Spring MVC. Посоветуйте книгу или курс по этому фреймворку.
У меня диагностированное шизоидное расстройство личности. Меня могут взять на работу? Естественно я не очень общительный и мне наверняка будет трудно влиться в команду. Техническая вышка есть.
>>1775170 А джава в основном популярна в банках, так ведь? В идеале мне бы работать на удаленке/фрилансе, потому что если нужно будет часто взаимодействовать с людьми (у вас же там постоянно митинги/совещания/стендапы), то у меня вряд ли что-то получится.
>>1775174 >>1769582 (OP) >Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? >A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
>>1775447 Понял. У меня в аналогичной ситуации (когда нужен был фильтр по вложенному полю) заработало без подчеркивания. Но это было в монге, может какие-то особенности spring-data-mongodb тут сыграли на руку.
>>1775548 >въехать в синтаксис языка Так ведь не только кор использовать придётся, но и все эти стримы, HQL, SPeL (и другая магия), различные аннотации (не только Spring, но и Lombok, Swagger). Думаешь Шилдт тебя научит простейшие Json объекты создавать? Или вывести содержимое бд в виде простейшей HTML страницы? Запускать процессы "по будильнику"? По отдельности это всё мелочи, но вместе там нихуёвый такой объём информации. Пили свой проект, какой-нибудь интернет-магазин, универсальную тематику я ещё несколько тредов назад придумал. Бордель.
У меня одногруппника всю плеш прошёл про Java Mentor. Грит что договор подписал и там по условию после полгода обучения тебя на 300у/наносек миддлом сразу устроят. Насколько на развод похоже?
>>1775602 >>Насколько на развод похоже? Примерно на 146% 77,92%. А вообще договор нужно внимательно почитать в том какие конкретно меры по трудоустройству они примут и в каких случаях.
>>1775613 Надо в джаве эйджизми ввести - нельзя программировать на языке, который старше тебя. Не зря же на коболе пишут деды 70+. Пускай зумеры свои языки придумывают.
Ребят, каким методом лучше изучать Java? Всю жизнь на книгах, поэтому и выбрал "Полное руководство Шилдта", пержу на 300 странице, грубо говоря тот еще говно-теоретик.
Но крутые люди на потоке обучаются посредством собственных проектов. Типа берут идею и реализовывают, параллельно гугля то, чего они не знают.
Вот и не знаю теперь, правильную ли методику обучения я выбрал
P.S. Это нормально, что я в несколько тредов один и тот же вопрос залил?
>>1775591 Наверное, ты прав. Я вот обмазался книгами: Сеттер, Сьеара, Шилдт. Посмотрел какие-то уроки на ютабчике. Прохожу курсы в Джет Брейнс академии. А вчера вот открыл текстовый редактор, мол пришло время пилить свой проект. А с чего начать хз. И вот сижу я перед пустым редактором пью кофе и почесываю свою жиденькую бородку. Посидел так минут 30 и пошел аниме смотреть.
>>1775738 Ну а смысл того, что ты прочитал эти 300 страниц? Ты не закрепил эти знания. Прав тот, кто по диагонали читает литературу, посвящая этому 30% времени. Остальное практика. Попутно с практикой ищешь необходимую тебе информацию
>>1775739 бля я бумер с++, перекатываюсь в джава, два дня читал главу из "философия java", бля, мало того, что у меня один пример не скомпилился, так я хуею просто с вкатышей, как они все это осваивают бля. Я даже с бэкграундом в си++ иногда спрашиваю себя "что это вообще за хуйня и зачем", особенно охуенно там объясненно назначение анонимныых классов. Кстати, аноны, почему не компилится то, ебушки-воробушки.
>>1775814 У меня еще есть тоненькая книжка Хорстмена "Java SE 8" базовый курс, но там как-то все поверхностное. Шилдта после его книг по си++ вообще не читаю.
>>1775790 >философия java Ахуеть, кто-то действительно этот талмуд читает! Это ж та книга на 1000 страниц, но где нет ни слова о 8ой жабе? Ты заранее решил к легаси готовиться или просто делать нехуй?
>>1775866 я прост сразу к собесу готовлюсь. в си ++ мирке люди такие талмуды наизусть должны знать и то мало, как ща пишут - путь ++ это талмуд кнута на зубок и еще там 2-3 книги для старта
>>1775790 >почему не компилится Он не знает что такое Destination. Это должен быть класс или интерфейс, на основе которого генерится анонимный класс.
>>1775821 >у них же есть имя А вот нихуя. Для новичков конечно это сложно для понимания, но здесь создается класс, производный от того, который указываешь ты (в данном случае - от интерфейса Destination). Сделай в мейне System.out.println(d.getClass().getName()) и ты увидишь что имя класса не Destination, а че-нить типа Parcel10$1 (первый анонимный в Parcel10).
>>1775815 Платная на твоем уровне еще не нужна. Там есть Community Edition, она бесплатна. Отличия для для джава вкатывальщика несущественны: отсутствие инструментов SQL, фронта, спринга. На спринге можно разрабатывать, просто там менее интенсивная обвязка.
>>1775797 Пример, конечно, конченый: - перенос строки между возвращаемым типом и именем функции - явные final модификаторы, хотя в Java 8 (что является минимальной Java на сегодняшний день, т.е. Java 7 - уже легаси) модификаторы файнал для переменных в лямбдах и анонимных классах выводятся автоматически - анонимный класс на каждый экземпляр объекта, а судя по бизнес логике инстансов будет очень много, стандартный DTO - инстанс инишилайзер - инстанс инишилайзер с бизнес логикой - инстанс инишилайзер с бизнес логикой и сайд эффектами Как бы пример норм для обучения, показывает сразу миллион техник одновременно, но в проде такое не пишут никогда, ебанина полная.
>>1776132 хуясе ты боярин! А у меня еще есть NetBeans, она как? Норм? Просто я прочитал, что надо сперва в консоли компилировать. Что спрашивают на собесах по джавоньке? Алгоритмами дрюкают или по синтаксису? В си++ ща новый тренд пошел, надроч на олимпиадные задачи.
>>1775937 >>1775952 Переделал в общем с вызовом с помощью рефлексии и всё заработало. Ну и тут ещё главное что @Retentation использовал, а затем указал аннотирование не перед классом, а перед методом. Если с @Retention всё понятно, то @Target каша какая-то, без 100 грамм не разберешься.
>>1776146 Получается, что при каждой аннотации необходимо обязательно указывать @Retention и указывать что будет действовать во время выполнения с помощью RUNTIME. И уже дальше можно указывать после этого @Target и всё остальное. Окей, я понял.
>>1776139 Чекни 22 тред, не должен был еще утонуть, я каждый тред на эти вопросы отвечаю. Ctrl+F, собес, интервью. Я Миша веду собесы. Дрюкаю алгоритмы и синтаксис, все что в голову придет и куда разговор нас направит (часто следующий вопрос вытекает из ответа собеседуемого на предыдущий). Есть книжка 1000 Java interview questions, советую.
>>1776139 >NetBeans Ну такое. Не пользовался, но вроде бы не очень. Еще есть Eclipse, тоже бесплатный, но потихоньку сдувается. IDEA мейнстрим сейчас.
>надо сперва в консоли компилировать Надо. Для себя. Я не спрашиваю. Про консоли могу спросить про запуск из консоли и про ключи, про cp, про джарники. С предыдущего треда никто не ответил на вопрос про самый важный для прода ключ (ну, один из самых важных).
Аноны, что вторым языком для джава выбрать? Меня просто заебывает один язык, люблю программить на разных, так легче почему то все освоение идет. Т.к. я вкатываюсь в джава стек, то соответственно либо kotlin либо scala. Планирую вкатываться в Spring, Enterprise, но пока есть (будет) пет-прожект на андроиде. Поясните за JavaFx что это за зверь? Знакомый зовет к себе, говорит, что я должен освоить если к ним хочу.
>>1776170 >>Дрюкаю алгоритмы и синтаксис, все что в голову придет и куда разговор нас направит А если я упомяну что могу запилить круд с двухфакторной аутентификацией на спринге и немного умею в реактивность, мне пизда? Бинпостпроцессоры писать заставишь?
>>1776253 >Бинпостпроцессоры писать заставишь? За кого ты меня принял, я не Евгений Борисов. Скромно попрошу написать реализацию equals для своего класса.
>>1776229 >>Планирую вкатываться в Spring, Enterprise, но пока есть (будет) пет-прожект на андроиде. Для начала выбери тебе энтерпрайз или мобилки. Для энтерпрайза для начала спринг изучи, а потом можно - жс, го, кложур, или даже скалу. Для мобилок - котлин, свифт, жс >>JavaFx что это за зверь? Свинг на стероидах. Может андроид их использует, но это в другом треде надо спрашивать. В энтерпрайзе его почти нет.
>>1776442 Ну я, пока учился на инженера-долбоеба, ковырял ботов в телегу на питоне, потом бота-фармера-трейдера для PoE написюлькал очень хуевого, не осилил хукать инфу сразу из игры, автоматизировал сортировку инвентаря в той же игре с использованием cv2, ну и в рамках диплома систему отслеживания вещей на складе + штрихкоды высрал с использованием мускуля.
Меня сбивает с толку такое огромное количество наименований.
>>1776464 Не в каждом проекте на который ты приходишь будет ломбок, но дело даже не в этом. Такие базовые вещи не должно быть проблемой вручную набросать. За рутиной написания этого метода по памяти скрывается глубинное понимание вещей, знание контрактов этого метода. Даже в таком якобы простом методе можно обосраться. Можешь свой какой-нибудь засветить, сообщество оценит. А по поводу кодогенерации - так тебе же еще нужно поддерживать код, читать этот метод, написанный бывшими и текущими коллегами, обнаруживать в нем ошибки. И так везде: ты должен знать экзекуторы, но уметь запускать тред вручную, ты должен знать классы-хелперы для синхронизации, но уметь пользоваться wait/notify, знать спринг дату, но уметь и в JDBC. Базовые инструменты это как строительные кирпичики для чего то более глобального. И вот общий посыл такой что тебя проверяют насколько гнилые или наоборот, прочные, твои строительные кирпичики.
>>1776489 >>Базовые инструменты это как строительные кирпичики для чего то более глобального. Скорее наоборот. Ты сначала изучаешь что то простое, а потом копаешь как это устроено. В физическом мире - тебе не нужно знать технологию изготовления марки стали из которой был сделан двигатель внутреннего сгорания, чтоб пользоваться автомобилем.
>>1776503 >В физическом мире - тебе не нужно знать X, чтоб пользоваться Y. Совершенно верно. Но либо пример не работает, либо логика. Иначе как объяснить всех этих людей: спринг-потрошитель, хибернейт-потрошитель, jvm-потрошитель.
>>1776505 Я как-то после выходных минут 10 сравнивал стринг через ==, зато потом понял, почему такие базовые вещи учить надо. Миша всё верно говорит. Если рефлексивность, транзитивность, симметричность, непротиворечивость для тебя просто набор слов, то тебе перезвонят.
>>1776453 я бумер-олдфаг с пятеркой языков в багаже, хуй там, смог за три недели освоить только треть книги "Философия Java" и уже волосы от напруги на жопе шевелятся, правда я еще на работу хожу программистом(сейчас на PHP) По моим подсчетам освоить java, занимаясь по вечерам для прогера это недель 12-15 , работая по 2 часа в день (приходится на работе пиздить еще время)
>>1776591 Результат будет не таким, какой ты ждёшь. Вдруг там логика каким-то образом завязана на то, что someStr указывает именно на ту самую строку из пула строк... Но более вероятно, что это баг, так что смотри git blame, открывай джиру и заводи баг.
Сориентируйте по книгам для первоначального вката. Пока синтаксис базовый, основы какого-нибудь spring'a. Как принципы ООП представлены в Java. Короче с нуля, но в программировании опыт есть, но не в Java.
Вот что из пикрилов лучше читать. Или всё можно осилить. Анон, твоё мнение об этих книгах.
>>1776772 Я начинал с Майка МакГрата "Java. Программирование доя начинающих" там всего страничек 200, потом бегло пробежался по Сьерре (Мне так и не удалось найти переиздание под жабу 8+ поэтому бегло), потом Шилдт. Философию читать ваще смысла нет, пока не устроишься работать. Но как тут писали анончики важно не зацикливаться на чтении, больше практики...
>>1776772 я читаю философию (с программерским бекграундом), очень тяжко идет, там сейчас 1100 страниц. Я бы х.з. с head first начал, а потом отдельно по темам из разных источников набирал.
>>1776772 Я начинал с Head First не имея вообще никакого опыта программирования лабы на с++ на 1 кусе универа не в счет, и могу сказать, что читается довольно легко и все понятно, хотя стиль изложения своеобразный, но мне зашло. После нее пробовал читать Шилдта, идет тяжело, так что я в итоге плюнул и начал читать просто чужой код и сам что-то ваять.
>>1776932 Нет конечно. 1. Изучишь основы. 2. Пет прожект. (тут ты должен понять для тебя ли вообще программирование) 3. Дальше задроч к собесу и пляски раком для вкатывания.
>>1776932 Что значит нужен? Нужны мидлы и выше, востребованность адовая, джуном, как выше отметили, чтоб вкатиться будешь плясать раком, рассылая резюме во все конторы в поле зрения, может повезет, а может год будешь ходить по собесам.
>>1776951 Можно в стильный и модный js вкатиться уже прямо сейчас без задней мысли. По хэндхантеру на ждуна около 200 вакансии по сравнению с 50 вакансиями на Java ждуна.
>>1777139 На фронта и желающих больше, притом разы. Ведь там через год уже 150к, ещё и по всякой унылой хуйне (вроде SQL и алгоритмов) ебут меньше. Вкатуны в основном только туда и лезут же.
>>1777139 Это да, а если сверху ещё накатить пыху, то можно и на ждунчика не претендовать, а идти во фриланс и колупать всякое гавно на вордпрессе. Деньги будут, а надоест через неделю от одного и того же и начнёшь волком выть, да ещё надо карму набить и целовать заказчика в зад. А можно и вовсе подскакивать кабанчиком находить клиентов на веб и нанимать ололоева фрилансера за еду и учить ничего не надо.
>>1777395 Когда каждому значению из одного множества ставится в соответствие значение из другого. Примеров много, например, маппинг роутов к контроллерам в MVC.
Такой вопрос, есть ли смысл углубляться в Java EE или сразу в Spring для создания своего пет-проекта? Просто во многих вакансиях я вижу необходимо знание Spring. Но может быть в Java EE основы заложены?
>>1777464 Если не планируешь идти на проекты на ЕЕ-стеке, прям углубляться смысла нет, спринг основывается лишь на базовых фичах ЕЕ, для остального решения у него скорее альтернативные, чем развитие ЕЕ-шных. К примеру, и там и там юзаются жпа и сервлеты, но вот mvc - это не надстройка для jax-rs, а независимая технология.
Тред не читал, на что перекатиться с Idea ? Лет пять плотил исправно, но теперь среда зговнякалась, обновление ставить страшно, всё перестаёт работать нахуй.
>Учишь всю осень и зиму Java + Spring, делаешь один пет проджект, закидываешь на гитхаб, подаешься на Sberseason и идешь работать за 40к в месяц за 20 часов в неделю
>>1777581 > Учишь всю осень и зиму Java + Spring, делаешь один пет проджект, закидываешь на гитхаб, подаешься на Sberseason А после собеса на сберсизонс мне сказали, что я могу попробовать пройти к ним сразу на ставку через ещё один собес, и прошёл.
>>1777581 >Учишь всю осень и зиму Java + Spring Ну вполне реально, сам так делал. >делаешь один пет проджект Ага, лаба1 или калькулятор. >подаешься на Sberseason Это какие-то курсы? Ну тогда ты точно долбаёб. >идешь работать за 40к в месяц за 20 часов в неделю И идёшь нахуй или потом ещё полгода бегаешь по другим собесам.
>>1777581 > за 40к в месяц за 20 часов в неделю Там это так не работает, если ты идёшь на полставки, то и получаешь половину, то есть 20.
>>1777587 > Это какие-то курсы? Стажировка для студентов на 3 месяца. Именно для студентов - выпускников туда не берут. > И идёшь нахуй Судя по тому, что я слышал, там нужно быть конченным долбоёбом, чтобы потом не смочь остаться.
>>1777624 Можешь поступить в магистратуру, тогда возьмут, лол. А так ищи вакансии, хотя сейчас на рынке труда, наверное, полный пиздец, особенно если нет опыта.
>>1777600 Вон в соседнем треде парень описывает свой опыт в госконторе. Сидит в экселе хуйню заполняет, читает двачи, только к концу первой недели дали какой-то скрипт написать. Ахуенный опыт, до 100к лет 5 будет расти.
>>1777638 Это имеет хоть какой-то смысл, пока ещё учишься, ибо найти реальную работу студенту без опыта, да ещё и на полставки, сложно. После выпуска, да, странновато.
Если я пойду на стажировку или работу, то могут исключить из вуза, так как не сданная практика -> не допуск к экзамену. При чем, нужно сначала ходить в универ, делать замеры для лаб по физике, потом приходить и защищать. У нас практика еще по другим предметам есть, но там проще. Что делать, проебать очередной год, пока она не закончится, или что?
>>1777646 Не думаю, что есть разница в поиске первой работы, что с коркой, что без неё. Я пытался найти без корки, попробовал чутка - не вышло, забил. Потом с коркой. Попробовал чутка - не вышло. Повторил раз 50 - и вот я её нашёл. Т.е. в любом случае тяжело будет. Особенно в айти. Особенно во время короновирусной эпидемии. Даже в этом сбере там будет 9000 желающих пойти на эти курсы.
>>1777666 Да там в сбер подаются многие да, правда большая часть из них знает джаву на уровне простеньких лаб. Реально скилловых людей с петпроджектами будет немного, а сбер большая контора так-то.
>>1777581 Если студент, то норм. Если уже выпустился, то нельзя. Можешь пойти в магистратуру и попробовать через 1.5 года, если сейчас прием в магу уже закончился.
Анон, помоги определиться. Делаю прожект для портфолио, а именно сайт, и вот встал вопрос, как именно подойти к вопросу кэширования данных, выдаваемых на вьюшки. Первый вариант: при запуске загружать из БД все имеющиеся данные в кэш. Обновлять их в кэше по мере необходимости, и время от времени сохранять изменения в базу. Второй вариант: при запуске не делать полное считывание БД. Брать оттуда данные по мере необходимости, но повесить на геттеры @Cacheable. Сеттеры сразу сохраняют изменения в БД.
Наверняка вопрос ужасно глупый, но это, по сути, мой первый опыт в организации такого кэширования. Поэтому раньше с таким встречаться не приходилось.
>>1778133 > Первый вариант Не делай так никогда, иначе зачем тебе вообще база с транзакциями, если в любой момент может произойти сбой, и все данные, которые не успели сохраниться, проебутся. Кешировать можно только чтение, запись - нельзя. > Второй вариант Да.
>>1778851 Потому что через == ты сравниваешь не значения, а ссылки на объекты, и они могут не совпасть, даже если значения одинаковые. Но есть нюансы, небольшие значения до 128 хранятся в пуле jvm, чтобы экономить ресурсы на их создания, и ссылки на них совпадают для одинаковых значений, поэтому равны, но всё, что выше, создаётся каждый раз заново.
>>1769582 (OP) Мб это вопрос скорее по QA, но тм не менее. Есть респонс, где в json'е надо проверить, что ссылка в одном из полей на один и тот же файл, как лучше всего это сделать? Гугл и стаковерфлоу не помог не понимаю как гуглить такое
Starter WEB + thymeleaf + hibernate норм стек для изучения и пет проджекта, или надо еще что-то добавить/изменить? Конечно, знаю, что хибернейт легаси, но его точно собираюсь учить.
>>1779960 >норм стек для изучения и пет проджекта Для начала хватит. Ну, можно ещё секурити настроить, рест апишку написать и вьюху на реакте. Всё равно когда найдёшь работу, все свои пет-проекты покажутся детским лепетом в сравнении с реальными.
> знаю, что хибернейт легаси Он не то чтобы легаси. Просто я его так здесь называю из-за того, что уж очень он лично мне не нравится.
>>1779967 Понял, спасибо. А рест нужен для микросервисов, например, вынести работу с субд в отдельный сервис, а хтмлки клепать так же с помощью thymeleaf? Или зачем он нужен?
>>1779971 Рест может не пересекаться с микросервисами, но да, это один из возможных способов их взаимодействия вместе с очередями, SOAP/RPC и прочим. Да и микросеовисы обычно делят по бизнес-,обоастям, к примеру, один сервис с юзерами, другой - с их сообщениями, и у каждого своя БД, а не так, что БД отдельно от кода. Но без микросеоаювисрв с хтмл можно сделать так: сервер отдаёт статическую страницу и выставляет рест-апишку, и уже в браузере js апишку дёргает и дорисовывает страницу в зависимости от её адреса. Это называется single page application. Но если не хочешь заморачиваться с фронтендом, делай через thymeleaf.
Значит в idea уже есть втроенный maven и народ пишет, что ничего больше качать и ставить не надо. Но на команду >mvn -version оно отвечает, что mvn не распознано. Ищу, где же этот maven зарыт в idea. Нахожу: >idea\plugins\maven\lib\maven3\bin (Там лежат mvn.cmd, mvn, m2.conf и т.д. - т.е. это та самая папка) Создаю системную переменную M2_HOME и прописываю туда этот путь - нулевой результат, mvn по-прежнему не распознано. Добавляю этот же путь в системную переменную PATH. Теперь оно в ответ на mvn -version пишет >The JAVA_HOME environment variable is not defined correctly >NB: JAVA_HOME should point to a JDK not a JRE При этом javac -version и java -version отрабатывают штатно. Т.е. JAVA_HOME прописан правильно: java\jdk\bin
эйоу мужики, пишу дискорд бота и мне нужно хранить некоторую информацию о пользователях в базе данных, как это лучше реализовать? я знаю что у спринга есть классная апишка для работы с бд, имеет смысл писать отдельное приложение на спринге? или есть другие инструменты сделать это удобно?
В либе над спринг конфигом стоит @ConditionalOnClass({XmlMapper.class}) Мне нужен XmlMapper, но мне нахуй не нужен этот конфиг, он мне ломает все. Как быть ?
>>1780200 в легаси говне руками собирался String в формате XML и передавался в DeferredResult<String> в рест-контроллере.
Мне нужно добавить рестик, и я не хочу руками дрочить XML. Заюзал XmlMapper - по юнит тестам все идеально.
Но приложение теперь не стартует - пытается создать бин из этой конфигурации и падает, expected single matching bean but found 2 (два каких-то Jackson2ObjectMapperBuilder для разных целей)
До этого этот бин не создавался, и все работало. поэтому подумал что лучшим решением будет как-то заигнорить его
>>1780207 они оба нужны: один маппит HBase сущности, другой Web говно как раз во всяких контроллерах/хттп-клиентах Хмммм Мне получается нужно как-то квалифаером указать, чтобы использовался для Web
>>1780126 >>1780203 Такую ебанину никто не делает. Мавен в идее есть, но для ее, идейных, нужд. Т.е. открываешь панельку Maven справа, выбираешь package, жмешь зеленый треугольничек. Если же тебе нужен мавен в командной строке (mvn в консоли), то просто скачай и поставь его, он все сам пропишет. Не мегабайтов же тебе жалко в конце концов? Иметь два мавена в таком случае не мешает никак - у них даже одна и та же директория c:\Users\<user>\.m2 для репозиториев. А в случае со своим собственным внешним мавеном ты получаешь еще и гибкость в плане выбора версии.
нужна помощь умеющего в HIBERNATE Не ебу как реализовать апдейт существующего купона нормальным способом да и вообще не ебу как и как я понял я немогу в @RequestParam передавать пустое поле Анон как это реализовать можно то? по любому там решение в 2 строки, но я что-то догнать не могу как может как-то через JpaRepository?
>>1780619 > и как я понял я немогу в @RequestParam передавать пустое поле
ok, но как я могу передать "не полный купон" ибо как я понял @RequestParam не могу передавать пустые значения при приеме купона на который надо заменить
>>1780682 Во-первых почему сложный объект в реквест парам пихаешь, а не в реквест боди? Во-вторых, даже через реквест парам можно сделать проще, если убрать кучу параметров у метода и заменить их одним Coupon, спринг сам соберет этот объект из кусочков.
>>1780718 но сейчас пока я не поменял формат указан же-- все равно не работает
Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: \"id\"\n\tat org.springframew...
Так, анон. Правильно ли я понимаю, что под transient instance в JPA подразумевается не "сущность, когда-то бывшая в persistence context", а "сущность, которая либо есть в persistence context, либо есть в самой базе"?
Салам Алейкум, Анон подскажи где читать о spring многопоточности пожалуйста оно же не так устроено как обычная многопоточность в java? Можно и видева или книгу(желательно на русском), где все нормально распишут. Пасиб
>>1781012 как я понял spring разбил мой Json на составляющие с присвоил их к обьекту, данные в Json он берет в string формате и подгоняет под нужный тип тк я передавал почти все поля пустые--при попытки пустого string-a в int, бросалась такая ошибОчка
Я кое-чего не понял в JPA, а именно в OneToMany связях.
Вот допустим есть пример: служащий Employee и список его адресов Email. Везде описывается, что foreign key column должен быть на стороне Email (на стороне, которая "many"). То есть Email должен хранить информацию о том, какому Employee он принадлежит. И все гайды отталкиваются от такого способа привязки.
Но как сделать так, чтобы сам служащий Employee хранил список своих адресов Email? Как это замаппить?
>>1781908 Вот мне как раз нужно, чтобы в Email ничего вообще не хранилось, кроме данных о самом Email. Чтобы только Employee имел список адресов Email и подтягивал их по айди.
>>1781923 Не помню. Зачем-то начал это выяснять, сейчас просто из интереса и для информации пытаюсь понять. Мне в принципе не жалко сделать так как говорят, просто ну неужели действительно нельзя иначе?
>>1781889 ну в самом Entity Employee создай List<email> а с hibernate тебе вообще не прийдеться ебатся тк он автоматически все правильно соберет да и вообше в будуешем удобнее работать с pojo в БД
Стоит покупать последнее издание второго тома хорстмана или можно читать сворованное предпоследнее издание? Там мастрид вроде только потоки данных и ввод-вывод.
Анонче, помоги Задачка не совсем по джаве, но близкая Есть лог файл и джава код, собирающий из него некоторые данные в табличку Нужно переписать код, так чтобы на его выходе формировались данные в формате influxdb для дальнейшего представления их в grafana Поясни за последовательность, я нихуя не понимаю, где найти этот формат influxdb и как туда вхерачить эти данные? Везде предлагается сбор данных через отдельные утилиты, а что делать, если данные уже есть?
>>1782618 Внутри методы сделай да и всё. @RestController @RequestMapping("root) public class Controller { @GetMapping(value = "child1/get1/) public List<Child> getChild1(){} } Выдумываешь хуйню в самом деле.
Какое-то у тебя сугубо индивидуальное понятие взлёта/не взлёта. На пикрил всего в 2 раза меньше вакансий чем на самом популярном языке - Java.
>Нахрена идити на технологию где вакансий с каждым годом будет становиться меньше?
Вакансий с каждым годом всё больше. Опять не понятно откуда у тебя такая информация. Может статистикой по годам поделишься?
> Джавист всегда найдет работу и будет востребован
Джавист быстрее найдёт работу. Всё что можно утверждать про джависта. "Всегда" и "востребован" это манямирок джависта. Те кто на С++ пишут наверно также думали в 2000-х, когда были в топе, но через 10 лет спрос на них резко упал и их заменила джава, сейчас они вообще в узкоспециализированных областях задействованы и получают меньше JS-макак.
И не надо забывать, что у тех кто изучил C# есть хоть какая-то альтернатива в виде геймдева на Unity. У Java-программистов альтернатив нет.
Есть бесконечный цикл для крестиков-ноликов. Надо чтобы при нажатии на кнопку, переменная gameOver сбрасывалась и партия перезапускалась. У меня при нажатии на кнопку выходит из цикла. Как правильно сделать перезапуск по кнопке?
есть статейта или видева где пояснят нормално за Method References ибо пытался найти что-то но нихуя толком не понял, по типу такого: https://www.baeldung.com/java-method-references да и вообше где нормально обьяснят о ламбда-выражениях, strems и функциональных выражениях или начинать читать документацию?
>>1783834 Не помогло, но если добавить в цикл перед if команду, то работает. Почему из бесконечного цикла выходит, когда внутри выполнять нечего? Как это исправить?
>>1784151 Я знаю, что 100% это я криво сделал все, скорее всего можно сделать правильнее и логичнее, но в моем кривом исполнении все крутится в бесконечном цикле, пока не нажмешь кнопку рестарт либо выход. gameLoop - бесконечный цикл, а на другой картинке обработчик нажатия кнопки рестарт. Так вот переменная менялась, а цикл не крутил, пока я не добавил принт в цикл вместе и проверкой. И с volatile работает.
>>1784184 Да, количество ходов считает, используется при проверке победителя. Я же говорю, скорее всего можно проще и правильнее сделать, я даун просто. Суть в том, что если в бесконечном цикле был один кусок с условием прописан, не работало, надо было добавить что-то (принт). А с volatile работает именно так, как я думал.
https://www.youtube.com/watch?v=pwG_B0tEj9M&t=849s Это действительно собеседование на джуна или на реальном собеседовании вопросы жестче? Миша там пугает всякими йобами, а тут вопросы, на которые после джавараша можно спокойно ответить.
Аноны, кто пишет на жабе сугубо бэк, как я понимаю, вопрос к вам: а вы вообще близки к продукту вашего бизнеса? Или чисто отчужденно тех частью занимаетесь? Кто из вас ближе к бизнесу: вы или какие-нибудь фронты, мобильщики? Насколько вообще оцениваете свои возможности переката в руководство/менеджмент со временем, в отличии от других ветвей разработки? Насколько хорошо осведомлены в своём рабочем бизнесе вообще? P.S. Я не прогер, но в it тоже косвенно, скажем так. Интересно узнать ваше мнение, так как сам в сторону программирования поглядываю и даже когда-то немного умел. Причем поглядываю не только по финансовой причине, а просто потому, что с детства it интересно еще когда это не было так мейнстримно для фарма денег Так вот, сейчас уже интересен сам бизнес/аналитика в том числе, поэтому не хотелось бы в разработку, например, и полностью оградиться только тех частью. Поэтому и задаю такой вопрос, куда лучше податься? Мб в какой-нибудь фронт будет лучше и ближе к бизнесу/аналитике? Вот бэк привлекает тем, что там как-то ближе именно к тех части, местами каким-то инженерным вещам я по образованию сам инженегр-айтишник Но оградиться сугубо тех часть, как я и говорил, не очень хочется.
Мы в бамплимите что ли? У меня с компа при попытке зайти в тред происходил редирект на архивач с ошибкой 404, я вообще ничего не понял, пишу с телефона
Что означают эти "e" (и другие буквы) в JPQL запросах по типу: "SELECT e FROM Entity e"? Почему-то нигде на первой странице гугла этому вообще никакого внимания не уделяют, пиши мол и всё.
>>1784623 Нет, бамплимит тут не при чём, это старый баг, который абу, сука, никак не фиксит. Сам в таких случаях сижу через приватную вкладку, пока не заработает. И заработать может в случайный момент - мне вот иногда помогает факт открытия rust-треда, лол. Ну или куки снести, но пропадут и все настройки.
Не могу выбрать между плюсами и джавой. Кресты и ассемблер вообще супер нравятся, но с другой стороны, знаю людей, которые ебашат на джаве по 300к в месяц дома во время карантина. На плюсах таких знакомых нет, шо мне делать, учить библиотеки джавы или плюсов?
>>1785055 Method reference когда у тебя есть метод который по типу входных аргументов и возвращаемого значения совпадает с сигнатурой функционального интерфейса - то можно этот метод передать вместо лямбды. Есть одна тонкость, если как в этом примере у тебя метод не статический, то он может не принимать аргументов вообще (как isEmpty() и тогда аргументом будет считаться объект на котором этот метод вызывается.
>>1785086 >то можно этот метод передать вместо лямбды ок, но как? ибо это не я же писал и idea сама земенила на method refer. то есть сто за структура передачи метода? что перед :: и что после
Допустим, есть два синхронизированных метода: setFile(File f) и getFile(), и несинхронизированный метод getContent(), который читает сам файл. Во время выполнения getContent() из другого потока вызывается setFile(f), берет блокировку и сетит другой файл. Правильно ли я понимаю, что из getContent() я получу некорректные данные?
>>1785135 Чтобы точно сказать, надо смотреть, что именно делают методы. Если setFile просто перезаписывает ссылку, а внутри getContent эта ссылка читается только один раз, то все ок. В том смысле, что getContent спокойно дочитает старый файл, а setFile в это время установит новый. Либо getContent успеет сразу взять новый. Еще отдельный момент, что если ссылка не volatile, то вообще нет гарантии, что getContent увидит то, что обновилось в setFile, но на практике обычно все нормально и так.
>>1784572 Привет, я на беке. Могу сказать, что взаимодействие с аналитиками даже теснее, чем с командой фронта. Вторым мы даем апи, и иногда у них "чето бек не запускается, посмотрите" (у нас разные тестовые стенды). А от первых мы собственно и получаем задания, как что и куда, проверяют они нас потом сами, они умеют без фронта поизменять параметры headless клиента прямо в Идее и запустить на выполнение. Не понимаю что ты имеешь ввиду когда говоришь насколько мы близки к продукту, ведь непосредственно мы его и делаем.
>>1785135 Ты забыл сказать самое главное: как getContent() получает ссылку на файл? Если через getFile() то все норм, а если напрямую из поля класса (в случае если все три метода в одном классе), то да, ошибка, несинхронизированный доступ к разделяемому состоянию.
>>1784572 >вы вообще близки к продукту вашего бизнеса? Или чисто отчужденно тех частью занимаетесь? Смотря что для тебя "близки". В целом любой разработчик более эффективно решает свои функции, если он не просто "отчужденно" пишет код по тз, но и вникает в бизнес-задачи. Многие, естественно, стараются так делать, и это приветствуется. Но это и не значит, что нужно буквально совмещать обязанности аналитика или пма, просиживая дни на совещаниях с бизнес-заказчиком.
>Кто из вас ближе к бизнесу: вы или какие-нибудь фронты, мобильщики? Ближе "мы", потому что мы скорее будем понимать, как работают все процессы в целом, а не только сторона UI. Хотя сами фронты/мобильщики, быть может, со мной не согласятся.
Вообще не очень понятно, что именно ты хочешь. Разработчику, который готов вникать в бизнес, везде будут рады, и в бэке как минимум не меньше, чем в других областях. Если же хочется прям сидеть на двух стульях, совмещая технику и аналитику, ну, может быть придется такое еще поискать. Или начать свое дело. Или пойти в 1С.
>>1785346 >>1785387 Мне это напоминает то, что с JS. Over 9000 языков-препроцессоров, пытающихся исправить тысячи его мелких недостатков и подыхающих сразу после доделывания самого JS.
>>1785388 Решает только проблему с чтением кода, писать по-прежнему больно.
>>1785404 >Котлин и есть плагин для джавы? В некотором смысле да. Мне не очень понятна логика тех, кто обмазываться васянскими плагинами готов, а вот начать писать на котлине (да хоть бы внутри существующего джава-проекта) не готов, ведь это будет уже не родная джава
Хочу но обсерился сделать класс, который будет в конструктор принимать генерики наследованые от BaseStage. Нужно чтобы создать лист генериков можно было только 1 раз, а потом только получать к нему ридонли доступ.
>>1785447 Тебе нужно, чтобы любые типы BaseStage можно было вперемешку положить? Тогда не нужны дженерики, используй сам BaseStage и все. И List<BastStage>.
>>1785597 Вообще у меня задумка такая, что все дерево зависимостей будет автоматически генерироваться и валидироваться при компиляции, а при запуске приложения никакого сканирования класспаса и рефлексии не будет.
>>1785703 Я и про кваркус знаю. Но у них обоих целый ворох дополнительных свистоперделок, типа аннотаций для контроллеров. А я кроме DI ничего не хочу.
>>1785779 Ну вон RestTemplate задепрекейтили и собираются удалять, значит, скоро выбора не будет, и так или иначе придётся юзать этот webflux, хоть и частично.
>>1785779 >Webflux юзают вообще? Где-то юзают, где-то нет. В любом случае это не такая сложная или отдельная херня, чтобы ее обязательно упомянуть в вакансии
>>1785569 Это смотря как напишешь. Если ты сможешь сделать так, чтобы: 1. Быстро билдилось. 2. Все зависимости правильно разруливались и сообщало об ошибках в момент компиляции. 3. Чтобы было решение как писать тесты на этом фреймворке. 4. Поддерживал JSR 330 5. Возможности по настройке некоторых параметров без пересборки.
То конечно спрос будет. но ты такой фреймворк, конечно не напишешь
нужно "обновить" entity но save походу не то что нада тк оно не только заменяет передаваемые поля, а и обнуляет то что не передал по сути заменяет на то что передал как реализовать update? в jpaRepo.. нужно еще и это вписывать?! ибо я думал что по дефолту должны бвть КРАД команды
>>1769582 (OP) Сап. Устроился гребсти на галеру. Стек бэк: JavaEE, фронт: React + Angular1.x. Слава Аллаху сейчас сижу на бэке. Особо опыта в джабе нет, но сам язык простой, как грабли. Возникла проблема, как изучать стезю тырпрайз девелопера? Нет, саму инфу, я найти могу, но как не распыляться между книгами. Выделил для себя несколько направлений в которых нужно развиваться: 0)Java вообще и в общем 1)JavaEE 2)ООП и Архитектура 3)Postgres и SQL Для каждой темы есть кучка книг. Но как между ними не скакать. Например по ООП, очевидная банда четырёх очевидная, но я бы хотел ещё навернуть книги по более общей архитектуре с UML. Времени пока не всё не хватает. Насчёт EE есть пару книг, но они не выглядят как для нубов, думаю лучше навернуть гайдов от Оракле. В общем анончики, можете предложить какой-нибудь родмап с книгами и гайдамижелательно на пендоском не для полного нуба в программировании, особенно по JavaEE
>>1787554 >JavaEE, Angular1.x >несколько направлений в которых нужно развиваться Ну да, очевидно, в этих перспективных направлениях только и развиваться
>>1787403 >Java вообще и в общем Кор джава Хоррестмана, Методы программирования Блинова чисто для упражнений, Эффективное программирование Блоха.
>ООП и Архитектура Паттерны проектирования Хед-фирстов. Именно эта книга у них достаточно годная. Можешь чекнуть, если не осилишь банду., Чистый и Совершенный коды от Мартина и Макконела, Чистая архитектура Мартина, Рефакторинг Фаулера.
>Postgres и SQL Изучаем sql Алана если совсем ньюфаг, официальная документация Postgres.
анон как составить первое резюме без опыта работы?
как я понял нужно просто слать, даже если пишут 2 года практики минимум но вот я сел писать резюме и так и не понял что там написать воды лить тоже не хочется а полу пустой лист тоже не комильфо живу пока в израиле, и все еще на курсе java, но думаю что можно начинать поиски потихоньку немного умею в spring/rest/hibernate или стоит сначала закончить курс, и так искать? ибо по плану еще HTML & CSS/JAVA SCRIPT/Angular/Android/ и по мелочи
Хибернейт, да и JPA в целом. Не могу до сих пор разобраться, как использовать Session/EntityManager. Документация и разные статьи говорят, что в основном их нужно открывать и закрывать там же, где и используешь - то есть каждый раз, когда нужно что-то сделать с базой. Но в то же время говорят, что вроде бы можно делать EntityManager на несколько транзакций, и даже можно расшарить один EntityManager на несколько объектов. Что, в общем-то, выглядит логично, но почему тогда везде рекомендуется использовать именно первый вариант - открывать и закрывать на месте?
>>1788550 Первый вариант звучит очень сомнительно. Если у тебя куча методов вызывает друг друга, и в каждом что-то делается с базой, то открывать-закрывать в каждом методе заново - ебануться какой оверхед. И что за приложение такое, где об этом приходится думать самому, раз нет ни EE, ни спринга (@PersistenceContext EntityManager entityManager) ? Нахуй говнохибернейт.
>>1788614 Далеко не у всех подгорает, конечно, просто какой-то хейтер много кричит, ну как обычно. Еще забавно, что часто видно две крайности - либо подгорает, либо наоборот "ну кароч ты не парься ни о чем не думай, просто в энтити хуяк-хуяк, потом в спринге findBlahBlah и все само будет"
>>1788577 >Если у тебя куча методов вызывает друг друга, и в каждом что-то делается с базой, то открывать-закрывать в каждом методе заново - ебануться какой оверхед. Кучи методов у меня нет, есть много отдельных, которые вызываются контроллерами MVC. Вот, например, в документации к Session написано: >The lifecycle of a Session is bounded by the beginning and end of a logical transaction. (Long transactions might span several database transactions.) То есть по такой логике, получается, нужно открывать и закрывать в каждом методе отдельно. Но с другой стороны, вроде бы нет каких-то явных подводных камней в том, чтобы держать один EntityManager открытым для всех методов. Вот и как быть.
>раз нет ни EE, ни спринга Есть и то, и то, но как это мне поможет, пока не изучал. Тренируюсь с обычным Хибернейтом.
>>1788614 Нет, не у сосачеров, а конкретно у меня. Много магии, которая на любой кейсе чуть сложнее хеллоуворлда почти гарантированно выстреливает. В результате приходится изучать кучу нюансов, что противоречит заявленным целям - простоте (сырой SQL намного проще) и переносимости (используемая база никогда не меняется). Лучше нативных запросов ещё ничего не придумали.
И не именно от хибернейта, а от ORM как явления, хибернейт просто самый популярный здесь.
>>1788635 >>The lifecycle of a Session is bounded by the beginning and end of a logical transaction. (Long transactions might span several database transactions.) >То есть по такой логике, получается, нужно открывать и закрывать в каждом методе отдельно. Не обязательно. В самом простом случае предполагается одна транзакция на один запрос, и даже если много методов вызывает друг друга, всё происходит в одной транзакции (но есть более сложные случаи с @Transactional/@TransactionAttribute). Получается, что в начале контроллера ты получаешь EntityManager, запускаешь транзакцию и прокидываешь EntityManager в каждый вызываемый метод (если они есть), а в конце контроллера коммитишь и закрываешь. Но вручную это делать неудобно, на то и есть @PersistenceContext.
>>1788688 Бегло пробежал глазами. ООП, линукс, немного матана, стандартов и основы архитектуры - это для тебя много? Лол, блядь, ну иди 1с учи тогда, что ты здесь забыл?
Мне сейчас больше интересны гуманитарные темы — про психотерапию, полиаморию, гендерный баланс. Мне очень хочется реализовывать эти стороны своей личности. С джавой пока перерыв взял.
Если два раза открыть сессию в хибернейте, ничего не будет? Смотрю пример, в запросах на get сессия только открывается и не закрывается. Это сделано, чтобы объекты не уходили из кэша?
>>1788614 Там много неочевидной магии и когда у тебя начинается что-то более сложное, чем петшоп - может нехило выстрелить. Это и классические N+1, так и что-то более интересное типа неправильного уровня изоляции транзакции.
Что нужно знать чтобы найти первую работу на java? И сколько на это времени уйдет? Вроде само программирование +- знаю. ООП, сортировки, связывания и тд примерно понимаю, но что нужно для первого оффера? Сейчас алгоритмы дрочу с структурами данных, но оффер никак получить не могу(
>>1789017 > Какой стаж? Достаточно старый проект у нас, стек - спринг, Java EE 6, оракл, всё на websphere крутится. > Как язык вообще? Что ж, шутки про размазывание бизнес-логики в джаве и огромные идентификаторы - вовсе не шутки. > Много тасков интересных на алгоритмы и околоматешу? Вообще нет, с этим в кресты. Задачи сводятся к запиливанию/допиливанию бизнес-фич, кому-то интересно, кому-то нет.
>>1789115 Запилите уже девопс-тред для таких вопросов, а то тут максимум докер кто-нибудь тыкал. Помнится, где-то полгода назад в одном из тредов никто не смог помочь куну с zookeeper-ом.
Помогите плиз с задачкой, нужно решить за 7 часов, иначе там счетчик собьется. Я уже 60 дней делал в день по задачке.
Задача: Создайте упрощенный HTML-парсер. Он должен распечатать содержимое для каждой пары тегов. Есть два правила для порядка печати: одинаковые теги уровня иерархии обрабатываются слева направо; если у тега есть другие теги в качестве дочерних, дочерние элементы должны быть обработаны в первую очередь. Если дочерних элементов нет или все они уже были обработаны, тег может быть обработан.
Как вообще отделять теги от того что в них вложено? Регулярками?
Есть какие-то сообщества людей, которые на спринге пишут. Пока пишу код, часто появляются вопросы по best practice и проч. А в этом треде никто не отвечает(
Какие нынче есть модные молодёжные шаблонизаторы, чтоб в проект для портфолио добавить? От JSP я так понимаю все отказались по какой-то причине, а что есть актуального?
Хай двач. Джун-магистр в треде. Уже скоро надо начинать писать дипломку, а я хуй знает про что.
Как понимаете, я бекендер, так что все эти новомодные нейросети не для меня. Что б такого на джавочке написать, чтоб не обоссали за "слишком простой диплом", но, при этом, чтоб не сильно напрягаться? Думаю, что-то с рефлекшнапи или AOP смогло бы бросить достаточно пыли в глаза, но чет не могу придумать что
Посоны, гугл на русском не дает внятной инфы. В чём существенная разница между циклом foreach, итератором и листитератором? Как я сам понял, то цикл foreach просто перебирает элементы, но изменять их нельзя(в отличии от цикла for просто). Итератор он как цикл foreach, но там можно удалять элементы, и все изменения, которые были произведены в итераторе - они и в обычной список переносятся. А ЛистИтератор он как итератор, но можно двигать в одну и другую сторону элементы. Всё верно или есть какие-то ещё подводные камни?
>>1790314 Тоже с прошлого августа тут, самое раннее, что помню - срач про прямоугольники-квадраты. Судя по местному архиву, та нумерация как минимум с 2015 была. Хоть что-то. Ну а письмена древних - ещё на Том были свои разделы со своими тредами, но я в то время ещё в начальную школу ходил, у сабжа были закрытые сорцы, и я думал, что это для игор на мобилки, которые одноклассники передавали по ИК-порту.
>>1789333 Я тоже сделал рекурсией, и тоже субстрингом. 5 часов на простое задание вчера проебал. Какой же я тупой. Кстати там надо было решать через очередь/стек вместо рекурсии. Я так и не понял как.
>>1790466 Все пилят какую-нибудь банальную хуйню на буте, типа интернет-магазина/социалочки с парой контроллеров и несколькими таблицами, из которых данные берутся через spring data jpa. Этого хватит, чтобы показать, что основные задачи ты выполнять можешь.
Какой-то пидарас удалил мой тред. Я инженер-монтажник да, так бывает, хочу в теплый офис, подглядывать под столом на сраки наташек и программировать на джаве. В прошлом треде какой-то программист смеялся с меня, извините, я не джава программист. Объясните, пожалуйста, что за тип данных "множество" в яве и почему его элементы смещаются при удалении из середины. Пик 1. Пик 2. Что это за конструкции кода? Не функция не поле.
Почему на некоторых форумах, в частности здесь и в бэ часто можно увидеть негативные высказывания в адрес джава программистов? Ява-петухи, например, в тоже время веб-макаки, может стоит во что-то другое вкатиться?
>>1790726 1. Вопрос неправильно сформулирован, список в Яве это все реализации List и там в любой реализации и двусвязный и односвязный. Разве что односвязного в Яве нет. А множество это Set и у него нет середины, т.к. он неупорядочен.
2. { // этот код будет добавлен к коду конструктора в начало }
static { // этот код будет выполнен при инициализации класса }
>>1790726 >при удалении из середины СПИСКА Ничего не подходит. - В LinkedList'е ноды в теории могут лежать разбросанные по всему хипу и смещаться относительно других не будут, только ссылки с предыдущей на следующую ноды и наоборот перекинутся. - Дерево не список - Множество тоже не список. По крайней мере в джаве заставить один класс одновременно реализовать интерфейсы List и Set очевидно нельзя.
>>1791275 >А также чем агрегирование отличается от композиции, SOLID, анемичная модель и прочий манямирок, блеать. Маня, это базовые вещи по дизайну REST API, я его за язык не тянул - он сам сказал, что может в REST, вот пусть покажет. А то блять делают GET который модифицирует данные, а потом удивлялся что им не перезванивают.
>>1791275 >>агрегирование отличается от композиции, SOLID, анемичная модель и прочий манямирок, блеать. Пиздец, мало знать язык и паттерны, уметь писать код, надо еще и эти термины учить на двух языках. >>агрегирование отличается от композиции Погуглил - это ж DI/IoC обычный. >>анемичная модель Это код в процедурном стиле что ли? Сплошные упоминания что это антипавттерн, хотя я о таком ни разу не слышал. >>SOLID Тут все понятно. Сложность варьируется от степени ебанутости вопрошающего. Из всего перечисленного самый адекватный вопрос.
>>1791196 Не путаю, это вступительный тест. >>1791122 Вот я примерно как ты думал, только чуть похуже, потому что пока только хелло вролд написал, но правильный ответ - множество. >>1790793 Почему? Там же просто поле (ссылку на другой) в элементе списка меняют, физически они где угодно и там могут остаться. Ладно массив, в Си это непрерывный участок памяти, а в джаве я уж и за массив не уверен. >>1790792 2. Спасибо.
>>1791280 RESPONSE 200 OK {"success": false, "error": "invalid data"}
>>1791296 > Пиздец, мало знать язык и паттерны, уметь писать код, надо еще и эти термины учить на двух языках. Проблема всех этих маня-понятий в том, что можно годами все это использовать, потому что это прямое и естественное решение (те же паттерны не придумывают, их обнаруживают в уже существующем коде), и даже не подозревать, что оно как-то называется, но ради ЧСВ тех, кто собеседует, приходится всю эту хуйню запоминать. > Погуглил - это ж DI/IoC обычный. Эти понятия все же несколько шире DI, в классическом ООП это и без DI встречается. > Это код в процедурном стиле что ли? Сплошные упоминания что это антипавттерн, хотя я о таком ни разу не слышал. Вроде того. Смысл в том, чтобы разделить код и данные, чтобы в результате были классы-сервисы, не сохраняющие состояние, и классы-POJO, в которых нет логики и которые нужно передавать в сервисы. Ровно как принято делать в джаве во всяких спрингах.
>>1791310 На джуна с небольшим опытом в ДС. Может, в ебенях миддлы столько и получают, но в ДС у них 120+.
>>1791306 >Почему? Там же просто поле (ссылку на другой) в элементе списка меняют, физически они где угодно и там могут остаться. Ладно массив, в Си это непрерывный участок памяти, а в джаве я уж и за массив не уверен. В Java массив тоже непрерывный участок памяти. Тут вопрос в другом, что эти "альтернативно одаренные" подразумевают под елементом. Если говорить про Java, то под элементами List-а подразумеваются объекты которые в нем лежат, а не внутренние структуры данных коллекции. Поэтому хер его знает, про что они там.
>>1791348 >>потому что это прямое и естественное решение Я вот тоже когда читал про SOLID, GRASP. DRY, KISS не понимал нахуя изобретать все эти аббревиатуры если это очевидные вещи. >>Смысл в том, чтобы разделить код и данные Надеюсь меня не будет собеседовать фанат Бугаенко.
>>1791373 >Есть ли разница в перформансе при инициализации массива примитивов и листа с обьектами этих примитивов? Есть, но сравнительно небольшая. Вообще, я считаю, что примитивы не нужны. Примитивы в джаву впилили для скорости в тёмные времена, и всё равно зря их добавили. Везде, где можно использую обёртки и сравниваю по equals().
>>1791443 Если устроит такой вариант, можно при попытке обращения к токену проверять, не истёк ли он, и удалять, ещё опционально в фоне по какому-нибудь расписанию, например, раз в день, удалять все, что истекли.
А вот ещё про шаблонизацию. Мне нужно в шаблонизаторе нарисовать определённый элемент, но у него может быть несколько вариантов структуры в зависимости от отображаемых данных. В качестве примера можно взять посты на дваче - отрисовываются по-разному в зависимости от кол-ва файлов (0, 1, 2-8), номера поста в треде (ОП и следующие посты), от того, на какой странице находится (на доске или в самом треде). Как такую задачу решить? Знаю, что логика в представлении считается дурным тоном, так что пока единственное, что придумал - просто в каждой такой сущности хранить строку с её разметкой и в шаблонизаторе незначительно модифицировать в зависимости от контекста отображения.
Потому что пока у меня просто функция для собирания элемента по кусочкам с разметкой прямо в коде, что наверняка выглядит (и работает) крайне костыльно и глупо.
>>1791764 Почти во всех шаблонизаторах есть условные блоки (обычные if/else), ещё везде в том или ином виде есть макросы (типа функции). Этого должно хватить.
>>1791796 Ещё раньше у меня так и было. Циклы и условия в самом шаблонизаторе. То есть это нормально? А то я решил, что это кто-то может посчитать избытком логики в представлении и лучше такое никому лишний раз не показывать.
>>1792075 Видел только обычный интерпрайз, да и там антипатерны кругом. Сейчас уже не фабрики, а DI используют, да и проперти с конфигами там не используются.
Народы, сейчас вкатываю hyperskill по java накатываю. Вопрос такой. После каких проектов можно пытаться на стажировку попасть? После средних или сложных? Или вообще фиолетовых
>>1792697 Ну типо там же есть чек по сложности проектов очевидно. Если я на гит залью hello world или соцсетку есть же разница. В первом случае даже на HH не кинут инвайт на собес, а во втором мб и кинут
>>1792761 На гитхаб никто не смотрит, в лучшем случае краем глаза по названиям пробегут. Но важно, чтоб он был и ты им пользовался регулярно. Также всем похуй, где ты свои скиллы приобрёл, главное, чтоб они были. Тебе в любом случае придётся тестовое делать. Я вот свой гитхаб тестовыми и забил, например. Выше анон всё верно написал, научись крутить списки и освой спринг на уровне простейшего круда. Потом начинай искать работу, попутно задрачивая свои слабые стороны.
Щас ебанусь нахуй. Делаю отправку запросов на чужой апи (все работает со своего адреса). Пытаюсь через прокси со спрингового приложения отправлять запрос - Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"; Есть вероятность, что РКН заблочил проксю? Публичные пробую. Пробовать свою на VPS поднимать пока не очень хочется. Алсо, еще вопрос вдогонку. То же самое можно через VPN отправлять же? Насколько сложно реализуется? Например, если openvpn подниму.
Как учить джаву для продакшена? Я студентота. Раскрою свой вопрос. Вот взять допустим изучение свифта - я могу написать туду/погоду/что-либо еще для iOS и протестить это, потрогать, увидеть как идет разработка с самого начала. То же самое андроид. Или взять допустим руби/пыху/питон/жс - я могу написать туду лист с сервером и базой данных, могу написать туду лист без базы данных, могу написать хоть что с нуля. Изучение же джавы выглядит для меня как бесконечное заучивание теории, попытки на этой теории пролезть в энтерпрайз как трейни, год охуевать вообще от всего что происходит в коде, в офисе, на работе и по пути на работу/с работы и возможно через год начать себя чувствовать чуть менее хуево и начинать хоть что-то мыслить.
У меня небольшой быстро вопрос. Наверное можно было бы просто взять и потрахаться с тестами производительности но я ленивая жопа решил сначала спросить вдруг кто сталкивался.
В пределах одного класса есть три boolean переменные, которые никого не трогали. Чтение одной из них происходит постоянно и скорость доступа к её значению критична. Так-же данный класс подвергается сериализации и отправляется по сети в виде json-а. В некоторый момент времени, возникла мысль (не у меня) оптимизировать json и теперь все три boolean переменных передаются по сети как одна int переменная в виде битовых флагов. То есть при серилизации мы собираем из трёх переменных одну, а при распаковке разбираем всё обратно.
И вот тут у меня возникла идея, убрать в самом коде эти boolean переменных заменив на одну int и читать её как битовые флаги. Но необходимость постоянно читать одну из перемененных заставляет задуматься, что возможно boolean был бы быстрее, и так вопрос - что будет быстрее в долгосрочной перспективе при постоянном использовани: >boolean a; >... >return a; или >int flags; >private static final int CONST_A = 0x0001; >... >return (flags & CONST_A) == CONST_A;
Гаес, есть какой нибудь спринг-стартер для того чтоб хуяк-хуяк и видеочат сделать? Слышал про NextRTC что-то, но хотелось бы, ну, вы понимаете, две аннотации и +100К зарплаты сразу
Анонас, подскажи, имеет такое решение смысл и какое-то хождение на практике, или я хуйню делаю? Суть в том, что типа инкапсуляция и разделение, не изменишь просто так содержимое списка без public метода. Или это уже тупо онанизм на шаблоны ради шаблонов и пускай возвращает обычный список?
>>1793979 Я вот недавно так с кэшем обосрался. Метод возвращает значение, которое кэшируется. Это значение меняется и из-за этого меняется кэш. Если бы возвращал неизменяемый список, то всё было бы заебись.
Ладно, видимо в любом случае придётся этот способ отложить в сторону (либо формировать вьюшки в самом методе). JPA его что-то совсем не переваривает и пытается замаппить, хотя его об этом не просят.
>>1794048 Ну совсем по феншую или вообще не модифицировать или возвращать неизменяемую копию List.copyOf().
Потому что возможны всякие неприятные эффекты типа ты начал работать с вьюхой коллекции, а кто-то другой модифицировал исходную коллекцию в этот момент.
>>1794048 >В чём именно проблема состояла? Вот примерно это >всякие неприятные эффекты типа ты начал работать с вьюхой коллекции, а кто-то другой модифицировал исходную коллекцию в этот момент
Аноны, хай. Какие есть интересные Java фреймворки и большие библиотеки в 2К20? Спринг - понятно, Play - понятно. Хибернейт, гуава, апачи, ломбок - ясно. А вот что-то более необычное, но тоже полезное и, желательно, такое, вокруг чего можно было бы строить весь проект или хотя бы отдельную его часть? Есть какие нибудь геймчейнджеры
Снова здравствуйте. Понимаю, что доебал вас уже, но я тот самый дурачок изучающий джаву по hyperskill. Собственно вопрос. Какого проектика хватит для того чтобы получить оффер на стажера или джуна? И ещё вопрос где можно норм теории по Джаве взять, а то на том сайте ее не шибко много. И финальный вопрос понимаю, что доебал нужно ли дрочить алгоритмы? Я тут купил себе книжечку Кормена почитал немного и прям сильно зашло и она полностью нужна или частично или вообще зря купил? Заранее спасибо вам)
Прохожу сейчас всякие сортировочки. И вот вопрос. А сильно медленее будет Collections.sort(arraylistIntegers), чем Arrays.sort(arrayInts) с одними и теми же интами? Там под капотом вроде один и тот же Arrays.sort, но : 1. List.sort распаковывает лист в массив объектов, после сортирует, а потом запаковывает обратно в лист. 2. По объектам он сортирует более медленной сортировкой слиянием, а не "быстрой", как с примитивами. 3. compareTo медленее, чем обычное сравнение ">" "==" "<". А насколько это в итоге должно быть медленее если все это сложить? Раза в 2?
Как правильно хэшировать пароли, надо пытаться сделать это в СУБД, или в логике приложения? Но если в логике, не понятно, как в хибернейте делать апдейт/сохранение/поиск пользователя по сущности. Не писать же на каждую операцию свой запрос и в ней вместо пароля передавать хэши вместо паролей. Может, есть какая-то аннотация, которая при подключении к бд всегда переводит поле в хэш(но в сущности остаётся в обычном виде)?
Почему ваша java компилирует это говно без ошибки, приватные методы не переопределяются, а здесь явная попытка переопределение, конпелятор должен выпадать с еггог, а там даже уорнингов нет.
>>1794617 Где там попытка переопределения? Два разных метода. Или по-твоему потомок должен лезть в делали реализации предка, искать там приватные методы и падать с "ряяя, у него тоже такой метод, хоть он и пытается это скрыть"?
>>1794663 Ты как-то всё слишком драматизируешь и сводишь к крайностям. Не сломать, а улучшить. Каждый раз, когда хочешь переопределить или создать методы с теми же именами, предлагать программисту ознакомиться с существующими, а вдруг это то, что ему нужно? Впрочем, я не претендую на правоту в последней инстанции, если есть как есть и работает нормально лучше ничего не трогать.
>>1794688 > предлагать программисту ознакомиться с существующими Ошибка/варнинг - это не предложение, а сообщение о реальных/потенциальных ошибках в коде. Ознакамливаться можно из доков, но никак их километрового выхлопа компилятора.
> а вдруг это то, что ему нужно? Нет, ему это точно не нужно. Это приватные методы, он никак их вызвать не может, и знание, что они есть, для него бесполезно. Программист не должен знать о деталях реализации, а это как раз они.
Сап, братухи. А в Spring где либо применяется параллельное программирование. Я сейчас изучаю кор джава, вот тут потоки идут, семафоры, блокирующие очереди, мониторы и примеры с покупателем и производителем хороши, но на сколько это в спринге в реальных проектах юзается?
>>1794805 Спринг это от тебя скрывает за экзекутарами, асинками и прочим. Максимум - тебе надо помнить, что твои бины по умолчанию синглетоны и должны быть потокобезопасны.
>>1794811 >Есть TaskExecutor, ещё есть @Async Никогда не понимал, в чем польза от этих дополнительных абстракций, если и так есть понятный, удобный и явный ExecutorService
>>1794833 Кто-то ругает, а кто-то хвалит (и не за потокобезопасность). По моим ощущениям, ругают в основном те, кого больше волнует теория и всякий абстрактный феншуй, а не суровые реалии разработки.
Анон, ещё вопрос по JPA. Если есть такая ситуация, что содержимое многих таблиц замапплено на поля в объекте, который не является сущностью и сам таблицы не имеет. Есть ли возможность как-то автоматизировать сохранение/получение/удаление этих данных, или надо всё вручную через EntityManager?
>>1794708 >>1794731 Я вас услышал, господа, примите мою благодарность. Склонен полагать, что вы правы, лишь моё скудоумие не дает мне осознать всю мудрость ваших слов. Я еще тут посижу, почитаю, что пишут.
>>1795471 Странно сравнивать Serializable и передачу данных в xml/json, они используются совсем для разных вещей. Какой смысл каждый раз генерировать медленные и жирные xml/json для сохранения локального состояния приложения, если есть куда более быстрая сериализация. Эти данные всё равно никогда не читаются человеком и к тому же парсятся куда быстрее. Так можно дойти и до того, что базу данных тоже надо хранить в xml/json, а jvm вообще выкинуть и всё каждый раз с нуля парсить и интерпретировать, как пхп.
>>1794316 >>1794961 Уже много раз на эти вопросы отвечали в треде. >Какого проектика хватит для того чтобы получить оффер на стажера или джуна Тебе дадут тестовое делать, вот его сделаешь и возьмут. Потренироваться можешь создавая свою версию интим-сити. Проще говоря интернет-магазин, где можно зарегаться, добавить товары на профиль, удалить, посмотреть их список. Обычный CRUD. На фронт можешь забить, но иногда его просят делать. В прошлых тредах я и другие аноны скидывали примеры тестовых, найдёшь при желании. >где можно норм теории по Джаве взять В книгах. Попутно гугля всё непонятное. Больше никак. >нужно ли дрочить алгоритмы Да, с вероятностью 50% на собесе дают писать "разворот структура_нейм" на бумажке. Или что-то похожее. В зависимости от шизоидности могут дать развернуть список, а могут и своё к/ч дерево написать. Но на ждуна там ничего сложного не было, у меня по крайней мере. Хотя я в тот же яндекс то и не пытался. >Кормен Книга классная, но там прям матан матанович. Для вката хватит просто понимать асимптотическую сложность у самых популярных операций. В общем я не могу сказать, я и Кормена читал, и в вузике учился, и потом "Грокаем алгоритмы" читал, и много чего ещё. Уже не помню даже, что больше всего понравилось.
>>1794251 >>1794950 Это немного не то, но все равно спасибо. Речь скорее шла о повышении уровня абстракции, скорее об эффектных, чем об эффективных технологиях
Доброе время суток аноны! Ситуация такая 12 лет работал 1С программистом, сейчас задумал перекат в другой язык. Выбираю между Java и Pithon, не могу определиться т.к. не видел практической стороны вопроса (т.е. день программистом Java/Pithon, какие проекты делают, возможно ли джабить из дома, фриланс). Уже кучу роликов на ютубе пересмотрел но так и не определился. Склоняюсь к Jave т.к. считаю ее более актуальной в моем регионе (вакансий на hh побольше) но синтаксис Питона более приятен. На какой стул сесть посоветуете? Теперь можно начинать закидывать говном
>>1796176 >синтаксис Питона более приятен Ты же не для души выбираешь, а для зарабатывания бабла. Java - это энтерпрайз всех сортов. Python - это больше датасайнс и ML, хотя есть и немного веба на Django.
Я бы на твоем месте смотрел варианты смены языка на текущем месте, или новое место где будет 1С + другой язык.
>>1796176 >Склоняюсь к Jave т.к. считаю ее более актуальной в моем регионе (вакансий на hh побольше) но синтаксис Питона более приятен. На какой стул сесть посоветуете? Котлин.
Сап, если у меня в цикле постоянно инициализируется переменная. аля int a = 2; то это будет влиять на производительность, нежели я изначально её создам.
>>1796558 Судя по вопросу, ты скорее на си пишешь, чем на языке, где создают по 100 объектов на каждый чих, не считают вызов методов дорогостоящей операцией и доверяют управление памятью сборщику мусора.
>>1796781 Но вообще ты фигней страдаешь. Если у тебя задача которая реально требует такого уровня оптимизации - то надо писать бенчмарки, смотреть во что код компилируется, ну и конечно понимать ассемблер.
>>1796578 >где создают по 100 объектов на каждый чих Жиза. Я вот ленюсь даже результаты промежуточных операций сохранять, каждый раз считаю заново. Один хуй, пока запрос по проводам бежит, времени пройдёт больше, чем считать будет. Притом во много раз.
>>1796857 Даже на очень слабом и старом андроиде прирост от твоей оптимизации будет в тысячи раз ниже любых мыслимых и немыслимых погрешностей. Если уж и собрался оптимизировать, оптимизируй работу с сетью, с большим количеством данных и с ресурсами.
>>1796926 Зависит от того, куда идёшь. Обычно надо знать кор, основы спринга и SQL. Но вот в зелёный банк стажёром не возьмут, если не студент, даже если закончил. В синем такого, вроде, нет.
Короче, план такой: Первые полгода дрочу саму джаву: Из книг буду юзать шилда и философию и доки. Практику брать с джавараша, джетбрейнса, mooc.fl и codewars Вторые полгода буду дрочить spring и еще какой-нибудь фреймворк, если времени хватит Из книг пока spring in action + доки Практику хз где, буду видосы смотреть
Параллельно буду смотреть SQL и git + вопросы с собесов и задачи оттуда. Мэйби по алгоритмам че нить почитаю.
Мавен плагины, которые генерируют код на основании проектных классов не могут работать при очистке, например при запуске clean compile? То есть при использовании таких плагинов всегда надо сначала скомпилировать проект, а потом скомпилировать еще раз, чтобы отработал плагин?
>>1797615 Смотря какие плагины и смотря как ты их запускаешь. Что-то можно запустить и так, чтобы файлы генерировались не в target/, а где-то в другом месте, и clean эти файлы не тронет, но так делают редко. А код точно генерируется на основе именно class-файлов, а не исходников, как это обычно бывает?
>>1797628 >А код точно генерируется на основе именно class-файлов, а не исходников, как это обычно бывает? Да. Конфигурация плагина стандартная, запускается он на фазе generate-sources.
Джавач, вот тебе немного статистики по юзанию терминов «xml» и «json» за последние 2000 постов в каждой из тематик. XML внезапно понадобился питонщикам, а JSON - удел ПХП.
>>1797629 Странный плагин. Это надо в его доках смотреть. Но похоже да, придётся запускать мавен дважды, либо сделать что-то хитрое с фазами, вдруг возможно.
>>1797664 У этого плагина нет документации, потому что я только что начал его писать. Просто раньше я работал с antlr плагином, и он вроде так работал, хотя я не уверен. Но так как это неудобно, у меня возникли сомнения. Хотя я не понимаю, почему я пишу мавен плагин, а не процессор аннотаций.
>>1797668 В теории можно ещё попробовать что-то сделать с модулями мавена. Сначала собирается один модуль, затем уже в другом модуле запускается плагин на полученных классах, но не на generate-sources, а на каком-нибудь compile.
>>1797615 У нас был такой плагин он изначально вообще ANT таской был. Мы решили проблему созданием еще одного модуля.
Модуль А - сдесь собираются классы по которым будет генериться код. Модуль Б - тут на generate-sources генерим код по классам из А. Модуль В - тут используем это все.
Конечно это увеличивает количество модулей, но зато все работает четко, без хаков лайфсайкла.
почему котлин не заменит джаву? очевидно в этом принимает участие огромная человеческая лень, но есть другие причины, почему такой крутой язык котлин все еще не вытеснил старомодную джаву?
В мае надо будет устраиваться на производственную практику в колледже, хочу стажироваться на джава-дева, для этого надо так же проходить собес или для практики он не нужен? Стоит ли вообще говорить, что я буквально на пару месяцев пришел?
>>1797852 Может, и заменит, заранее знать нельзя. Просто котлин - далеко не первая попытка убить джаву, к тому же у котлина ещё и нет особых киллер-фич, его обычно ради сахарка берут.
>>1797877 Если вопрос ко мне, то у RestController и jsp под капотом одни и те же сервлеты. Правда, хз, юзает ли jsp в спринге DispatcherServlet, как RestController, обычно в спринге вместо жсп берут нормальные шаблонизаторы, либо вообще SPA.
>>1797851 Много причин, тут и инерционность компаний и разработчиков. И плохой интероп Ява -> Котлин в обратную сторону все ОК. И проблема с тулами которые оперируют байткодом всякие AOP и cglib proxy. И медленная компиляция по сравнению с явой.
Опять же, сама Ява начала быстро развиваться - и сахара добавили и плюшки типа refined generics и inline типы скоро подвезут, offheap хранилище уже есть. Если бы Ява оставалась на уровне 1.5 - тогда да, котлин был бы остро нужен, но в современной Яве он не так сильно нужен. Корутины - это единственная значимая фича котлина, которой нет в яве.
Добрый день, уважаемые. Подскажите по исключениям. У меня есть конструктор объекта, в котором я указываю 2 инта. И я хочу, чтобы при превышении суммы этих интов определенного значения у меня выбрасывалось исключение. Для этого я написал свой класс исключений. Мне нужно его наследовать от Exception или от RuntimeException? И вообще, в каких случаях правильнее сделать наследование от первого, а когда от второго?
>>1798051 Спасибо за ответ! Но можно все таки чуть более развернуто, почему RuntimeException лучше, кроме того, что меня за него ненавидеть не будут? Это делает код более читаемым? Не нужно везде try/catch ставить? Или есть глубинный фундаментальный смысл?
>>1798042 Вообще, для таких вещей принято использовать IllegalArgumentException. Свои типы имеет смысл использовать или если тебе прям очень, очень надо дополнительные поля передать или ты хочешь сделать его checked.
Насчет того, что checked зло - это тоже неправда, они оправданы когда нельзя на 100% исключить вероятность ошибки - например IO. А вот когда этого можно избежать - как например в твоем случае - лучше unchecked.
>>1798061 Просто в каждом методе, который будет вызывать твой метод, придётся дописывать throws YourException. Фундаментального смысла нет, просто, неудобно. Это концепция проверяемых исключений (checked exceptions), сейчас признана устаревшей.
>>1797851 >старомодную джаву Потому что в джаву фичи воодятся только после того, как тщательно обкатаются, и поэтому не имеют ошибок, допущенных в других языках.
>>1769776 Не только лишь все облачные, мало на самом деле.)
По крайней мере у меня 90% задач вообще с вебом не связано.
Как человек выкатывающийся из байтоебства в джаву, могу сказать что с непривычки джава по началу вызывает рвотные позывы например необходимостью создания классов для обработчиков событий. Это от части фиксится лямбдами но осадочек остается. Так же на джаве по понятным причинам не сделаешь библиотек к существующему софту, у меня таких задач много. За время вкатывания запилил проектик на javafx. Надо сказать возможности по работе с графиками дико убогие, а мне нужен многоосевой график с хорошей производительностью. Спасибо немцам, вроде нашел у них норм библиотеку, но по ней есть несколько примеров, а нормальной документации нет.
Ну это я понимаю мои проблемы, пока не вкатился нормально. Наверняка еще просто многого не знаю. Зато очень порадовала удаленная отладка на raspberi pi. И то что одна и таже прога одинаково на разных операционках без всяких там кросскомпиляций работает. И конечно гибкость javafxа тоже заставляет его уважать.
>>1798224 в джаве куча неудобных костылей, которые набиты чисто из-за глупой погони за ооп. именно по этому функции в ней реализованы так уебищно, а вот в котлине они очень миленькие и даже сравнимы с языками типа пуфона, где ты можешь функцией как объектом играться без лишних выебонов
>>1798364 >в джаве куча неудобных костылей, которые набиты чисто из-за глупой погони за ооп. Хуйню высрал какую-то. Куча костылей в Котлине, которые набиты из-за глупой погони сделать не так как в джаве.
>>1797877 Так тебе спа или шаблонизатор? Что сервер должен вернуть готовую отрендереную страничку (как делает jsp) или жсон, который клиент сам отрендерит всякими реактами?
>>1798392 в отличии от джава-коллекций, в ней есть методы стримов, фильтр, к примеру, так что котлин-коллекции оптимизированы на это. во всех классах, которые реализованы в котлине, есть дополнительные методы. это во-первых. а во-вторых, без "переписанных под котлин" классов, нужна была бы джавовая стдлиба (возможно она энивей нужна, я не уверен в этом).
>>1798392 если не нравится конкретно тебе не значит, что это плохо. если ты считаешь что это действительно плохо - приведи хоть один аргумент. мой - компаньон обжекты отделяют статическую логику от инстансной, что вполне удобно
>>1798396 >в отличии от джава-коллекций, в ней есть методы стримов, фильтр, к примеру, так что котлин-коллекции оптимизированы на это. Оптимизированы? Сильно сомневаюсь, я бы на твоем месте посмотрел декомпилированный котлин код. Фильтры и прочее уже есть в гуаве, причем это работает со стандартными джава классами. >во всех классах, которые реализованы в котлине, есть дополнительные методы. В котлине есть экстеншены, которые как раз служат цели расширить существующие классы дополнительными методами. >>1798399 >мой - компаньон обжекты отделяют статическую логику от инстансной, что вполне удобно Статические члены класса позволяют отделить статическую логику от инстансной.
Я выучил котлин, но вакансий по нему практически нет? Ряяяяяяя, когда уже котлин убьет жабу? Я что, зря обмазывался этим САХАРОМ? Ряяяяя, умри, жаба позорная
>>1798607 Просто во всех серверах, что http, что не http. Да и не только серверах - почти всех приложениях, где последовательно поступают данные, на которые надо реагировать, тот же гуй.
>>1798412 > первые два аргумента окей я декомпилировал байткод вызова метода Array.any(predicate) и там просто фор-луп с брейком, когда предикейт возвращает тру. > Статические члены класса позволяют отделить статическую логику от инстансной они никак не отделены от инстансных членов класса, а компаньон обжект отделяет статические члены дополнительным индентом. ты полную хуйню спизданул тут
>>1798740 >они никак не отделены от инстансных членов класса, а компаньон обжект отделяет статические члены дополнительным индентом. ты полную хуйню спизданул тут Они отделены ключевым словом, индент также можно вставить, так что хуйню несешь именно ты. > первые два аргумента Так почему в Котлине созданы свои аналоги джава классов вместо того, чтобы расширить джава классы с помощью экстеншенов?
>>1798742 > Они отделены ключевым словом, индент также можно вставить, так что хуйню несешь именно ты челик ты тупой. кейворд никак не выделяет статические члены класса. вставляй индент, который любой форматтер снесет. > почему в Котлине созданы свои аналоги джава классов другой дизайн и структура. вот пример https://discuss.kotlinlang.org/t/a-hashmap-is-not-a-map/504/4
>>1798791 >челик ты тупой. кейворд никак не выделяет статические члены класса. После этого высера вообще не вижу смысла с тобой спорить. Вообще, как все, что ты сказал, противоречит моему тезису? >Куча костылей в Котлине, которые набиты из-за глупой погони сделать не так как в джаве.
>>1798829 Костыль (для языка, который заявляет интероп с джавой) - это функциональные типы ВМЕСТО функциональных интерфейсов, и начать их поддерживать только в последней версии языка. Не уверен как точно функциональные типы реализованы в котлине, но с моей точки зрения они лишь являются сахарком для функциональных интерфейсов, и ничего не мешает добавить такой же сахарок в джаву 16, например.
>>1798851 > крч, начал джаву учить и постоянно отвлекаюсь. > че используете для концентрации? > хвалили фенотропил, но ща его нет. появился нанотропил. пробовал кто? Ну если ты отвлекаешься только из-за того, что учить джаву тебе не интересно, советую тебе бросить эту затею. Если ты по-жизни такой, то тебе уже ничего не поможет
>>1798856 не, ну есть же такие вещи, когда сначала неинтересно/трудно, а потом когда начинает что-то получаться - интерес возрастает. у меня так с игрой на гитаре было. первый месяц было немножечко мучительно, а потом стало оч нравиться)
>>1798929 Создаются два потока, каждый ждёт ввода с клавиатуры, а потом выводит значение на экран. Так как операции ввода-вывода - блокирующие, любой случайный поток может успеть захватить ввод-вывод раньше остальных, и остальные простаивают, пока этот поток не завершит операцию.
>>1798949 А почему первая введенная строка доходит только до одного потребителя, а остальные уже до обоих? Если использовать сканнер, то все строки будут доходить до обоих потребителей.
>>1798950 Всегда до обоих, просто в первый раз первый потребитель успел прочитать строку и вывести, пока второй тупил. А в последующих случаях сначала второй успевает прочитать ввод до того, как первый начнёт выводить. Не стоит рассчитывать на это поведение, так получилось волею случая.
>>1798939 Ты правда перестаёшь отвлекаться на всякую хуйню, если понимаешь, что деньги кончаются, а жратва в холодильнике сама не появится. А на сытый желудок, особо не поучишься. "Тепло, сухо, крыша над головой есть - нахуй вообще ваше ооп с паттернами, лучше подрочу да в игори поиграю." Ещё помогает посмотреть как другие люди вокруг живут. В пятёрочку зайди, например, или в макдак. Посмотри на человека на кассе, примерь его обязанности на себя. Я вот когда лениться начинаю, то просто вспоминаю, как фуры разгружал в сосничестве. Проехаться на электричке, например, в часиков 7 утра, посмотреть вокруг, тоже полезно. После такого начинаю любить свою удалёночку ещё сильнее.
Анчоусы. Вкатываю вот в джаву сейчас. Практики вроде нашёл (Hyper Skill, leetcode, codeforces). А вот теорию как-то найти не могу. Взял себе кормена по алгоритмам, а вот именно по джаве что взять?
Как студентоте двигаться в джаве? Прошелся по стандартной библиотеке. Поигрался с простешим файлом через ввод/вывод. Почитал про треды. Теперь следующим шагом самое время сделать что-то. Только как именно это сделать правильно? Посмотрел пару видосов по спрингу - не понял зачем он нужен. То есть какую проблему он решает. Я не могу начинать учить что-то если не понимаю, какую это проблему решает и как. Нагуглить как писать на голой джаве бекенд? Как работать напрямую с http? А после этого? Как понимать вообще, что я готов уже трогать спринг? Через полгода хочу уже ходить на собесы начинать, чтобы понимать что и как на реальном рынке устроено.
>>1799433 Если не знаешь SQL, самое время его выучить. Ну а дальше можно и спринг.
> Посмотрел пару видосов по спрингу - не понял зачем он нужен. То есть какую проблему он решает. В том-то и дело, что он универсален и подходит для большинства серверных задач: есть и веб, и рест, и соап, и очереди, и работа с разными БД и многое другое. Считай, что это огромная коллекция более маленьких специализированных фреймворков на все случаи жизни.
> Как работать напрямую с http? Сервлеты, но потребуется настройка контейнера сервлетов. Громоздко, неудобно, сложнее спринга.
> А после этого? Как понимать вообще, что я готов уже трогать спринг? Знаешь SQL, понимаешь принципы HTTP. Всё.
Впрочем, я в самом начале долго тупил, пытаясь понять концепции бинов и dependency injection. Как понял, так сразу пошло легче.
>>1799444 Я больше про практику спрашивал. Но за ответ спасибо. Потрогаю таки сервлеты, напишу хоть имиджборду на них, а потом уже начну джаву трогать. По любому по пути еще и подучу чего, пока в спринг не залезу.
>>1799715 Я бы хотел иметь ту книжку в сумке, чтобы читать в метро и просто иметь под рукой, я же лох без машины и категорически отказываюсь читать с мобилок.
Объясните, что вы подразумеваете под "напишу имиджборду"? Каждый второй "пишет имиджборду" просто для закрепления технологии, даже не в портфолио. Вы просто основной функционал делаете, постинг, доски и картинки?
>>1799425 Обычно возвращаемое значение говорит о нормальном завершении операции с точки зрения класса, а ошибка об ошибке в процессе. Например PreparedStatement.executeUpdate() возвращает int и выкидывает SQLException Потому что если в результате апдейта ничего не поменялось - это нормальная ситуация с т.з. БД драйвера и это уже твоя забота проверять такие вещи, если тебе это важно. А вот проблема с коннектом к базе - это уже ошибка и о ней надо сообщать явно.
Как думаете, реально если ты уже опытный чел найти галеру/компанию, которая согласится взять сотрудника на 30 часов вместо 40 например? Хочу больше свободного времени, чем сейчас, а с сеньорскими зарплатами в мск 200+ мне и 75% от этого хватит более чем, на этом уровне время уже важнее становится. Вот мечтаю о трехдневке например или хотя бы четырехдневке. На текущей работе(удаленка) довольно лайтово большую часть года и можно работать меньше, чем 8 в день, но где-то 3-4 месяца в году перед сдачей проектов начинается залупа с овертаймами, которая заебывает
>>1799433 >Посмотрел пару видосов по спрингу - не понял зачем он нужен. То есть какую проблему он решает. Чтобы понять, зачем сам DI, нужно немного помудохаться с большим проектом, где ООП и антипаттерны в полный рост. Чтобы понять Spring MVC, желательно попробовать сделать круд на сервлетах и почувствовать разницу со спрингом. Ну и так далее.
>>1769582 (OP) Вот наколбасил я контроллер @RestController и метод, допустим с @PostMapping("/zalupa") Если не распарсятся аргументы этого метода из запроса пользователя, то спринг вернет ответ с кодом 500 и стектрейсом в теле ответа. Как это можно поменять поведение? должен же быть 400 код, нахуя так сделали.
>>1801028 Разница в том, что в одном случае ты запилил проект, выпихнул его заказчику и забыл. Во втором случае ты долгие годы ковыряешь один и тот же код.
>>1801047 По-моему, ковырять один и тот же код годами без возможности смены проекта это грустно? А отношение пренебрежительное почему-то именно к "галере".
>>1801021 Если вопрос слишком сложный, что лень расписывать, либо настолько специфический, что маловероятно найти того, кто уже сталкивался (как вопрос анона выше про видеочат на RTC), то могут и не ответить, но попытаться стоит. А ты думаешь, в конфочках лучше? Важно соблюсти баланс, чтобы было не слишком сложно, но и не гуглилось первой ссылкой.
>>1801050 Насколько я понимаю галеры в основном не любят за отношение к гребцам, а не специфику работы.
TLDR; В крупных компаниях как правило есть возможность смены проекта. Плюс бывает, что проект завершается или переписывается с нуля когда становиться ясно что старый помер окончательно. В конце концов, можно и работодателя сменить. А кому-то вообще нравиться такой стиль работы - ты все в проекте знаешь и тебя трудно заменить, можно работать на расслабоне. Как правило наиболее интересные и важные для компании проекты не отдают на сторону, аутсорсят наименее важные вещи. Ну т.е. если компания занимается алго трейдингом, она не будет аутсорсить алготрейдинг. Вот какие нибудь отчеты и прочую мишуру - может. Но не сами алгоритмы и их реализацию.
С другой стороны аутсорс это динамика - постоянно новые технологии, проекты, новые компании.
Анон, что это за приём такой? Я что, не знаю элементарных вещей? Зачем тут к статическому html идёт в паре модель? В тексте написано, что она backs registration form - где можно про это подробнее почитать?
>>1801514 Если честно, я этот момент не совсем понял, просто логически предположил - что можно шаблонизировать на странице регистрации?
>>1801523 Да, оттуда. Но всё равно, даже если это шаблон - это же просто пустой объект без данных. Значит, эти данные, видимо, заполнятся из формы регистрации и как-то придут вместе с реквестом на контроллер регистраций? Вот где можно подробнее прочитать про то, что это за механизм, как он работает и как им пользоваться?
>>1801559 Ну вот все теги с атрибутами, имеющими префикс th:, обрабатываются шаблонизатором (Thymeleaf). Например, если введут некорректное имя и нажмут submit, форма отправится на сервер, придёт в контроллер, он сформирует сообщение об ошибке, передаст его шаблонизатору, а тот под полем ввода добавит тег <p> с этим сообщением. Полученный HTML отправится на клиент ответом на запрос.
>>1801452 Все довольно понятно, метод маленький, как положено, десяток строк. Абстракции в виде фактори, билдера и вью нужны в зависимости от окружающей логики, которую мы не видим/не знаем, поэтому нельзя сказать насколько это оправдано. Если взять пример шифрования из SDK, будет так же: куча классов Parameters, Specs, куча имплементаций, статик-констант/энумов, все друг друга вызывают, все на интерфейсах.
Зашел, чтобы побомбить. Уже давно пишу код на жяве, но так и не могу понять: почему хибернейт так популярен? Это же дикое говно из жепы. Хочешь сделать unidirectional one-to-many по fk? Хуй тебе, буду создавать ОТДЕЛЬНУЮ БЛЯТЬ ТАБЛИЦУ для fk. Ладно, бывает, пусть будет bidirectional, как всякие чехи-поляки в интернетах советуют. Но и тут не все так просто! Хочешь сохранить сразу и to-many сущности, одним вызовом save? Ну казалось бы, что проще, сохраняешь one сущность, берешь айди и сохраняешь to-many сущности с этим айди. А вот хуй там! Сначала сохраняй one, затем блять руками засовывай во все to-many эту one, и еще раз сохраняй! Пиздец просто, какие же разработчики хибернейта дегенераты. Я кончил.
>>1801559 >Значит, эти данные, видимо, заполнятся из формы регистрации и как-то придут вместе с реквестом на контроллер регистраций? Вполне конкретно придут вместе с реквестом в виде параметров запроса. Бразуер отправит их на сервер HTTP-методом, который указан в описании формы. А сервер получит запрос и передаст его в контроллер.
>>1801603 >Хочешь сделать unidirectional one-to-many по fk? Хуй тебе, буду создавать ОТДЕЛЬНУЮ БЛЯТЬ ТАБЛИЦУ для fk. Ладно, бывает, пусть будет bidirectional, как всякие чехи-поляки в интернетах советуют. Ибо нехуй создавать структуру базы хибернейтом, для вас, Козлов, - ликвибейз написали.
Есть тут кто шарит в spring AOP, где они хранят xml со срезами, а то дебажу создание прокси объектов через @scope(proxyMode=...), и не могу найти где описан кофиг перехода в DynamicAdvisedInterceptor.intercept
>>1801711 Б-г упаси когда-нибудь создавать структуру базы хибернейтом, после таких приседаний с маппингами я этому фреймворку ничего уже доверять не хочу. Я говорил про то, что хибернейт создает служебную таблицу для такого маппинга, а где он ее держит - хуй знает, мне все равно, сам факт такого поведения меня вгоняет в фрустрацию.
>>1801747 Хибер ничего не создает, если ему явно не сказать hbm2ddl.auto=update и по дефолту там validate. Да и при нормальном DBA или грамотных разработчиках - хер кто аккаунту приложения даст права на DDL.
>>1801593 >>1801606 Я одного просто понять не могу. Вот даётся этот объект пустой. Зачем он передаётся на вью-то? Я понимаю, когда на пост-реквесте параметры маппятся на такой объект. Но вот в чём смысл трюка на картинке? Зачем туда пустой объект передаётся, что с ним шаблонизатор делать будет?
>>1801873 Нихуя ему не кажется, все вбили в голову, что орм типа упрощает жизнь и суют говнохибернпйт в каждый проект и потом борются с мыслимыми и немыслимыми ошибками вместо того, чтобы юзать ждбц. Мои мечты о том, чтобы говнохибернейт стал легаси, никогда не сбудутся.
>>1801877 Хабернейт легче чем jdbs джуну будет легче с ним работать на базовом уровне, а значит бизнесу дешевле, так что лучше изучить хабернейт на уровне исходниковблаго опенсорс и быть в курсе всего и проблем не будет. ну или ныть
>>1801802 Предполагаю, что шаблон используется при ошибках регистрации, тогда dto будет не пустой + выведутся сообщения валидации. И второй момент, если передать null, то скорее всего шаблонизатор начнет NPE кидать, ему-то нужно форму построить. Вопрос, нахуя использовать шаблонизатор со своим синтаксисом для форм оставим за скобками
>>1801802 >Вот даётся этот объект пустой. Зачем он передаётся на вью-то? >Я понимаю, когда на пост-реквесте параметры маппятся на такой объект Он же передаётся не непосредственно на вью, он записывается в модель, к которой будут иметь доступ и контроллер, и вью. Объект этот нужно где-то создать, и обработчик get-запроса — вполне подходящее место.
>>1801653 Ты шутишь чтоли, что непонятного? Нет, правда, что конкретно здесь вызывает затруднения, длинные названия? Просто интересно. Помимо бизнес логики конечно, мы ее не видим, так что она мне тоже не понятна, но это не мешает читать код. А в коде мы имеем: 1) Создается Builder (паттерн) из Factory (паттерн), передавая фабрике параметры 2) Результат зачем-то проверяется на объект-константу (типа как Integer.MAX_VALUE - это паблик статик файнал объект), хотя достаточно было бы возвращать null, но может у них там специальные другие значения есть, хз 3) Из билдера, передав ему параметры, получаем датавьюшку (это не то чтобы паттерн, просто так называются хранилища данных, объекты с множестном значений, типа таблиц в бд, а иногда это и есть прямое отображение таблицы, т.е. еще и персистентное) 4) Опять проверка как из (2), тоже можно было наверняка обойтись null'ом. А, еще кидается кастомный эксепшен, тоже ниче сложного, обычная практика (class MyEx extends RuntimeException) 5) Из датавьюшки возвращается следующее значение, типа как из итератора (iterator.next()) Где конкретно не ясно? Паттерны фактори и билдер это начальный уровень средней школы. Можешь задавать вопросы. И да, такой код довольно обычнен, хотя в данном случае немного переусложнено в угоду картинке наверное.