>>2353514 Во первых не такой уж он и популярный, просто петухонщики кукарекают громко и их слышно везде. Ну а то, что есть, достигается благодаря супер лёгкому фкату и всяким скиллбрейнсам, делающим бабло на лохах
Петухонщики - народ-гной, народ-мразь, народ-пидор, народ-червь, хуже них уже нет. Сейчас я возможно задену за живое и ты заплачешь, но ни у одного из петухон-треда нет работы, петухонщики живут на мамкины деньги, успокаивая себя в интернетах тем, что они крутые погромисты.
Зато кукарекают петухонщики больше всех. Они больше всех рассказывают в зарплато-тредах о своих маня миллионах, ведя себя по блядски и выёбываясь перед не-погромистами, явно привлекая к себе тонны негатива. И ладно бы ненавидели только их (потому что реально есть, за что) - нет, из-за них с ненавистью сталкиваются вообще все программисты, даже джависты, на которых в целом держится весь IT-бизнес, которым пользуется каждый из нас (петухонщикам приготовиться к слёзкам: на их петухоне не держится вообще ничего, кроме самых гнойных отраслей IT - нейроночек и спам-ботов для ВК (да и даже любители нейроночек недовольны тем, что им приходится ассоциировать себя с таким гноем, как петухонщиками, остаются только спамеры в ВК - вот это весь петухон)).
Петухон, в целом, сам по себе ничего плохого не представляет, но вот комьюнити его - сплошной гнойник. Простота вката привлекает скам общества - мелкобукв, европрокладок, мамкиных нитаких как все, ЛГБТ/фем мразей и подобных. Неудивительно, что ко всем вышеперечисленным группам населения, даже за пределами петухона люди относятся с нескрываемой ненавистью.
Очень грустно, что из-за такого большого гнойника, но небольшой части программистов приходится страдать всем.
>>2353490 (OP) Для вката буду делать свои круды + cli утилиты, мне хватит вима или вс кода с плагинами? Или идея мастхэв сейчас? Использовать буду спринг, мавен и постгрес
>>2354038 Ты че, пидарас? Я это, естественнно, один хуй скажу, я хотел узнать, мб есть какие то сигналы для хрюш и кабанов, что тебя надо обязательно взять или наоборот, брать не надо.
Ну шо, в 19-й жаве(уже этой осенью) наконец-то будут виртуальные треды, можно будет на любую ИО операцию высирать тред, как в гошечке. Наконец-то реактивная параша уйдет и можно будет писать на томкете и традиционном спринге как деды.
Подскажите пожалуйста, в каких случаях нужно создавать ссылку на класс в начале класса ? В случае если мы будет неоднократно присваивать обьекты этой ссылке ? Вот пример
>>2354166 А что тебе нужно? Нет подобных правил. В зависимости от ситуации можно использовать всё, что разрешает язык программирования. Если по логике программы тебе нужно объявлять ссылки в начале определения класса и потом где-то их использовать, то ты в итоге так и делаешь. Хотя с точки зрения ООП должно быть как можно меньше static-полей, и в основном они для констант или каких-то глобальных ресурсов, когда DI не подходит.
>>2354172 Статик поля только для тех случаев, когда нужно сделать что-то магическое, статик = рефлексия. Во всех остальных случаях статик использовать нельзя.
>>2354176 Например, хороший способ сделать жесткий синглтон (объект бросает исключение при попытке создать второй раз) - private static boolean isCreated. Или пул объектов.
>>2354178 Мелкобуква-питухонщик, съеби. Твою вонь через экран ощущаю.
>>2354180 >Например, хороший способ сделать жесткий синглтон (объект бросает исключение при попытке создать второй раз) - private static boolean isCreated. Или пул объектов. ебать жирно тролишь
>>2354189 Блять, хуйню сказал, не при попытке создать второй раз, а при попытке запустить этот объект второй раз, в конструкторах кода не должно быть, они только значения полей устанавливать должны. Я собственно для этого и юзал статик в последний раз, хз почему сказал про проверку на создание, никогда так не делал и вам не советую
Подписан на канал с вакансиями для джавистов, не знаю что вас так мучает, зарплаты там в среднем для мидла 150-250. Правда вакансий на джуна действительно крайне мало, но я, вроде, видел. Не поленился взять какашечки из последних пяти вакансий размещенных там:
1. 6-9K USD gross (ищут с опытом 5-10 лет) 2. 319000р/мес гросс (тимлид) 3. от 160 000 до 210 000 на руки (мидл) 4. 250 - 350к на руки (мидл/сеньер) 5. 8000-9000$ (ищут 3-4 года опыта)
Это тупо последние пять, ничего не выбирал даже. И че вы ноете, самозванцы, рынок переполнен вакансиями с отличными какашечками...
>>2354276 >>на джун джун создает проекты, делает рефакторринг и код ревью? >>написано же) По вакансии мало что понятно - похоже на обычную галеру с десятком проектов разной степенит уебищности. И без удаленки. Только откуда там планка в 200 сотыги. На случай что реально кто то с 3 годами опыта придет? >>это фултайм( >>возможна подработка по вечерам может там на фултайм не 15к, а все 30к, но один хер это для студентов, им и 15к в сладость.
Сап, хелп зеленому, пожалуйста. Нужно десериализовать json в некий класс, так как известна его структура уже. Значения должны храниться в hashmap. При десериализации в класс и попытке вывести values, у меня получается такая залупа. Что я мог сделать не так? Почему количество элементов коллекции показывается нормально, а сами элементы нет?
>>2354353 Ладно, я не знаю, что делать, помогите. Как правильно десериализовать json в класс так, чтобы еще все данные хранились в мапе? С меня тонны чего угодно
>>2354251 >Пруфов таких работ у тебя конечно же не будет. На HH конечно не будет. Там выкладывают только фейковые айтивакансии с не существующими ЗП. Потом на собесе занижают в раза 2-3 зп от указанной. Нормальные люди устраиваются через отдел кадров.
>>2354698 Если ты не рагулевсратый бандеродебил, то переезжай в Россию. Да и в принципе, никто не мешает из копростана работать на российского кабанчика, правда он деньги сможет разве что в крипте перевести
Блять, я щас умру от кринжа. Первый мой собес, точнее пока еще не собес, а ознакомительное интервью. Вместо того, чтобы рассказать подробно о своем опыте, начал затирать какую то хуйню про кодинг плагинов для майнкрафта. Вообще тема конечно не хуйня, но я из себя выдавил чисто пару пуков, которые до этого раз 100 повторил, просматривая видосы с собеседованиями на ютубе. Когда кабан спросил про зарплату, моя омежья сущность не позволила мне даже блять на планке, заявленной в вакансии настоять, я попросил нижнюю планку оплаты вакансии без учета 13% ндфл, сука.
Бляяять, какой же я дегенерат. Я еще и мидлом назвался, и попросил оплату, как джун ебаный. Пиздец просто, какие же хохлы дегенераты.
>>2354712 Да какая разница, если не можешь настоять, то сможешь найти в себе силы у другого чела пособеситься и там уже не будет никаких проблем назвать планку +сколькототам от текущей. Потому что ты будешь спокоен, зная, что за меньшее ты менять работу точно не будешь, а если откажут, то спокойно будешь работать дальше как ни в чём не бывало.
>>2354716 Но вакансий же не бесконечность. Ладно было бы не 7к вакансий, а 700к - тогда можно было бы повыебываться, даже пусть кандидатов тоже в 100 раз больше бы было. А так хуитв.
>>2354738 Ты вообще на ровном месте какие-то ограничения придумал. Тебе не нужно 7к вакансий, требе нужен ровно один оффер, чтобы давить на текущего работодателя. Прям из 7к ни одного оффера не найдёшь? Ну значит ты упёрся в потолок, сиди не выёбывайся.
>>2354712 ну и пояснил бы за плагин для майнкрафта
что у тебя мокросервисная архитектура с микрописьками для асинхронной подгрузки криперов ночью в ебло, кафки, разные очереди сообщений для публикации выстрелов скелетов, спринг буты и все это в крутится в кубернетесах и еще в CI/CD
>>2354836 >что у тебя мокросервисная архитектура с микрописьками для асинхронной подгрузки криперов ночью в ебло, кафки, разные очереди сообщений для публикации выстрелов скелетов, спринг буты и все это в крутится в кубернетесах и еще в CI/CD Все это не имеет никакого веса, если это не коммерческий опыт в известной компании. А то, что ты в свободное время пытался пукнуть джсоном в кафку - никого не интересует.
>>2354841 То есть если ты работаешь xml конфигуратором в известной компании за 20к, но можешь пукнуть джсоном в кафку я могу напиздеть что я Principal MSA Arhitect?
>>2354841 это крайне спорное утверждения, овер дохуя джавистов которые работают с древними технологиями и никакие кафки и микросервисы в глаза не видели. сейчас это конечно выравнивается, но все равно выбирать будут из тех кто в курсе что происходит
Такой вопрос. Есть коллекция интов, надо сгенерировать число, которого в этой коллекции нет. Какой самый оптимальный вариант по производительности и чтоб желательно была уже готовая реализация?
>>2354892 Я в принципе сделал почти так, беру максимальное число, и если оно максимум инта то циклом отсчитываю числа вниз, если не максимум то беру его+1
>>2354894 Тупое решение но ты можешь числа отсортировать за O(log n) и вычислить разность соседних максимум за O(n). Где эта разность > 1 - место для вставки числа. Получается O(n)
>>2354914 Смотря какая коллекция, если множество HashSet, то проверка наличия/отсутствия за O(1). Если нет, преобразовывать в множество имеет смысл, только если генерируешь много чисел.
>>2354866 >но все равно выбирать будут из тех кто в курсе что происходит Сейчас бы нанимать джависта, который книжки читал и свои ололо-пет проекты лепил, вместо того, чтобы нанять уже готового спеца, который имеет КОММЕРЧЕСКИЙ опыт в нужных технологиях.
>>2355186 Таблетки прими, долбоеб, и под кроватью проверь, а то вдруг и там хохлы спрятались. Удивительно, что быдло так легко заставить кого-нибудь ненавидеть. Лол, готовы говно сожрать, чтобы смотрящему хохлу противно сделать.
Второй мой собес. Опять же, не технический, а ознакомительный перехрюк. Все так же нес хуйню, рассказал про какой то бойлерплейт код, сука, кринж ебаный, ни о каком пояснении о асинхронной подгрузке криперов в ебло речи не шло. Но уже меньше волновался. Хотя по технической части рассказал гораздо хуже, чем было в прошлый раз, я вообще дичь нес.
>>2355191 Чтобы любого человека заставить ненавидеть типичного жителя западной украины, достаточно их познакомить и дать вместе поработать какое-то время. Особый шик - когда хохол соучредитель мелкобизнеса вместе с нормальными людьми - проходит немного времени и оформляется гарантированный съёб с общими деньгами угадай в чьём исполнении.
>>2355021 Если они найдут спеца с опытом работы в нужных технологиях его наймут. Но вот выбрать нулевого JavaEE обросшего мхом легаси саппорта который нибумбум или теоретика без опыта, это вопрос. У второго есть шансы, во многие компании очень неплохие.
>>2355244 Мои самые успешные собесы были когда я примерно знал какие вопросы мне зададут. Зная что интервьер любит дрочить про устройство хешмапы я выдрочил это лучше него. Возможно из-за этого меня туда не взяли.
>>2355401 Вообще, в чем прикол игнорить кандидатов на вакансию? Это же чистые убытки кэша, а хрюши и так заняты по 2 минуты в неделю, прочекать мессаджи их заставить легче лёгкого
>>2355282 >можно Нужно. В динамикодрисне иначе невозможно хоть что-то серьёзное создать, кроме как тдд и миллиардом тестов. >>2355285 Любому серьёзному проекту. Думаешь всякие процессоры аннотаций по типу mypy от хорошей жизни начинают использовать? Нет, их юзают потому что иначе не вытащить это говно.
>>2355410 >В динамикодрисне иначе невозможно хоть что-то серьёзное создать, кроме как тдд и миллиардом тестов Я и так пишу по 3-6 тестов на каждый эндпоинт, куда больше то? И это на жабе. И только на апишку. И еще временные тесты иногда пишу, когда разрабатываю репошки и сервисы. И так на тесты больше времени уходит больше чем на саму разработку. Куда больше то?
Сап, джавуны! На мой проект нашлись инвесторы. Сегодня в ИРЛ встречались в кафе и обсуждали проект, что будем делать, какие планы, экономика игры, гешефт, все дела. Все остались довольны. На встрече присутствовали 4 человека: двое разработчиков: я и наш художник + эдвайзеры - ребята с именем, которые за процент будут нас продвигать, вести документы, рекламу и маркетинг, сведением нас с фондами. Будем делать плей ту ёрн игру с блокчейном. Один из фондов готов нас профинансировать даже ДО первого знакомства с фондами, чтобы мы не отвлекались, подскакивая на крудошлепскую наемную работу, и занимались только проектом. В общем, мечта моего детства, реализуется на моих глазах, чему я несказанно рад. Держу в курсе.
А вкатунчики здесь есть? Успехами поделитесь, если они после 24 февраля есть, конечно... Я к примеру после вывода войск епама из РФ не попал к ним на стажировку после обучения, хныкаю пукаю. Придется в инженегры идти...
>>2355514 Во время обучения в епаме ходил на собесы. За два дня до спецоперации получил оффер. Точнее учился я раньше, а во время епамовского тренинга повторял джавакор к собесам. Записали на стажировку как раз в начале марта она должна была начаться. Я все ждал заданий, но их не было. Плюс епам требовал кучу зондов ставить. Недавно прислали сертификат о успешном прохождении тренинга. Обучение по джавакору у них кстати то еще говно. Записанные леции - кал. Живой лектор с вопросами-ответами не шарит и отвечал на отъебись. И экзамен в виде oca/ocp.
>>2355523 Про записи согласен - такое. Но задачки хороши были, мне зашли. Сколько у тебя времени со дня начала вката прошло? Какие советы дашь чтобы быть адекватным вкатунцом? Я вот хочу тренажёр SQL додрочить, на буте бота тележного написать (на MVC написал круд-залупу с хибером уже, хочу дальше ковырять), да на графы налечь, авось и возьмут на стажировку куда-нибудь... Если она будет.
>>2355528 Иди на собесы на джуно-мидлов уже сейчас. Возьми и прокликай сотню-другую. Стажировка - хуйня без задач. Пиши еще пет. А лучше пиши тестовые и побольше. Например https://github.com/Raiffeisen-DGTL/cib-interns-test-task Но лучше, если это будут тестовые на работу, причем которые дадут после собесов. По сикуле хватит чего-то с основными операторами на пару десятков страниц, остальное во время гуглежа для петов. Можно на спринг дата жпа дальше продолжать. Включи логирование сиквеля и читай что тебе хибер генерит. Или если хочешь подрочить сиквел - бери jdbctemplate. По хиберу будут ебать разве что на собесах. Графы нахуй никому не нужны(точнее нужны в паре % задач). Или ты про энтити-граф в хибере? С ботами не работал. Но если апи ботов телеги нужно долго читать - не рекомендую. Рекомендую дрочить рест и джексон. С ним намного больше еботни чем с базой. Еще рекомендую научиться пользоваться свагером и постманом. Для баз - ликвибейз/флайвей и докер.
>>2355533 Про графами имел ввиду алгоритмы. Книжку недавно видел по алгоритмам на джобе + курс неплохой на степике от CSc по ним, ещё когда только начинал, где то через 2-3 месяца после начала вката, где-то треть или половину прошел, дальше уже и навыков стало не хватать(не знал некоторые структуры данных), да и хотелось не просто дрочением заниматься, а то как обратно в вуз вернулся.
>>2355658 Никакими - зрение зрелому человеку проебать возможно только двумя способами: 1. Дождаться пока старость помноженная на генетику возьмёт своё 2. Ударить по глазу молотком Специфика уровня "я вот смотрю в экран, а значит я буду слепнуть" - миф.
>>2355664 Я заметил у себя в последнее время серьезное ухудшение зрения, никогда такого не было, прям резко, даже буквы на телефоне на расстоянии 30 см чутка размываются
>>2355673 Посоветовать сходить к врачу за очками надо или сам сходишь?) Насчёт упражнений и прочего такого нет нормальных данных, поэтому не уповай на них. У меня слегка размывается вижен, когда давление под 160. Но я фиксанул давление. Фиксанул настолько сильно, что теперь другая проблема - когда встаю, голова кружится, вплоть до того, что бывает нужно сесть обратно или за стену придержаться. Сознание пока не терял.
>>2355590 Я бы забил на алгосы. Особенно на графовые. Для хорошего уровня нужна куча времени, а в работе они не особо нужны и даже на собесах, если не фаанг. Лучше бери аррей /линед лист, хеш/три мап/сет и смотри как они внутри устроены подробно. И алгоритмы самых их основных методов. Смотришь метод, гуглишь, что за алгос и разбираешь. По этим шести коллекциям/структурам могут ебать на собесах. Особенно по хешмапе. Статьи почитай про их устройство. Вот есть классная библиотека для визуализации их внутреннего устройства: https://habr.com/ru/post/599045/
>>2355685 А я ту же мапу хорошо знаю. Поля, которые там есть и за что они отвечают, как что работает и пр. Но спасибо, все равно поковыряю и поучу, может что-то новенькое узнаю по другим структурам.
>>2355677 >к врачу за очками Мне че ебать, как хикке ботану задроту очки носить? Если уж и покупать че то, то линзы, форму глаза за ночь восстанавливающие
>>2355685 По алгосам что я понял: пока сам не напишешь - толку мало. Те же тытруберы и прочие советуют Грокаем алгоритмы, к примеру, но ты книжку прочитал, понял концепцию, допустим, тех же жадных алгоритмов, но реализовать все равно не сможешь, по крайней мере пока лоу-левел экспириенс в проганье. Все надо пальцами щупать. А про методы коллекций спрашивают? Слышал, что надо свой связный список двусторонний реализовать на собесе.
>>2355719 Ну это уже другое дело. Сам с нормальным зрением, поэтому хз. С другой стороны, солнцезащитные никогда не бесили, но то может я за компом в них не сидел просто.
>>2355533 >>дрочить рест и джексон. С ним намного больше еботни чем с базой У бэкенда все наоборот - рест на спринге работает сам с парой аннотаций, а вот ебли с хибернейтом/скл хватает.
>>2355719 Линзы приносят намного больше неудобства. Их снимать и одевать неудобно, глаза сушит и есть шанс конъюнктивит словить. Я словил даже когда следил за чистотой рук, тупо пот жарким летом попал в глаза.
>>2355922 Ну у меня наоборот. Джейсоны со сложными форматами и кучей динамического говна, как с фронта, так и с других сервисов, написанных на питоне. И много ебли с сериализацией/десериализацией. С валидацией иногда сложно. А в базу это просто кладется. Если что, то просто в jsonb кладешь. Правда мы хибер не используем.
>>2355922 >>2355533 Потому что специфика проекта решает. Заранее к этому хз как подготовиться. Где-то так, где-то сяк. А то что не используешь быстро забывается, поэтому хз, не угадаешь что тебе конкретно для каждой вакухи не хватает.
>>2355974 Похвально. Но если это типа пощёчина мне (на что намекает вот это вот: >Чем сидеть и пиздеть ), то я перефразирую - "я не вижу применений крипте в играх кроме как чтобы превратить игру в говнобиржу". Доказать этот (отрицательный) тезис невозможно и не нужно - надо доказать обратный ему положительный. Так что я в данном случае и не могу ничего, кроме как "сидеть и пиздеть". Докажешь - я приму. Не докажешь - ну будем считать, что возможности блокчейна в играх исчерпываются вышеназванными. >>2353490 (OP) >бест практики Отъебал бы в своей команде за такие практики.
>>2355987 Люто двачую будучи вкатунцов, многие вещи просто забываются. Я веду конспекты и записываю острые углы, хз как опытные разрабы все в голове держат.
>>2355993 return longestSide > sumOfShorterSides; Я про то, что бест практисес это когда у всего есть понятное имя, а не вот эти вот однострочники. Clever - несомненно, но не для бизнеса. Для бизнеса важнее, чтобы можно было взглядом окинуть и мгновенно въехать о чём речь. Хотя тут не совсем клиника, относительно понятно, так что я погорячился.
>>2355997 Ну вот я про это и говорю, что математика херово на прогу ложится. Что для тырпрайза это вообще говнокод и пошли они нахуй. Но далеко не всегда можно вообще дать нормальные имена переменным в формулах
>>2355990 То с чем часто работают на протяжении долгого времени уже так легко не забывается. Все таки нейронные связи это паутина, чтобы она закрепилась надо и практический опыт, и понимать как почему зачем итд итп.
И то, помнят принцип, а детали гуглят/смотрят как было на других проектах, как и все люди. Никакого волшебства.
>>2353490 (OP) Пробовал гуглить, но гуглится как-то не очень. 1. Я правильно понимаю, что BigDecimal, хотя и даёт потенциально бесконечную точность, всё же не способен идеально точно хранить промежуточные результаты вычислений с рациональными, иррациональными, трансцендентными числами? 2. Есть либы, которые позволяют как в языках, заточенных под математику, хранить число уровня 1/10, 2 * sqrt(2), pi, а то и что-нибудь с мнимой единицей - именно в таком, символическом виде? А терять точность только в результате, в последнем вычислении, если это вообще требуется? Насколько это востребовано в финтехе? Слышал, что все юзают BigDecimal и в хуй не дуют.
>>2356143 И ещё накину пример. Предположим, что в компе числа хранятся в десятичной - для простоты рассуждения. У меня есть три сотрудника, и сто монеток премии, которую я хочу поровну поделить. Я делю на 3 и получается 33,(3). Т.е. я остаюсь должен 0.(3) (1/3) каждому. Как мне сохранить у себя этот должок в 1/3, чтобы учесть его в будущих расчётах? Ведь если так будет продолжаться и дальше, на на следующий месяц я буду должен уже 2/3, а на третий - 1. И вот эту единицу я уже могу выплатить, т.к. она целая хм, так вот зачем придумали квартальные премии. Но если я бы её хранил в даже BigDecimal, то эта единица никогда бы не собралась в целое, так ведь? Там было бы число, с каждым месяцем всё уточняющееся, но никогда не переходящее в целое.
>>2356277 А что будет-то? И каким боком тогда крипта? Единственное, что приходит в голову - это игра по типу дьяблы, или хуже - говнеца с ящичками-казино, не знаю как уж оно там называется. Ток у тебя предметы иногда дропаются не простые, а с токеном. И этот токен ты получаешь на свой кошель, а дальше ты можешь перевести его кому угодно, и если челибос свой кошель подключит, то в игре у него будет этот предмет. Какая-нибудь горящая алебарда жопоразрывания. И тогда разработчик самой игры как бы выводит биржевые аспекты за пределы самой игры - нет аукционов, нет торговых окошек, дескать хотите этим торговать - ну запилите там себе биржу и торгуйте хоть усритесь. Нам главное чтобы вы запруфали свой кошель и мы вам любые предметы в игре отобразим. А как иначе, намекни что-ль. >>2356298 Двощую. Главное чужие моды не берись дорабатывать, там такая лапша что 1с раем покажется. Свои - без проблем.
>>2356324 Ну типа чтобы на себя не брать биржедроч, и какие-то гарантии, обусловленные блокчейном, дать игрокам. Типа мы у вас эту шмотку не отберём, только если у всех сразу. Ну и это по сути легализует всякие обычно банимые вещи типа продажи игровых шмоток за бабло. "Не можешь победить - возглавь". Сервер игры никто не хакнет, блаблабла (ага, я даже не буду объяснять, насколько это сложнее, чем кажется) Плюс надеются на то, что какие-то инвестиции это привлечёт от челов, которые просто в крипту инвестируют. Что они дескать будут покупать у игроков шмот и ждать, пока он подорожает. Но на самом деле всем скорее всего будет пiхуй. В целом я согласен, что даже в таком виде это как седло на корове.
ДНО-3000 оказалось пробито уже в первой половине мая. Значит к середине июня дойдем до 2500, что будет означать полный крах джавы на рынке вакансий РФ. До 24.02 было более 5000 вакансий в выдаче по запросу java.
>>2355514 Отправил заявку в неткракер на их курсы и последующую стажировку. Изначально обещали начать процесс в начале апреля, но потом пришло письмо, где сообщили что я прошел, но сказали приходить в июле. Думаю, что к июлю эти курсы вообще закроются полностью, либо неткракер уйдет из РФ.
А так, устроиться в джава бекенд сейчас практически невозможно имхо. В сбере и втб меня нахуй послали прямым текстом, сказав, что найм у них на фризе. В яндексе сначала сказали, что фриз, а потом просто реджект прислали, даже ни одного собеса не провели.
Народ як зробити так щоб сума двох методів додалась? Але це організувати в 3 методі ; Щоб я його викликав і там рахувлаалсь сума 2 методів : chyslo1+ chyslo2
>>2356365 В методе main() вместо отдельного вызова двух методов пишешь: int sum = chulso1() + chuslo2(); И в sum Будет сумма.
И для чего тебе два одинаковых метода chuslo1 и chuslo2, отличающихся только названием? Ты точно понимаешь, зачем тебе эти методы? Достаточно оставить метод chuslo1 и вызывать его дважды. Но это вряд ли всё, что тебе нужно.
Мне за последние пару дней пришло штук 15 приглашений на собес, оплата от 100к до 300к, требуемые знания в 90% из них - джунский спринг и +- средний ООП. Все остальное на уровне прочтения ознакомительной статьи на хабре. Ты наверное охуеешь, но у нас в россии люди выбирают, между предложенными вакансиями.
Но нет же, вкат закрыт, потому что так сказал CockHole из ципсо. Хотя на урине он наверное правда закрыт, тут один чел рассказывал, как у вас рынок в 20 раз упал.
>>2356365 У тебя методы возвращают войд, никак. Твой метод число1 и число2 - процедура, которую ты никак сложить не сможешь. Сделай хотя бы функцию, считывающую два числа, складывающую их и возвращающую сумму. Потом можешь эту сумму сложить и вывести в консоль.
>>2356515 Лол, привык не смотреть на возвращаемое значение, а узнавать его по использованию метода. В каком прекрасном мире я жил, пока не увидел эту картинку
>>2356527 Или еще че похуже, типа одновременно и делается что-то, и вычисляется и возвращается какое то значение. В любом случае, метод должен либо ничего не трогать за пределами самого себя, либо возвращать войд.
>>2356527 Я про то скорее, что в питухоне просто не завезли возможность увидеть - как нормальные люди - тип принимаемых и возвраащемых данных. Надо эти нечитаемые простыни скроллить и смотреть, в какие методы стд либы эти данные пихаются, там потом можно понять что же за типы подразумевались. Горит? Горит.
>>2356500 Чувствую что ты пиздишь. Опыт год это что, маня петы? На такое даже не смотрят, ну на стажировку могут взять если пройдешь все их тестовые/собесы. Я еще поверю что тебе повезло и ты вкатился, но что 10 собесов это пиздеж.
>Образование основное. Без вышки хотя бы не профильной, даже не смотрят сейчас. (Если нет комм.опыта конечно)
>>2356365 сука уроди блять , хотел просто попросить инфи что и как а тут сука уебки нахуй токсичние твари .Вот все мне уже не учить потомучто у меня такой код на 2 неделе учебы? хуесосы
Чтоб с ОБСа стримить на свой сервер и там уже делать че мне надо: перекодировать, вытащить ключ для аутентификации и тд. Желательно как-то это со спрингом скрестить еще. Из готовых решений только какие-то энтерпрайз легаси монстры с настройками на xml. Я не хочу использовать ноду.
>>2356617 В этом блядь и разница между языком и неотключаемой типизацией и языком, который лишь даёт возможность (через сторонние костыли и только в рантайме, разумеется). Если дать возможность, то пользоваться ей будут только полтора аутиста на крупных проектах, потому что по другому они просто свихнутся.
Хочу вкатиться в эту вашу джаву и начать зарабатывать хотя бы 30к для вкатуна. С чего начать? Много времени уйдет на вкат? Понравилось то, что область применения большая. Сам немного эникейщик.
ДОБРЫЙ ДЕНЬ! ССЫЛКУ НА ВАШ ТЕЛЕГРАМ МЫ ВЫГАДАЛИ НА МАГИЧЕСКОМ ШАРЕ, И НАМ ПОХУЙ ЧТО У ВАС ВСЕ РЕЗЮМЕ УЖЕ ДАВНО УДАЛЕНЫ И ВЫ ТОЧНО НЕ ИЩИТЕ РАБОТУ @ ВЫ ЖЕЛАЕТЕ ОЗНАКОМИТЬСЯ С НАШИМИ ПРОЕКТАМИ. МЫ ИСПОЛЬЗУЕМ ТАКОЙ СТЕК ТЕХНОЛОГИЙ: - ASSEMBLER 17 LTS - SPRING BOOT, WEB, FRAMEWORK, DATA, PENETRATION, SECURITY - DOCKER, MAKABA, JSON, OOP - SAINT-PETERSBURG, SCAM, ADOBE PHOTOSHOP @ ИЩЕМ РАЗРАБОТЧИКА JUNIOR С 60 ЛЕТ ОПЫТА @ У НАС ЕСТЬ ТРИ ПРОЕКТА: 1 - РАЗРАБОТКА КНОПКИ ВОЙТИ В ГОВНОБАНК 2 - ПОДДЕРЖКА ТЕТРИСА 3 - ЙОБА-ПРОЕКТ ПО РАЗРАБОТКЕ ЙОБЫ (КАРТИНОК С ЙОБОЙ) @ КАКОЙ ПРОЕКТ ВЫБИРАЕТЕ? СОБЕСЕДОВАНИЕ СЕГОДНЯ ЧЕРЕЗ 4 ЧАСА, ВЫБИРАЙТЕ БЫСТРЕЕ @ ВЫБИРАЕШЬ ТЕТРИС @ ИГНОР
>>2357456 Зацени вакансии на джунов на любой язык, да и вообще посмотри эту хуйню: https://stats.hh.ru/ И придёшь к выводу, что весь рынок труда в рашке мёртв, даже на завод.
>>2357463 По моей второй спецухе дохуя просто вакансий, а по жабе хуй да нихуя. В целом да, весь рынок айти подсел. Но т.к. я вкатун в джабу то меня она интересует
Как хранить сессию, точнее конкретно данные авторизированного пользователя в настольной javafx jdbc приложухе? Пробрасывать объект юзера из логин контроллера к остальным котроллерами, или как это правильно делать?
Так ёбана подожите. Чёт я нихуя не пойму, можно ли собрать нативный исполняемый файл + опционально dll библиотеки под винду, который будет запускаться на машине без жабоидной VM? Пытаюсь найти инфу, но везде какая-то хуета неоднозначная написана. Или тут всё намертво привязано к JVM?
>>2357547 Нельзя. Да, всё намертво привязано к JVM. Максимум можно заэмбеддить через jlink, получив архив, в котором будет обычное джава-приложение + весь рантайм JVM + батник для запуска, но никогда не будет единого исполняемого файла. Вообще, странные вы аноны, берёте жабы-питоны-джаваскрипты и потом страдаете. пытаясь из них слепить C++.
>>2357551 >Максимум можно заэмбеддить через jlink, получив архив, в котором будет обычное джава-приложение + весь рантайм JVM + батник для запуска Во, спасибо. Возможно это примерно то, что мне надо.
>>2357557 >Грааль + кваркус Спасибо за наводку. Тоже взгляну.
>>2357576 SSR - это не только дедовские шаблонизаторы, но и хипстерская дрисня, передающая куски HTML фронту и перерисовывающая фрагменты страницы без перезагрузки всей страницы. Её сейчас любят во всяких нодах.
Гайзы, а что за SAP Hybris залупа? Там релевантный опыт можно получить, или это помойное около-легаси, после которого микросервисные господа будут смеятся надо мной?
В контроллере 11 эндпотнтов. На них написано 35 тестов на 700 строчек суммарно(и в перспективе будет ещё десяток тестов). Это дохуя и надо дробить контроллер? Просто по классу с тестом перемещаться уже неудобно. Может есть ещё какие то способы сделать все это более удобным для навигации?
>>2358077 Поле - переменная объекта. Ссылка - некая хуйня, которая указывает на объект. Её можно сохранить в переменной и разыменовывать, обращаясь тем самым к объекту: его полям (публичных полей никто не делает, но в теории можно) и методам. Переменная - тупа кусок памяти. У него есть тип, чтобы понимать что в нём лежит и само наполнение.
>>2357949 Потому что "работает - не трогай", и эта формула хорошо работает. Изменения необходимы, они добавляются, но без излишеств, когда сахар богаче и сложнее языка, это не норма.
>>2358261 >>зубрить >>slf4j пишешь один раз конфиг @ копипастишь во все проекты >>log4j log4j - медленное устаревшее говно, но иногда встречается. log4j2 - уже немного быстрее логбэка, но не видел его ни разу. В принципе разницы между log4j и logback нет. Просто пишешь @slf4j и похуй что там за логер подключен.
>>2358261 >>2358273 Используешь @Slf4j с уровнем log везде, где надо залогировать и все, изредка warn или error. Все. На собесах могут спросить только по уровням. И как пример аоп. На деле тебе знание аоп 90% не понадобится. Не слушай шизиков, хейтящих ломбок. Он сейчас везде.
>>2358261 Как можно вообще это зубрить? Это же просто тул с одним конфигом и тремя одинаковыми методами насирания в лог. Зубрители хуевы. Если для вас уже это "зубрить" то пиздец.
>>2358396 В многопоточке реально есть что зубрить, особенно со всеми прибамбасами фьюч и форкджоинпулов. Правда это для 95% спринг-крудошлепов в работе вообще не надо, даже на собесах спрашивают не очень часто.
>>2358405 К слову о многопоточке. volatile надо использовать только к полям классов, которые наследуют thread? Типа чтобы переменные хранились в хипе, а не в стеке потока, и чтобы сторонний поток мог к этому полю обратиться. А если 2 потока обращаются к полю обычного класса, нужно ли там поля помечать volatile? Я уже жидко пукнул, т.к. запутался, где что хранится.
>>2358405 Если ты нормальный программист, тебе хоть раз, да понадобятся тредпулы в работе. Зубрить для трудоустройства на кодера вообще никогда и ничего не надо.
>>2358417 С хуя ли не надо, если подготовка к собесам это и есть зубрежка? Это видно по любому мок-интервью, да даже кусок кракинг-кодинг-интервью это тоже конспект для зубрежки. Да даже алго-часть это тоже зубрежка + долбежка прорешивания литкодов. Что бы кто не вонял про софт скилы собесы на кодера это просто экзамен, как в вузике. В разных типах кампаний разные правила этого экзамена. Но это один хуй дрочь для зубрил.
>>2358441 Все темы ты один хуй не прокодишь в петах даже с простыми кейсами. Это займет на полпорядка больше времени, чем зубрежка. Вообще устройство на работу вне фаангов это когда ты прокодиваешь заранее все мастхев темы, а потом зубришь все что не ответил на предыдущем интервью. Всегда кто-то что-то спросит из редко встречающегося в проде говна.
Хало, может кто знает как мне помочь? Надо сделать слои абстракции и реализацию логгера для нескольких разных потоков, типо по паттерну AbstractTemplate
>>2358410 Стэк хранит обычные переменные и ссылки, хип это хип, можно ошибиться в ссылке, если ее поменяли и не пометили volatile. То есть нет разницы между int и Integer. К тому же int как поле класса, а не локальная переменная, хранится вместе с объектом в хип.
Если есть мутабельное поле, то внутри него скорее всего тоже есть смысл использовать volatile. К локальным переменным, будь то object, не являющимися полями классов, просто так не получить доступ из других классов или потоков.
Получается, что поток делает с определенным промежутком flush в хип, либо другой поток с определенным промежутком делает update из хипа, либо и то и то.
>>2358850 Сорич, я ошибся насчет стека. В кэше процессора, конечно. Я знаю, что поля объекта, который наследует thread, хранятся в кэше процессора и когда-то отправляются в хип. И меня интересует вот что, а как бы примитивы/ссылки полей других классов, к которым он обращается, он закачивает как копию себе в кэш, там допустим манипулирует с ними, а потом отдает обратно в хип, или поток напрямую все меняет/считывает с хипа?
>>2359005 Да это я порофлил малость, знаю что они есть. И ещё когда впервые увидел, про себя подумал "ну и нахуя они ЭТО из крестов принесли??" В итоге получается, что любой мало-мальски внятный кодстайл запрещает их использование внутри предложений, а на верхнем уровне они работают абсолютно одинаково.
ZipInputStream zis = new ZipInputStream(new FileInputStream("ahriv.zip")); Он считывает только файлы jar, а мне нужно и папки с их содержимым считать, как это сделать ?
>>2359313 Да, именно так, только название должно быть processor или beanProcessor, а сам процессор должен быть внедренной зависимостью и непосредственно в коде использоваться как this.processor.doSomething()
Майнкрафт до версии 1.6.2 - 1.6.4 запускался через Intellij Idea с помощью апплетов, можно было сделать свой лаунчер. Но. Майнкрафт переделали и убрали апплеты, как теперь запускать майнкрафт ? Нужно какие-то классы запускать из minecraft.jar ? Подскажите пожалуйста.
>>2359358 >форж >миллиард костыльных хаков для совместимости, жирнейшее апи, всё это нужно учитывать в коде Настолько для белых людей, настолько быстро работает, что начали подниматься проекты по типу Fabric, как легковерная альтернатива форжу без ебатории.
>>2359379 Ну конечно, на петухоне вообще никто ничего не декомпилит, вот уж сука язык богов - просто в текстовом редакторе открываешь файлик со скриптом и редачишь! Красота!
>>2354043 Всем привет! Работаю джуном уже 4 месяца (устроился без вышки, через 100+ отказов) Думаю как подняться до уровня мидла, какие книжки читать, т.к не совсем уверен в своих знаниях в следующих областях:
1. JMM и многопоточность 2. Spring`a (знаний для крудов хватает, но всё же) 3. Паттерны ООП
Подскажите плес начинающему довену. Начал "проходить" Spring in Action и такой вопрос возник: как вообще происходит передача объектов между вызовами определенных html-шаблонов, формами етц? У меня так получается, что GetMapping выводит форму, но после валидации повторный возврат ее же приводит к Whitelabel Error Page, в стектрейсе при этом указано, что проебалось какое-то там соответствие между именем объекта и бинами. Класс контроллера такой: https://pastebin.com/2d38zf2C html-шаблон таймлифа такой: https://pastebin.com/Ekn7c8G7 В самой кнежке как и куча всего остального все через жопу, там в PostMapping контроллера объект имеет класс Design, который нигде не вводится, и похоже соответствует классу Taco. Я понимаю что в этом и проблема, потому что будь там класс Design, соответствующий бин бы был. Но как это правильно пофиксить и какая там вообще связь толком не понимаю. Если везде вместо design подставить Taco, то все начинает работать (правда все равно через жопу, ингредиенты не отображаются, потому что видимо по их ключам никакие объекты не присоединены в модель). Правильно ли я понимаю, что имя объекта, с которым работает form в html, обязательно должно иметь соответствующий бин в контексте, иначе таймлиф тупо не знает, какой объект должна создать форма? И как мне после ошибки валидации снова запихать в шаблон Model с нужными ключами (чтоб отрисовывались чекбоксы с ингредиентами) Пока писал понял что с этой еботой никто разбираться не захочет, ну и ладно, хоть в поряд немного мысли привел, как же доебала эта книжка, хотя я только начал
>>2359636 новую разработку никто на коболе не ведет. Более того, я знаю людей, которые портировали мейнфреймы с кобола на жаву. В втб жава, в тинкоф жава, в других банках тоже жава.
Требуется принимать и отдавать в soap в поле body (как запроса, так и ответа) XML-стринги. Я зделол, но потом в спеке увидел, что есть файл с примерами запросов и ответов, и там везде body завернут в <arg0>.
Поясните, мне на серверной части просто в xsd это подправить, или это какая-то искоробочная история soap, типа там биндинг особый, RPC или еще какой-то нюанс
>>2359457 Работаю в финтехе, клепаю моды для майнсруфта, и там и там нужна жаба (ну ещё для душевного, блядь, спокойствия нужна жаба, потому что финтех на 1с), поэтому изучаю. Проблемс?
>>2359978 >The .NET Framework (pronounced as "dot net") is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. А хуле так написано? По любому ведь ты не договариваешь.
Ну вот я решаю задачки на сайте, параллельно прохожу допустим лямбды, до этого изучал дженерики. А как их практиковать-то? Кучу материала посмотрел, тему в учебнике прошёл, что-то даже написал сам по тому же учебнику, но на codewars.com и литкоде этих знаний не требуется. Мне на более высокий уровень сложности задач переходить, или свой пробный проект делать, аноны, где вы брали практику? Учитывая, что самый часто встречающийся совет - меньше теории, больше практики. Или мне забить хер и идти дальше по плану в шапке.
>>2360140 свой пробный проект. Напиши простейшую реализацию ArrayList с методами get(int index), put(T object), add(T object, int index) и delete(int index), сделай это через дженерики, можно подглядывать в эталонную реализацию в jdk
Жаба нужна только для майнкрафта. Вся айти индустрия на жабе нужна только для того, чтобы генерировать профессиональных кодеров плагинов для майнкрафта.
>>2360140 >до этого изучал дженерики Ты че, долбаеб? Че там изучать? Я их "изучил" за 1,3 секунды, когда увидел использование их в сорцах какой то хуйни и подумал, что это довольно удобно.
>>2360275 Я изучал. Читал учебники, смотрел видосы, решал задачи по рекурсивным женерикам и вайлдкардам. Но когда вкатился и гдето через год после достаточно подробного знакомства мне потребовались вайлдкарты с применением средней изьебистости оказалось, что все это просто вылетело из головы и пришлось разбираться заново. Посидел, часок читал статьи и стак, часа три писал и переписывал набор методов, и все норм. Задрачивать синтаксис это бессмысленно, гугл это вторая память. Реально держать это говно в голове имеет смысл даже не для собесов, а для сертификаций, которые бесполезны.
Какие есть легкие способы сделать локальное приватное key-value хранилище при этом зашифрованое? Где хранить данные, в файле ли, в бд ли, не имеет значения. Интересует именно как организовать шифрование. В bouncycastle есть что-то подобное?
>>2359641 это всё легаси. даже если переписывают на новый дотнет, легаси истории это не отменяет. новые проекты (крупные) на дотнете не начинают. незачем абсолютно.
Сильно ли сложно программировать на джаве на реальных проектах? Я слышал, что там прям вообще хардкор. Я вот сейчас могу свой сайт сделать на Спринге, но как понять, смогу ли работать на реальных проектах?
>>2360461 Реальные проекты - это дебаггинг и небольшие доработочки. Большая часть времени уходит на то, чтобы понять как всё работает, как в случае отладки (ну тут очевидно), так и в случае доработок (куда бы мне впихнуть своё говно чтобы всё вокруг не развалилось)
>>2360489 Ну мы сейчас полностью переписываем один тырпрайз проект на 1с на микросервисы на спринге и жабе 11. И я, как джун написал больше половины кода в двух из 25 уже имеющихся микросервисов. И у меня большая часть работы уходила на тесты. У меня нетиповой случай хочешь сказать?
>>2360500 >У меня нетиповой случай хочешь сказать? Нет, думаю нетиповой. Устроившись в жабу, с большей вероятностью будешь поддерживать готовое (и довольно старое), нежели писать новое. Но во-первых чёткой статистики нет ни у меня, ни у кого-то вообще, а во-вторых можно и работодателя спросить чем он занимается. Загвоздка в том, что он практически всегда будет выпячивать какие-то новые проекты, и ты по факту придя, можешь столкнуться с тем, что на самом деле тот крутой проект, которым хвастался кабан, окажется ОЧЕНЬ ДОЛГОИГРАЮЩИМ. Никто не захочет в открытую сказать, что там лесаги болото, так же как никто не признает например, что в фирме каждые выходные овертайм. Выход как всегда один - пробовать и не стесняться ливать, если тебе не подошло. Я например нормально отношусь к поддержке старого, она тоже знаешь поддержка поддержке рознь, в одном месте кабан будет заставлять роняя кал срочно пилить какие-то костыли, забивая хуй на всё что связано с ликвидацией удержанием техдолга, в другом кабан может быть весьма лоялен к этому, а когда кабан лоялен - рефакторить старый кал это прям охуительное удовольствие.
>>2360673 Я давно про это говорю, что создают монструозные фреймворки, чтобы выплюнуть простую страничку html. А РНР - это лучшее, что создали для веба.
>>2360699 Не отправляй ему донаты и не смотри его специализированные "разговорные" видосы, где он пиздит о том, в чём не является профессионалом. Вот в последнем видосе он несёт сильно субьективную хуйню, борется с попенсорсом, но ничего про хохлов вроде бы нет. А вот видосы по типу "новости", где там танчик на превьюхе - сразу понятно, что можно не открывать. Короче будь более открытым, что-ли, не дели на своих и чужих, просто фильтруй контент по его содержанию, а не источнику. Я буду видосы хоть от поедателя младенцев смотреть, если он в чём-то конкретно хорошо разбирается и эта область мне интересна.
>>2356143 Используй bigdecimal и в хуй не дуй. Ты все равно потеряешь точность при вычислении, ибо существует порядок операций, и вычисление будет разбиваться на этапы. Ну или можешь реализовать систему компьютерной алгебры, которая будет производить упрощение выражений, сокращая число операций.
>>2360727 Это больше философский вопрос, так-то я подозреваю, что никто так адски не ебется в фин вычислениях, чтобы прям всё-всё-всё сохранить, там главное флоаты не использовать и ты уже герой, а bigdecimal даст приемлемый уровень точности в реальных, земных задачах, плюс там готовые способы округления, из которых можно выбрать. Главное ведь не чтобы погрешности совсем не было, а чтобы она не накапливалась со временем. Округление до ближайшего чётного этот вопрос должно решать на корню.
>>2360767 Дык я ради орева в основном и запостил. Ну и хотелось бы послушать его адвокатов, если таковые найдутся. А то мы всё только адвокатов бугаенки слушаем.
В целом да там через всё интервью красной нитью проходит "ряя если я немогу всё знать до байтиков значит оно нинужно", типа если либу подключаешь то пока не продрочишь её сорцы то ты не имеешь права с ней работать "а вдруг там баги/уязвимости??", но блядь программирование уже давно невозможно и не нужно обымать целиком. Любой проект большой ты просто в голове не удержишь, даже проект блядь, а если ты ещё будешь пытаться держать в голове все зависимости, то ты точно ебанёшься. Если бы все такие были как этот чел, то айти бы не ушло дальше того, о чём способен помыслить один человек.
Вопрос по мавену: Если у меня libA использует libB версии 1 А projectA использует libA и libB версии 2 Какая версия libB в итоге будет использоваться при выполнении projectA в виртуальной машине? Более новая? Или строго которую использует projectA?
Мавеном все собирается в один джар плагином maven-assembly-plugin.
>>2360861 > А что в теории помешает машине загрузить байткод обеих версий либы? А как тогда в памяти два класса юудут резолвиться? Или это будут два разных класслоадера? Ну, скажем, если если я сделаю Class.forName("classname") который вытащится? > Или тебе твой конкретный кейс интересен - тогда тут только доки мавена. Ну ок, покурю. Вообще, пока сейчас печатал этот пост понял, что в итоге только один класс же попадает в итоговый бвсе-в-одном jar. Вот только по какому принципу выбирается какой именно - пока загадочка.
>>2360868 > Или это будут два разных класслоадера? Ну да. https://www.baeldung.com/java-classloaders >Custom Class Loaders Use-Cases >Implementing a class versioning mechanism while loading different bytecodes for classes with the same names and packages. This can be done either through a URL class loader (load jars via URLs) or custom class loaders.
>>2360848 >Мавеном все собирается в один джар плагином maven-assembly-plugin Если все пакуется в один jar, то там рандомным образом будет одна из версий. Если все собирается в zip который потом распаковывается и выполняется, то все будет зависеть от того как ОС сортирует файлы, тут на дев машине все работает одним образом, а на прод другим тру стори из личного опыта.
>>2360881 > там рандомным образом будет одна из версий Не совсем. В моем случае, как указано вот здесь, можно описывать правильные депенденси. Разобрался, спасибо, анончики.
Максимально наивный вопрос вкатуна, но какой IDE лучше использовать? В стартовом гиде рекомендуется IntelliJ IDEA, но там SPRING только в платной версии доступен, а это вроде самый популярный фреймворк для джавы. Или он вкатуну фреймворки нинужны?
>>2353490 (OP) Крч проблема следующая- нужно сгенерировать описание всех классов- поля, методы (публичный метод объекта класса ССС, принимает объект класса ХХХ, и возварашает объект класса УУУ), наследование, интерфейсы и тд. Когда то я видел такую прогу, типа от какого то универа пиндосского, прилагалась к статье о рефлексии. Моя нынешняя реализация чет слишком корявая и хотелось бы либо заиметь толковый оригинал, либо какую нить либу нацеленную именно на получении информации о классе (ну типа отфильтровывать наследуемые поля и методы енамов - такое себе удовольствие), ну а в идеале готовое решение которое умеет генерить шаблонную документацию(я удивлся когда нихуя не нашел)
Хотелось бы хотя бы либу, чтоб можно было из метода сразу получить переопределнные классы, дерево наследования/интерфейсов, вменяемую параметризацию и тд
>>2360848 >>Какая версия libB в итоге будет использоваться >>Maven picks the "nearest definition". Возьмет тут что объявлена ближе к корню. Можешь просто явно указать в своем pom.xml нужную либу - тогда использует ее.
емнип можно настраивать разные стратегии разруливания транзитивных зависимостей, читай тут подробности
>>2361055 Но мне важно знать, допустимо ли использовать наследование в коде, или же это говно, которое сломает нахуй инкапсуляцию, если в расширяемом классе есть протектед члены, или может быть нужно везде хуярить композицию, но возникают вопросы что делать если тебе нужно расширять либу, следовательно ты не перепишешь либовый класс под интерфейс, а если ты будешь создавать новый объект расширяемого класса и хранить в своём классе то как быть если расширяемый класс abstract.
>>2361055 У меня возникают трудности с поиском информации по Спрингу. Ещё многие функции в бесплатной идее заблокированы, которые нужны для написания полноценных приложений. А вот в сишарпе есть бесплатная и полнофункциональная Visual Studio 2022 и больше ресурсов по фреймворкам.
>>2361068 Обмен между контроллерами и представлениями и так сложный и не очевидный, а они ещё накручивают там всякие трудновыразимые конструкции. В итоге я сижу и вообще ничего не понимаю в том, что написано.
>>2361065 >>У меня возникают трудности с поиском информации по Спрингу >>есть бесплатная и полнофункциональная Visual Studio 2022 >>больше ресурсов по фреймворкам. Вот ты и ответил на свой вопрос. Больше не появляйся в этом итт треде.
За сколько месяцев примерно ботаются необходимые для среднестатистической работы фреймворки или другая залупа, если сейчас из вводных неплохое знание жаба cora? (по роадмапу в шапке я перестаю понимать, что происходит после sql). Я в раздумьях, что делать: пиздовать учить ведроид или добить ебучую джабу, учитывая, что в ней я не прям хуевый. Первоочередное для меня затраченное время в будущем, потому что хочу сменить заебавшую меня работу. P.S на ведройде я тоже писал совсем чуть (пару/тройку месяцев) на котлине еще в начале изучения всего и вся, но по ощущениям в ведре я на порядок хуже (хотя все же чет помню оттуда);
>>2361127 > За сколько месяцев примерно ботаются необходимые для среднестатистической работы фреймворки или другая залупа, если сейчас из вводных неплохое знание жаба cora? Если знаешь сам SQL, то пара месяцев плюс-минус.
Иду на следующей неделе на собес 400к на руки на позицию сениора-помидора НЕ в финтех. Подскажите, что спросить могут вообще? На собесах не был года два уже, нихуя не помню, а может многое и изменилось в процессе собеседований за это время, выручайте работяги
Поделитесь пожалуйста книгами или гайды по эластику + спринг актульных версий.
Есть кейс: есть запрос в БД с объемом 100кк++ строк и кучей ебучих джоинов. По сути простое журналирование.
1. Как синхать БД и эластик в реалтайме? Логстеш? 2. Как перенести этот ебанутый запрос с n+1 подзапросами внутри с разными каунтами вида sum x/sum y и сортировками? Это говно не читабельно нихуя и делалось на коленке. Из за того что нужны сортировки и данные отдаются по лимиту все сделано так что считает прям в запросе и это пиздец. Хотя производительноть запроса ок и отдает за 1-2 секунды с учетом ебанутейшго коста на БД в миллиарды.
Думал сделать отдельную таблицу с денормализованными данными по этому журналу, прикрутить логстеш к постгресу и хуярить напрямую оттуда в эластик. Но пока нашел только общую инфу как это делать. Конкретики не видел. И что делать с каунтами не ебу.
Подскажите пожалуйста, мне нужно зубрить куски кода ? Например, я сейчас изучаю Hibernate. Нужно ли зубрить: как отправлять данные, как их получать, аннотации ?
>>2361381 Ты учти, хибернейт не единственная орм, также придется вызубрить eclipselink и apache cayenne. И если будешь медлить и долго возиться- еще что нибудь выкатят, пока ты ковыряешься.
Я пришел в тред чтобы послать вас нахуй всех т.к. вспомнил, что хочется иногда задать бестолковый вопрос и получить пояснение, а вы начинаете почти все выебываться. Так что идите нахуй
>>2361418 История из ньюфаготреда, когда чел что-то спросил, ему пояснили что по его вводной нихуя не ясно, надо конкретизировать, на что он ответил что мол мы выёбываемся. Это клиника, помноженная на даннинг-крюгер.
>>2361442 Мне нужно из разных приложений юзать класс который в общее хранилище будет складывать кое какие данные, но имена должны быть разные у приложений, и ключи в хранилище соотвественно.
>>2361444 Исследую этот вопрос, получаю все стектрейсы, может как-то по ключевому слову main и еще какому-то признаку буду вытаскивать.
>>2361449 > Мне нужно из разных приложений юзать класс который в общее хранилище будет складывать кое какие данные, но имена должны быть разные у приложений, и ключи в хранилище соотвественно. Рядом с каждым приложением кладёшь по конфигу с именем, при записи в хранилище пишешь эти имена.
>>2361449 >Мне нужно из разных приложений юзать класс который в общее хранилище будет складывать кое какие данные, но имена должны быть разные у приложений, и ключи в хранилище соотвественно. Ты че, долбаеб? Ты про микросервисы слышал хоть раз?
>>2361449 >>2361444 Похоже, все таки, есть возможность. По крайней мере на моей JVM у первого треда всегда ид = 1 и имя main. Соотвественно, пробегаюсь по всем стектрейсам, беру только тот стректрейс у коготорого ид треда 1 и имя main, первый вызов в этом стектрейсе - там полное имя класса - профит.
>>2361451 Я ленивый, хочу чтоб вся магия сама делалась, а я в каждом приложении дергал один единственный метод.
>>2361470 Ну ладно, если не нахожу тред с идом 1 или в треде с идом 1 не нахожу метода main начале стектрейса - бросаю исключение, которое, никогда не будет брошено, так как главный тред, похоже, всегда 1 WIN
>>2361479 Ну, по крайней мере, орокловская джвм выдает ид 1, поэтому похуй, к тому же > если не нахожу тред с идом 1 или в треде с идом 1 не нахожу метода main начале стектрейса - бросаю исключение
>>2361482 Ну то есть ты намертво привязываешься к текущей реализации оракловой JVM. Из-за таких как ты все до сих пор сидят на 8 жабе - создатели фреймворков привязываются к кишкам текущей реализации, а они берут и меняются, и везде эксепшены как у тебя.
>>2361487 А какие еще варианты, слиться с задачи раз другого решения нет? Задача сформулирована так, что надо уметь извлекать имя главного класса приложения из любого треда. Варианты с подкладыванием вручную конфига с именем или каким бы то ни было еще ручным маркированием приложений не канает.
>>2361492 Обожаю двач -- Помогите решить X? -- Не надо решать X, ты не прав /thread
>>2361496 Да, это запасной вариант - запоминать имя класса в начале каждого main, но хотелось бы не париться, а просто из любого места кода вызывать метод и получать условный уникальный идентификатор любого приложения, желательно имя класса без предварительной возни с его регистрацией.
>>2361506 Я бы написал длиннее про свою задачу, чтоб ты понял что мне нужно именно решение проблемы X, но не буду потому что ты токсичное хамло с выебонами.
>>2361499 >>Обожаю двач Ты спрашиваешь у хирурга как правильно пришить себе хуй на лоб, на что он закономерно отвечает что ты долбоеб и тебе не стоит этого делать. После чего ты бежить плакаться какие хирурги токсичные и не хотят ничего рассказывать по делу.
>>2361515 Что не так с задачей получать уникальный идентификатор приложения по факту его существования? Я хочу использовать это в отладочных целях, вставляя метод куда мне надо, и в хранилище собирать данные, в котором ключ это имя приложения, а значение - данные. Приложения куда я буду это вставлять очень разные, в них могут быть использованы (или не использованы) любые фреймворки, технологии и библиотеки. Если у каждого приложения в любом случае всегда уникальное имя main-класса, почему бы не взять именно его? Возиться с предварительной вставкой в каждое приложение, засирая мэйн класс не всем сразу понятной регистрацией имени класса и, конечно обязательно забывая ее вставить или убирать в каждое приложение будет дороже, чем просто вызвать метод в нужном мне месте. А в хранилище, я буду на 100% уверенным, что вот эти данные пришли именно вот от этого конкретного приложения, при этом не ведя нигде никаких списков и таблиц всех приложений. Почему нельзя просто взять имя мэйн класса то, если это полностью решает задачу. Хуй знает, по-моему, пришивание хуя на лоб это как раз был бы гемморой с учетом всех существующих приложений, когда уже есть уникальный критерий, по которому можно сходу идентифицировать приложение, к тому же еще и вполне человекочитаемо.
Охуеть сколько текста я высрал для тебя, зная что в ответ все равно получу очередное хамсто.
>>2361522 > Ну и какая проблема Y у меня тогда? Вся твой задача - проблема Y. Проблему X ты упорно утаиваешь. > Если у каждого приложения в любом случае всегда уникальное имя main-класса Ложная предпосылка. Они могут тупо совпасть, и никакого контроля на это нет. А может быть и такое, что ты деплоишь все свои приложения на один сервер приложений, и у них всех будет один и тот же главный класс с методом main - класс самого сервера приложений, который запускает всё остальное. Ты на 100% уверен, что подобные варианты у тебя исключены, даже при том, что у тебя по твоим же словам используются любые фреймворки, технологии и библиотеки? Значит, всё-таки не любые?
>>2361527 > Вся твой задача - проблема Y. Проблему X ты упорно утаиваешь. Ну хз, я в посте выше постарался довольно подробно описать как что и зачем мне нужно. Так можно доебываться по иерархии проблем вверх сколько угодно и дойти до того, что исходная проблема X - получить оплату работы и купить на нее хлебушек.
> Они могут тупо совпасть, и никакого контроля на это нет > у них всех будет один и тот же главный класс Исключено, такие приложения, у которых имя класса (пакет+simple class name) будет одинаковымы тут точно запускаться не будут. > Значит, всё-таки не любые? Здесь ты прав, не совсем любые, уточню, что каждое приложение запускается в своем инстансе JVM путем вызова java -jar, а не в сервере приложений.
Энивей, задача решена, готов поспорить на $1, что в официальной JDK от Oracle мэйн тред всегда будет под id 1 на срок пока Java 17 является текущим LTS.
>>2361660 А что тебе мешает зарегаться на жавараше, там именно в таком ключе задачек огромный вагон и маленькая тележка. Да, надо платить, но естественные конструкции языка доведешь до автоматизма при написании кода с этим сайтом. Я друга так тренил, правда я ему еще давал теорию по тырпрайз разработке, бд и прочим нужным шляпам. Ничего, вкатился через 2-3 месяца на зп в 60к. Конечно не 100 и не 150, но все же неплохо
>>2361702 Ну жабараш - эт уже какой-то вариант. Ток там ща проплатить за рубли нельзя
Мне бы не прост джавовые, а чтобы на логику.. поучиться декомпозировать, расписывать алгоритмы. А то я сразу лезу в бой.. без системного подхода. И как-то не оч получается. Представить в голове алгоритм нормально не получается. Все время зацикливаюсь на какой-то хуйне. Да и че там говорить.. и на бумаге не всегда сразу получается расписать. Приходится какое-то время затрачивать.
Начал погружаться в микросервисные архитектуры. Не могу понять: как будут общаться между собой микросервисы? Они будут друг к другу стучаться по REST в эндпоинты? Или напрямую вообще не касаются друг друга, а получают инфу из брокера сообщений?
Мне надо в static закинуть файл style.css, но идея склеила папки и не даёт нормально закинуть файл. Как расклеить папки в идее? И как вообще отключить эту тупую фичу?
>>2361708 ну в таком случае тебе на leetcode, там много задачек, в том числе и простых. На ютубе есть разборы на русском некоторых из них на канале "3.5 задачи в неделю". Также можно посмотреть решения других людей и сравнить со своим. Выбираешь, например, задачи с листами и херачишь. Там можно порезвиться вволю
гайз,откуда можно быстро нарулить лицензионный ключ от айдии, пишу диплом и слетела блядская лицензия, а жидбрэйнс чето не особо торопятся её продлевать по моему белорусскому студаку
>>2361862 во многих компаниях общение back-to-back через рест запрещено, где-то запрещены синхронные http запросы, но при этом можно в grpc (который поверх http). Обычно через кафку общаются сервисы, но это если компания большая и достаточно богатая, чтобы себе такое позволить. В принципе, кафка дает много приемуществ, например сервисам не надо знать друг про друга ничего, для каждого из них есть только они, их бд и кафка, из которой они погут получать данные, если знают название топиков
>>2361872 Микросервисы можно масштабировать горизонтально, монолит только вертикально, а у вертикального масштабирования есть вполне конкретные пределы. У горизонтального, конечно же, они тоже есть, но значительно выше по производительности. Ну и плюс ко всему, если у тебя упал один сервис, то на веб морде перестала работать только одна кнопка, а не вся аппа, а это уже отказоустойчивость. В целом, микросервисная архитектура гораздо дороже и сложнее в плане инфраструктуры, чем монолитная, поэтому выбирать ее стоит только тем, у кого есть такие потребности и деньги на нее. Ну и само собой, если мы говорим про банки, где отказоусточивость крайне важна, там буду микросервисы, если у тебя есть абмиции устроиться на работу в банк, то велком в микросервисы. Я еще год назад совсем не понимал что это и с чем это едят, но все на деле оказалось гораздо проще и легче, чем я себе это представлял.
>>2361872 А еще можно подробить стрим из 100 человек на маленькие команды, и у каждого будет своя зона ответственности. Как следствие, почти не бывает merge conficts, которые никому не нравятся. Но это скорее приятный бонус, ИМХО
Посоветуйте книгу после "Философии Java" по новым версиям языка. Дело в том, что Эккель описывает 5 версию, а я слышал, что много изменений было в 8 и 11 версиях.
Аноны киньте если у кого остались тестовые задания на джуна/мидла - понравилось делать такие. И как их гуглить? Лезут либо тестерские задачи, либо интервью вопросы
>>2361889 хабр юзай, читать книгу ради patch notes пустая трата времени имхо. Изменения были, например больше нет пермгена, он был переименован в метаспейс и упразднен. В частности, пулы констант теперь лежат в хипе в хуипе
>>2361872 Чтобы ресурсы разделить. Ты не хочешь, чтобы тяжелые отчёты генерировались на том же железе, которой обслуживает пользователей, ибо генерация отчётов может выжрать все ресурсы, из-за чего пользовательские запросы будут обрабатываться очень долго. Это один из примеров
>>2361878 >Микросервисы можно масштабировать горизонтально, монолит только вертикально > где отказоусточивость крайне важна, там буду микросервисы Это заблуждение. Микросервисы это скорее про изолированные команды, независимый деплоймент, вот это все, про организационные вещи больше. А для масштабируемости и отказоустойчивости ничто не мешает мне запустить N инстансов монолита.
>>2361956 все эти инстансы будут в одну и ту же базу ходить?)) А если база шлепнется, то все инстансы твоего монолита станут бесполезными.
Лично мне кажется, что ты тут пошел от противного. Независимый деплоймент это то, на что ПРИХОДИТСЯ идти, ради микросервисов. И это то, что делает микросервисы дорогими и сложными, поскольку нужны дево псы, а не сисадмины обычные. То что команды изолированы, это конечно здорово, но то, что сервисы изолированы друг от друга и под их нужды можно выделить разное кол-во мощностей - вот что круто.
Когда у тебя монолит, и ты много инстансов разворачиваешь, то разворачивается в том числе и та часть, которая может быть не нужна. Приведу пример, регистрация испытывает нагрузку в 60 рпм, а часть, отвечающая за сообщения 1 000 000 рпм, в случае с микросервисами можно было бы отмаштабировать сервис, ответственный за сообщения, и при этом сервис, отвектственный за регистрацию потребял бы столько мощности, сколько ему нужно в данный момент времени
>>2361971 >А если база шлепнется А на уровне базы нужны свои решения для отказоустойчивости, причем даже если в нее ходят микросервисы
>разворачивается в том числе и та часть, которая может быть не нужна Это понятно. Но плохо это на практике конкретно чем? Ну да, наверное тем, что сколько-то мегабайт памяти и сколько-то секунд времени старта будет съедено на этом дублировании "ненужных" частей монолита. Но много ли в реальности проектов, для которых это было бы существенно? Только ради такой экономии на гибком масштабировании, стоило бы идти на все усложнения, которые приносят микросервисы?
>>2361986 А если тебе ровно половина монолита нужна реже, чем другая раза в три, то бишь на вторую половину нужно в три раза мощности. Разворачивая тысячу инстансов ты можешь запросто потрадить дофига дорогих ресурсов, которые деняк вообще-то стоят, хотя платишь их конечно же не ты)
>>2361989 >Разворачивая тысячу инстансов Окей, на том и согласимся. Ради отказоустойчивости микросервисы не нужны, а ради масштабирования они имеют смысл на проектах с масштабами по нагрузке в тысячи инстансов.
>>2361733 > Они будут друг к другу стучаться по REST в эндпоинты? > Или напрямую вообще не касаются друг друга, а получают инфу из брокера сообщений? Ну вот как лично ты сделаешь, так и будут, по большому счёту.
>>2362047 Да в спринге как в токавом нечего разбирать на самом деле. Есть на тытубе канал алишера какого-то, там основы спринга популярно обьяснены. Есть еще доклады Жени Борисова "Спринг потрошитель", есть вроде какой-то русскоязычный сайт, но там статей немного. Можешь еще почитать Spring 5 для профессионалов в русском переводе, если не боишься сломать зубы об этот толмуд, но для начинающих в теме людей, имхо, будет сложно. Есть еще spring in action на русском, тоже вполне годно. Вообще, не раз замечал, что очень долго могу гуглить какой-то вопрос, вот прям неделю и не найти на него ответа. А потом открываешь книгу и находишь ответ на 25 странице. Конечно, можно сказать, что я плохо гуглю, но откуда я блять знаю, как надо гуглить, если я начинающий. Это я к тому, что книга нормальная может здорово тебе помочь
Сап, только начал вкат (18 лет), зашёл посмотреть вакансии на хх в дс2 - охуел, везде год работы нужен или вышка, такое ощущение что мест не осталось. Всё пропало или рынок вернётся?
>>2362124 >рисуешь сам себе в резюме Такое перестало работать еще в нулевые. Теперь нужен столичный опыт разработки, официально зафиксированный в трудовой книжке.
Внимание, вопрос. У меня есть тред, дохуя тяжёлый, я хочу его замедлить как-то раз в 100, чтоб выполнялся дольше, но нагружал в целом процессор меньше. Как это можно сделать без тред слип 10 каждую строчку?
>>2362208 Чтобы была уникальность названия проекта. Если разные разрабы создадут либы с одинаковым названием, их всё равно можно будет юзать в одном проекте, т.к. группы одинаковые. Хотя можно обойтись и одним уникальным именем, например, предполагалось, что в группе будет домен, принадлежащий организации, а артефакт - само имя проекта, а организация централизованно обеспечит уникальность имени артефакта в олной группе, в действительности в группе начали придумывать несуществующие поддомены для большей детализации, например, projectName.departmentName.companyName.com, а в артефакт суют не сам проект, а модуль.
Получается для Thymeleaf надо каждый раз целую html-страничку делать? За столько лет они не догадались, что логичнее сделать общий шаблон страницы, а уже конкретный контент туда вставлять. К примеру, сделал запрос /list и в главный шаблон _Layout.html вставился list.html и т.п.
НАШЁЛ ОХУЕННУЮ ЛИБУ @ БЛЯТЬ, КАКАЯ ЖЕ ОНА ПИЗДАТАЯ! @ СУКА, Я ЕБАЛСЯ НАД ПРОБЛЕМАМИ ИЗ ЭТОЙ ЛИБЫ НЕДЕЛЮ, А ТУТ ВСЁ РЕШЕНО УЖЕ! @ БЛЯЯЯЯ ЩАС КОНЧУ НАХУЙ @ ПОСЛЕДНИЙ АПДЕЙТ 2 ГОДА НАЗАД @ 9223372036854775807 ISSUES OPENED
НАШЁЛ ОХУЕННУЮ ЛИБУ @ БЛЯТЬ, КАКАЯ ЖЕ ОНА ПИЗДАТАЯ! @ СУКА, Я ЕБАЛСЯ НАД ПРОБЛЕМАМИ ИЗ ЭТОЙ ЛИБЫ НЕДЕЛЮ, А ТУТ ВСЁ РЕШЕНО УЖЕ! @ БЛЯЯЯЯ ЩАС КОНЧУ НАХУЙ @ ПОСЛЕДНИЙ АПДЕЙТ 2 ГОДА НАЗАД @ 9223372036854775807 ISSUES OPENED
Посоны, не бейте, а лучше поясните. Сразу говорю, я не профессиональный погромист и в эту сторону особо не смотрю...
Задача: Мне нужно выкачать свои данные из огромного общего файла гугель таблиц для дальнейших действий над ними в жаве. На выходе это будет тоже таблица (не гугель, а в смысле что визуально таблица) с кучей довесков которые я уже в Жаве сделаю.
Вопрос: Как это сделать? Я не очень хочу ебаться с гуглом, поэтому пока мне это видится так, что я для начала делаю кнопочку "скачать данные" и разовым действием перегоняю свои данные в какую-нибудь H2 и забываю про гугол. А дальше че, REST делать? Я просто больше особо нихуя не умею честно говоря. Операции чтения (со всякими фильтрами) и редактирования будут 100%, удаление хз, запись... ну наверное только во время перегонки данных из таблиц в БД.
Гугол таблица постоянно редактируется, поэтому сохранять какие-либо данные в полноценную БД смысла нет. Никакая многопоточность мне не требуется (пока по-крайней мере) - тыкать эту хрень я один. А, ну и нужно чтоб эта хуйня с ярлыка/закладки_в_браузере запускалась, а не через ide, лул. Может тут вообще типа десктопное приложение надо делать?
ПЫ.СЫ 1: Да-да, я довен и все такое, просто подскажите по архитектуре в какую сторону вообще идти. ПЫ.СЫ 2: Нет, в самом гугле/экселе будет не проще. ПЫ.СЫ 3: Я хуй знает как это все правильно сформулировать, если че могу на наводящие вопросы ответить.
>>2362254 - Раз вы не можете подтвердить свой опыт документально, придется подтвердить его знаниями. Возьмем, к примеру, абстрактный симплициальный комплекс, множество вершин которого....
>>2362271 таких вопросов никогда не видел на собесах, для меня это что-то из разряда невозможного. Наверное, потому что я молодой, меня за свитчера никто не считает.
Двач, хелп. Нужно написать решение задачи на Java.
Задача: Напишите программу, при запуске которой создается и выводится на экран графическое окно. В окне размещена группа компонентов JRadioButton, метка и кнопка. После нажатия на кнопку, текст выбранной радиокнопки отображается в тексте метки.
>>2362343 >>шаблонизатор >>Спринга так не умеет Спринг используют в тырпрайзе, а там всегда найдется жс макака с реактом/ангуляром. Но если очень хочется - таймлиф, ваадин и прочие фримаркеры для легаси подхода с шаблонизаторами.
>>2362381 Разобрался. Оказывается там надо подключать левую библиотеку, которая тянет за собой кучу всякого говна, которые потенциально могут заменить мне все файлы на сердечки. В общем, сами создатели Thymeleaf шаблонов не предусмотрели и всё расширяется кривыми библиотеками сторонних челиков.
А с точки зрения науки как это звучит? В поля нельзя инжектить потому что, объект тогда создается через рефлексию, а если в сеттер, то через пустой конструктор. И при тестировании с приватным полем, что произойдет?
привет двачик, чё думаете по поводу каты kata.academy? Норм тема или наебалово? Заканчиваю школу, в армию не годен, есть смысл через неё залетать? Привлекает участие в коммерческом проекте, чё думаете? дискасс
>>2362597 Конструктор тоже вызывается спрингом через рефлексию. В тестах разница только в том, что с конструктором ты можешь его просто вызвать через new, а с @Autowired на приватных полях тебе придётся поднимать спринговый контекст. Но шизики не признают, что тест со спринговым контекстом может считаться юнит-тестом.
Сап, маленькие любители тырпрайза. Есть кейс, а спросить не у кого.
Имеем spring data (hibernate), mysql. Имеем 5-8 вложенных друг в друга энтити, которые удаляются по @Cascade На каждом из энтити висит hibernate listener на удаление, который апдейтит другие энтити и выполняет несложную логику.
Проблема: При удалении энтити A, каскадом удаляются энтити B,C,D и так далее, все вложенные друг в друга. Соответственно при каждом удалении происходит много всего, что в конечном итоге занимает много времени. Как сократить время выполнения?
Удалять в обход хибернейта - отвалится логика в листенерах. Делать задачи в листенерах асинхронными - не сможем откатить транзакцию в случае чего.
Может тут есть закалённые в боях воины, которые подскажут решение?
>>2362490 >>всё расширяется кривыми библиотеками сторонних челиков. Это все же не супер важное что то, чтоб туда гугл с амазоном бабла вваливали. Свои задачи тем не менее она выполняет. Че тебе еще надо то?
>>2362632 Старая-добрая ебля с уродливой архитектурой спринга. Пожинай плоды того, что в самом начале разработки сэкономил пару часов времени, милсдарь.
>>2362757 Узнаю старый добрый двачик. Предлагаешь использовать для таких проектов jdbc и сокеты? Ну успехов, хули.
>>2362763 А разве спринг и хибер не созданы для того, что бы на них завязываться?
Кстати, в посте забыл упомянуть soft delete - это решение, но крайне не желательное. Уверен найдутся знающие аноны, которые предложат пути оптимизации этого говна.
>>2362764 Предлагаю максимально изолировать базу данных от объектов и моделек. В коде класса модельки или объекта не должно быть ни одного символа, написанного ради сохранения этого говна в базу данных.
>>2362764 >>хибер не созданы для того, что бы на них завязываться? У меня на проекте жук, никакой ебли с жпа проблемами, пишешь почти как на скл, только без всяких там ждбц темплейтов и прочего оверхеда. вся ебля - с генерацией кода если у тебя микросервисы, но решается один раз, потом просто пишешь С транзакциями тоже все просто и удобно. >>там ты и завязываешься на спринг >>@Entity, @Table это хибернейта/жпа аннотации, а не спринга. >>завязываешься на спринг >>самым ужасным образом как будто есть смысл писать не на спринге >>2362772 >>прочитали тот перевод хейтера ORM на хабре. я просто помню как меня попускали вопросами по хиберу на собесах, там же полно подводных
Короче. Вкатиться у меня не получилось. На каждом собесе по очереди меня дружно попустили. Хотя на самом деле, это я их попустил, дегенеративные хуилы даже в тестовые задания сували блядь свои ебаные крудо-ормки блядь, а там где крудошлёпать не просили, заставили реализовывать процедурный статический блядь метод, пидарасы ебаные говнокодеры ебучие. Прикрепляю мем
Долго ебался с вопросом парсинга аргументов командной строки, с субкомандами, и дополнительными плюшками, легко навешивающимися поверх основной логики. Сначала пытался сделать огромный велосипед, логично, что у меня вышло говно и я всрал, наверное, часов 5 своего времени впустую. Пересмотрел дохуя библиотек, многие из них реально были интересными, но во всех были свои проблемы - кто-то задрачивался на спринг, который не всюду засунуть можно, в каких то библиотеках код итоговый нечитаемый был, 95% просмотренных вообще трешем были. В целом, задача была - парсить серверные команды игроков в майнкрафте, рассматривал любые библы, хоть как-то подходящие под задачу. Из просмотренных:
- пикокли (https://picocli.info/), это, в принципе, база, стандарт индустрии, им пользуются все, кому не лень, хороший вариант, сначала не понравился из-за того, что привязан конкретно к аргументам запуски жарки своими аннотациями, вместо того, чтобы предоставлять абстрактное общее апи
- модуль команд в фреймворке для майнкрафта https://github.com/Alan-Gomes/mcspring-boot. Он также основан на пикокле, но плюсом идёт то, что ничего дополнительно написывать своего не надо для майнкрафта (а вопрос расширения кода, основанного на аннотациях это пиздец), всё уже написано, кушай не обляпайся
- специальная апишка для написания команд для майнкрафта https://github.com/JorelAli/CommandAPI. Никакого общего решения, используй только для майнкрафта и всё, да и ещё с версиями там проблема
Были ещё другие, но я их долго не рассматривал из-за того, что они были полным трешем. Немного поразмыслив, сделал выбор пользоваться mcspring'ом. Подключить не смог. Потратил пару часов, у меня сгорело, я забил. Мавен наотрез отказывался подключать эту библиотеку, выдавая неизвестную ошибку при скачивании jboss'a. Никаких подробностей. Просто ошибка и всё, соси хуй, "cant import artifact jboss" или чёто типа такого. Гуглёж ничего не дал. Разраб контактов не оставлял, патчей 2 года не делал. Единственный новый форк также не подключался.
Комманд апи был отходным вариантом, но я его дропнул, как узнал, что он явно требуэ добавить их жарник как зависимость (никакого maven репозитория, суки!), да и ещё на сервер дополнительно устанавливать как плагин.
Осталось дорабатывать чистый пикокли, или создавать велосипед с нуля (предполагаемый объём работы одинаков, я оцениваю это в 5 часов гдето). Посмотрев пример кода из комманд апи, я придумал интересную структуру для велосипедирования (даже не просто интересную, а охуенную, просто гляньте, как это выглядит на пике).
В общем, что скажете, аноны, в чем я не прав, почему я дегенерат, сталкивались ли с еблей с жбоссом и стоит ли мне писать велосипед без аннотаций, или дорабатывать пикокли? Парсить команду через if (args[1].equals("delete")) {} не вариант, класс получается в несколько тысяч строк кода и нечитаемый абсолютно. Велосипед, если буду делать, сделаю общим и абстрактным и не только для майнкрафта, а вообще для всего, где может быть нужно парсить командную строку.
>>2362611 Полгода очень мало для курсов. При том теории всего три месяца. Даже если тебя и вкатят, то на работе ты будешь нихуя не знать и несколько месяцев придется ночами доучиваться и дико овертаймить, чтобы не поперли. И отдавать ползп этой кате.
>>2362838 Бугаенка бы как раз такую хуйню под дулом пистолета бы не написала. Тут антипаттерн на антипаттерне, блядь! Начиная с названия, заканчивающегося на -er, заканчивая ебучим статиком, безжизненной моделькой Clan и ебучей процедурщиной в целом, нахуй
>>2362863 Бугаенка прав во многом, но не во всём, а рабов писать заставляет на своём говноеоланге с уродливым синтаксисом и в котором захардкожено использование всего, в чем он себя считает правым, даже в том, в чём он на самом деле не прав
>>2362863 Ну это не из-за того, что бугаенка пишет код как-то неправильно, а из-за того, что у него взгляды на процессы разработки очень специфичные. Потогонка короче. Сделайте мне бугаенку, но с эджайлом и печеньками - я пойду.
>>2362822 хз, три месяца, но по 5 часов каждый день + месяц в коммерческом проекте. Кореша из уников рассказывали, что там плюсы с основой ооп проходят целый семак по 2 пары в неделю
>>2363082 Твоя мамаша никому не всралась, дегенеративное хуйло. Воистину, бисер перед свиньями, зачем рассказывать про подходы, позволяющие улучшить читаемость и поддерживаемость кода в десятки раз, когда можно ебнуть пару аннотаций и превратить java в j, зато печатать меньше.
Всё равно мне кажется, что джава какая-то игрушечная. Вот ни кому не объяснишь, что для выполнения программы надо ставить ещё какие-то JRE/JDK на компьютер. Многие думают, что раз в самом языке дофига всяких мощных конструкций, то и результат будет крутой, но на самом деле всё упирается в скудные возможности JVM.
>>2363118 КАБАН КАБАНЫЧ СМОТРИТЕ ВОТ ЕСТЬ ТАКАЯ ТЕХНОЛОГИЯ НАЗЫВАЕТСЯ ЖАБА МОЖНО В 100 РАЗ УСКОРИТЬ РАЗРАБОТКУ ЧЕГО УГОДНО, ДА И ЕЩЕ И СДЕЛАТЬ ВСЕ ЭТО НЕЗАВИСИМЫМ ОТ ПЛАТФОРМЫ И ХОСТИНГА @ АХАХАХХАХАХАХАХХА НИХАЧУ СКАЧИВАТЬ КАКУЮ ТО НЕПОНЯТНУЮ ПРОГРАММУ JVM))))) @ КАБАН КАБАНЫЧ УБЕГАЕТ, РОНЯЯ КАЛ
>>2363118 > Вот ни кому не объяснишь, что для выполнения программы надо ставить ещё какие-то JRE/JDK на компьютер. Сейчас же контейнеры везде и всюду > Многие думают, что раз в самом языке дофига всяких мощных конструкций, то и результат будет крутой А как это связано? > но на самом деле всё упирается в скудные возможности JVM. ???
>>2363118 >ставить что-то на компьютер Десктоп мёртв. Хотя это и не помешало самую продаваемую игру в мире ебануть на жабе, и каждый из этих миллионов игроков теперь как миленький ходит и скачивает всё что нужно.
>>2363119 Даже если Кабан Кабаныч согласится, то как вы убедите потом заказчика, что ваши непонятные jar-файлы - это и есть программа. Если бы были ехе, то вопросов не возникло.
>>2363128 Ты можешь сколько угодно перебирать данные, вертеть и крутить ими как угодно, но всё упирается в интерфейсы для взаимодействия с окружающим миром. А в JVM они ограничены!
>>2363096 >Твоя мамаша никому не всралась Егорка, главное что твоя популярна у всего ДСа.
>>2363096 >зачем рассказывать про подходы, позволяющие улучшить читаемость и поддерживаемость кода в десятки раз, когда можно ебнуть пару аннотаций и превратить java в j, зато печатать меньше. В гробу я видал я такую читаемость, когда один мизерный объект прокидывается через пяток конструкторов, тупо потому что он нужен на самом нижнем уровне.
>>2364495 Их и не переставали набирать. А вот недостажеров-джаварашеров-крудошлёпов больше никогда не будут набирать. Просто бизнес понял, что долбоебы, вызубрившие вопросы для собеса ничего кроме убытков (даже больше своей зп) не принесут. П
Регулярные выражение для фильтра при вводе и регулярки для проверки полного введённого текста как-то отличаются? Вот у меня есть функция: TextFormatter<?> formatter = new TextFormatter<>(change -> { if (pattern.matcher(change.getControlNewText()).matches()) { return change; } else return null; textField.setTextFormatter(formatter);} Если Pattern.compile("\\d{0,11}") работает, то Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}&") вообще не даёт ничего ввести в textfield. Чому так?
>>2364661 Первый паттерн позволяет длину ввода от 0 до 11, т.е. по мере того как ты вводишь цифры он будет принимать ввод. Второй шаблон требует сразу чтобы у тебя был сразу введено валидное мыло.
>>2365316 Посмотрел - действительно нет. Нахуй значит такие книги, где даже тема жавы не полностью раскрыта, не говоря уже о спринге. Зато про свинг и авт не забыли.
>>2365340 Ну во первых jdbc есть во втором томе хорстманна. А во вторых это не кор, >сервлеты jdbc orm Ничего из этого не входит в кор. Кор = синтаксис языка + объекты и методы стандартной библиотеки. Для любого языка это так. Вот говорить о том, что на такой-то вакансии требуется НЕ ТОЛЬКО кор - можно. Но говорить о том, что всё что там требуется = кор, впихивая в кор свои рандомные хотелки - некорректно. Другое дело, что некоторые вещи, не являющиеся частью языка, встречаются почти во всех вакансиях, и их как бы без вариантов нужно знать. Что не делает их кором.
МЕНЯ СЕГОДНЯ ПОСЕТИЛА МУЗА НАХУЙ, Я ПРИДУМАЛ, КАК НЕ ПРОСТО ДАТЬ ЖАБЕ ВТОРУЮ ЖИЗНЬ, НО И ВООБЩЕ НА ДЕСЯТЬ ГОЛОВ ЕЁ ПОДНЯТЬ НАД ВСЕМИ ДРУГИМИ ЯЗЫКАМИ ПРОГРАММИРОВАНИЯ СРАЗУ!
Помните я тут говорил про то, что было бы охуенно, если бы в жабу добавили кастомный синтаксический сахар? Его никогда нахуй не добавят, НО ЕГО ВЕДЬ МОЖНО СДЕЛАТЬ САМОСТОЯТЕЛЬНО В ВИДЕ ПЛАГИНА ДЛЯ ИДЕИ! НИКАКИЕ ЛОМБОКИ И АННОТАЦИИ ДЛЯ КОДОГЕНЕРАЦИИ ДАЖЕ РЯДОМ НЕ СТОЯТ ПО УРОВНЮ ОХУЕННОСТИ ЭТОГО! ШАРПОСВИНЬИ НАВСЕГДА ПРИЗНАЮТ СВОЮ УЩЕРБНОСТЬ!
Просто пишем вот такую вот красоту:
import my.project.package.sugar.event.pattern.EventPattern; using EventPattern;
и ВСЁ! Дальше можно писать абсолютно любой код, какой только душа разработчика паттерна пожелает, например:
eventspace { ....abstract MyAbstractEvent with Integer integer; ....MyCustomEvent extends MyAbstractEvent with final String immutableString; ....MyOtherCustomEvent with String mutableString; }
Под капотом это будет работать не менее просто: в нашем EventPattern будет вот такой метод:
public String applyPattern(String);
который будет на вход принимать строку, содержащую введённый код с синтаксическим сахаром, а возвращать массив строк самого обычного джавовского кода, который потом можно будет легко использовать в других местах!
Кто хочет со мной заняться этим? Это будет величайший шин легивона, ведь двач буквально изменит весь джава-мир, а может быть и вообще весь мир, весь другие языки-паразиты джавы (шарп, петухоклин, груви) обязательно подтянутся за этим!
>>2365394 Объём работы оцениваю в 100 часов, я сам это не потяну, навыков не хватит, но вместе мы - сила, сука. Пишите мне в телегу: @ancap_kun
Я готов выполнить всю работу по проектированию этого, написанию логики, от вас - интеграция с идеей, если (что врят ли) нас соберётся много для этого, логику будем делать вместе.
>>2365394 >>кастомный синтаксический сахар От него очень быстро наступит синтаксический диабет. Код ведь превращается в нечитаемую хуетень, когда каждый пишет на одному ему понятном языке.
>>2365410 Это то же самое, что и аннотации компилятора, только удобнее. От аннотаций же диабет не наступает? Всем понятны @Getter и @Setter из ломбока, также будет понятен и собственный синтаксис.
>>2365420 К тому же, сложность создания полноценного синтаксиса исключит возможность налепливания синтаксиса петухона на джаву - это будет использоваться только для мелких сокращений вопиющего бойлерплейта.
>>2365433 Крутая штука, но там же нет кастомного синтаксического сахара, я всё ещё не могу написать вот это
eventspace { ....abstract MyAbstractEvent with Integer integer; ....MyCustomEvent extends MyAbstractEvent with final String immutableString; ....MyOtherCustomEvent with String mutableString; }
>>2365420 >>Всем понятны @Getter и @Setter из ломбока Одно дело что ломбок, мэпстракт и прочие апач комонс - отраслевой стандарт. И совсем другре когда каждый мимохуй будет засирать код таким "сахаром". А потом приходишь на проект и не понимаешь это блять вообще джава или какой то питон/пхп/жс?
>>2365440 >>я всё ещё не могу написать вот это >>with Ты заблудился по пути в питонотред? >>eventspace { Я вот читаю этот кусок и мне не понятно что ты имел ввиду. В каком смысле эвент с числом? Что ты имел ввиду?
>>2365483 Мимохуй кроме легковесного сокращения для кода вряд ли что-то напишет, что хотя бы будет работать, потому что это довольно сложная задача, превращать String в синтаксис, и потом ещё и обратно в String запихивать. Кастомного сахара будет мало, и он будет разрабатываться крупными компаниями/опенсорс организациями, а что будет разрабатываться мимохуями будет маленьким и понятным
>>2365487 eventspace - пространство ивентов, значит, что внутри будут перечислены ивенты, можно например тоже самое написать так:
abstract event MyAbstractEvent with Integer integer; event MyCustomEvent extends MyAbstractEvent with final String immutableString; event MyOtherCustomEvent with String mutableString;
>>2365394 Только представьте, как на вас будут смотреть HRы, когда узнают, что вы один из основателей проекта, убившего шарп, котлин и груви, который является стандартом индустрии и используется в каждом проекте, в том числе и у них? Да вы на изи устроитесь на 450к$ в год в нетфликс, ещё думая, как вы продешевили жёстко!
>>2365420 >Это то же самое, что и аннотации компилятора, только удобнее. От аннотаций же диабет не наступает? Бывает что наступает. Иногда тот же лобок генерирует не совсем тот код, что ты ожидаешь. Или классический вопрос по спрингу и @Transactional. Но там код написан крупными сообществами, задокументирован и есть куча тьюториалов и видео про тонкие моменты.
>>2365489 >Мимохуй кроме легковесного сокращения для кода вряд ли что-то напишет Мало ты еще всякого легаси видал, тут тебе и свои недо-ORM, и свои билд системы поверх ANT/make, и кастомный вайринг бинов в Спринге, и свой DSL на базе Groovy/Kotlin/ANTLR, и свои билд сервера. Чем меньше своей кастомной параши, тем легче саппортить проект и вливаться в него новичку.
Стоит ли использовать IJ IDEA, если ближайшее время её планируют закрыть для РФ? Может лучше сразу учиться в Eclipse? Также IJ IDEA часть функций предоставляет только за деньги, а в Eclipse они полностью бесплатны.
>>2365508 >Мало ты еще всякого легаси видал, тут тебе и свои недо-ORM, и свои билд системы поверх ANT/make, и кастомный вайринг бинов в Спринге, и свой DSL на базе Groovy/Kotlin/ANTLR, и свои билд сервера. Чем меньше своей кастомной параши, тем легче саппортить проект и вливаться в него новичку. Ну как сейчас от такого избавляются, так и потом будут избавляться от ёбнутого нечитаемого кастомного синтаксиса. Никто не мешает и сейчас написать какую то магическую аннотацию. К тому же, ты в любом случае, чтобы заюзать какую то библу, смотришь мало мальски документацию по ней или вики, по кастомному синтаксическому сахару можно также вики написать.
>>2365510 В смысле закрыть? Файлы с компов что ли выкачать? Нанести точечные ракетные удары по местам хранения установочных файлов в России?
>>2365513 >Ну как сейчас от такого избавляются, так и потом будут избавляться от ёбнутого нечитаемого кастомного синтаксиса. Так об этом и речь, лучше сразу не начинать пилить кастомный синтаксис. То что кому-то там не нравиться писать бойлерплейт код и нравится писать свои багогенераторы, еще не повод так делать.
В крупных компаниях даже ограничивают список используемых языков и библиотек, чтобы легче было саппортить код.
>>2365536 По твоему вышеупомянутый ивентспейс хуже трёх вот таких вот классов? А подобного говно-бойлерплейта немало в различных фреймворках, он есть не только в бакките. 60 строк против 5
>>2365394 Хуя чел изобрёл интерпретаторы, снимаю шляпу. >>2365410 >От него очень быстро наступит синтаксический диабет. Звучит как очень неплохая адаптация шутки про рак точки с запятой, который в оригинале был игрой слов с понятием "рак кишечника".
>>2365506 >>вы один из основателей проекта, убившего шарп, котлин и груви >>вы на изи устроитесь на 450к$ в год в нетфликс Нетфликс уже все, а вот хуавэй скоро заменит эпл.
>>2365622 >По твоему вышеупомянутый ивентспейс хуже трёх вот таких вот классов? А подобного говно-бойлерплейта немало в различных фреймворках, он есть не только в бакките. 60 строк против 5 По моему: - это простой и понятный джава код - в нем разберется любой джава программист - с ним работают все тулы всякие спринги, файнд юзач и прочие рефакторинги - этот код поменяет поведение, только если его кто-то изменит руками, что легко отслеживается в гите
А вот >>2365394 эта параша - требует разбираться в йоба плагине, как он работает - поддержку тулов надо писать, надо написать не только багогенератор, но и плагины для IDE, Maven, Gradle, поддержку рефакторинга, поиска и прочее - а вдруг у вас в команде будет фанат VS Code что делать с ним? - при изменении плагина, меняется код который он генерирует и это не отследить по гиту
Кстати в случае с Maven и Gradle подобные файлы надо будет закидывать в отдельную директорию иначе они сломают билд.
>>2365859 Код простой и понятный, но когда у тебя этих ивентов 100 штук, становится хуёво. Просто прочитать 10 строк документации по кастомному сахару не такая непосильная задача.
>но и плагины для IDE Единственное, что надо сделать. По задумке, системы сборки ничего не будут знать о кастомном сахаре, они будут видеть обычный java-код, и физически в файлы будет писаться обычный код, а кастомный синтаксический код идея будет хранить где то в своих собственных файлах (обдумать ещё можно этот момент)
>при изменении плагина, меняется код который он генерирует и это не отследить по гиту Плагин не предполагает генерацию кода, генерацию кода предполагают паттерны, которые легко отслеживаются
>а вдруг у вас в команде будет фанат VS Code что делать с ним? Пусть строчит бойлерплейт код, как и строчил всегда раньше.
>>2365883 >но когда у тебя этих ивентов 100 штук, становится хуёво 1. Ни в одном нормальном проекте они не появляются сразу. Их пишут по мере развития проекта. 2. Выноси общий код в базовые классы, так чтобы оставалась только бизнес-логика. 3. В конце концов можно и через рефлексию работать, те же MethodHandle не сильно просаживают перформанс.
>Единственное, что надо сделать. По задумке, системы сборки ничего не будут знать о кастомном сахаре, они будут видеть обычный java-код, и физически в файлы будет писаться обычный код, а кастомный синтаксический код идея будет хранить где то в своих собственных файлах (обдумать ещё можно этот момент) Ты теоретик, который даже не подумал до конца про сценарий использования. У тебя или в исходниках хранятся твой йоба код, который потом хер знает как превращается в джава код. Или у тебя плагин который генерирует код на базе шаблона, но тогда после генерации никто не знает откуда он сгенерирован. Просто подумай над сценарием когда кто-то делает git clone и открывает в IDE. В целом live templates могут покрыть подавляющее большинство потребностей. Все остальное не стоит усилий по внедрению.
>Плагин не предполагает генерацию кода, генерацию кода предполагают паттерны, которые легко отслеживаются А где хранятся эти шаблоны если не внутри плагина?
>>2365911 Ещё раз, мб не понятно объяснил. Плагин загружает JVM и обращается к уже скомпиленному классу паттерна, работая с ним. Когда разработчик пишет код с кастомным сахаром - то, что он пишет хранится только у него на компе где то в данных идеи, а в src попадает обычный Java-код, который идеей подменяется на написанный разрабом код, лежащий в данных идеи. На гитхаб пойдёт тот же бойлерплейт код, но написать его будет гораздо легче.
Я уже выебся блядь. Почему так сложно подключить сраную библиотеку!? Почему при импорте не виден пакет javafx.scene.media ? Если вот он лежит в библиотеках которые сами закачались из мейвена когда создавался проект? я нуб.
Да да, javaFX мертв, гуй на джаве не нужен. Но пока только так.
Я год работал на комьюнити (у нас не спринговый проект был) и норм было. Сейчас раскопал старые проекты спринговые дома, открываю через комьюнити, все ок, вроде. Что я теряю? Сниппеты, или что? В чем поддержка спринга заключается в алтимейте, кроме создания проекта из коробки?
>>2366757 Из очевидного - всякие фичи типа работы с бд, хттп, поддержка всех основных языков (жс, го, питхон, руби и тп), плагины которые на комьюнити недоступны (JPA Buddy вроде только для энтерпрайза) в тч для работы с докером/кубером. Не знаю как там с анализатором в комьюнити, будет ли он тебе подсвечивать что твои лямбды - говно и надо переписать по другому Попользуйся месяц - сам увидишь нужно оно тебе или нет. Желательно на большом проекте на спринге.
>>2365950 >Когда разработчик пишет код с кастомным сахаром - то, что он пишет хранится только у него на компе где то в данных идеи, а в src попадает обычный Java-код, который идеей подменяется на написанный разрабом код, лежащий в данных идеи. У тебя или плагин должен уметь работать в обе стороны: по твоему йоба коду генерировать джава код и сохранять его в src и наоборот по джава коду из src генерировать йобу. Но это пиздец как сложно. Или у тебя тупо генерация кода по шаблону. Тут уже есть live template, можно конечно и свой шаблонизатор написать, но не уверен что это нужно кому-то.
>>2366747 >Да да, javaFX мертв, гуй на джаве не нужен. Но пока только так. Попробуй Compose https://github.com/JetBrains/compose-jb ЖидБрейновичи много пишут всякого гуя и это их платформа для гуя следующего поколения.
Уже заебался летс-стартить со Spring+Thymeleaf Может подскажет кто, что происходит с моделью (Model) при ее передаче шаблонизатору с Get-реквестом, и при попытке поймать ее обратно с Post-методом? Я через GetMapping-метод прикрепляю Model, запихиваю в него атрибуты по именам, возвращаю шаблон. В шаблоне есть форма, в которой я могу кое-какие свойства ввести, и форма возвращает методом Post все это дерьмо на @PostMapping метод. Если я в этом методе через (Model model) атрибут пытаюсь поймать то что пришло с запросом, то там уже будето абсолютно другая модель лежит (там нет тех атрибутов, которые передавались с Get-запросом). Так и должно быть?
>>2366983 > ЖидБрейновичи много пишут всякого гуя и это их платформа для гуя следующего поколения. От этого гуй на жабе не стал живее и нужнее. Жидбрейнсы не правы и должны срочно всё переписать на C++ или Rust. Но делать они этого не будут, потому что в штате одни жаба-индусы, которые больше не умеют нихуя.
>>2367000 Да, так и должно быть, никак ты обратно модель не поймаешь. Нигде в спринге не хранится состояние, объект Model тупо создаётся на каждый запрос заново. Максимум, что можно сделать - это добавить в форму поля input type="hidden", чтобы сохранить данные между запросами. В шаблонизаторах нет никакой магии, они работают максимально тупо. Они настолько примитивны, что приходится на любую динамику придумывать подобные костыли с формами, и поэтому шаблонизаторы юзаются исключительно в учебных проектах и никогда не применяются к реальности.
>>2367534 Штош, хуёво. Благодарю за ответ. Нихрена тогда не понимаю, как нормально сделать пример из Крейга Уоллса, где после валидации нужно вернуть ровно ту же страницу, а в передаваемой модели изначально был массив ингредиентов, каждый из которых передавался с собственным именем в модель. Из-за отсутствия этих объектов он тупо рисует листы ингредиентов пустыми.
А что если не использовать шаблонизаторы, а самому формировать html-страницу как строку и отдавать её на выходе из контроллера? К примеру, я могу сделать свой файл html с какими-нибудь метками типа %CONTENT% или %TITLE% и их заменять на реальные значения. А уже замененную строку выплевывать как ответ. Что это даст? Полная свобода формирования. Можно сделать любой уровень вложенности шаблончиков. Сам определяешь структуру и не нужно подстраивается под кривые шаблонизаторы, всякие кривые связки с моделью и валидацией. Пишешь свой код, а не как макака переписываешь с книжки.
>>2367756 > А что если не использовать шаблонизаторы, а самому формировать html-страницу как строку и отдавать её на выходе из контроллера? То ты переижоьретёшь сервлеты.
>>2367756 Получится тормозное поделие, которое по функциональности будет полностью являться подмножеством шаблонизатора (но при этом шаблонизатор будет функциональнее конечно), будет глючить и ебать тебе мозги. Почти так всегда и получается, когда кто-то решает изобрести свой собственный инструмент вместо годами отлаженного и эволюционировавшего
>>2367803 Почему тогда за все эти годы они не догадались сделать вложенные шаблоны, чтобы можно было определить главный шаблон _Layout.html и уже конкретные для контроллеров типа List.html, которые вставляются в главный?
>Жидбрейнсы не правы и должны срочно всё переписать на C++ или Rust. Но делать они этого не будут, потому что в штате одни жаба-индусы, которые больше не умеют нихуя. Спешите видеть - вкатуны учат мировые IT компании как им надо работать и на чем писать.
>>2367822 Что не понятно? Сейчас надо полностью писать всю html-страничку для каждой вьюхи. Если у тебя 100500 страниц на сайте, то надо написать 100500 вьюх. Если где-то надо поменять немного шаблон, то пройдись по всем 100500 вьюхам. А я предлагаю иметь базовый, а остальные лишь как вложеные используются. К примеру, в базовом определяем основной шаблон: <html> <head> <title>%TITLE%</title> </head> <body>%CONTENT%</body> </html> А в остальных лишь то, что будет содержать %CONTENT%
>>2367838 Полная поебень. Это все типовое для всех страниц, и может копипастой множиться. Нет ничего тупее чем на том же хтмл содержимое вписывать в хтмл-код "выше" рангом. Если б ты предложил какой-то транслятор в хтмл более удобной разметки, а то и вовсе графического конструктора, то да. А так какую-то поебень уровня лабы для 2 курса задумал.
>>2367921 Любое вкатунское тестовое от 1с, только навернуть туда всю обвязку от райфа:
Требуется автоматизировать работу небольшого магазина торгующего попугаями. В конфигурации программе должно быть реализовано как минимум 3 типа документов таблицы. «Покупка птиц» с табличной частью связанной таблицей: Клетка (Справочник), Вид птиц (Справочник), Количество, Цена (покупки), Сумма. «Покупка семечек» с шапкой: Клетка (Справочник), Стоимость семечек. При проведении себестоимость всех птиц находящихся в этот момент в клетке увеличивается пропорционально их количеству. «Продажа птиц» с табличной частью: Клетка (Справочник), Вид птиц (Справочник), Количество, Цена (продажи), Сумма. Структуру регистров таблиц с остатками и оборотами необходимо спроектировать самостоятельно. Основной задачей конфигурации является формирование отчета метода апи «Анализ продаж» /GetSalesAnalytics содержащего информацию о полученной прибыли. Себестоимость проданных птиц рассчитывается «по средней» на момент продажи. Пример: Мы закупили • 2 попугаев «Волнистый синий» по 50 рублей в клетку 1 • 2 попугаев «Волнистый желтый» по 100 рублей в клетку 1 • 2 попугаев «Волнистый желтый» по 100 рублей в клетку 2 После этого закупили семечек в клетку 1 на 100 рублей и в клетку 2 на 30 рублей. После этого продали • 1 «Волнистый желтый» за 200 рублей из 1 клетки • 1 «Волнистый желтый» за 200 рублей из 2 клетки В этом случае отчет должен выглядеть следующим образом Клетка Вид Кол-во Сумма Себестоимость Прибыль Клетка 1 Волнистый желтый 1 200 125 75 Клетка 2 Волнистый желтый 1 200 115 85
Ну и всё это сделай rest апи на спринге + постгрес + авторизация спринг датой + сваггер + флайвей/ликвидбейс + завернуть это все в докер и развернуть на хероку.
Анон, привет, околоархитектурный вопрос. Пишу сейчас на спринге CRUD, руководствуясь DDD. Имеется слой domain с набором интерфейсов сервисов и репозиториев, слой application с контроллером и слой с репозиториями. Слой domain не зависит от других слоев напрямую. При этом есть требование аудита событий, причем события, подлежащие аудиту могут возникнуть в любом слое (технически фиксация события представляет отправку джсонины по http) Вроде бы аудит выглядит как cross-cutting concern и напрашивается еще один слой с common-функциональностью. Не будет ли зашкваром, если domain-слой будет подключать аудит как прямую зависимость? Или можно просто объявить еще один интерфейс и растиражировать его по слоям, где это необходимо?
>>2368102 Официальные доки и туториалы спринга, baeldung, доклады Борисова. Еще видосы Алишева говорят годнота. Ну и само собой гуглишь и копипастишь все это в процессе работы с горящей жопой.
>>2368137 Я всё перечисленное уже смотрел, но даже базовой картины не смог сформировать. Всё бессистемно. Борисов дак вообще в какой-то своей вселенной живёт и о чём рассказывает - не понятно. У Алишева вроде норм видосы, но там только начало. Остальные он продаёт курсом платно на каком-то сайте. baeldung - какой-то прикол. Там статьи вообще ничего не описывают. Я тоже могу сотню таким написать ни о чём. Типа нам понадобится джава, спринг и мавен. Теперь пишем хеллоу ворлд. Всё, вы изучили спринг. Доки - это справочник, а не учебник. А нужен учебник.
Как скачать массив юрлсов ? В потоки ввода-вывода не получается впихнуть url. URL[] url = new URL[2]; url[0] = new URL("https://tartar-sous.zip"); url[1] = new URL("https://ket4yp.zip");
>>2368156 >Доки - это справочник, а не учебник. А нужен учебник. Хуявочник. Ни один копроучебник не объясняет спринг лучше и лаконичнее, чем https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core Если после этой доки и построителя/потрошителя ты не понял спринг, то варианта два: 1) ты долбоеб 2) рано тебе ещё понимать спринг. Напиши пару проектов без него и может в процессе придет понимание нахуй он нужен
>>2368107 Я бы это добавил в том месте, где ты собираешь контекст. Хотя, если это бизнес требование, то , возможно, декораторы для аудита я бы добавил в отдельный модуль
Короче, снова на связи спрингодебил-вкатыш. Разобрался вроде кое-как со своим же собственным вопросом >>2367000 Как оказалось, чтобы Таймлиф прибиндил результат заполнения формы к респонзу как объект, обязательно необходимо, чтобы входящий с реквестом объект, с которым надо поработать, имел в контексте соответствующий @Компонент (правда, если это спринг-бут, то для тебя это будет просто классом). Если все это соблюдается, то от формы отлично ловятся 2 и больше объекта. Но если ты отправил в запросе просто какую-то хуиту типа model.addAtribute("myXyita", "text for replacing"); то, хотя в форме ты сможешь получить к нему доступ, обратно он уже не вернется, потому что, видимо, из строки нельзя создать бин. Также, судя по всему, по причине того что все так устроено, к форме можно прикрепить два объекта одного типа при отправке, но вернуть сразу оба не получится (если в аргументах пишешь MyObj obj1, MyObj obj2, Model m, то объекты оказываются совпадающими, а в модели он один лежит) Не знаю зачем я все это высрал. Судя по всему, с этим таймлифом кроме меня никто не ебётся тут
>>2368587 Как-то тут сложно наворочено, но у меня была примерно такая же проблема. Я хотел id род. сущности перекинуть через модель в другой метод контроллера, чтобы дочернюю залупу через него получить, но никуя не получалось. В итоге сделал класс с единственным полем, чтобы как раз этот айдишник и перекидывать - вроде сработало. З.Ы. Вроде как можно модель вместе с айди сохранить в сессии через аннотацию, но я не пробовал.
>>2368607 Мдэ, я кстати немного поторопился праздновать. Сейчас детально присмотрелся как все работает, и работает оно хуёво: если передаешь два объекта, у которых есть поля с одинаковыми именами, например name, то даже обратившись на форме к этим полям отдельно th:field="${key1.name}" и th:field="${key2.name}", в итоге получаем такую хуйню, что эти имена не достаются как положено каждому объекту своё, а конкатенируются через запятую и пихаются в оба объекта. Пиздец я хуею какая в этом логика.
>>2368826 >Ничем, лучший паттерн в джаве. Билдер позволяет создавать красоту - не спорю. Но он яро противоречит хуевой туче принципов программирования. Например, билдер должен знать об изменениях в других классах - добавляешь новый функционал - будь добр добавить его ещё и в билдер. Когда я первый раз с этим столкнулся, списал всё на то, что я работал с говнокодом и такая запутанность зависит не от меня. Но сейчас встретился с ровно той же ситуацией в полностью моём собственном коде. Нужна замена билдеру, которая не зависит от изменений в других классах.
>>2368822 Шизло, тут вообще не про петухлиновские билдеры речь идёт, мы говорим о билдерах с нагруженной на них логикой, которые создают маленькие объекты с одним полем.
>>2369012 Билдер вспомогательный класс для того, который ты создашь. Меняется основной класс -> меняется и билдер, ибо он создан только для основного класса
>>2369013 Если пишешь код не как мудак, то тебе билдеры чисто для основного класса нахуй не нужны будут. А если и требуется, то умный билдер, который в себе часто имеет больше логики, чем сам класс. Вот такие я и хочу на чето заменить.
>>2369042 У меня есть делегатор команд, который в зависимости от обстоятельств перенаправляет обработку команд к другим обработчикам. Инфа о том, что и куда перенаправлять хранится в мапе DelegateKey-CommandExecutor. Просто так сходу сделать мапу сложно, в конструктор какого то класса заасунуть вообще не возможно. К тому же, при делегации могут возникнуть дополнительные проблемы, которые тоже нужно как то обрабатывать, типичная - делегатор не знает, кому делегировать команду. На помощь приходит билдер, который грамотно управляет всей этой хуйней и превращает создание хэшмапы делегатора в что-то сродни декларации аннотаций, когда не нужно задумываться о внутренних дебрях делегатора, просто декларируешь "хочу сделать так" и всё.
Но, те проблемы, внезапно возникающие при делегации, никуда не делись. Они все ещё могут вылезти когда то. И если вдруг у меня в будущем появится задача при желании вводящего команду посрать прямо во время ввода команды отправлять ему рекламы унитазов, и физическая возможность отследить желание посрать, мне придется менять делегатор с билдером, а чтобы еще и обратную совместимость не поломать - допиливать различные анальные конвертаторы/провайдеры/сервисы. В общем, я хотел сказать, что класс билдера реактивно разрастается на сотни почти идентичных строк, а добавление какого то удобного функционала часто заставляет удваивать число методов.
>>2369058 В целом, то, что я описал, это проблема вообще всего, но я в других местах как то решал эти проблемы, а вот на что паттерн билдера заменить не знаю.
>>2368829 >>добавляешь новый функционал - будь добр добавить его ещё и в билдер Да, это хуево, мапер конечно же лучше, но и не надо хуячить билдер везде. Я его для всяких фильтров использую - когда из 10 полей пустыми могут быть все и это норма. А если уж завязался на билдеры - то пиши тесты или смотри внимательно в постмане что там возвращается. >>Нужна замена билдеру, которая не зависит от изменений в других классах. маперы ебашь, им похуй что там во что трансформировать, лишь бы поля назывались одинаково.
>>2369058 >>делегатор не знает, кому делегировать команду. А кто это знает? Сам делегат сможет это понять его говно или нет? Или это тоже путем гадания на хэшах решается? >>что-то сродни декларации аннотаций >>хочу сделать так" и всё. не понял, аннотацию ты куда вешаешь? Ты просто хочешь чтоб задача решилась и делегаты сами разобрались кто пойдет драить очки?
>>2369084 >А кто это знает? Сам делегат сможет это понять его говно или нет? Или это тоже путем гадания на хэшах решается? Делегатор вычисляет делегейт кей и ищет по нему того, кому переслать команду. Если не нашел, кого заставить обрабатывать команду - возникает эта проблема, и ее надо как то решать >не понял, аннотацию ты куда вешаешь? Ты просто хочешь чтоб задача решилась и делегаты сами разобрались кто пойдет драить очки? Я говорю с помощью билдера "хочу, чтобы если у команды не было субкоманд никаких, то драил очки SichovExecutor, субкоманду "pidor"обрабатывал ErohaExecuror и тд, например:
public CityCommandTarget { ....super( ........new CommandDelegatorBuilder() ............delegateSubCommand("new", new CityCreateCommandTarget()) ............delegateSubCommans("delete", new CityDeleteCommandTarget()) ............build(); ........) ....) }
>>2369070 Используется один для настройки локального сервера приложений (только для разработки, в проде не юзается), да и тот можно выкинуть и заменить на exec-maven-plugin.
>>2369089 >Я говорю с помощью билдера "хочу, чтобы если у команды не было субкоманд никаких, то драил очки SichovExecutor, субкоманду "pidor"обрабатывал ErohaExecuror и тд В итоге, сама реализация делегатора надежно инкапсулируется, и вообще не важно, что возвращает билдер, главное, чтобы он мог команду обработать
>>2369090 >да и тот можно выкинуть и заменить на exec-maven-plugin Вот, а я как раз думаю что лучше, использовать этот плагин, или написать свой. Второй вариант мне кажется будет понятнее, параметры там можно удобнее задавать и т.д. Какие еще плюсы и минусы у своего пдагина?
>>2369095 Если часто будешь юзать этот плагин с разными параметрами, то пиши, а если надо один раз настроить и забыть, то не стоит того, хватит и exec.
>>2369089 >>Делегатор вычисляет делегейт кей Все же думаю можно было бы собрать лист бинов поставив там квалифаеров над листом(или мап, но хз как там с автовайрингом, мапу можно в пост-констракте сделать если в нее сразу не инжектит), чтоб собирать ерох которые нужны на эти команды, а ерохи пускай сами собирают лист сычевых кто будет это выполнять(на основании того что за команды в конструкторе получили, например). А то получается (продолжая армейскую аналогию) комбат сам решает кто траву красит и кто асфальт подметает, вместо того что задачи поставить офицерам. Но зато инкапсуляция, хуе-мое. Никто не ебет что и как делать кроме главного.
Со спрингом просто вместо билдера ебаться со сборкой будет спринг, добывая все из контекста, тебе только квалифаеры развесить надо кто что умеет и где нужен.
Но без погружения в логику тут хз. Как там эти билдеры внутри устроены неизвестно. Может иначе хуйня выйдет и так задумано. Это просто взгляд со стороны спринг-макаки.
>>Если не нашел, кого заставить обрабатывать команду - возникает эта проблема, и ее надо как то решать С моей точки зрения - это задача аналитика, пускай выдумывает какое дефолтное поведение должно быть. Эксепшен на все ебало, оставить очки грязными, самому идти драить.
>>2369104 Думаю 100к+ скорее исключение. Я бы не гнался за деньгами в начале, а то можно попасть в ловушку, когда уровень задач будет соотвествовать зарплате, но не скиллам и вместо продуманных решений будет копипаст низкопробный.
>>2369162 >>2369058 Вот вы на опыте, поясните по хардкору, если допустим в фильтре всего три поля, от которых зависит логика выполнения, стоит ли заморачиваться с паттернами или можно просто шлепнуть ветвление?
Бля, это пиздец. Я только начал читать Шилдта, уже понимаю, что я нихуя не понимаю. Прочитанное забываю через минуту. Основную концепцию могу удержать в памяти на пару минут, потом ее вытесняет какая-нибудь ебаная вода. За что, сука? Почему я?
>>2369236 Похожая тема, могу визуально вспомнить как выглядел код, какие отступы, были в листинге, лол. Но воспроизвести прочитанное не могу. Надо писать код сразу же, чтобы закреплялось, периодически повторяя.
>>2369236 Просто чтение это юзлесс кал. Надо читать и пересказывать прочитанное кому-то, чтобы он понял. Желательно челам на собесе. Если поймут они, значит и ты понял. Начнут задавать вопросы, значит ты обсерился в понимании
>>2369236 ADHD, it's over. Построить карьеру программиста сможешь только сидя на веществах типа риталина Ну или Шилдт просто говно ебаное, распиаренное компанией пидорасов ака Oracle
>>2369162 Да не, нихуя, как раз комбат только делегирует задачи офицерам, а конечные действия выполняют конечные выполнятели. А с бинами у тебя получится огромная неповоротливая неинкапсулированная нечииаемая неподжерживаема хуйня, знаем, проходили.
>>2369236 >>начал читать Шилдта, уже понимаю, что я нихуя не понимаю. Возьми книжку попроще упражнения - все нахуй, просто базу надо понять, на свинге можно дропать Потом вернешься к хорстману/шилдту - уже будет понятно. Наверное, я их не читал все равно, учил сначала по видосикам от индусов, а потом уже по докам
Нужно запилить телеграм-бот, которому дают данные, он подставляет их в документ и возвращает готовый ПДФ (пока этого достаточно). Вот прям чтобы челик просто быстренько потыкал в телеграме и получил результат. Такое же возможно?
С ботом сам разберусь, а как грамотно сделать шаблон документа? Чето в инете хуеты понаписано, а дельного нифига. Там будут и таблички(количество строк всегда разное) и картинки (шапка и подписи).
Пилить html/xml и потом сторонними сервисами конвертировать в pdf? Сразу pdf заполнять? Юзать штуки типа JasperReports (в душе ниебу что это, просто наткнулся в гугле но разберусь если че)?
Дайте стек пож, как это у вас "айтишникау" говорят...
>>2370928 Html хорошо перегоняется в pdf через встроенный псевдопринтер в браузере, а для шаблонизации html есть куча инструментов. Насчет полей в pdf хз. А вообще апачи уже все наверняка сделали.
>>2370970 >рез встроенный псевдопринтер в браузере Так мне нужно чтобы не было ничего кроме телеграма. Грубо говоря: чел вбивает боту "Hello World" -> получает pdf (сверху шапка с картинками, по центру "Hello World", снизу фамилия-подпись). Ну это все образно говоря.
Подразумевается что чел находится вне офиса, пеки под рукой нету, а ебаться с заполнением таблиц в ворде на экране телефона ну вот совсем не хочется. Телеграм - самый быстрый и доступный способ.
>>2371072 В разных конторах по разному. Где-то забивают на тесты вообще, где-то без этого сразу заканчивают собеседование. Смотри по вакансиям в твоих пердях. Если ты живёшь в Мухосрани на 200к человек и там всего 3 конторы, а JUnit требуется только в одной вакансии, то прежде, чем туда идти, лучше знать, чем не знать.
>>2371072 Я бы тебе не советовал работать там, где тестов нет. В подавляющем большинстве это не очень места. Правда вкатунов часто могут на собесах не долбить по тестам, типа на месте научишься. Меня из пяти собесов по тестам спрашивали на одном. Сейчас я устроился в место, где тесты писать принято, как минимум на апи с базой в тестконтейнере. А мой ментор вообще сказал писать еще немного больше тестов. В итоге на 800 строчек кода на спринге - я написал 90 тестов. Сперва это бесило, особенно старые тесты дописывать и переписывать при внесении новой фичи. Но теперь я привык и мне даже комфортнее как-то. Да и вообще я на тесты больше времени трачу, чем на сам функционал. Это значит, что работодатель может себе позволить тратить мое время на тесты(и даже на рефакторинг), а значит это не совсем потогонка.
>>2371519 А что нужно знать по написанию тестов? Как написать инетграционные тесты на springe? Или юнит-тесты с использованием мокито? Т.е. чисто практические навыки или рассказать как например мокито работает внутри?
>>2371519 >>там, где тестов нет. Тут скорее дело в том кто эти тесты пишет - автотестер на уровне CI или разрабов ебут с говноюнитами с дохулиардов моков и обжект генераторов. >>апи с базой в тестконтейнере Хочу начать писать такие, но одного не пойму - как тестировать микросервисы? Тестконтейнер сможет поднять 5 микросервисов чтоб протестировать 1? Или тоже надо все мокать?
>>2371643 Мы мокаем все межсервисное взаимодействие. Да и есть куча эндпотнтов, после вызова которых нет обращения к другим сервисам. Вот начинаю писать кафка консьюмер, пока хз как его тестить. Наверно придется делать моковый продюсер, но не понятно как с портами быть. Но во все тесты момвс я кафку уже замокал.
>>2372411 >Observer. The idea is good, but the name is bad, since it ends with -ER. A much better one would be “Source” and “Target.” The Source generates events and the Target listens to them.
>>2372437 > but the name is bad Названия всех паттернов придумывал какой-то шизик. Так что не надо вникать в глубинный смысл, надо просто запомнить названия как термины.
>>2372482 Хотя, переменные можно исключить, там придумывать нечего, все равно их вне метода и твоего собственного класса не видно (а в хорошем коде обычно все переменные называются по последнему слову из названия класса). Методы тоже не так сложно обозвать. А вот красиво и понятно назвать класс - высший пилотаж.
Есть районы города, типы событий и некие события. Накидайте идей, какие можно метрики и статистику из этого запилить? Типа, количество событий по районам, что ещё?
new ListConception(new ListAbstraction(new ListPrototype(new Po4tiListImplementation(new Po4tiRealList(new ListNoNeSovsem(new List(new ProductionList(new ProductionLinkedList)))))))))() = new AbstractMomYaDolbaebPrintingClass(new MomYaDolbaebPrintingClassImplementation(new Relation(new Mom(), new Ya()), new Dolbaeb()));
>>2373386 Это пока работает, а скоро кабан скажет, что надо улучшить какую-то функциональность, ты лезешь в этот код, где костыли компенсируют друг друга, чуть-чуть его правишь - и всё ломается.
Есть проверенный инсайд, что в Java 23 классы объявят deprecated. В последующем их вообще выпилят нахуй. Будем использовать функции и процедуры, вместо data классов рекомендуется использовать Map.
Это уже 100% проверенная инфа, вот-вот должны объявить.
>>2373411 >Почему слесарей? А а кто же мы еще? Не инженеры же мы, митов не кончали. Конфигурируем спринг, соединяем куски готового кода со стековерфлоу. Рабочая косточка.
Кто-нибудь может объяснить как работают платные либы? Вот в ваадине есть платные компоненты с фри триалом на 14 дней. Вот я запилил приложение с ними и захостил. Что будет через 14 дней?
>>2374086 > А что использовать если хочу писать фронт не на эйштиэмэле, а на джэйве? Смириться с html-программированием, это единственное, что осталось, нормальных альтернатив нет. Vaadin в последних версиях упорно скатывается в веб-дрисню, уже качает ноду при сборке и что-то ею собирает, ещё там предлагают какой-то свой набор компонентов для JS, и непонятно, какой смысл тогда от них, если это мало чем отличается от тех же реактов-ангуляров (хотя компоненты на Java ещё можно использовать). Аналоги ещё хуже: либо какие-то сырые ноунеймы (можно найти на гитхабе), либо работают только на EE-стеке и выглядят как шаблонизаторы (wicket, gwt).
>>2374217 У моей есть, но купить не могут. У большинства был куплен ключ, а потом был на полгода в конце февраля. Кто-то будет сидеть на вечной старой версии, купленной в прошлом году. Но вот те, кто пришел недавно - сидят на всяких левых лицензиях, типа учебной. Там никаких новостей нету по этому поводу? Половина от полгода кончились. Как бы мой тимлид не решил уйти на эклипс.
>>2374362 > Там никаких новостей нету по этому поводу? Когда основная "новость" (обсуждаемая в /po/ и /news/) закончится, тогда, может, через некоторое время и появятся новости по лицензиям.
>>2373669 >повешу аннотацию которая заставляет орм долбится прямо в private поля >и делать на основе этого какую то логику >разрежу класс на кучу полей рефлексией >которые ещё и потом можно будет увидеть в базе данных самостоятельно >инкапсуляция ёпта
>>2374516 Через аннотации ничего не торчит. С точки зрения аннотации тоже частично инкапсулируют данные. Инкапсулируют в di-контекст, контекст это большая область видимости, но я бы не сказал что она совсем глобальна. А то что там под капотом инкапсуляция нарушена - я уже отвечал. Там господа-настоящие-инженеры. Им можно ничего не инкапсулировать.
>>2353832 Друг, я не программист, сильно в этом не шарю но пытаюсь.Делал только свои web странички, на html. Но вот сестра моя на питонщика учится и кодит.Они там программируют руку робота - баристы и вроде у них что то получается. Получается, что ты пиздишь, что питон только для нейросетей и спам ботов.
Аноны, как изучать СПРИНГ? Просто гуглить доки и пытаться писать проекты? Вообще, что требуют от джуниора в 2022? Я пока что только Шилда осилил за 9 дней работы с перерывами на сон и пару мелких программ для личного пользования написал. Год "программирования" на плюсах за спиной, если то важно.
>>2374994 Питон - для всего, где программирование не сильно нужно и не сильно заёбисто. Помимо >нейроночек и спам-ботов для ВК Это ещё 1. датасатанизм 2. тестировщики 3. всякие там роботы пылесосы и умные дома 4. мелкий бекенд 5. девопс Вот теперь перечислили всё, а суть особо не поменялась.
>>2374994 >Но вот сестра моя на питонщика учится и кодит.Они там программируют руку робота - баристы и вроде у них что то получается. Классика, команда из 20 прогрессивных леволиберальных маркетологов-сммщиков-траффикменеджеров-дизайнеров-пидорасов-бизнесцентрпосетителей-фрилансеров подставляет анус спонсору этой хуйни программирует уже хуй знает сколько времени таску на 4 часа с результатом "вроде чтото получается"
>>2374998 Я тебе на твою мать внимания не обратил, петухонщик ссаный, хули ты забыл в джава треде, уродливое чмо петушарное блядь?
>>2374620 > я уже отвечал. Там господа-настоящие-инженеры. Им можно ничего не инкапсулировать. Я тоже уже на это отвечал, мамкин инженер.
>>2375033 Он в качестве замены орм переизобрёл инлайн sql, ради избавления от которого ормки и создавались. Хотелось бы глянуть где у него в проде эти sql-speaking objects крутятся.
>>2375033 Я жук использую для сикулей. Ну а хибером со spring-data-jpa охуенно делать прототипы крудов для микросервисов. Переписать потом недолго. И там в комментах бугаенке по русски написали, что не надо мешать теплое с мягким и мечтать "реляционную модель инкапсулировать внутри объектов". >>2375027 За 12 лет на двачах первый раз кто-то сохранил мой пост. Чувствую что не зря вкатился в джава-слесари.
>>2374620 >А то что там под капотом инкапсуляция нарушена - я уже отвечал. Там господа-настоящие-инженеры. Им можно ничего не инкапсулировать. Было бы забавно послушать оправдания >>2375033>>2375028 этих петухов, на тему того что у внутренних классов генерируются package private аксесоры для полей. Что когда инженерам Sun было не досуг допиливать JVM, они просто взяли и срезали угол. И ничего, не кто не бухтит что классы в Java дефетные из-за этих аксесоров.
>>2375145 Петушня ебаная, инкапсуляция это не про уровень доступа, тупое ты мудило, инкапсуляция это про постройку структуры, мразь тупая, причем тут костыль, использование которого сродни рефлексии, тупоголовое чмо?
>>2374144 >>казывают ide Eclipse Какое то супер легаси, которое зависит от плагинов эклипса, возможно даже самописных. Других причин привязываться к этому куску говна не вижу. >>у компании нет денег Компании обычно похуй на чем ты пишешь - на своей лицензии, на ворованной или вообще в комьюнити. >>2374481 >>Когда основная "новость" Скоро начнется новая "消息" и на текущую всем странам кроме соседей станет похуй. >>тимлид не решил уйти на эклипс. так пускай уходит, сам пиши на идее.
Кто-нибудь использовал апи GIPHY? Мне дали тестовое задание, где надо вытащить гифку оттуда. Как я понял, нужен API-ключ для этого. Создал акканут, только не вижу никакой кнопки, чтоб запросить ключ, которая должна быть судя по FAQ. Может кто поделится ключиком?
>>2375283 Хуясе у даунича небомбит! Это же ты, мудак слабоумные пиздел про: >>2374516 >повешу аннотацию которая заставляет орм долбится прямо в private поля >разрежу класс на кучу полей рефлексией >инкапсуляция ёпта а теперь завилял жопой >причем тут костыль, использование которого сродни рефлексии, тупоголовое чмо?
>>2375911 С примеров обосрался. Вроде бы нормальная тема, но примеры не позволяют донести мысли, скорее наоборот. Складывается впечатление, что у Егорки все хуже и хуже дела с головой
Как запустить майнкрафт с forge ? Обычный у меня получилось запустить, я загружаю все библиотеки, далее передаю параметры в метод main и вызываю класс net.minecraft.client.main.Main. Вот что то непонятное мне кинули... Не работает. boolean tweakClass = false; try { cl.loadClass("com.mumfrey.liteloader.launch.LiteLoaderTweaker"); params.add("--tweakClass"); params.add("com.mumfrey.liteloader.launch.LiteLoaderTweaker"); tweakClass = true; } catch (ClassNotFoundException x) {} try { cl.loadClass("cpw.mods.fml.common.launcher.FMLTweaker"); params.add("--tweakClass"); params.add("cpw.mods.fml.common.launcher.FMLTweaker"); tweakClass = true; } catch (ClassNotFoundException x) {} if((tweakClass)) { Class = "net.minecraft.launchwrapper.Launch"; } Код ошибки 2022-06-09 22:03:32,599 main ERROR Error processing element Queue ([Appenders: null]): CLASS_NOT_FOUND 2022-06-09 22:03:33,146 main ERROR Unable to locate appender "ServerGuiConsole" for logger config "root" [22:03:33] [main/INFO]: Loading tweak class name net.minecraft.launchwrapper.VanillaTweaker [22:03:33] [main/INFO]: Using primary tweak class name net.minecraft.launchwrapper.VanillaTweaker [22:03:33] [main/INFO]: Calling tweak class net.minecraft.launchwrapper.VanillaTweaker [22:03:33] [main/ERROR]: Unable to launch java.lang.ClassNotFoundException: net.minecraft.client.Minecraft at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0-262] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0-262] at java.lang.Class.forName0(Native Method) ~[?:1.8.0-262] at java.lang.Class.forName(Class.java:348) ~[?:1.8.0-262] at net.minecraft.launchwrapper.Launch.launch(Launch.java:131) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0-262] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0-262] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0-262] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0-262] at mail.Main.LaunchMinecraft(Main.java:83) [classes/:?] at mail.Main.main(Main.java:13) [classes/:?] Caused by: java.lang.NullPointerException at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?] ... 12 more
>>2376059 Решил проблему, зайдя с телефона. Почему-то на компьютере кнопка не отображалась.
Появился второй вопрос. Как из JSON-а вытащить одно значение? Мне сервис возвращает вот такую агромаду, а мне нужно только взять поле url. Не хочется создавать отдельный класс под это, как это можно спринговым парсером сделать? В принципе, можно просто регулярным выражением выцепить, но мне кажется, это топорный подход.
>>2376030 Ты пытаешься LegacyLauncher пердолить с нуля? Там много конфигов нужно, которые не описаны в доках, я экспериментальным путём добывал. Как-нибудь напишу пост в блоге на эту тему.
>>2376170 Мне не нужен легаси, я обычный лаунчер на swing пишу. Мне бы кто обьяснил как запускается forge, обычный я знаю как запускать... Я не понимаю как вызвать FMLTweaker, какой метод вызывать ?
В спринге можно настроить глобальный обработчик ошибок? Типа @ControllerAdvice, но вообще для всего: @Async, @Scheduled, @Transactional и всех прочих методов?
>>2376720 Скачай с торрентов курс от Отуса. Довольно информативно, но увы, там не прикрепили сами задания. Алишева посмотри, у него уроки про самые основы. Для углубления можно Крейга Уоллса почитать.
Как вообще писать тесты для Спринга? Вот мне дали задание написать небольшое приложение и покрыть тестами. Нужно только на контроллер написать тесты или вообще для всего? Что почитать на эту тему?
>>2377565 Долбоебы потому что. При нормальном ООП программировании ты только создаёшь объекты и изредка вызываешь методы, 99% логики- в конструкторах, в которых тесты не нужны (установку значений в поля тестировать что ли?).
а нахуя писать логику в конструкторе, если он нужен, чтобы инстанс класса создать. тупо поля заполнить и создать обьект. при чем тут логика(не понял нахуй). (я нуб если что)
>>2377562 Для тестового - используй мокито+ жюнит/спрингтест. >>или вообще для всего? Можно онпозитории не тестировать. Покрывай сервисы и контролеры. >>Что почитать на эту тему? если тебе гайд нужен - то баелдунг если теория - то деда мартина можно почитать, но вообще эта хуйня с тестами не работает так как он пишет.
>>2377685 Комплексы. Если бы не существующая кодовая база джавы на планете, на джаве 99% разработчиков бы никогда не стали писать (что сейчас и наблюдается в евросоюзе)
>>2377685 Наоборот все ненавидят джавистов. Джависты - спокойные гигачеды, тратящие свои силы не на ненависть, а на написание качественного объектно-ориентированного кода.
>>2377685 Никого не ненавижу за просто так, вот ещё. Придёшь ко мне в тред и будешь толстить - тогда и буду, но не абстрактную категорию, а вот тебя лично.
>>2369434 >Переходи на Хорста Весселя По запросу Хорст Вессель гуглится нацистский активист, штурмфюрер и автор текста гимна НСДАП. Ты бы не мог уточнить, что имел в виду?
Петухонщики - народ-гной, народ-мразь, народ-пидор, народ-червь, хуже них уже нет. Сейчас я возможно задену за живое и ты заплачешь, но ни у одного из петухон-треда нет работы, петухонщики живут на мамкины деньги, успокаивая себя в интернетах тем, что они крутые погромисты.
Зато кукарекают петухонщики больше всех. Они больше всех рассказывают в зарплато-тредах о своих маня миллионах, ведя себя по блядски и выёбываясь перед не-погромистами, явно привлекая к себе тонны негатива. И ладно бы ненавидели только их (потому что реально есть, за что) - нет, из-за них с ненавистью сталкиваются вообще все программисты, даже джависты, на которых в целом держится весь IT-бизнес, которым пользуется каждый из нас (петухонщикам приготовиться к слёзкам: на их петухоне не держится вообще ничего, кроме самых гнойных отраслей IT - нейроночек и спам-ботов для ВК (да и даже любители нейроночек недовольны тем, что им приходится ассоциировать себя с таким гноем, как петухонщиками, остаются только спамеры в ВК - вот это весь петухон)).
Петухон, в целом, сам по себе ничего плохого не представляет, но вот комьюнити его - сплошной гнойник. Простота вката привлекает скам общества - мелкобукв, европрокладок, мамкиных нитаких как все, ЛГБТ/фем мразей и подобных. Неудивительно, что ко всем вышеперечисленным группам населения, даже за пределами петухона люди относятся с нескрываемой ненавистью.
Очень грустно, что из-за такого большого гнойника, но небольшой части программистов приходится страдать всем.
>>2377624 Пиши с большой буквы, во первых. Во вторых, поведение объекта будет зависеть от того, что ты в него запихнёшь при создании его. В этом и логика. Пример - пик1.
Пик1 немного ебанутый, но зато полностью отражает суть сказанного. Пик2 - более реалистичный пример.
>>2378460 Неуч - твой мертвый спидозносифилисный батя, хуйло тупое. Ты сегодня уже писал небойлерплейтный класс с сеттерами и вызовом чтения данных из БД в статическом инициализаторе?
>>2378466 Но ведь олл аргс консрактор сосет при наследовании. Как так у тебя получилось его повесить на твою элегантную структуру с 20 уровнями наследования?
>>2378465 > ни одного @AutoWired не прилепил к приватным полям Кстати, считается плохим тоном, надо якобы делать конструктор @Autowired и в нём сеттить приватные поля ради сомнительной возможности быстро сменить DI-контейнер на другого вендора.
Эх, как же хочется свою серверную инфраструктуру. Как же хочется отдельный сервер для баз данных, по возможности с несколькими nvme на пару терабайт с большой скоростью отклика и большим-гигантским ресурсом. Как же хочется вычислительную ноду с парой-тройкой серверов на i9 12900k с 256 гб ddr5 на каждый серв и локальным каналом на 8 гигабит до ноды с базами данных. Как же хочется ещё много-много маленьких обособленных виртуальных серверов с парочкой ядер и 32 гигабайтами оперативки, чтобы на них микросервисы можно было поставить. Эх, хочется, чтобы инфраструктуру можно было ручками потрогать, поговорить за жизнь с ней, чтобы она прям в спальне у меня стояла и ублажала шумом водяного охлаждения мои уши.
>>2378931 > Если отцу завтра оторвут руку, у меня руки останутся. Наследование в ООП не про это. Оно про наследование догов от анималов, а отец и его дети - это один и тот же вид.
Как вообще покрывать тестами контроллер? Он ведь просто имя странички возвращает. Теперь понимаю, почему тесты не нужны. Еще свой код под них подстраивать.
>>2379164 Можешь тестировать корректность Model. А вообще, у нормальных людей не обычные контроллеры @Controller, а рест-контроллеры @RestController, которые возвращают не имена страниц, а объекты, которые потом превращаются в JSON и парсятся клиентом. Такие объекты тестировать представляется более разумным.
>>2379168 >А вообще, у нормальных людей не обычные контроллеры @Controller, а рест-контроллеры @RestController Да я в курсе, мне просто в задании нужну именно картинку вывести. Я решил не заморачиваться, и тупо сделал страницу, куда Таймлифом будет подставляться ссылка на нее.
>>2379174 >спринг нетестабельное говнище А есть альтернатива? Джакарта? Что-то не вижу, чтоб в вакансиях ее вообще упоминали. Ах да, забыл, Джава же сама по себе антипаттерн.
>>2379180 Это все термины сприга. Тоже самое спросить "а как объявить спринг компонент без спринга". Ты скажи конкретную задачу, которую без спрмга сделать нельзя.
>>2379188 Написать REST-сервис. Он должен уметь принимать HTTP-запросы с разными урлами и методами, брать тело в виде JSON, обрабатывать и возвращать ответы с другими JSON. Как бы ты решал эту задачу без спринга, чтобы было быстрее?
>>2379193 Так тебе бизнесовая задача нужна, а не техническая? Предметная область в этом вопросе значения не имеет, рест-сервис может быть хоть для справочника клиентов, хоть для расчётов с банком, а суть одна и та же. И неважно, что было в изначальной постановке от кабана. Технология клиент-серверного взаимодействия должна быть универсальная, и спринг с этим справляется. Если не спринг, то что? Речь не про бизнес-логику в доменных объектах (её можно легко написать без спринга), а про её взаимодействие с вебом.
>>2379196 Допустим, тебе лень читать документацию или книги про очередную библиотеку, хочется быстро сделать то, что тебе нужно, и забыть. Ты в гугле вводишь "libraryname tutorial" и "how to do X with libraryname", открываешь первую попавшуюся ссылку с краткой васянской статьёй, где описано, как пользоваться либой, не вдаваясь в подробности. Такие статьи и есть мурзилки.
>>2379210 Кабанчик просит "сделоть сайт чтоб можна была корованы грабить". Если кабанчик просит что-то более глубокое - он ещё и лид по совместительству. Вот ты мне задачу от кабанчика и предоставь, которую без спринга по твоему мнению невозможно решить.
>>2379212 > Кабанчик просит "сделоть сайт чтоб можна была корованы грабить". Если кабанчик просит что-то более глубокое - он ещё и лид по совместительству. Представь, что у тебя такой кабанчик-лид. > Вот ты мне задачу от кабанчика и предоставь, которую без спринга по твоему мнению невозможно решить. Можно, вопрос на чём вместо спринга и зачем.
>>2379218 Я тебе блядь говорю, что твоя задача сходна с задачей объявить спринг компонент без спринга и ее будет затруднительно сделать без него, так как сама она поставлена неправильно и лид уже принял решение использовать спринг, и тебе в любом случае придется его использовать, тупое ты чмо.
>>2379222 Написание рест сервиса предполагает использование спринга, тупое ты чмо, ровно также, как объявление спринг компонента подразумевает использование спринга.
Мне нужна задача более высокого уровня, задача от кабанчика, ещё не принявшего решение использовать спринг. Не предоставляешь задачу = слит, убежав роняя кал.
>>2379224 > Написание рест сервиса предполагает использование спринга Не предполагает. Рест-сервисы вообще никакого отношения к спрингу не имеют. > Мне нужна задача более высокого уровня, задача от кабанчика, ещё не принявшего решение использовать спринг. Не предоставляешь задачу = слит, убежав роняя кал. Не предоставляешь альтернативу спрингу для написания рест-сервисов = слит, убежав роняя кал.
>>2379225 Мне не нужно использовать рест сервисы для решения любой из задач кабанчика, а ты зациклен на том, чтобы тебе, как тупорылому крудошлепу, тыкнули в ебло прямо, что нужно сделать. И тебе, логично, ничего, кроме крудошлепства на спринге ничего не доверят, и ты не способен думать, что без спринга возможно решить что угодно.
>>2379226 > И тебе, логично, ничего, кроме крудошлепства на спринге ничего не доверят, и ты не способен думать, что без спринга возможно решить что угодно. Повторяю: спринг использовать нельзя. Доверили использовать что угодно, кроме спринга. На чём крудошлёпить, если не на спринге?
>>2379228 > Только на спринге, это лучший фреймворк для 80 iq А для 160 iq? > А любые задачи кабанчика можно решить без него. Молча используя спринг и общаясь с кабаном на языке бизнеса?
>>2379239 Повторяю еще раз, нельзя пытаться решить все и сразу с помощью одной хуйни, это антипаттерн "god object". А значит и единой замены для спринга нет, кмс его не могут заменить.
Почему до сих пор существует код с хоть каким то намеком на однопоточность? Многопоточное программирование не просто производительность повышает, оно еще в принципе обязательно при чистом коде. Многопоток максимально полиморфичен и коррелирует с многими принципами программирования. Когда ходишь хорошо, ты даже волей не волей напишешь код, который будет в многопотоке работать.
>>2379561 Ты рофлишь? Любой, кто на джаве хоть что-то когда-то разрабатывал - как минимум знает разницу между jre и jdk. Я например не знал подробностей, что jvm это всё-таки просто голая машина, без стандартных классов. Теперь знаю. jre = jvm + те самые стандартные классы. Годится чтобы запускать, но не чтобы компилить. Сейчас по моему уже не выпускается отдельно и работодатели не должны это спрашивать соответственно. jdk = jre + инструменты разработчика. Но энивей, это не предмет зубрёжки, это предмет "я на этом разрабатываю и как я могу это не знать".
>>2379685 > разницу между jre и jdk. Это старьевая информация. Сейчас нет такого явного разделения, все по умолчанию пользуются ждк. ЖРЕ нужен был для клиента, то есть либо умерший десктоп, либо майнкруфт. И gc в клиентском режиме не подрубают.
>>2379699 >Это старьевая информация. Сейчас нет такого явного разделения, все по умолчанию пользуются ждк Я так и сказал, просто я и сам старьё, качал jre когда её ещё поставляли. >либо майнкруфт Хз, качаю jdk для майнсруфта. Короче тот вопрос не шибко релевантен.
>>2379597 Для большинства простых задач переключение контекста системного треда будет перекрывать выигрыш от распараллеливания. Думаю иногда даже зеленые треды бесполезны. Плюс есть закон амдала.
>>2379699 На самом деле, ждк на сервере установлена не должна быть. По крайней мере, абсолютно не нужна. Ждк только для персональных компов, где идея стоит. Устанавливают ждк чтоб было усё по красоте и ради перфекционизма, потратить лишние 70мбайт места ради удовлетворения желания синдрома перфекциониста не так дорого.
ПРИШЛО ВРЕМЯ ПЕРЕКАТЫВАТЬ ЖАБАТРЕД ЖАБАТРЕД САМ НЕ ПЕРЕКАТИТСЯ ПЕРЕКАТИ ЕГО, ПЕРЕКАТИ ЕГО ЕЩЕ РАЗ ЗАЧЕМ МНЕ НУЖНО ЖДАТЬ ДО 2000 ПОСТА, У МЕНЯ НЕТ ВРЕМЕНИ ЧТОБЫ ЖДАТЬ СТОЛЬКО РАДИ ПЕРЕКАТА ЛУЧШЕ ЕЩЕ РАЗ ПЕРЕКАТИТЬ ЖАБАТРЕД Я ПЕРЕКАТЫВАЮ ЖАБАТРЕД ПО 3 РАЗА В ДЕНЬ КАЖДЫЙ ПЕРЕКАТ ЗАНИМАЕТ ДЕСЯТЬ МИНУТ Я ЖИВУ АКТИВНОЙ И ПОЛНОЦЕННОЙ ЖИЗНЬЮ Я УСПЕШЕН И ПОЭТОМУ ЦЕЛЫЙ ДЕНЬ ИГРАЮ В ИГРЫ А ПОСЛЕ ЭТОГО ПЕРЕКАТЫВАЮ ЖАБАТРЕД ТУПЫЕ СПРИНГОДЕБИЛЫ ОДЕРЖИМЫ КУЧЕЙ ПОСТОВ ТРЕДА А Я СВОБОДНЫЙ ОТ ЗАДРОТСТВО ЧЕЛОВЕК СКОЧАТЬ БЕЗПЛАТНО И БЕЗ РЕГИСТРАЦИИ ELEGANT OBJECTS JAVA EDITION КРЯК УЛЬТИМАТ КЕЙГЕН РАЗБЛОКИРУЙ ВААДИН ЛУЧШЕ Я ПЕРЕКАЧУ ЕЩЁ РАЗ ЖАБАТЕРД И ДОБАВЛЮ ШАПКУ, ШАПКА НУЖНА Я НЕ ПЕРЕКАТЫВАЛ ЖАБАТРЕД НЕДЕЛЮ ПОЙДУ ПЕРЕКАЧУ В ЖАБАТРЕДЕ ВСЕ ПРОСТО И ПОНЯТНО ОБЩЕНИЕ РАЗДЕЛИЛОСЬ НА ТРИ ТРЕДА. ЭТО ЖЕ ОЧЕВИДНО КАК ЭТО РЕШИТЬ НАДО ЕЩЁ РАЗ ПЕРЕКАТИТЬ ЖАБАТРЕД ПРИШЛО ВРЕМЯ ПЕРЕКАТИТЬ ЖАБАТРЕД ККОКОКОКОКОКОКО ЖМУ/ПИНУС ШВАБОДКА ПИТУХОН КОКОКОКОКОКОКО
Сейчас такая мода на микросервисы... Но смищно когда все микросервисы разворачивают на одном сервере, но это ССЗБ. А еще, когда я рос в ИТ, я помню постулат «Всегда снижай точки отказа», а с развитием микросервисов мне кажется что точек отказа просто писец как больше становиться. Притом админ при каждом обновлении фронта и бэка ставиться бешенной собакой. Обновления «экосистемы» становяться каким-то нетривиальным делом. Еще и микрофронтэнд тут сбоку подползает.
>>2376958 Смотря где. Где-то без релевантной вышки сразу шлют нахуй, обычно это госконторы. Но обычно, если нет вышки или вышка не релевантная, но есть опыт работы, могут взять. Если нет ни вышки, ни опыта, это тоже вызовет вопросы. На курсы не смотрят, с тем же успехом можно написать "изучил жабу в свободное время", и никого не ебёт, курсы, книги или что-то ещё.
>>2379212 >>Если кабанчик просит что-то более глубокое Кабанчик говорит "сделоть сайт чтоб можна была корованы грабить. Кстати я вам уже нашел архитектора Джамала он вам расскажет какие технологии использовать надо (но делать все будете вы сами)."
Стоит искать именно английское издание? Озон и книжные магазины завалены этим свежим переводом, в оригинале нема. Когда-то прочитал примерно половину на англюсике
>>2380430 Возможно тупой вопрос, но... Как работать с изображениями? К примеру имеется профиль пользователя и я правильно понимаю что в этом случае мы просто держим Path-переменную(путь до изображения) в нашем объекте? Если мы отсылаем этот объект на view-слой, то запихиваем в Json только путь к изображению как строку или нужно сериализовать его? А если мы получаем этот объект, то изображение будет в виде массива байтов в Json'e, который нужно будет десериализовать, поместить в папку и сохранить путь в базе?
>>2380581 Любой динамический сайт предполагает как минимум круд. Кроме круда бывает специфичные фичи типа видеоконференций Zoom, вот и пили что-то подобное.
>>2380430 На Amazone и прочих зарубежных площадках смотри, можно заказать через специальные фирмы вроде бандерольки. Смысла в ру-изданиях вообще не вижу.
Нахрена хибернейт серч делает снапшоты индексов после каждого flush, чтобы потом один раз отправить после успешного коммита, капец. И это никак похоже не убрать без Outbox polling.
>>2381058 Какой вообще смысл несёт класс Login? Ты его под поле с именем пользователя создал или под всю форму входа? Если имя пользователя, в отдельном классе необходимости нет, а то у тебя даже не отдельная сущность получилась, а какой-то странный вариант фабрики. Если вся форма входа, наследуй класс от какого-нибудь JFrame, в конструкторе создавай и настраивай поля, и весь объект Login добавляй в родительский объект. Можешь почитать в книжках по джаве главы про Swing, там обычно адекватные примеры, как подружить ООП и Swing. Спойлер: на работе гуй на жабе писать не придётся.
>>2381226 Login будет содержать в себе форму входа (логин, пароль и кнопка войти), класс Window это главный класс в котором находится форма. Я пытаюсь реализовать ООП таким образом... А на скриншотах выше был пример с одним полем.
>>2381274 Тогда точно делай Login отдельным фреймом, в нём собственный лейаут, а в Window просто добавляй его через add() и к полям не обращайся. Тебе тогда не нужны будут ни публичные поля, ни геттеры, по крайней мере до тех пор, пока не будешь обрабатывать значения полей (хотя там вместо геттеров можно передавать коллбек в Login и вызывать его при нажатии на кнопку).
Сап, есть вопрос по удалению объектов. Допустим будет создано 5 объектов класса Объект.
о1 = new object(); o2 = new object(); o3 = new obect(); o4 = o1; o5 = o4;
o1 = null o3 = null
Сколько должно быть объектов по итогу уничтожено? Естественно будет уничтожен, как минимум, о3. Но что с остальными? Будет ли уничтожен о1 т.к он null? Будут ли уничтожены о4 и о5 т.к о4 ссылается на о1 ( который null). A о5, соответственно на о4.
Буквально первый день в джаве, не совсем понятна именно эта ситуация. Спасибо за ответ
>>2381363 У тебя нет пяти объектов, есть пять ссылок и три объекта. В отличие от объектов, ссылки не хранятся в куче, они хранятся в стеке, и удаляются сразу после выхода из области видимости, т.е. для локальных переменных это будет завершение работы метода или блока if/while/и.т.д. Объекты не удаляются сразу после того, как не осталось указывающих на них ссылок, они удаляются в фоне сборщиком мусора, когда тот сочтёт нужным почистить память.
>>2381363 Объект, который на 1 строчке останется, т.к. о4 и о5 ссылаются на него. На второй строчке тоже останется, т.к. о2 ссылается. Объект, созданный на 3 строчке удалится, т.к. на него никто не ссылается
>>2381460 > Почему тут все что ни попадя называют антипаттерном? Думаю, это один дурачок семенит > И кто такой Бугаенко, за что его все так любят? Чел, который топит за Ъ ООП. Считает только свою точку зрения единственно верной. Из-за того, что мешает популярные фреймворки и довольно распространенный принцип написания продакшен кода с говном , бывает действительно по делу, вызывает НЕНАВИСТЬ у большинства погроммистов. Имхо, он довольно часто воюет с соломенными чучелами, как здесь >>2375911
Хочу винду переставить. У меня папка .m2\repository больше 5 гигов. Не охота чтобы потом год все выкачивалось. Например к тому же баелдунговскому проекту. Ее можно просто скопировать? А если на линупс? Ну по идее вроде должно быть норм, типа Write once, run anywhere. А на деле как?
>>2381542 ПРИШЛО ВРЕМЯ ПЕРЕУСТАНАВЛИВАТЬ ШINDOWS ШINDOWS САМ НЕ ПЕРЕУСТАНОВИТСЯ ПЕРЕУСТАНОВИ ЕГО, ПЕРЕУСТАНОВИ ЕГО ЕЩЕ РАЗ ЗАЧЕМ МНЕ НУЖЕН LINUX, У МЕНЯ НЕТ ВРЕМЕНИ ЧТОБЫ ЕБАТЬСЯ С НИМ ЛУЧШЕ ЕЩЕ РАЗ ПЕРЕУСТАНОВИТЬ ШINDOWS Я ПЕРЕУСТАНАВЛИВАЮ ШINDOWS ПО 3 РАЗА В ДЕНЬ КАЖДАЯ ПЕРЕУСТАНОВКА ЗАНИМАЕТ ДВАДЦАДЬ МИНУТ Я ЖИВУ АКТИВНОЙ И ПОЛНОЦЕННОЙ ЖИЗНЬЮ Я УСПЕШЕН И ПОЭТОМУ ЦЕЛЫЙ ДЕНЬ ИГРАЮ В ИГРЫ А ПОСЛЕ ЭТОГО ПЕРЕУСТАНАВЛИВАЮ ШINDOWS ТУПЫЕ ЛИНУКСОИДЫ ОДЕРЖИМЫ КОНПЕЛЯЦИЕЙ ВЕДРА А Я СВОБОДНЫЙ ОТ ЗАДРОТСТВО ЧЕЛОВЕК СКОЧАТЬ БЕЗПЛАТНО И БЕЗ РЕГИСТРАЦИИ МОКРЫЕ ПИСЕЧКИ КРЯК УЛЬТИМАТ КЕЙГЕН РАЗБЛОКИРУЙ ВЕНДУ ЛУЧШЕ Я ПЕРЕУСТАНОВЛЮ ЕЩЕ РАЗ ШINDOWS И КРЯКНУ ЕЕ, СТАБИЛЬНОСТЬ НЕ НУЖНА Я НЕ ПЕРЕУСТАНАВЛИВАЛ ШINDOWS НЕДЕЛЮ ПОЙДУ ПЕРЕУСТАНОВЛЮ В ШINDOWSE ВСЕ ПРОСТО И ПОНЯТНО ОШИБКА STOP 0x0000000A. ЭТО ЖЕ ОЧЕВИДНО КАК ЕЕ РЕШИТЬ ПРИШЛО ВРЕМЯ ПЕРЕУСТАНАВИТЬ ШINDOWS ККОКОКОКОКОКОКО ЖМУ/ПИНУС ШВАБОДКА ПИТУХИ КОКОКОКОКОКОКО
>>2381543 Кстати со штабильностью все збс. 2 года - никаких нареканий(до этого еще 2, но сдох дешевый ссд). Просто 11 хочу поставить на новые железки, обновлять не хочу. А то на 10 даже ш7-12700 еле ворочается. А в 11 тред директор есть. И куплю под нее нвме. Потом придется менять бп и охлад и снимать паверлимиты. Вот тогда мавен будет в идее быстро резолвиться и тесты гоняться моментально, вотувидити.
Что делать если мне осталось вызубрить spring и я джун, а родители гонят на работу ? :С Устроится дворником на 0.75 ставку, или искать работу по 8 часов и по вечерам доучиватся ? А ещё проблема в том что я живу в мухосранскозалупенске и что бы устроится на работу нужно ехать в другой город, снимать хостел и т.п.
Сап, джавач. Вопрос не совсем по жаве. Перенес данные из одной БД (db2) в другую (postgres) через экспорт-импорт csv. Поле таблицы в db2 было типа blob, в таблице postgres оно имеет тип bytea. Теперь мне нужно в жаве достать значение поля через jdbc. Проблема в том, что на некоторых записях resultSet.getBytes(index) падает с IOException "Not in GZIP format". Т.е. какие-то значения я достаю без проблем, на каких-то ошибка. При этом, если обращаться через тот же jdbc в db2 - никаких проблем. ЧЯДНТ?
>>2381944 Напиздел - java.util.zip.ZipException. Вот трейс: java.util.zip.ZipException: Not in GZIP format at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:165) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:79) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:91) at ru.pgarch.service.LSWBPDInstanceDataService.deserialize(LSWBPDInstanceDataService.java:57) at ru.pgarch.service.LSWBPDInstanceDataService.getBPDDataAsJson(LSWBPDInstanceDataService.java:42) at ru.pgarch.test.DeserializationTest.main(DeserializationTest.java:34)
>>2381956 Так при чем тут постгресс? У тебя не стектрейсе только твой код и код распаковки. Ошибка говорит о том, что то что ты подсовываешь не GZIP. Или что-то криво перенеслось или стоит добавить проверку на null/пустой byte[].
>>2381959 Я понимаю, что я подсовываю не гзип. Вопрос в другом: в каком месте мог гзип, который изначально хранился в db2, превратиться в не-гзип. Все, что я делал - это экспорт блобов из db2 в отдельные файлы, а потом импорт этих файлов в postgres. Все делалось через встроенные в субд утилиты.
>>2381972 >Вопрос в другом: в каком месте мог гзип, который изначально хранился в db2, превратиться в не-гзип. Ты серьезно хочешь, чтобы мы отсюда тебе сказали где произошел косяк?
Для начала можешь сделать так SELECT id, MD5(data) from table; на обоих базах и сравнить. Если различаются ковыряй CSV что там написано для этих строчек.
>>2381779 Ну баелдунг например до половины этих зависимостей качает. И много другиъ репозиториев с туториалов, из моих петов, просто с гита ну и с работы. папку с исходниками я тоже закину.
>>2381542 >Хочу винду переставить. У меня папка .m2\repository больше 5 гигов. Не охота чтобы потом год все выкачивалось. >Не охота чтобы потом год все выкачивалось. Анальники совсем ебанулись, даже артефакты не выбрасывают, а перетаскивают на новую систему.
>>2381875 >>вызубрить Тебя не будут просить перечислить все методы всех классов. Лучше пет проект напиши, чтоб понимать как он работает.
>>искать работу по 8 часов Какие 8 часов пчел? Откликнуться на хх на все что есть - 10 минут в день. В остальное время учись.
>>что бы устроится на работу нужно ехать в другой город, снимать хостел и т.п. Переедешь когда офер будет на руках. Сами собесы в 99% случаев - по зуму/скайпу. Просто не говори что ты из залупинска а сразу пиши тот город куда ты там ехать планируешь.
>>2382168 Так я сами то мурзилки иногда не читаю или читаю по диагонали, а вот запускаемые куски кода наоборот нужны. Иногда прямо в туториаловской репе могу переписать под свои задачи. Недавно вот более-менее научился пользоваться поиском по коду в гитхабе. Теперь тасочки с новыми для меня технологиями выполняются быстрее. Стянул 5 репозиториев, слепил из них то что нужно у себя.
>>2382209 Объекты должны быть не безжизненными модельками с данными, они должны работать. Пишешь, зачем ты сделал объект в myMethod и его вызываешь. Никаких геттеров. Другие объекты не знают, что в в твоем объекте вообще есть какие то поля. Идеальная инкапсуляция.
Есть вопрос. Пример кода https://pastebin.com/XyJZvntg "Чужой код" я не могу изменять, да и наследовать его тоже не хотелось бы. Что хочу - имея ссылку типа Bird, спокойно вызывать у неё метод talk(), которого в изначальном Bird нет, при этом желательно иметь дефолтную реализацию, т.е. если данная конкретная Bird у меня не доопределялась, то она должна по методу talk() вернуть что-то вроде "говорит на непонятном нам птичьем языке". Нарыл это - https://www.baeldung.com/java-dynamic-proxies , пока нихуя не понял нужно ли оно мне и как этим пользоваться. Заранее спасибо.
>>2383027 И этот дебил рассказывает про icq 80. Да у тебя у самого не больше 50. Ты взял готовый класс, со всеми геттерами и даже сеттерами.
>>2383052 Егорка большой теоретик, но практик из него хуйовый. Когда тебе надо будет записать этот класс в БД, JSON вывести на форму и куча всего прочего, ты просто заебешься писать на каждый юзкейс свой "принтер". А главное ты будешь тащить левую логику в твой класс. А если это библиотека - то то в принципе не можешь предусмотреть все возможные юзкейсы.
>>2383069 Ни через какие динамикпрокси ты не превратишь джаву в джаваскрипт и не сможешь вызвать метод, которого у класса заведомо нет, компилятор тупо посмотрит на тип ссылки и скажет, что метод не найден.
>>2383080 Я не собирался превращать джаву в джаваскрипт. Может неверно выразился, поточнее >имея ссылку на Bird, получить из неё результат метода talk При этом я могу в своём коде кастануть её к чему-нибудь, но проблема в том что на вход может прийти любая из сотен Bird (и я не знаю в компайл-тайме, какая именно), например Rooster, и мне нужно привести её к своему доопределённому петуху (но я пока не знаю, что это будет именно петух) и уже у него этот метод вызвать.
>>2383088 Если не говорить про рефлексию, то обычный вызов метода это вызов метода класса или интерфейса. Значит твой метод talk() должен быть где-то определен. Если он не определен в базовых классах, значить ты должен определить его или в интерфейсе или в классе наследнике. И потом твои классы просто наследуются от базовых и реализуют интерфейс.
Но в целом задача выглядит странной, если нет необходимости получать доступ к протектед полям, можно это реализовать через статический метод или объект враппер.
Долго выбирал между сишарпом и джавой, но в итоге сделал выбор в пользу джавы по следующим причинам: 1. Куплена книжка "Философия джава". Она стоит не малых денег, поэтому надо оправдать вложение. 2. Сказал маме, что буду учить джаву. Как бы я смог объяснить ей, что вдруг решил учить сишарп!? 3. Применил методику Сергея Немчинского по выбору языка: подбросил монетку и выпала джава.
>>2383295 > 1. Куплена книжка "Философия джава". Она стоит не малых денег, поэтому надо оправдать вложение. Так продай. > 2. Сказал маме, что буду учить джаву. Как бы я смог объяснить ей, что вдруг решил учить сишарп!? Для неё это всё равно что говорить на китайском. Завтра ты можешь ей сказать "я продолжаю изучать сишарп, как и говорил", и она ничего не заметит. > 3. Применил методику Сергея Немчинского по выбору языка: подбросил монетку и выпала джава. Это хуйня, а не способ.
>>2383295 >Долго выбирал между сишарпом и джавой, но в итоге сделал выбор в пользу джавы по следующим причинам: >1. Куплена книжка "Философия джава". Она стоит не малых денег, поэтому надо оправдать вложение. Лучше бы Элегантные Объекты Java Edition купил. >2. Сказал маме, что буду учить джаву. Как бы я смог объяснить ей, что вдруг решил учить сишарп!? Правильно, мамка бы с хаты нахуй выгнала, если бы ты сказал, что собрался петушарп учить. >3. Применил методику Сергея Немчинского по выбору языка: подбросил монетку и выпала джава. Монетка шарит.
>>2383144 Про рефлексию говорить можно, так же есть вариант инъекции в чужой байткод (но в идеале без инъекций бы, т.к. помимо моего кода, который расширяет чужой, есть ещё другой чужой, который расширяет тот же код). >значить ты должен определить его или в интерфейсе или в классе наследнике А я могу это сделать и делаю, тут вопрос в другом. У меня есть метод, который должен принимать на вход ссылку типа А, а эта ссылка может быть как частью моего кода (зеленый), так и частью чужого. В чужом коде mymethod() нет. Я расширяю некоторые чужие классы (могу и все), определяя в наследниках этот метод, но мне в момент выполнения программы не может прийти ссылка на наследника, только на расширяемый класс. И в этот момент я должен узнать, какой именно тип у ссылки (это будет один из типов второго уровня на картинке), если он зеленый то я я спокойно вызываю метод, а если он черный то нужно понять какой именно чтобы кастануть его именно к своему наследнику. Как сделать это через рефлексию я примерно понял, но это грязновато, так же я могу создать структуру данных и установить в ней соответствие "родитель - наследник", т.к. там в mymethod нет никакой логики и не предвидится, просто возврат некоей константы, то можно насовать в мапу экземпляров объектов и соответствующих им возвращаемых констант (благо там при инициализации один хуй все эти объекты нужно создавать для технических нужд, можно заодно ими и заполнить мапу) >Но в целом задача выглядит странной В целом задача - добавить поведение к объектам и потом иметь возможность понять, что именно это за объект, чтобы кастануть его именно к своему наследнику. >можно это реализовать через статический метод В котором написать что-то уровня if (obj instanceof myobj1) { return 1; } else if (obj instanceof myobj2) { return 2; } и так далее?
>>2383497 Когда я изучал сишарп, то там активно использовали SQLite как кроссплатформенное решение. Преимущество её заключается в том, что не нужно поднимать сервер и всё хранится в файлике .db
Когда ума не хватает ума сконструировать из кубиков лего какое-то сооружение, всегда можно насыпать кучу этих кубиков, залить цементом, замотать скотчем и надежно закрепить изолентой.
Когда не хватает ума сконструировать годную архитектуру, всегда можно навернуть говна со спрингом и обосрать код аннотацией и рефлексией.
В обоих случаях получается говно, к которому новые кубики без цемента не добавишь, а если захочешь что-то уже построенное изменить, то у тебя это либо не получится (если залил цементом) или все с шансом 90% развалится нахуй, если закрепил скотчем.
>>2383579 С помощью рефлексии можно создавать удивительные вещи. К примеру, создать фреймворк без фреймворка, когда пишешь только логику своего приложения, а не стереотипный код большинства фреймворков.
>>2383406 Непонятно как ты собираешься это использовать, потому сложно сказать как лучше делать, но попробую описать: 1. Наследуемся от класса, реализуем интерфейс MyFancyInterface в котором определен твой метод, и реализуем его. Там где надо использовать этот метод просто if(obj instanceof MyFancyInterface) ((MyFancyInterface)obj).myMethod(); но тогда надо будет создавать не new Duck() а new MyDuck()
2. Тоже самое но без наследования, не MyDuck extends Duck а MyDuck { private Duck realDuck; } ну и там можно даже заделигейтить методы или просто геттер для утки сделать.
>>2383617 >но тогда надо будет создавать не new Duck() а new MyDuck() Видимо к этому и придётся идти в итоге. В принципе это более-менее реализуемо - найти все места, где создаётся Duck (их сравнительно немного) и поменять их на MyDuck.
>>2383717 Это суть всех фреймворков, которые заставляют клепать тонны стереотипного кода. Причём надо строго следовать ему, иначе всё перестаёт работать. Ещё проблема, что по ним мало инфы и как писать не понятно. Книги пишут редко, да и те быстро устаревают.
>>2383975 > Кнопки в отдельный класс вынести С какой целью? У тебя есть какие-то мега-кнопки, которые много всего умеют, и при этом их надо повторно использовать?
Бугаенко может и шиз, но его подход ближе к оригинальному ООП, чем anemic model, принятая в спринге. То самое традиционное ООП из книжек по жабе, где кот наследуется от абстрактного анимала и умеет делать meow() + бест практисы.
>>2384007 А почему нас должно ебать борщехлебское абстрактное ооп, а не то, как легче написать наши круды, бизнес логику, логи, обработку ошибок и сотни другой хуиты, которая есть под капотом у спринга и других библиотек, ебущих в рот настоящее ооп? Почему кого то вообще ебут нахрюки Бугаенки?
>>2384033 > Почему кого то вообще ебут нахрюки Бугаенки? Так в том то и дело, что всем насрать. Хочет Егорка так писать код - пускай пишет. Только одному буйному дивану все неймется, и он постоянно срет про ООП™
>>2384033 Потому что ты тупоголовый дебил, который в конечном итоге потратит больше времени на написание, дебаг, прочтение своего говнокода и будущую поддержку. Вообще ебать не должно, пиши сколько хочешь, только потом не сри тредами "я выгорел((((((" и не убегай в слезах в питухон тред со словами "жопа для крудошлепаф((((( ни дают прахода нармальнум кодирам(((("
>>2383733 >Это суть всех фреймворков, которые заставляют клепать тонны стереотипного кода. Ты даже не понимаешь где причина, а где следствие. Тонны стереотипного кода возникают потому, что у тебя тонны стереотипных задач. А что ты хотел, на 100 энтити надо 100 репозиториев. По крайней мере ты можешь написать YobaRepository extends JpaRepository и у тебя сразу есть базовый функционал. Без ёбли с реализацией базового CRUD.
>Причём надо строго следовать ему, иначе всё перестаёт работать. Можешь и не следовать, но тогда будешь дополнительно все прописывать руками в конфигурации.
>>2383742 Ну так пиздуй работать к Егорке, у него фреймоврки только самописные, ООПшерные, все как мамкины теоретики любят. Смотри какие условия работы классные, делаешь тасочки, получаешь бабки. http://www.zerocracy.com/faq.html
Тут посчитал, чтобы прочитать книги надо минимум 200 дней. И это только по Java! Без всяких фреймворков и сопутствующих технологий. Получается на изучение джавы нужны годы? А как тогда учатся на всяких курсах за 3 месяца с нуля и идут работать?
>>2384343 А как изучать тогда? Где брать инфу? Видосики не воспринимаю, потому что они разной степени паршивости и большинство не закончены. Тот же Тагир Валеев картавит и звук нормальный не может сделать на своих лекциях, да и сам лекция у него обзорная, детали он не рассматривает. Алишев по Спрингу выложил только часть видео, остальные надо покупать как курс.
>>2384234 Схуяли? На тру-ооп нам просто тонны кода писать вместо спринга. Ну например общение с вебом как писать? На голых сервлетах? Или сервлеты тоже не по ооп? И потом во всех этих велосипедах будешь постепенно находить дырки. А то и не найдешь. У спринга огромное комьюнити и куча его косяков описаны и придуман костыли. Код на популярном фреймворке намного более поддерживаемый, чем велосипед. Вот накакал Егорка на проекте своими чистыми велосипедами, а потом убежал к другому кабану. Ты завтра пришел и охуел. И одного вечера за куском доки и тремя страницами на стековерфлоу у тебя уйдет месяц на ковыряние в егоркиной писанине.
>>2384434 > Before you start, make sure you understand that: >You will not be paid for the time you spend; > You will be paid only when you close tickets; > You will be paid for reported bugs; > Nobody will teach or help you; > You will have no boss; > There will be no chats or discussions.
>>2384458 Плагины для майнкрафта - это не замена книгам или курсам. Тем более они ни как не помогут продвинуться как бэкенд-разработчик. Вообще, у сишарп-программиста Степана Берегового есть видео на канале, где он делает обзор книг. И там он говорит, что глупо не читать книги, потому что это концентрированный источник знаний. Да, те же знания можно нагуглить, но во-первых надо знать что гуглить, а во-вторых потратить кучу времени на поиски, когда в книге достаточно перевернуть страничку.
>>2384440 > Nobody will teach or help you; какой пиздобол. Ведь всю дорогу учит акой-то шизовой хуерге. Ну даст тикет, нахуячу его на спринге и хибере. Че он сделает, если: > There will be no chats or discussions.
>>2384363 Такая херня не лечится никакими аргументами. Пока чел сам не придет на проект на котором местный, давно уволившийся, Бугагаенко понаписал своих велосипедов в правильном ХХХ стиле. Пока ты не поебешься с фиксаньем багов в этом говно мамонта и добавлением новых фич туда. Вот тогда ты поймешь почему на предложение написать свой велосипед надо вначали пиздзить, а потом уже слушать почему надо использовать свой велосипед.
>2384521 >Че он сделает, если: Код ревью никто не отменял. Там секта идейных поедателей кактусов.
>>2384499 Я лично тебе два треда назад отвечал. Ты троллишь, но для дргих вкатунов: что хочешь книг - читай про спринг(есть на русском, но много устаревшего) и спринг ин экшон(нет на русском, кинь пдфку в хроме в автопереводчик, и в последних изданиях нет ничего про подкапотное устройство). А так на русском по видеоурокам - сперва алишев на ютубе(там нормально объясняется di. Все кроме di - наживное), потом отус на торрентах. Ничего законченного по спрингу быть не может. Дока только по мастхевным кускам спринга это 3к страниц. По всем конкретным вопросам баелдунг и стековерфлоу с автопереводчиком. Потом дока, если мало. Вот еще хорошие статьи на русском: https://sysout.ru/spring/spring-core/ https://easyjava.ru/spring/spring-framework/ Еще есть практические проектики у летскода.
>>2384558 Ну и ходи везде. Подавай резюме, ври если надо. Я прямо до спецоперации вкатился. Было сильно легче, чем я думал. Из 200 откликов до собеса дошло в 6 местах. В 4 - из них взяли. Причем в моей 300к мухосрани ответили, пособесили и дали оффер в обоих. Ну и еще в 5 местах скидывали тестовое до собеса. 1 начал делать, но тут собесы пошли. Если бы не пошли - стал бы дрочить их. На все про все - ушло 3 месяца. Сейчас вкатуну на собес попасть за счастье. Ну а по практике - ну тестовые пили. Или если скучно - петы. Я для подруги начал пилить магазин хенд-мейд шмоток на шаблонах, а для приятеля базу данных(ну типа базу с урлами видосов и табличкой стримера - много ко многим) по треш-стримерам на ресте. И то и другое никому не было нужно, я как доделал первые прототипы - забил. Ради этого пришлось целый месяц учить html/css/js и чуть за рякт не сел, потому что на голом js костылить компоненты неприятно. Лучше бы тестовые пилил, типа райфовского, но это скучнее было бы.
>>2384603 А врать насчет чего? Скажу я например что пару месяцев крудошлепил, как меня могут прочекать? Я знаю на уровне аоп-аспекты, транзакции, хибер, докер могу поднять. Цикл жизни бина и прочую хуйню, которую многие не отвечают.
>>2384610 Можешь усложнять текущие. Можешь попилить на микрухи, притащить брокер и аналитику, деплоить все в кубер. Постоянно улучшая свой старый код. Сроков нету - делай что хочешь
А вы как отдыхаете от бойлерплейтношвайного энтерпрайзнопереможного безсахарнопонадусерового ЖАБАГОВНА? Балуетесь груви, котлином, пыхоплеядой или чем-то экзотическим?
Дарова жавяне. Сори что спамлю. Тред создавал, но там тишина. Вот сама история. Попробую по тредам с языками пройтись и так решить мб... Заранее благодарен! Закончил вузик в мск по ит специальности. И получилось так, что вроде и что-то делать пытался за время учёбы, а по итогу хуй в стакане. Сейчас дата сосист на питоне, но контора такая, что по факту я нихуя не знаю. Выиграл пару хакатонов даже пока учился. И вот теперь бесповортно пришло время выбирать как жить дальше. Как вообще найти стажировку себе или джуновину. Какой язык взять, чтобы точно начать карьеру можно было. Знаю все и по немного по факту, но на деле языка который я бы реально знал на достойном уровне нет. ООП понимаю вроде как. Я планирую выбирать из этого примерно: Java/C#/C++/(Мб питон, но не уверен насчёт него). Хотелось бы услышать совета от знающих людей... И что вообще сделать чтобы максимально эффективно и быстро найти полноценную норм работу себе(или стажировку)
>>2385580 По моему опыту - 100%. Из моих знакомых пытался только я и у меня получилось. Во фронты тоже все кто вкатывался - вкатились. А челики с плюсами и питом - соснули(забили после 500+ часов).
>>2385561 Нужно было ещё во время учебы вкатываться 1. Определяешься с языком. Твердо и четко 2. Находишь самый распространенный стек на этом языке 3. Дрочишь гайды по этому стеку, параллельно пиля свой проект на нем 4. ??????? 5. PROFIT
>>2385601 Так вот я и пытаюсь определиться. Я просто хочу в серьёзную разработку как бы и норм шириной языка для своих проектиков. Без мелкого говна. Сложно вообще сейчас по жаве стажировку найти? Там сделать крудик какой-нить условный мб пару тестовых из открытых источников и их на гит. Так пойдет?
>>2385593 >По моему опыту - 100%. Из моих знакомых пытался только я и у меня получилось. А что нынче для джуна нужно? Джава кор, спринг, git, linux - дня начала нормально? Из петпроектов только небольшой форум на собственном движке и телеграмм бот, который видео с ютуба качает.
>>2385602 Если сам и с нуля, то 700-2000, как попрет и насколько ты тупой. У меня ну 1200 ушло где-то. Из них 500 я мог бы скостить сам, если бы не брал лишние штуки, типа основ html/js и не залипал в книжки и некоторые ненужные библиотеки. Может если не с нуля и брать менторов можно и быстрее.
>>2385609 линукс не нужон. джавакор гит сикуля мавен(ну и градл на полшишки тоже может пригодится) спрингкор спрингбут штмл-рест спрингмвс(на ресте) спрингдата жюнит+мокито докер спрингтест(мокмвс+тестконтейнеры) сваггер
>>2385614 Если запилишь тестовое от райфа на стажера и тесты напишешь к нему, то в нормальном месте(без понтов, как в тиньке) должны взять на джуна(если на кишках жабы и фреймворков не обосрешься). Главное попасть на собес.
Пытаюсь скачать весь сайт (похоже что он на java (не яваскрипт) сделан, через wget . Там есть авторизация. Скармливаю куки для wget, но авторизации не происходит. Реально ли вообще скачать такой сайт? Сайт в виде 2х фреймов сделан, при клике на фрейм слева, грузится контент (видео) в правый фрейме
>>2385580 Хз, на жабу не вкатился. После СВО хуй да нихуя вакансий и стажировок. Был на 1 коллективном собесе на жабу (там 15 человек группу набирали на стажировку бесплатную с последующим трудоустройством если ты ок), так ебашил алгоритм на листочке, потом немного тех. собес, далее каждый человек (всего нас было 8 человек) проводили самопрезентацию. Ну бля... У меня тех. вышка есть, но непрофильная, но туда приперлись 3 чувака которые УЖЕ в айти (1 тестировщик, другой на легаси жабе, другой ваще червь-пидор обвешанный дипломами и опытом работы), другие прогают с 15 лет и прочая хуйня. Ясен хуй как бы идеально я не ответил - все равно теряюсь на плане таких терпил (был первый собес, поэтому не смог себя продать, надо вечно хуйню нести как будто ты ракеты в космос запускал но в рамках разумного, все равно проверять не будут). Второй собес был как последний этап, сначала отбраковка резюме, далее тестовое. Тестовое сказали збс сделал, поговорили за жабу, за многопоточку за память и прочее. Норм отвечал, в общем. Ну где-то разумеется ошибался, всего хуй узнаешь - на след день отказ. Ну и все... Больше ни стажировок нихуя нет. Но залетел на шарп и дотнет вот сегодня после тестового - огромная удача, на самом деле. 9.5 месяцев от первой строчки кода до первой работы без всяких бесплатных стажировок.
>>2385979 Получается, что меньше. Ещё там есть полностью бесплатная вижла, а не как в джаве обрубок от жидбрейнс. Сейчас даже простые текстовые редакторы делают подсветку синтаксиса для многих форматов типа CSS, но у жидбрейнс это только в платной версии.
>>2385981 Получается как? Цифры-то есть? >Ещё там есть полностью бесплатная вижла, а не как в джаве обрубок от жидбрейнс. >Сейчас даже простые текстовые редакторы делают подсветку синтаксиса для многих форматов типа CSS, но у жидбрейнс это только в платной версии. Чего? Давай на конкуренции на место сфокусируемся, ты пытаешься съехать с темы (зачем-то), но съезжаешь туда, где не вывозишь.
>>2385985 Что тебе эти цифры дадут? На джаву конкуренция выше не по цифрам, а потому что там более опытные претенденты. На шарп порог входа ниже и легче заскочить.
>>2385990 Просто после 24 февраля, по моим наблюдениям, жаба вся испарилась. Я ж говорю, на 2 собесах на стажировках побывал, банки стажировки заморозили (кроме тинька вроде), и все, полный голяк. На шарпе если чекнуть побольше вакух и стажировок даже сейчас. На шарп учить ничуть не меньше, чем на жабу. Не значит, что легче, просто лично мне было несложно за пару дней было накидать тестовое на шарпе (ну лол калька с жабы с сахарком) и дотнете юзая дизайн паттерн, DI и пр. + понял для чего и почему нужно юзать синглтон, а то на спринге аннотаций нарасставил и че блять, зачем, почему именно так - нихуя не понятно.
>>2353490 (OP) Есть каки-то опции выдачи на фронт файла без указания его внутреннего url на сервере через GraphQL? Через рест решил проблему через Resource объект и передал туда байты, полученные с инпутстрима файла. В графе кроме выдачи коллекции скаляра byte - ни до чего не дошёл.
>>2386377 >Когда там лицензия заканчивается у жидбрейнс? У комьюнити никогда. инбифо: кукареканье про неполноценность комьюнити стартует через 1, 2, 3...
>>2386387 Вижла даже комьюнити содержит почти все фишки. Сколько пользовался и ни разу не возникало ощущение неполноценности. А идея каждый раз напоминает тебе, что этот файлик мы не поддерживаем, купи ультимейт. И как я выше говорил, доходит до смешного, что в поддержке отказывают для тех файлов, которые поддерживают уже все бесплатные текстовые редакторы. Но самое болезненное в идее - это отсутствие поддержки спринга и работы с базами данных. Для сравнения в вижле полная поддержка всех дотнетовских фреймворков и MS SQL базы данных.
>>2386377 >>Когда там лицензия заканчивается у жидбрейнс? Я себе вечную купил, в более свежих ничего особо важного для меня не появлялось. А вообще у них недавно очередной ЕАР стартовал, если пиратить не хочется.
>>2386397 Как же зааебали в проде все эти однообразные EntityProcessingDataService и UserSecurityRoleController. А хочется называть классы например именами богов, персонажей из легенд/мифов/аниме.
>>2386397 Хуйню пишешь, раз только такие названия приходят в голову. Во первых, в пакете не больше 3-4 классов - это закон. Во вторых, утиль классы - утиль и антипаттерн. Пока ты будешь свои утили создавать, у тебя будут вот такие хуевые названия пакетов.
>>2386616 Ну я меньше полугода, как вкатился. В большинстве нормальных мест всего этого хотели. В неочень местах не нужен был докер, свагер. В паре помойных было похуй на тесты и спринг был без бута. В охуевших с вкатунца хотели mq/kafka. Ну это из где-то 30 мест отуда до меня хотя бы письмо/звонок херки доходили(из них 20 просто исчезали и на сообщения не отвечали потом) и там я внимательнее читал резюме. В 3 местах прямо спрашивали по жпа, в одном(в люкссофте) просто ебли жизненным циклом жпа и его методами без спринговой оболочки(думаю просто интервьюер хотел меня завалить). Ну вообще нужен джавакор(80% для вкатуна), гит, спринг-кор, сборщик, рест, реляционки и куски спринга под рест/реляционки.
>>2386609 Опять каклы пидорашке гадят. На микрогалере в моей мухосрани, куда я пытался устроиться стажером за опыт в прошлом году(сейчас она закрылась), конкурс в районе пяти сотен на место, причем полсотни из них из них- студенты и выпускники ит и физмат специальностей трех вузов, и еще две сотни- тыжепрограммисты после колледжей.
>>2386560 Из минусов наверное только то, что если попадутся те кто не знает мифологию начнут странные вещи творить. В кластер Хель закинут Тора, а Бальдр окажется почтовым сервисом.
>>2386549 Каких ещё плагинов? Nuget-пакеты - это библиотеки, а не плагины. Типа как в мавене(градле) подключаем зависимости.
Это в VS Code нужно ставить плагины для каждого языка. Но ставятся они в один клик и полностью бесплатны. Так что даже этот полуредактор/полуИДЕ превосходит идею.
Сап аноны. Пользуясь случаем хотел спросить у эекспертов по поводу Java: Я уже заканчиваю изучение основ, вроде типов данных, If-else, ООП, циклов и т.д. и так понимаю, что дальше буду изучать Java Core и фреймворки. Так вот вопрос: успею ли я до сентября если идти ударными темпами начать программировать на уровне, достаточным для трудоустройства или хотя бы заработка каких-то денег? И второй вопрос: когда я начинал изучать Java, то хотел заниматься мобильной разработкой, но сейчас я похоже изучаю Java в целом. На каком этапе у меня появится выбор направления моей учебы? Не получится так, что я разобрался с Java, а что бы заняться мобильной разработкой, нужно будет потом переучиваться заново?
>>2388020 > Так вот вопрос: успею ли я до сентября если идти ударными темпами начать программировать на уровне, достаточным для трудоустройства или хотя бы заработка каких-то денег? Если круды лепить, то не успеешь. Про мобилки не знаю > И второй вопрос: когда я начинал изучать Java, то хотел заниматься мобильной разработкой, но сейчас я похоже изучаю Java в целом. На каком этапе у меня появится выбор направления моей учебы? После изучения кора как раз и идёт разделение. В беке используются одни фреймворки и принципы. А что там в Андроиде - вообще без понятия
>>2388035 Большое спасибо за ответ анон. Мне кабзда походу. В сентябре уже без работы буду т.к. сокращение, а программированию не успеваю нихуя выучить. Пока что ток в ебанных курсах по программированию проебал 50к в нано/секунду и нихуя не получил от них, даже каких-либо знаний. Теперь приходится все самому по открытым источникам изучать. Дизморалит еще то, что смотрю какие программы люди делают и не понимаю как такие программы может делать человек. Типа настолько ебические возможности у программ, что кажется, что её не человек делал нахуй.
>>2388020 Ударными темпами - сгоришь раньше. Сергей Немчинский рекомендует учиться от 2-4 часа 2-3 раза в неделю. Главное, чтобы это было регулярно и выработалась привычка так делать.
>>2388044 Нужно просто перестать беспокоится о проблемах, пусть проблемы беспокоятся о себе сами. А такие программы может делать каждый, ведь каждый может стать просветленным, стать сатчитананда.
>>2386982 >>плагины для каждого языка. Но ставятся они в один клик изучал как то питухон. Чтоб нормально работать поставь плагин на то, поставь на это. Постаил pycharm - а там все из коробки есть и ничего докачивать/донастраивать не нужно. Да и в идее плагин на питон тоже не требует докачивать что то еще. >>превосходит идею. в нем гит хороший, в остальномон хуже идеи.
>>2388081 >>нужны петы Когда их писать то? Времени мало, голова забита рабочими задачами. Я скорее в выходной накидаю как какую то таску решить, чем начну с нуля свой пет разворачивать. Я ж уже поражен корпоративизмом и не смогу написать пет в не интерпрайзном стиле. А когда думаю что вот тут надо щас микросервисы сделать, кафку ебануть, хибернейт навернуть, тестконтейнеры обязательно, секьюрити через жвт как минимум - то - понимаю что работы тут дохуя и пошло оно все нахуй. Пет конечно хочется, но накладные расходы моей шизы на "правильном" коде и архитектуре слишком велики.
>>2388354 Точно. Но тебя я менторить не буду, потому что ты долбаеб какой то и хуй знает что получится у тебя. А я всегда даю гарантии и за просто так деньги не беру.
Ты объект класса Человек. К тебе подходит чел на улице и говорит: ты.получитьГлаза.установитьЦвет(говно); Теперь ты говноглазый. Узнали? Согласны? Умный объект? Ладно, идём дальше. Теперь ты иммутабельный человек. Но в тебя инжектнули мутабельные глаза, которые написал Вася, которому похуй на ООП. К тебе подходит чел на улице и говорит ты.получитьГлаза.установитьЗрение(Зрение.хуевое()); Теперь у тебя хуевое зрение, хотя странно, вроде ты иммутабельный господин. Узнали? Согласны?
>>2388954 >В реальности объекты изменяются Композиция - да. Стейт - очень редко. Что у тебя часто меняется? Прическа? Обои в халупе? Ну раз в 5 лет. Может машину красишь каждый день? Это если мы про Объекты, а не про рандомные структуры данных, приходящие по сети, которые почему-то кто-то называет объектами.
>>2388805 > запихнуть этот лист в лист листов с помощью стрима Я в одно время столько говнокода на этих стримах написал с подобными фокусами, что когда пришлось фиксить баги, я сам кое-как в этом разобрался. Теперь юзаю стримы только для простых однострочников, во всех остальных случаях пишу нормальные понятные циклы, и остальным советую. Фокусы со стримами выглядят красиво и элегантно, пока не приходится их поддерживать, и уж тем более разбираться в чужом таком коде.
Ваша делает зп x10, но вы никогда не найдёте тян. ИЛИ Ваша зп делает x0,3, но вы получаете лучшую тян, о которой только мечтали. Одно условие - потерянные 0,7 зп вернуть не может.
>>2387619 Не знаю что там за методика, но просто идёшь на metanit, учишь java se, и просто читаешь про коллекции и стримы, потом идёшь на ютуб ищешь плейлист alishev по spring, после того как заканчиваешь, подтягиваешь ещё коллекции и стримы и ищешь статейки по boot(но это желательно сразу прочитать когда будешь работать с проектами alisheva, ибо он там советует накатить томкат, а с boot этого делать не нужно будет), так вот читаешь про boot, jpa, mvc, security, hibernate, на каком ни будь хабре есть статьи с расписанным кодом, и ты уже по сути сможешь лепить рест апи с крудами. Сам так же делал, сейчас вот дискорд бота натягиваю на спринг и хочу кое какие функции через браузер реализовать. По поводу выгорания согласен с аноном выше, наверное ебашить 24\7 не реально, выгорание быстро приходит. Например я ща на такой стадии, я знаю что хочу сделать, и знаю что мне это будет интересно, в голове примерно уже понимаю как это будет работать и как сделать, и даже есть наброски уже, но блять вот тупа лень делать, так что сколько то ещё подожду и за дело.
>>2389232 Ты видео смотрел вообще? Там чел пытается хеллоу ворлд написать, но у него не получается, потому что командная строка ошибку выдаёт. Эккеля он не осилил, поэтому читает Файна для бабушек и дедушек, но тоже мало что понимает. Надеется, что со временем придёт понимание.
>>2389011 В итоге наговнокодил так. Читаю строку из файла и с помощью стрима запихиваю в лист с разделителем пробелом. В цикле беру сублисты и запихиваю в лист листов.
не пойму, в чем смысл инкапсуляции. вот поле, его нельзя менять извне, но вот метод, им можно менять это поле. что меняет в сути этот транзитивный посредник?
>>2389256 Не, видео я не смотрел, я пытался, но речь в которой 1 предложение произносится 2 минуты я не осилил. Просто поделился с вкатунами годным материалом.
>>2389232 Я читал метанит и лекции потом по корусмотрел хорошие, не хватило. Мне пришлось сотню задач на степиках прорешать и прочесть двухтомник Хорстмана, ковыряясь в каждом сурсе из книги, чтобы себя более-менее уверенно в коре почувствовать и перейти к фреймворкам.
сап аноны. хочу вкатиться в бэк. Уже запилил пет веб проджект без фреймворков. Терь дальше вопрос: как учить спринг хибер и всю эту помойку? Тип откуда начать(вроде спринг бут выше спринга, а сам спринг из нескольких частей состоит, а еще ORM всякие есть)? И еще, страдаю насчет паттернов, не пойму когда что нужно применять(например, когда фабричный ебашить), почти полностью не понял депенденси инжект инверс, это со временем придет или случай безнадежный? А как вообще как часто в собесах паттерны,солиды,клин коды спрашивают?
>>2389906 > Уже запилил пет веб проджект без фреймворков Это как? На сокетах? На сервлетах? На com.sun.net.httpserver.HttpServer? > как учить спринг хибер и всю эту помойку? Начни со Spring web / Spring MVC, научись писать рест-контроллеры и возвращать json-ы. Можешь ещё научиться юзать обычные контроллеры с шаблонизаторами, но скорее всего не пригодится. Дальше копай Spring JDBC, Spring Data и хибернейт. Для простоты запуска разберись с Boot, но можешь посмотреть и традиционный спринг без бута, который конфигурируется вручную, пакуается в war-ники и деплоится на сервер приложений. Ну и тесты научись писать. > страдаю насчет паттернов, не пойму когда что нужно применять Когда чувствуешь, что через них задача решается лучше. Паттерны не всегда нужны, большинство задач решается без них. > депенденси инжект Посмотри, как в спринге одни сервисы связываются с другими. Один сервис не создаёт объекты других сервисов, вместо этого он прописывает в своём конструкторе этот сервис как параметр, спринг этот сервис ему подсовывает сам без твоего участия. Это и есть инжект. > депенденси инверс Это просто концепция, как проектировать архитектуру программы, что сущности, которые ты пишешь, не должны зависеть от деталей реализации более низкоуровневых сущностей. Примерно как при написании веб-приложения ты не задумываешься, что там происходит в кишкакх компьютера на уровне регистров и операционной системы, так и здесь. Ничего тайного тут нет, как и во всём SOLID, такой подход представляется наиболее логичным и здравым. Не путать с инжектом, названия похожи, но суть совершенно другая. > А как вообще как часто в собесах паттерны,солиды,клин коды спрашивают? Настолько часто, что приходится в этом разбираться. Но учить там немного.
>>2389935 Я ТВОЮ МАТЬ СУКА НАХУЙ ПОСЫЛАЛ УРОДЛИВОЕ ТЫ ГОВНО БЛЯДЬ СУКА ПЕТУХОНЫШЬ ЕБАНЫЙ ТЫ НЕ ОХУЕЛ ЛИ НУФАГАМ БЛЯДЬ В ГОЛОВУ СУКА ГОВНО ЗАКЛАДЫВАТЬ УРОД БЛЯДЬ БУГАЕНКО ЭТО ЛУЧШИЙ АВТОР БЛЯДЬ ДЛЯ ВКАТЫШЕЙ СУКА УРОД ЕБЛИВЫЙ БЛЯДЬ ЧУРКА ТУПАЯ ХУЕСОС ЕБАНЫЙ МАЛОЛЕТНИЙ ПИЗДОЛИЗ КУКОЛД БЛЯДЬ
Я умный объект Заказ дилдаков с доставкой в Красноярске. Я умею разговаривать на SQL и XML. А вчера я даже прошел собес в сбер! В интернете никто не узнает что ты объект.
>>2391363 Вчера перевел свой маленький микросервис с 11 на 17. Что мне надо там использовать, чтобы ревьювер не знал синтаксиса? Рекорды? Многострочки - фигня. Паттерн-матчинг и свитчи не нужны почти никогда. Реально ораклы 6 версий тупо хуй пинали.
Был подписан на Бугаенко 5 лет, активно участвовал в ряде его инициатив, много общался в чатах по Elegant Objects. Перепробовал EO вдоль и поперек, дополнял и корректировал, выстраивал егоровские идеи в систему, вывел свой авторский подход к проектированию джава-объектов, и применяю его там, где работаю (никто не жалуется, кстати).
К сожалению, наши дороги разошлись. Недавно дропнул все что связывало меня с сообществом Егора и ушел.
>>2391377 >>Что мне надо там использовать, чтобы ревьювер не знал синтаксиса? ебани лучше там вебфлакс, в самой джаве ничего радикально нового не появлялось.
Я подписывался на дикие, смелые, невообразимые ООП-эксперименты, от которых джавистов бомбит, а не на унылое полит-срачево с либерахами. С момента эпик-срача на backendsecret политики у него становилось больше, а объектов - меньше. Вместе с уходом объектов начало распадаться и его сообщество: в 2016м оно было англоговорящее, интернациональное и там было как минимум интересно. Щас не осталось ничего кроме "созидания" (которое суть филиал /po с ватой и коммуняками). Ну а с началом СВО я потерял всякую мотивацию оставаться там. Какой смысл? ЕО как брэнд - уничтожен вместе с его автором.
Обьясните пожалуйста, для чего нужны методы toURI и toURL ? Вот например, что здесь происходит ? File file = new File("C:/Users/jjjj/AppData/Roaming/.minecraft/"); file.toURI().toURL();
>>2391665 Учить жабу - это как смотреть сериал на 500 серий. Можешь месяц не смотреть, и потом всё равно всё понятно. Я читал книжку гослинга по жабе 1, и ничего, просто отдельно прочитал про дженерики и стримы.
Петухонщики - народ-гной, народ-мразь, народ-пидор, народ-червь, хуже них уже нет. Сейчас я возможно задену за живое и ты заплачешь, но ни у одного из петухон-треда нет работы, петухонщики живут на мамкины деньги, успокаивая себя в интернетах тем, что они крутые погромисты.
Зато кукарекают петухонщики больше всех. Они больше всех рассказывают в зарплато-тредах о своих маня миллионах, ведя себя по блядски и выёбываясь перед не-погромистами, явно привлекая к себе тонны негатива. И ладно бы ненавидели только их (потому что реально есть, за что) - нет, из-за них с ненавистью сталкиваются вообще все программисты, даже джависты, на которых в целом держится весь IT-бизнес, которым пользуется каждый из нас (петухонщикам приготовиться к слёзкам: на их петухоне не держится вообще ничего, кроме самых гнойных отраслей IT - нейроночек и спам-ботов для ВК (да и даже любители нейроночек недовольны тем, что им приходится ассоциировать себя с таким гноем, как петухонщиками, остаются только спамеры в ВК - вот это весь петухон)).
Петухон, в целом, сам по себе ничего плохого не представляет, но вот комьюнити его - сплошной гнойник. Простота вката привлекает скам общества - мелкобукв, европрокладок, мамкиных нитаких как все, ЛГБТ/фем мразей и подобных. Неудивительно, что ко всем вышеперечисленным группам населения, даже за пределами петухона люди относятся с нескрываемой ненавистью.
Очень грустно, что из-за такого большого гнойника, но небольшой части программистов приходится страдать всем.
>>2391594 >Вот например, что здесь происходит ? Хуета какая-то, потому что результат file.toURI().toURL() игнорируется.
>Обьясните пожалуйста, для чего нужны методы toURI и toURL ? Во первых Ъ Во вторых чтобы из канонического пути C:\Users\vkatun\AppData\Roaming\.minecraft\ получить URI: file:///C:/Users/vkatun/AppData/Roaming/.minecraft/
>>2391920 У нас 20 нормальных микросервисов. И вот созрел кейс, чтобы один реактивный замутить. И то там все под вопросом, как и с носикулями. Может и выбросим через месяц.
>>2392744 То, что в языке есть продвинутые возможности многопоточки, её делает только сложнее. Можно, конечно, хуйнуть new Thread(), но там подводные и с ресурсами, и с эксепшенами, и синхронизацией. Для большинства задач хватит ExecutorService, но иногда этого не достаточно, и начинается ебля.
У меня есть фрейм, в нем есть кнопка. Я хочу что бы при нажатии на эту кнопку открывался другой фрейм, а первый - закрылся. Но когда я нажимаю на кнопку, второй фрейм создается пустой (без компонентов). Хотя, когда я вызываю метод который создает второй фрейм в методе main, он открывается с компонентами :/ В чем прикол ? Почему не отображаются компоненты ? Подскажите пожалуйста.
>>2393185 >Я про java, я написал рест контроллер, и общаюсь с фронтом, например серелезуя десерелизуя джейсон, зачем мне брокеры? Тебе в этой ситуации незачем. Брокеры сообщений для асинхронного взаимодействия, чтобы выполнять посреднеческие функции между отправителем и получателем сообщений.
>>2393169 Это такой аналог мессенджера для серверов и сервисов. Допустим, есть два независимых сервиса (нет, я не про микросервисы), с каждым работают свои юзеры, а сервисам надо периодически отправлять друг другу какие-то данные. Одна сторона может запилить по своему API для взаимодействия, а другая сторона должна знать адрес первой стороны, дёргать эндпоинты, а если сервис окажется недоступен, делать некую долбилку, которая с какой-то периодичностью будет пытаться отправлять данные, пока тот снова не окажется доступен. В итоге есть много проблем: адреса API могут меняться, оба сервиса могут быть недоступны, API обычно в виде синхронного реста (хотя ответ не всегда нужен), проблемы с аутентификацией, а если таких сервисов много, очень долго и сложно делать по планировщику и обработчику для каждого сервиса. А можно просто договориться, что все будут подключаться к одному конкретному брокеру сообщений, который обо всём этом позаботится сам. Из жизни таких примеров не бывает, пользователи работают синхронно с каким-то одним сайтом, и подобных проблем у них нет, вся магия происходит за серверах. Зато такое можно встретить в любой организации, где есть несколько продуктов, которым надо синхронизировать данные друг с другом.
Без бесконечного дроча хуйни с 0 эффективностью на практике, не процедурщина, не кал с даунскими фреймворками, а именно высококлассный легкочитаемый код, который еще и быстро пишется. В такое очень сложно вкатится.
Анончики, есть один монолит, который поднимается по 20 минут. И есть один микросервис, который отправляет некоторые данные в этот монолит, после чего приходит респонс. Как мне написать интеграционный тест в микросервисе с проверкой о том, что респонс пришел действительно нужный?
Поднимать монолит для тестирования микросервиса никак не хочется. В какую сторону гуглить хотя бы? Поиск по запросу spring boot integration test не выдал чего-то полезного, везде внешний сервис мокается.
>>2393196 Прямо сейчас разбираюсь с кафкой. Кейс: В один микросервис сохраняют данные. И нам надо часть этих данных сразу реплицировать в несколько сервисов, в том числе и мой. Ну вот тот сервис публикует данные через продюсер в топик в кафка-брокер. Я на своем сервисе через консьюмер читаю эти данные, фильтрую из топика то что мне нужно, коммичу в брокер, что я прочитал что мне нужно, а что ненужно отфильтровал. Я и другие потребители получили данные, тот кто публиковал вообще не знает кто потребители и не заморачивался. Как в раббите и других это сделано не знаю, но синхронно по ресту это была бы боль.
Почему нахваливают двухтомник Хорстманна? Уже второй раз пытаюсь её почитать и всё равно сталкиваюсь с тем, что он пишет не понятно. К примеру, пытался понять лямбды по Хорстманну и голову сломал что к чему. Взял книгу Урмы, которая вроде как для более продвинутых, сразу понял всё.
>>2393757 Я его хвалю за набор примеров-сорцов. Единственное что мне не нравится в его примерах, это то что он многопоточку объяснял через свинг. Мне было лень разбираться в иерархии свинговых классов. Но с другой стороны рисовка гуя это хорошая иллюстрация возможностей многопоточки для начинающих. Урму не читал. Может кстати почитаю, если соберусь снова собеситься на другую работу или если назначат экзамен для повышения грейда. Хорошее содержание. Но не для новичков.
>>2393933 Основной синтаксис я выучил по бесплатному гайду на одном известном сайте, все более высокое понятно интуитивно. Если не понятно - гуглю, че это такое.
>>2393936 1. Метод, возвращающий ссылку, помечен как @Nullable 2. Десереализуешь данные, где форматом предусмотрена необязательность каких-то полей. 3. Ещё по какому-то контракту может возвращаться null, например, указано в документации. 4. Натыкаешься на код другого разраба и знаешь, что он любит возвращать нуллы.
>>2393947 Дегенерат блядь, под нулл подстраиваться не надо, с ним надо бороться блядь. Плодя проверки на нулл, ты плодишь скрытые связи. Гораздо эффективнее вломить пизды разработчику, написавший нуллоговно или если такой уощпожеоатии нет написать обёртку для его говнокласса.
>>2393948 Ну, надежность писания кода на машинном языке еще больше временем подтверждена. Давай теперь писать на нулях и единицах, хули, проверено временем!
>>2393953 Не подменивай понятия. От машинного кода давно отказались, а процедурщину активно используют и по сей день, что означает неэффективность машинного кода для промышленной разработки и эффективность процедурщины.
>>2393979 Что непонятного? Если ты только вкатываешься, то про нуллы не беспокойся, ибо свои пет-проекты ты будешь писать в одиночку. Понимание потом придёт, тем более когда устроишься на работу и словишь пару багов про NPE и увидишь закономерность.
1. Просто притворись что в джаве нулов нет. Примерно как в СССР секса. Вот прям вообще нет такого литерала - null. Все референсы - не нулл, по определению. Мы оба знаем что это не правда, но все же.
2. С мыслью из п.1 выживай как хошь но нулов в коде проекта не делай никогда и ни при каких условиях. Юзай опшенал если нужно, но не нулл. Заточи статик-анализаторы если придется, чтоб другим тоже было не повадно.
3. Так как в коде проекта нулов не будет исходя из п. 2, на нуллы останется проверить только те места, где код проекта вызывает внешний код библиотек, либо где идет прием-передача данных с нулями по транспорту/из базы. При этом даже если ты и прощелкаешь какую нить проверку, вероятность того что тебе прилетит какой нить нетривиальный NPE стремительно сокращается. А если код еще и юнит тестами покрыт, нули вообще перестанут быть проблемой.
>>2394122 Вы там совсем охуели что ли? Это же блять совковая фраза с плаката! Ебучие чубатые свиньи блядь, пытаются в перефорс на благо барина, потешно.
>>2393941 В книге вся инфа уже собрана и изложена в едином стиле. Какой смысл сидеть и тратить время на поиск инфы, когда можно просто перевернуть страничку?
>>2394106 >>Заточи статик-анализаторы если придется, чтоб другим тоже было не повадно. Лид на такое предложение скажет "не, хуйня". Такого твой план не предусматривает? >>где идет прием-передача данных с нулями по транспорту Сторонний сервис на твой запрос по ресту присылает не все поля или часть из них - нул. Валидация не проходит и срет ошибками, тебе говорят что твой говнокод не работает, срочно чини.
>>2393950 Требую советов как бороться Оборачивать все в опшионал? Код совсем в говно превращается Ексепшены? То же самое Нулы такое же говно офк И что делать
> Лид на такое предложение скажет "не, хуйня". Такого твой план не предусматривает?
Обрати внимание --- выше я описываю не какой то там план, и не пропозал. Выше я описываю свой опыт. Лиды на моей памяти никогда не возбухали --- какая им разница, если я могу по факту обосновать и проблем никому не создаю. Буду я еще кому доказывать чего то там...
> Сторонний сервис присылает...
Если нулов там по контракту быть не должно, пусть валидация на это и валидирует. Что вполне укладывается в правило 3 --- проверять на нулы там, где тебе по транспорту приходят неподконтрольные твоему сервису данные. В чем противоречие?
>>2394533 > Если нулов там по контракту быть не должно, пусть валидация на это и валидирует. Что вполне укладывается в правило 3 А если должны быть, то не укладывается.
> Оборачивать все в опшионал? Код совсем в говно превращается
Почему? Как по мне --- это вполне себе выход. Нужда в нуллабл референсе, кмк, встречается в разы реже, чем не-нуллабл, так что не так уж и много их будет.
> Ексепшены? То же самое
Эксепшены вообще не замена. Контрол флоу через эксепшены --- моветон, а он неизбежно появится если ими пытаться зареплейсить нулы.
> Нулы такое же говно.
Тут следует разобраться, почему люди вообще нулы ненавидят. Что характерно, нулы и его аналоги обычно ненавидят в языках типа джавы, или джаваскрипта, но при этом в хаскеле, например, есть пустой тип '()', который какбэ тоже нул, но к нему наоборот ни у кого претензий нет. Казалось бы, почему?
Причина, кмк, кроется в том, что присутствие нулей в джаве превращает ее систему типов в дырявое решето. Потому что с ними получается, что переменную, поле или аттрибут референсного типа, способный принимать нулевое значение, ты объявить можешь (они все так умеют, лол), а референс, запрещающий нулевое значение --- нет. Что ведет к тому, что невозможно потребителям этих референсов обеспечить на уровне системы типов гарантию того, что значение по референсу будет присутствовать --- если они сами не проверят на нулл, рискуют свалиться в NPE либо пустить этот тромб вверх по стеку.
Хаскелевый '()' этой проблемы лишен --- он вполне конкретного типа.
>>2394564 Опшионал ничем сука не лучше нулла блядь, ничем. Если какой то метод что то возвращает, он возвращать должен нормальный, живой объект, а не кота в мешке. А если не может вернуть - кричать "блять, я не могу!" и кидать исключение.
>>2394619 > А если не может вернуть - кричать "блять, я не могу!" и кидать исключение. Очень хуёвый подход. Логикой может быть предусмотрено, что метод не может чего-то вернуть, и это будет нормальная ситуация, а не исключительная, и обрабатывать её надо соответствующе, а не ловлей эксепшенов.
>>2394623 Не понял сначала твой высер. Нулл - это ничего и точка, сука. Он не может что-то значить, его не надо никак обрабатывать. Если надо - придумываешь замену для нулла, которая будет значить что-то конкретное.
И кто тебе мешает в кетч блоке пихать свою говнологику, если уж так приспичило?
Мнение Егорки: 1. Вместо возврата нулл надо возвращать пустую коллекцию, Optional юзать нельзя никогда, потому что недостаточно ООП-шно. 2. Принимать нулл в качестве аргумента нельзя, надо принимать "нулевой объект", который является нормальным объектом, но при это ведёт себя нейтрально, как, например, 0 нейтрален для операции сложения.
>>2394649 Если метод, который возвращает String вернет тебе null, и ты вызовешь у этого объекта метод length, то вылетит NPE. Если метод возвращает Optional, то такой проблемы нет, потому что никто у него get сразу не вызывает. Используется либо orElse, либо map.
Опшенал лучше нулля тем, что опшенал --- тип. Ты не можешь присвоить опшенал переменной не-опшенал типа, равно как и наоборот. В отличие от нулла, который ты можешь присвоить любой переменной референс-типа. Это ключевая, основоопределяющая разница.
Орать и бряцать понятием "живой объект" на меня бесполезно, впечатление на меня это не произведет. Я знаю откуда это понятие --- "живой объект", в эти ваши "живые" и нулл-объекты я упарывался еще в 2016м, просек фишку сполна, и не тебе, шавка залетная, поучать меня --- какой объект живой, а какой --- мертвый.
Правда в том, что охуительные истории про живые объекты хорошо выходят только у Егора. У свидетелей Егора обычно харизмы не хватает, равно как и мозгов с терпением чтобы все сказанное им обдумать и переварить (как кстати еще сам Егор завещал делать в своих Bloghacks 256) --- они и носятся по интернету как мамкины евангелисты с библией, думают что если ткнуть пальцем в конструкцию и погромче рявкнуть "зло", как Егор делал на докладах, все сразу поверят, акстятся и перестанут пользоваться, а евангелистик получит оффер в ФААНГ где перепишет гугль на живые объекты. Pathetic.
У меня есть куча runnable, я хочу их сувать одним методом pool.add(runnable) и чтобы они умным образом группировались по 1000 раннейблов на один тред. Как это реализовать стандартными средствами жабы без велосипедогенерации?
Я правильно понимаю, что суть Спринга в том, чтобы пилить одни синглтоны и просто подставлять с @Autowired там, где требуется ну и ставить кучу аннотаций? Зачем вообще тогда ООП, если весь код строится на синглтонах? Кстати, такой еще вопрос: нельзя инжектить бины с другим скоупом? То есть, у нас есть какой-то синглтон, например, а мы хотим заинжектить некий бин со скоупом Session.
>>2394730 Обёртка над каким-то значением, причём значения может не быть. Например, не известно заранее, может ли метод вернуть нужный тебе объект, и поэтому он в зависимости от своей логики возвращает тебе Optional с объектом или пустой Optional. Без Optional ты бы просто возвращал null вместо объекта, а Optional придумали те, кто считает, что использование null надо свести к минимуму. У Optional есть несколько полезных фич, например, можно через map() применить к содержащемуся в нём значению какую-нибудь функцию, а если не содержится, то ничего не произойдёт. Всё можно сделать без Optional, просто он явно подчёркивает, что каких-то значений может не быть, и это нормально.
>>2394734 Это суть Spring IoC, но в спринге есть дохуя чего ещё. Инжектить можно, то есть нюансы со всякими @Lookup. Большинство не ебёт себе мозг и везде юзает синглтон.
>>2394382 >>Требую советов как бороться >>Оборачивать все в опшионал? 1. репозитории возвращают опшинал для одного объекта (для нескольких очевидно пустой лист) 2. контролеры все валидируют все параметры/поля дто через @NotNull и шлют нулы нахуй, либо делай дефолтные значения если там нулы быть могут (0, "" , List.of() и тп).
>>2394737 >Большинство не ебёт себе мозг и везде юзает синглтон. А если, например, это корзина в интернет-магазине? Допустим, мне надо как-то заинжектить корзину в контроллер.
>>2394428 У меня лид через жавараш вкатывался (правда эт давно было, тогда он вроде бесплатнывм был). Сам я им не пользовался - прошел на курсере курс от Duke University(тоже бесплатно) а потом сразу начал петы по гайдам пилить минуя книги и прочую хуйню. Потом просто доучил джаву перед вкатом. По мне так что жавараш, что курсера для совсем нулевого в программировании - норм. Хотя платить конечно за это стремно, а в нынешней ситуации еще и за терроризм могут привлечь, если выяснит что жаварашна азов тоже скидывается.
>>2394749 >а в нынешней ситуации еще и за терроризм могут привлечь, если выяснит что жаварашна азов тоже скидывается. По моему тут больше самому будет противно, что ты чубатых мразей спонсируешь, чем опасность набутылиться.
>>2394767 Ты долбоёб? Где я про SQL БАЗУ ДАННЫХ говорил? Я говорил про in-memory, она по твоему обязательно должна быть SQL БАЗОЙ ДАННЫХ? Посмотрю я на твою хешмапу, когда она на несколько гигабайт разрастётся и перестанет влезать в ОЗУ.
>>2394619 >>2394625 >>кричать "блять, я не могу!" и кидать исключение. А если я взял ОПа, хочу узнать шлюха ли его мамка и достаю мамку из резозитория, но у ОПа ее нет? Мне в принципе похуй, я могу и по дефолту значение проставить(через опшинал как раз, либо через ==null), а визги "блять, я не могу!" мне нахуй не нужны.
>>2394774 То есть опшинал никаких проблем не решает, а только усугубляет проблему, легализуя ее и давая возможность засрать весь свой код этим. Понятно.
>>2394771 Репозиторий визжит, что мамки нет и ты понимаешь, что ее нет. Иначе может произойти такая ситуация, что мамки нет, но ты работаешь так с опом, как будто мамка у него есть и ловишь глубинные баги.
>>2394650 >>Вместо возврата нулл надо возвращать пустую коллекцию Вызвал объект - пришла коллекция. Спасибо, очень элегантно получилось. Теперь вместо ==null буду писать instanceof >>надо принимать "нулевой объект" getSome (1, "string", new Object(new Fizz(), new Buzz(), new Fuzz(new Fiz(), new Buzz())))))))))
>>2394769 >она по твоему обязательно должна быть SQL БАЗОЙ ДАННЫХ? >in-memory БД Дохуя in-memory NoSQL назовешь? >Посмотрю я на твою хешмапу, когда она на несколько гигабайт разрастётся и перестанет влезать в ОЗУ. А in-memory БД на несколько гигабайт каким образом в память влезет?
>>2394778 Какой инстанц офф? Зачем он тут? Ты совсем дебил блядь? Берёшь и итерируешь эту коллекцию, всё. Если там 0 элементов - ничего не произойдёт. Если дохуя - дохуя чего произойдёт.
>>2394772 Лаконичностью. А еще тем что тебя компилятор заставит делать эту проверку и ты не сможешь что то достать, пока не развернешь опшинал. Забыть проверить нулл гораздо проще.
>>2394777 Не так. Я просто хочу сказать что ОП-хуй, а его мамка - шлюха, но сначала хочу убедиться, что не членодевка, а если данных нет, то по дефолту - шлюха. Но когда начнутся визги что репозиторий что то там не смог мне это вообще все сломает.
>>2394782 >>Какой инстанц офф? Зачем он тут? Вместо объекта типа Egorka мне пришел Collection. >>Берёшь и итерируешь эту коллекцию А если это был не Collection, а Egorka и у него нет итератора?
А если каждый объект заворачивать в коллекцию из одного элемента это тот же самый опшинал только костыльным путем.
>А если каждый объект заворачивать в коллекцию из одного элемента это тот же самый опшинал только костыльным путем. Делать только такие методы, которые даже без нуллов возвращали бы коллекцию.
>>2394794 >>Опшенал можно достать и без этого. Его как минимум придется достать. Может тебе конечно и наплевать на все варнинги он идеи, но все же это лучше чем просто вызывать сходу поля объекта не подозревая что там хуйня.
>>2394803 Пиздец, я ж тебе дебилу все объяснил, а ты этого понять не можешь, еще и на меня агришься. >>Делать только такие методы, которые даже без нуллов возвращали бы коллекцию. Напиши метод который вернет сущность по ИД.
>>2394816 >>2394815 >>2394814 >>2394813 >>2394812 >>2394811 >>2394810 >>2394807 Вы все срётесь на ровном месте. Эксепшен, опшионал, коллекция, нулл - всё это абсолютно одно и то же и фактически разницы не имеет. У вас всех код в переводе на натуральный язык выглядит так: Найди хуй, а если не нашёл сделай X. Как это реализовано - через опшионал, коллекцию, эксепшен - не важно.
Правильное решение - не допускать существования двояких значений в программе. Например, если мы обращаемся к конкретному значению у объекта, то оно в любом случае должно возвращать валидное значение, которое будет работать правильно. Для этого надо правильно создавать эти объекты.
Если же возвращать валидные объекты всегда ну никак не возможно, можно воспользоваться любым из этих вариантов. Разницы между ними нету. Хотя конечно самым элегантным решением (но по сути ничего не меняющим, можно также опшеоналом и даже ненавистным нуллом) будет выброска исключения. Выброска исключения - самый семантически логичный вариант.
>>2394821 >Если же возвращать валидные объекты всегда ну никак не возможно Пример - репозиторий и получение данных от пользователя. Например, пользователь вводит условную команду "найти другого пользователя по айди egorka". Исключение стоит делать непроверяемым, а данные проверять на входе. Получил исключение после обращения к репозиторию - данные, значит, не проверил и это ошибка программиста.
>>2394836 Если тебе не похуй на проёб корзины, которая в обычно и так проёбывается каждые 5 минут из за динамического айпи у пользователей, то можешь и сохранять в БД. Всё зависит от таски.
Вот вы шутили про 6 вложенных циклов, а мне реально пришлось писать ЦИКЛ ВЛОЖЕНИЯ ЦИКЛОВ. То есть на каждый элемент этого цикла вложенность циклов увеличивается. Алсо, попутно задам вопрос, как такое реализовать, сам чёто не допираю.
Аноны, что я делаю не так? Нужно в JAVA строке узнать, содержит ли прописную букву (верхний регистр) Pattern pattern = Pattern.compile("[A-Z]"); String lineItems = "QWasD"; Matcher matcher = pattern.matcher(lineItems); boolean found = matcher.matches(); Он все равно выводит false, хотя он же должен проходить. Почему?
Контрол-флоу посредством эксепшенов --- плохая идея. Эксепшен это не просто какой то там особый return, легализованный goto или if. Выброс эксепшена --- это еще и дорогостоящий сбор стек-трейса. Такое оправдано разве что в обработчиках ошибок с целью собрать побольше инфы для девелопера, или смаппить ошибку на HTTP респонз с кодом 500 как это делают в сервисах, но никак не универсальная замена чекам на нулл.
Ну а если голыми опшеналами некрасиво, и надо языковую конструкцию, то это тебе в языки, где поддерживается do-нотация с монадами (scala, haskell, kotlin c arrowkt каким нить).
В public static List<DiscreteLocation> combinations(int... limits) передаются лимиты по каждому измерению. Сколько передали лимитов - столько и измерений. Дальше там создаем пустой масив values для значений и текущую координату currentDimension = 0 и список куда складывать DiscreteLocation's. И вызываем: private static void combinations(int[] limits, int[] values, int currentDimension, List<DiscreteLocation> results) там проверяем это последнее измерение или нет и начинаем цикл от 0 до лимита для текущей координаты for (int i = 0; i < limits[currentDimension]; i++) в цикле присваиваем текущее значение счетчика в массив значений values[currentDimension] дальше 2 варианта: если это последняя координата, то создаем DiscreteLocation и засовываем его в результат. Если нет - то рекурсивно вызываем для следующего измерения.
Предположим у тебя 2 измерения, ты начинаешь в нулевом с координаты 0, дальше вызываешь для измерения 1. Там начинает с координаты 0 и поскольку это последнее измерение то создаешь DiscreteLocation(0, 0) и переходишь в цикле дальше. Создаешь DiscreteLocation(0, 1) и так до лимита для измерения 1. Как закончишь выходишь из метода, в координату 0. Там переходишь к значению 1 и снова вызываешь для измерения 1. Там все повторяется но первое значение уже 1 DiscreteLocation(1, 0), DiscreteLocation(1, 1) и т.д.
Я изучаю язык высокого уровня Ява. Скажите пожалуйста в энтерпрайз приложениях используют сейчас Хибернейт? И если да то в каком виде? Как им управляют?
Хех. Все угадал. с точностью до наоборот. Стейт --- меняется, композиция -- нет. Продолжая твою аналогию --- третья рука у тебя не появится никогда: как скомпозировали тебе гены, так и будешь жить. А вот вес набрать-сбросить, зрение посадить-пофиксить, обрасти-подстричься --- как нехер делать.
В такой "инкапсуляции" --- действительно смысла нет. Это не столько про инкапсуляцию, сколько про стандарт JavaBeans, который сложился в джаве и по которому фреймворки умеют работать со структурками данных --- тупо конвеншен. Инкапсуляцией я б это не назвал.
>>2375014 Читай доку и смотри видосы. Также Spring in action 5-ое (вроде), издание. На Pluralsight был в принципе годный "курс" по Спрингу, но если тебе доступ кабан не оплачивает, то и не заморачивайся.
t. кодомакачил на SAP Commerce и теперь хочу открыть форточку и выпрыгнуть.
>>2374144 Раньше было едва ли не корпоративным стандартом и много легаси запилено с прицелом на это. Может, какие-то платформы используют эклипс и заточены под него, а маняплагины на Идею ставить - религия не позволяет. Иногда бывает, что кабанчик жлобится на лицензию от идеи, в одной крупной галере, например, было проще ебашить через Community edition, чем покупать лицензии.
Эклипс это ещё не самый зашквар. Самый пиздец - это когда ты видишь NetBeans в качестве IDE.