Вы видите копию треда, сохраненную 1 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2341627 (OP)
Нюфани всё равно не осилят текст из ссылки в шапке, всё под контролем. Это пассивный троллинг петухонеров.
А чем обусловлена такая популярность питухона? Раньше только шарпосвин после переката наведывался.
Спасибо, что не жопаскрипиеры.
Во первых не такой уж он и популярный, просто петухонщики кукарекают громко и их слышно везде. Ну а то, что есть, достигается благодаря супер лёгкому фкату и всяким скиллбрейнсам, делающим бабло на лохах
Где анон, который репортит тред, если перекат до 2к постов был? Я волнуюсь
Помогите пожалуйста, у кого нибудь есть адекватный перевод этой книги? Да я глупый и не очень свободно пока могу в английский.
Все уже давно сидят на пистоне с тайп хинтами
Напоминаю базу:
Петухонщики - народ-гной, народ-мразь, народ-пидор, народ-червь, хуже них уже нет. Сейчас я возможно задену за живое и ты заплачешь, но ни у одного из петухон-треда нет работы, петухонщики живут на мамкины деньги, успокаивая себя в интернетах тем, что они крутые погромисты.
Зато кукарекают петухонщики больше всех. Они больше всех рассказывают в зарплато-тредах о своих маня миллионах, ведя себя по блядски и выёбываясь перед не-погромистами, явно привлекая к себе тонны негатива. И ладно бы ненавидели только их (потому что реально есть, за что) - нет, из-за них с ненавистью сталкиваются вообще все программисты, даже джависты, на которых в целом держится весь IT-бизнес, которым пользуется каждый из нас (петухонщикам приготовиться к слёзкам: на их петухоне не держится вообще ничего, кроме самых гнойных отраслей IT - нейроночек и спам-ботов для ВК (да и даже любители нейроночек недовольны тем, что им приходится ассоциировать себя с таким гноем, как петухонщиками, остаются только спамеры в ВК - вот это весь петухон)).
Петухон, в целом, сам по себе ничего плохого не представляет, но вот комьюнити его - сплошной гнойник. Простота вката привлекает скам общества - мелкобукв, европрокладок, мамкиных нитаких как все, ЛГБТ/фем мразей и подобных. Неудивительно, что ко всем вышеперечисленным группам населения, даже за пределами петухона люди относятся с нескрываемой ненавистью.
Очень грустно, что из-за такого большого гнойника, но небольшой части программистов приходится страдать всем.
У нас на проекте камель юзается, лол.
Чому молчите?
Для вката буду делать свои круды + cli утилиты, мне хватит вима или вс кода с плагинами? Или идея мастхэв сейчас? Использовать буду спринг, мавен и постгрес
Ты че, пидарас? Я это, естественнно, один хуй скажу, я хотел узнать, мб есть какие то сигналы для хрюш и кабанов, что тебя надо обязательно взять или наоборот, брать не надо.
Есть один сигнал, постарайся того, кто тебя будет собеседовать, пидарасом не называть.
Без разницы, просто идея буквально пишет за тебя код.
До осени еще дожить надо.
Небось 10 лет еще в ревью будет.
Spring reactive, webflux, netty вот это всё. Асинхронная джава с ивент залупами, где пишут в функциональном стиле.
Ивент залупы просто так, одними гоморутинами не уберешь. Они уже прочно засели во всей жабе
https://www.oracle.com/java/technologies/java-se-support-roadmap.html
Постапокалиптическая Java 21 LTS.
В случае если мы будет неоднократно присваивать обьекты этой ссылке ?
Вот пример
А что тебе нужно? Нет подобных правил. В зависимости от ситуации можно использовать всё, что разрешает язык программирования. Если по логике программы тебе нужно объявлять ссылки в начале определения класса и потом где-то их использовать, то ты в итоге так и делаешь.
Хотя с точки зрения ООП должно быть как можно меньше static-полей, и в основном они для констант или каких-то глобальных ресурсов, когда DI не подходит.
Статик поля только для тех случаев, когда нужно сделать что-то магическое, статик = рефлексия. Во всех остальных случаях статик использовать нельзя.
Просто интересно как правильно
Сяб, исправлю...
>Например, хороший способ сделать жесткий синглтон (объект бросает исключение при попытке создать второй раз) - private static boolean isCreated. Или пул объектов.
ебать жирно тролишь
Жирно затроллила твоя мамаша весь мир твоим рождением.
Я еще не вкатился, не разрешаю.
Блять, хуйню сказал, не при попытке создать второй раз, а при попытке запустить этот объект второй раз, в конструкторах кода не должно быть, они только значения полей устанавливать должны. Я собственно для этого и юзал статик в последний раз, хз почему сказал про проверку на создание, никогда так не делал и вам не советую
ООП это настолько паттерн, это такой паттернище, что на его фоне все остальные паттерны - антипаттерны.
айти конечно наебка мирового уровня. полно работ с такой же ЗП где конкуренция минимальна
Пруфов таких работ у тебя конечно же не будет.
Тем временем АйТи все, можно закрывать тред и доску в целом:
Правда вакансий на джуна действительно крайне мало, но я, вроде, видел.
Не поленился взять какашечки из последних пяти вакансий размещенных там:
1. 6-9K USD gross (ищут с опытом 5-10 лет)
2. 319000р/мес гросс (тимлид)
3. от 160 000 до 210 000 на руки (мидл)
4. 250 - 350к на руки (мидл/сеньер)
5. 8000-9000$ (ищут 3-4 года опыта)
Это тупо последние пять, ничего не выбирал даже.
И че вы ноете, самозванцы, рынок переполнен вакансиями с отличными какашечками...
>>на джун
джун создает проекты, делает рефакторринг и код ревью?
>>написано же)
По вакансии мало что понятно - похоже на обычную галеру с десятком проектов разной степенит уебищности. И без удаленки.
Только откуда там планка в 200 сотыги. На случай что реально кто то с 3 годами опыта придет?
>>это фултайм(
>>возможна подработка по вечерам
может там на фултайм не 15к, а все 30к, но один хер это для студентов, им и 15к в сладость.
пчел раньше там таких штук по 5+ в день было, щас по 1-2 и больше сеньорские
Теперь создает и делает)
back.strike(new Cobol());
Тебе сколько раз говорили съебать из этого треда, а ты все не уходишь. Ты слишком сильно палишься.
Нравятся унижения?
Нужно десериализовать json в некий класс, так как известна его структура уже. Значения должны храниться в hashmap.
При десериализации в класс и попытке вывести values, у меня получается такая залупа.
Что я мог сделать не так? Почему количество элементов коллекции показывается нормально, а сами элементы нет?
на сиськи похоже
Мб компоненты коллекции не сериализуемые
Бегом в долбильню. Месяц без мивины. Ещё один проеб - и полетишь утилизироваться на Змеиный.
к вопросу о "откликнулось уже over9000 человек"
Мы и так догадывались, что ты каждый день по 200 откликов шлёшь, даже не рассматривая ответы, но вас разве там не долбят за палево?
Ладно, я не знаю, что делать, помогите.
Как правильно десериализовать json в класс так, чтобы еще все данные хранились в мапе? С меня тонны чего угодно
Все объекты, что суёшь в коллекцию, делай сериализуемыми
>Пруфов таких работ у тебя конечно же не будет.
На HH конечно не будет. Там выкладывают только фейковые айтивакансии с не существующими ЗП. Потом на собесе занижают в раза 2-3 зп от указанной. Нормальные люди устраиваются через отдел кадров.
Больше слушай свиной нахрюк. Рынок сейчас находится на том уровне, что был в 2020 до пандемии, даже по свинячьим графикам.
В Украине всё плохо, например в моем городе до войны было 10-20 вакансий на джуна, а сейчас 1 вакансия :0...
Если ты не рагулевсратый бандеродебил, то переезжай в Россию. Да и в принципе, никто не мешает из копростана работать на российского кабанчика, правда он деньги сможет разве что в крипте перевести
Когда все успокоится, можешь вернуться в свой родной хутор
Бляяять, какой же я дегенерат. Я еще и мидлом назвался, и попросил оплату, как джун ебаный. Пиздец просто, какие же хохлы дегенераты.
Или в РБ, если РФ не ок.
Да какая разница, если не можешь настоять, то сможешь найти в себе силы у другого чела пособеситься и там уже не будет никаких проблем назвать планку +сколькототам от текущей. Потому что ты будешь спокоен, зная, что за меньшее ты менять работу точно не будешь, а если откажут, то спокойно будешь работать дальше как ни в чём не бывало.
Но вакансий же не бесконечность. Ладно было бы не 7к вакансий, а 700к - тогда можно было бы повыебываться, даже пусть кандидатов тоже в 100 раз больше бы было. А так хуитв.
Ты вообще на ровном месте какие-то ограничения придумал. Тебе не нужно 7к вакансий, требе нужен ровно один оффер, чтобы давить на текущего работодателя. Прям из 7к ни одного оффера не найдёшь? Ну значит ты упёрся в потолок, сиди не выёбывайся.
А до этого только плагины под майнкрафт писал?
Весной у херочек как у любых самочек повышается гормональный фон, они начинают просматривать кандидатов чаще.
И шликать.
Какие тебе пруфы, ебик. Все работают вокруг, не айти единым. Они на hh по твоему вакансии ищут?
ну и пояснил бы за плагин для майнкрафта
что у тебя мокросервисная архитектура с микрописьками для асинхронной подгрузки криперов ночью в ебло, кафки, разные очереди сообщений для публикации выстрелов скелетов, спринг буты и все это в крутится в кубернетесах и еще в CI/CD
>что у тебя мокросервисная архитектура с микрописьками для асинхронной подгрузки криперов ночью в ебло, кафки, разные очереди сообщений для публикации выстрелов скелетов, спринг буты и все это в крутится в кубернетесах и еще в CI/CD
Все это не имеет никакого веса, если это не коммерческий опыт в известной компании. А то, что ты в свободное время пытался пукнуть джсоном в кафку - никого не интересует.
То есть если ты работаешь xml конфигуратором в известной компании за 20к, но можешь пукнуть джсоном в кафку я могу напиздеть что я Principal MSA Arhitect?
это крайне спорное утверждения, овер дохуя джавистов которые работают с древними технологиями и никакие кафки и микросервисы в глаза не видели. сейчас это конечно выравнивается, но все равно выбирать будут из тех кто в курсе что происходит
С другой стороны может быть коллекция где недостает одного инта... Тяжело быть вкатутосей...
Ну если у тебя нет ограничений на число, то зачем это тебе? Вот если бы тебя заставили пины четырехзначные перебирать.
Я имею ввиду, если занят весь интовый диапазон и недостает 1 опять же инта, то найти макс, и добавить Макс+1 не выйдет...
Я в принципе сделал почти так, беру максимальное число, и если оно максимум инта то циклом отсчитываю числа вниз, если не максимум то беру его+1
Когда как...
Тупое решение но ты можешь числа отсортировать за O(log n) и вычислить разность соседних максимум за O(n). Где эта разность > 1 - место для вставки числа. Получается O(n)
фильтр блума
а как нам гарантировать что новое число точно новое если мы не переберем всю коллекцию?
С рандомизацией тебе придется много раз перебирать если коллекция очень большая
че ты высрал говножуй
Смотря какая коллекция, если множество HashSet, то проверка наличия/отсутствия за O(1). Если нет, преобразовывать в множество имеет смысл, только если генерируешь много чисел.
бинарный поиск для кого придумали?
Перегони коллекцию в treeset и добавляй потом первый пропуск числа, либо мин - 1, либо макс + 1, чтоб без оверфлоу.
>но все равно выбирать будут из тех кто в курсе что происходит
Сейчас бы нанимать джависта, который книжки читал и свои ололо-пет проекты лепил, вместо того, чтобы нанять уже готового спеца, который имеет КОММЕРЧЕСКИЙ опыт в нужных технологиях.
Щас бы найти готового спеца.
1. Для получения опыта нужна работа
2. Для получения работы нужен опыт
Теперь я понял, почему рынок схлопнулся. Вот поэтому.
Нихуя рынок не схлопнулся. Вкат открыт и будет открыт лет 50 ещё - до создания нейропрограммистов.
Я готов работать за 50к, лишь бы вы, хохлы, сдохли все, мрази, настолько остоебенили своим нахрюком.
Таблетки прими, долбоеб, и под кроватью проверь, а то вдруг и там хохлы спрятались.
Удивительно, что быдло так легко заставить кого-нибудь ненавидеть. Лол, готовы говно сожрать, чтобы смотрящему хохлу противно сделать.
Не на ровном, Тарас, не на ровном.
Лол, старая добрая мантра от ципсо про хохлов под кроватью. Ципсо never changes
Чтобы любого человека заставить ненавидеть типичного жителя западной украины, достаточно их познакомить и дать вместе поработать какое-то время. Особый шик - когда хохол соучредитель мелкобизнеса вместе с нормальными людьми - проходит немного времени и оформляется гарантированный съёб с общими деньгами угадай в чьём исполнении.
А зачем нужна java, когда есть js? Он перекрывает все потребности уже.
Жава мертва и ненужна. А зачем нужен жс, когда есть тс?
Тебя ебёт?
Лол, не один я через это проходил. Только в моем случае соучредитель был комбой из хохла, петухонщика и либесральной европрокладки
Ахах какая нах типизация, ведь можно написать 100500 тестов на каждую функцию))0
Если они найдут спеца с опытом работы в нужных технологиях его наймут. Но вот выбрать нулевого JavaEE обросшего мхом легаси саппорта который нибумбум или теоретика без опыта, это вопрос. У второго есть шансы, во многие компании очень неплохие.
Мои самые успешные собесы были когда я примерно знал какие вопросы мне зададут. Зная что интервьер любит дрочить про устройство хешмапы я выдрочил это лучше него. Возможно из-за этого меня туда не взяли.
Репорт долбаебу
Бля вот именно так и происходит
Нихуя ты не понял, ты мемасов от студентов начитался.
Вообще, в чем прикол игнорить кандидатов на вакансию? Это же чистые убытки кэша, а хрюши и так заняты по 2 минуты в неделю, прочекать мессаджи их заставить легче лёгкого
Мужик, тебя жиробас забайтил. Вангую, что тот хохол с 9000 откликами на все подряд и этот петухонщик - один человек.
>В динамикодрисне иначе невозможно хоть что-то серьёзное создать, кроме как тдд и миллиардом тестов
Я и так пишу по 3-6 тестов на каждый эндпоинт, куда больше то? И это на жабе. И только на апишку. И еще временные тесты иногда пишу, когда разрабатываю репошки и сервисы.
И так на тесты больше времени уходит больше чем на саму разработку.
Куда больше то?
А на жиес и петухоне будешь писать 30-60 тестов.
Двачую, когда работа приносит удовольствие, деньги не так важны.
1114x712, 1:09
На мой проект нашлись инвесторы.
Сегодня в ИРЛ встречались в кафе и обсуждали проект, что будем делать, какие планы, экономика игры, гешефт, все дела. Все остались довольны. На встрече присутствовали 4 человека: двое разработчиков: я и наш художник + эдвайзеры - ребята с именем, которые за процент будут нас продвигать, вести документы, рекламу и маркетинг, сведением нас с фондами. Будем делать плей ту ёрн игру с блокчейном. Один из фондов готов нас профинансировать даже ДО первого знакомства с фондами, чтобы мы не отвлекались, подскакивая на крудошлепскую наемную работу, и занимались только проектом. В общем, мечта моего детства, реализуется на моих глазах, чему я несказанно рад. Держу в курсе.
>Будем делать плей ту ёрн игру с блокчейном
ахах пошел нахуй моментально, ты теперь опущ треда
Красава, анончик. Удачи
Во время обучения в епаме ходил на собесы. За два дня до спецоперации получил оффер. Точнее учился я раньше, а во время епамовского тренинга повторял джавакор к собесам.
Записали на стажировку как раз в начале марта она должна была начаться.
Я все ждал заданий, но их не было. Плюс епам требовал кучу зондов ставить. Недавно прислали сертификат о успешном прохождении тренинга.
Обучение по джавакору у них кстати то еще говно. Записанные леции - кал. Живой лектор с вопросами-ответами не шарит и отвечал на отъебись. И экзамен в виде oca/ocp.
Про записи согласен - такое. Но задачки хороши были, мне зашли. Сколько у тебя времени со дня начала вката прошло? Какие советы дашь чтобы быть адекватным вкатунцом? Я вот хочу тренажёр SQL додрочить, на буте бота тележного написать (на MVC написал круд-залупу с хибером уже, хочу дальше ковырять), да на графы налечь, авось и возьмут на стажировку куда-нибудь... Если она будет.
Иди на собесы на джуно-мидлов уже сейчас. Возьми и прокликай сотню-другую. Стажировка - хуйня без задач.
Пиши еще пет. А лучше пиши тестовые и побольше. Например https://github.com/Raiffeisen-DGTL/cib-interns-test-task Но лучше, если это будут тестовые на работу, причем которые дадут после собесов.
По сикуле хватит чего-то с основными операторами на пару десятков страниц, остальное во время гуглежа для петов. Можно на спринг дата жпа дальше продолжать. Включи логирование сиквеля и читай что тебе хибер генерит. Или если хочешь подрочить сиквел - бери jdbctemplate.
По хиберу будут ебать разве что на собесах.
Графы нахуй никому не нужны(точнее нужны в паре % задач). Или ты про энтити-граф в хибере?
С ботами не работал. Но если апи ботов телеги нужно долго читать - не рекомендую.
Рекомендую дрочить рест и джексон. С ним намного больше еботни чем с базой. Еще рекомендую научиться пользоваться свагером и постманом.
Для баз - ликвибейз/флайвей и докер.
Когда твое "тестовое" на проде наебнулось?
Бля, я и забыл, что хотел >>2355555 → поймать. Почти поймал рандомным сообщением, это был бы вин
>reactive, webflux, netty вот это всё
Фух блядь, как раз подбираюсь к этому.
Теперь с лёгким сердцем буду зубрить на отъебись и по минимуму.
мимо_трейни
Ну так ты в отпуск уже наполовину загоревший поедешь буквально, с одной стороны, меньше надо будет на пляже валяться.
Фенк ю, браза.
Про графами имел ввиду алгоритмы. Книжку недавно видел по алгоритмам на джобе + курс неплохой на степике от CSc по ним, ещё когда только начинал, где то через 2-3 месяца после начала вката, где-то треть или половину прошел, дальше уже и навыков стало не хватать(не знал некоторые структуры данных), да и хотелось не просто дрочением заниматься, а то как обратно в вуз вернулся.
Никакими - зрение зрелому человеку проебать возможно только двумя способами:
1. Дождаться пока старость помноженная на генетику возьмёт своё
2. Ударить по глазу молотком
Специфика уровня "я вот смотрю в экран, а значит я буду слепнуть" - миф.
Я заметил у себя в последнее время серьезное ухудшение зрения, никогда такого не было, прям резко, даже буквы на телефоне на расстоянии 30 см чутка размываются
Pomy
Посоветовать сходить к врачу за очками надо или сам сходишь?)
Насчёт упражнений и прочего такого нет нормальных данных, поэтому не уповай на них.
У меня слегка размывается вижен, когда давление под 160. Но я фиксанул давление. Фиксанул настолько сильно, что теперь другая проблема - когда встаю, голова кружится, вплоть до того, что бывает нужно сесть обратно или за стену придержаться. Сознание пока не терял.
Я бы забил на алгосы. Особенно на графовые. Для хорошего уровня нужна куча времени, а в работе они не особо нужны и даже на собесах, если не фаанг. Лучше бери аррей /линед лист, хеш/три мап/сет и смотри как они внутри устроены подробно. И алгоритмы самых их основных методов. Смотришь метод, гуглишь, что за алгос и разбираешь. По этим шести коллекциям/структурам могут ебать на собесах. Особенно по хешмапе. Статьи почитай про их устройство. Вот есть классная библиотека для визуализации их внутреннего устройства: https://habr.com/ru/post/599045/
А я ту же мапу хорошо знаю. Поля, которые там есть и за что они отвечают, как что работает и пр. Но спасибо, все равно поковыряю и поучу, может что-то новенькое узнаю по другим структурам.
>к врачу за очками
Мне че ебать, как хикке ботану задроту очки носить? Если уж и покупать че то, то линзы, форму глаза за ночь восстанавливающие
По алгосам что я понял: пока сам не напишешь - толку мало. Те же тытруберы и прочие советуют Грокаем алгоритмы, к примеру, но ты книжку прочитал, понял концепцию, допустим, тех же жадных алгоритмов, но реализовать все равно не сможешь, по крайней мере пока лоу-левел экспириенс в проганье. Все надо пальцами щупать. А про методы коллекций спрашивают? Слышал, что надо свой связный список двусторонний реализовать на собесе.
>Слышал, что надо свой связный список двусторонний реализовать на собесе.
Создаешь объект ноды у которого есть ссылка на следующий и предыдущий. Готово.
Ебать ща бы испугаться чё о тебе ваня заводчанин с зп 20к, уёбищем-женой и кредитом на авто подумает, хех мде
Попрошу промять еще семенные канаты
Ну это уже другое дело. Сам с нормальным зрением, поэтому хз.
С другой стороны, солнцезащитные никогда не бесили, но то может я за компом в них не сидел просто.
>>дрочить рест и джексон. С ним намного больше еботни чем с базой
У бэкенда все наоборот - рест на спринге работает сам с парой аннотаций, а вот ебли с хибернейтом/скл хватает.
Линзы приносят намного больше неудобства. Их снимать и одевать неудобно, глаза сушит и есть шанс конъюнктивит словить. Я словил даже когда следил за чистотой рук, тупо пот жарким летом попал в глаза.
Ну у меня наоборот. Джейсоны со сложными форматами и кучей динамического говна, как с фронта, так и с других сервисов, написанных на питоне. И много ебли с сериализацией/десериализацией. С валидацией иногда сложно.
А в базу это просто кладется. Если что, то просто в jsonb кладешь. Правда мы хибер не используем.
Можно же жсон отдавать
Я своим примером покажу что есть. Чем сидеть и пиздеть лучше делать и что-то менять, по-моему.
Похвально. Но если это типа пощёчина мне (на что намекает вот это вот:
>Чем сидеть и пиздеть
), то я перефразирую - "я не вижу применений крипте в играх кроме как чтобы превратить игру в говнобиржу". Доказать этот (отрицательный) тезис невозможно и не нужно - надо доказать обратный ему положительный. Так что я в данном случае и не могу ничего, кроме как "сидеть и пиздеть". Докажешь - я приму. Не докажешь - ну будем считать, что возможности блокчейна в играх исчерпываются вышеназванными.
>>353490 (OP)
>бест практики
Отъебал бы в своей команде за такие практики.
Люто двачую будучи вкатунцов, многие вещи просто забываются. Я веду конспекты и записываю острые углы, хз как опытные разрабы все в голове держат.
Любая математика в коде вообще как говно выглядит. К тому же, как по-другому проверить треугольник это или нет?
return longestSide > sumOfShorterSides;
Я про то, что бест практисес это когда у всего есть понятное имя, а не вот эти вот однострочники. Clever - несомненно, но не для бизнеса. Для бизнеса важнее, чтобы можно было взглядом окинуть и мгновенно въехать о чём речь. Хотя тут не совсем клиника, относительно понятно, так что я погорячился.
Ну вот я про это и говорю, что математика херово на прогу ложится. Что для тырпрайза это вообще говнокод и пошли они нахуй. Но далеко не всегда можно вообще дать нормальные имена переменным в формулах
То с чем часто работают на протяжении долгого времени уже так легко не забывается. Все таки нейронные связи это паутина, чтобы она закрепилась надо и практический опыт, и понимать как почему зачем итд итп.
И то, помнят принцип, а детали гуглят/смотрят как было на других проектах, как и все люди. Никакого волшебства.
Смотрю, но пока ничего не увидел кроме бахвальства.
Пробовал гуглить, но гуглится как-то не очень.
1. Я правильно понимаю, что BigDecimal, хотя и даёт потенциально бесконечную точность, всё же не способен идеально точно хранить промежуточные результаты вычислений с рациональными, иррациональными, трансцендентными числами?
2. Есть либы, которые позволяют как в языках, заточенных под математику, хранить число уровня 1/10, 2 * sqrt(2), pi, а то и что-нибудь с мнимой единицей - именно в таком, символическом виде? А терять точность только в результате, в последнем вычислении, если это вообще требуется? Насколько это востребовано в финтехе? Слышал, что все юзают BigDecimal и в хуй не дуют.
И ещё накину пример.
Предположим, что в компе числа хранятся в десятичной - для простоты рассуждения.
У меня есть три сотрудника, и сто монеток премии, которую я хочу поровну поделить. Я делю на 3 и получается 33,(3). Т.е. я остаюсь должен 0.(3) (1/3) каждому. Как мне сохранить у себя этот должок в 1/3, чтобы учесть его в будущих расчётах? Ведь если так будет продолжаться и дальше, на на следующий месяц я буду должен уже 2/3, а на третий - 1. И вот эту единицу я уже могу выплатить, т.к. она целая хм, так вот зачем придумали квартальные премии. Но если я бы её хранил в даже BigDecimal, то эта единица никогда бы не собралась в целое, так ведь? Там было бы число, с каждым месяцем всё уточняющееся, но никогда не переходящее в целое.
Чел я делаю игру своей мечты, зачем демотивируешь? Не будет никакой говнобиржи, вот увидишь.
как моды на майн делать? знаю питон.
А что будет-то?
И каким боком тогда крипта?
Единственное, что приходит в голову - это игра по типу дьяблы, или хуже - говнеца с ящичками-казино, не знаю как уж оно там называется. Ток у тебя предметы иногда дропаются не простые, а с токеном. И этот токен ты получаешь на свой кошель, а дальше ты можешь перевести его кому угодно, и если челибос свой кошель подключит, то в игре у него будет этот предмет. Какая-нибудь горящая алебарда жопоразрывания. И тогда разработчик самой игры как бы выводит биржевые аспекты за пределы самой игры - нет аукционов, нет торговых окошек, дескать хотите этим торговать - ну запилите там себе биржу и торгуйте хоть усритесь. Нам главное чтобы вы запруфали свой кошель и мы вам любые предметы в игре отобразим.
А как иначе, намекни что-ль.
>>356298
Двощую. Главное чужие моды не берись дорабатывать, там такая лапша что 1с раем покажется. Свои - без проблем.
>Нам главное чтобы вы запруфали свой кошель и мы вам любые предметы в игре отобразим.
А зачем тут крипта?
Ну типа чтобы на себя не брать биржедроч, и какие-то гарантии, обусловленные блокчейном, дать игрокам. Типа мы у вас эту шмотку не отберём, только если у всех сразу. Ну и это по сути легализует всякие обычно банимые вещи типа продажи игровых шмоток за бабло. "Не можешь победить - возглавь". Сервер игры никто не хакнет, блаблабла (ага, я даже не буду объяснять, насколько это сложнее, чем кажется)
Плюс надеются на то, что какие-то инвестиции это привлечёт от челов, которые просто в крипту инвестируют. Что они дескать будут покупать у игроков шмот и ждать, пока он подорожает. Но на самом деле всем скорее всего будет пiхуй.
В целом я согласен, что даже в таком виде это как седло на корове.
Значит к середине июня дойдем до 2500, что будет означать полный крах джавы на рынке вакансий РФ.
До 24.02 было более 5000 вакансий в выдаче по запросу java.
Отправил заявку в неткракер на их курсы и последующую стажировку. Изначально обещали начать процесс в начале апреля, но потом пришло письмо, где сообщили что я прошел, но сказали приходить в июле. Думаю, что к июлю эти курсы вообще закроются полностью, либо неткракер уйдет из РФ.
А так, устроиться в джава бекенд сейчас практически невозможно имхо. В сбере и втб меня нахуй послали прямым текстом, сказав, что найм у них на фризе. В яндексе сначала сказали, что фриз, а потом просто реджект прислали, даже ни одного собеса не провели.
>Вкат открыт
Вкат временно закрыт. Если про РФ говорим. Но временно вполне может означать несколько лет или несколько десятилетий.
В методе main() вместо отдельного вызова двух методов пишешь:
int sum = chulso1() + chuslo2();
И в sum Будет сумма.
И для чего тебе два одинаковых метода chuslo1 и chuslo2, отличающихся только названием? Ты точно понимаешь, зачем тебе эти методы? Достаточно оставить метод chuslo1 и вызывать его дважды. Но это вряд ли всё, что тебе нужно.
Че ты несешь...
Мне за последние пару дней пришло штук 15 приглашений на собес, оплата от 100к до 300к, требуемые знания в 90% из них - джунский спринг и +- средний ООП. Все остальное на уровне прочтения ознакомительной статьи на хабре. Ты наверное охуеешь, но у нас в россии люди выбирают, между предложенными вакансиями.
Но нет же, вкат закрыт, потому что так сказал CockHole из ципсо. Хотя на урине он наверное правда закрыт, тут один чел рассказывал, как у вас рынок в 20 раз упал.
Народ-олигофрен, народ-петухонщик, народ-говнокодер, народ-6-вложенных-циклов, народ-статикоёб.
И ведь не поспоришь
У тебя методы возвращают войд, никак. Твой метод число1 и число2 - процедура, которую ты никак сложить не сможешь. Сделай хотя бы функцию, считывающую два числа, складывающую их и возвращающую сумму. Потом можешь эту сумму сложить и вывести в консоль.
какие же хохлы дегенераты, пиздец просто
я умею писать моды и плагины для майнкрафт !
>Думаю, что к июлю эти курсы вообще закроются полностью, либо неткракер уйдет из РФ.
Эта ссанина нигде не нужна кроме РФ, если они закроются их конторе пиздец, или их купят индусы.
Так у тебя опыт небось минимум 2-3 года, и образование по профилю. Таких да, берут. Даже если они полные дауны, как ты.
Да, сейм... Джависты что-то стали рил никому не нужны вдруг, хз как с другими языками.
Ох уж эти невыдуманные истории. Хотя, в принципе, если пикрил твой типичный код ты реально никому нахуй не нужен.
Лол, привык не смотреть на возвращаемое значение, а узнавать его по использованию метода. В каком прекрасном мире я жил, пока не увидел эту картинку
> Лол, привык не смотреть на возвращаемое значение, а узнавать его по использованию метода.
Питухонер, спок
Чего блять? Как раз петухонкры делают такие перегруженные нечитаемые методы, которые возвращают результат своего выполнения.
Или еще че похуже, типа одновременно и делается что-то, и вычисляется и возвращается какое то значение. В любом случае, метод должен либо ничего не трогать за пределами самого себя, либо возвращать войд.
Я про то скорее, что в питухоне просто не завезли возможность увидеть - как нормальные люди - тип принимаемых и возвраащемых данных.
Надо эти нечитаемые простыни скроллить и смотреть, в какие методы стд либы эти данные пихаются, там потом можно понять что же за типы подразумевались. Горит? Горит.
Чувствую что ты пиздишь. Опыт год это что, маня петы? На такое даже не смотрят, ну на стажировку могут взять если пройдешь все их тестовые/собесы. Я еще поверю что тебе повезло и ты вкатился, но что 10 собесов это пиздеж.
>Образование основное.
Без вышки хотя бы не профильной, даже не смотрят сейчас. (Если нет комм.опыта конечно)
Больше вопросов нет
Ну на первых двух я попустился, дальше опыт прохождения получил и порешал тестовые задания
Ну ты хуйни-то не неси, в питоне так же, как во всей динамикодрисне, но хотя бы есть тайп хинты.
Только на них и откликался. Плюс писали еще лично на почту и в тг.
сука уроди блять , хотел просто попросить инфи что и как а тут сука уебки нахуй токсичние твари .Вот все мне уже не учить потомучто у меня такой код на 2 неделе учебы? хуесосы
да иди нахуй чел
ну вот ему респект спс бро
А что еще можно ожидать от пхп++.
Чтоб с ОБСа стримить на свой сервер и там уже делать че мне надо: перекодировать, вытащить ключ для аутентификации и тд. Желательно как-то это со спрингом скрестить еще. Из готовых решений только какие-то энтерпрайз легаси монстры с настройками на xml. Я не хочу использовать ноду.
Репорт.
В этом блядь и разница между языком и неотключаемой типизацией и языком, который лишь даёт возможность (через сторонние костыли и только в рантайме, разумеется). Если дать возможность, то пользоваться ей будут только полтора аутиста на крупных проектах, потому что по другому они просто свихнутся.
Твоя мать напоминает порядочную женщину, как куча говна - еду.
Хочу пет типа твича сделать с бэком на спринге полностью. Но че-то по сравнению с нодой это какая-то боль.
Ютуб на английском смотри.
Ищешь ментора, отваливаешь 30к-75к, в зависимости от его качества, влетаешь на 100к минимум сразу.
запомни - меньше 90к не проси никогда, тебя никто не возьмёт за такие деньги, посмотрят как на дебила
Ты че, долбаеб?
В азкабане.
@
ВЫ ЖЕЛАЕТЕ ОЗНАКОМИТЬСЯ С НАШИМИ ПРОЕКТАМИ. МЫ ИСПОЛЬЗУЕМ ТАКОЙ СТЕК ТЕХНОЛОГИЙ:
- 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 ЧАСА, ВЫБИРАЙТЕ БЫСТРЕЕ
@
ВЫБИРАЕШЬ ТЕТРИС
@
ИГНОР
Зацени вакансии на джунов на любой язык, да и вообще посмотри эту хуйню: https://stats.hh.ru/
И придёшь к выводу, что весь рынок труда в рашке мёртв, даже на завод.
Так что хуй знает, зачем ты это пишешь здесь, а не в МВП-треде, если это не проблема конкретно рынка жабы.
По моей второй спецухе дохуя просто вакансий, а по жабе хуй да нихуя. В целом да, весь рынок айти подсел. Но т.к. я вкатун в джабу то меня она интересует
Спасибо, я уже больше года положил на жабу, чтобы теперь перекатываться к мягким
Ты ж не питон учил и не жс, на шарп переучишься быстро.
Шарпосвин, бегом из треда, а то мамка запалит, что ты с плохими дядями общаешься.
Зато я хороший дядя.
а в чем прикол? вакансий меньше
Пробрасывать объект юзера из логин контроллера к остальным котроллерами, или как это правильно делать?
В глобальной статик переменной, либо обмазать спрингом или другим контейнером DI.
Ты че, долбаеб?
Нельзя. Да, всё намертво привязано к JVM. Максимум можно заэмбеддить через jlink, получив архив, в котором будет обычное джава-приложение + весь рантайм JVM + батник для запуска, но никогда не будет единого исполняемого файла.
Вообще, странные вы аноны, берёте жабы-питоны-джаваскрипты и потом страдаете. пытаясь из них слепить C++.
Также есть сырой GraalVM, который даже Swing не умеет. И несколько заброшенных васянских компиляторов в натив.
На сколько себя оцениваешь - столько и проси.
Нет такого термина "говно для отсталых", блять.
SSR - это не только дедовские шаблонизаторы, но и хипстерская дрисня, передающая куски HTML фронту и перерисовывающая фрагменты страницы без перезагрузки всей страницы. Её сейчас любят во всяких нодах.
Да.
Скорее всего, многовато эндпоинтов. Хотя, это же контроллер. Можно срать сколько влезет
На единицу времени написания самого круда трачу 3 единицы времени на написание тестов.
Это я в курсе, интересно почему в языке нет именно дефлотных параметров. В чем причина, что не добавили.
Вообще не проблема добавить и дефолтные параметры, и перегрузку операций, и прочий сахар. Его не добавляют принципиально.
Когда пишешь как бугаенка, тестить не надо. 1 баг на 1000-2000 строк кода, который ловится в первые минуты дальнейшей работы кода.
Но сам бугаенка тесты пишет, судя по гитхабу его.
Сосаза от долбоёба, размазывающего говно по всему разделу.
Как в 1с
Чтобы синтаксис оставался хардкорным, а не как в энтих ваших новомодных хуйнях? По мне, так какой-то долбоебизм.
Чтобы синтаксис был ближе к коболу.
image.jpg
Поле - переменная объекта.
Ссылка - некая хуйня, которая указывает на объект. Её можно сохранить в переменной и разыменовывать, обращаясь тем самым к объекту: его полям (публичных полей никто не делает, но в теории можно) и методам.
Переменная - тупа кусок памяти. У него есть тип, чтобы понимать что в нём лежит и само наполнение.
IfUtils
if(search!=0){
if(search==1)
}
if(cmp==0){
if(x.leaf){
}else{
if(x.c.n>t-1){
}else if(x.c[i+1].n>t-1){
}else{
}
}
}else if(!x.leaf){
if(x.c.n==t-1){
if(i>0){
if(x.c[i-1].n>t-1){
}else{
}
}
if(y==null && i<x.n){
if(x.c[i+1].n>t-1){
}else{
}
}
if(y==null){
}
}
}
Какой тут паттерн? Ифов и елсов много.
if(search!=0){
if(search==1)
}
if(cmp==0){
if(x.leaf){
}else{
if(x.c.n>t-1){
}else if(x.c[i+1].n>t-1){
}else{
}
}
}else if(!x.leaf){
if(x.c.n==t-1){
if(i>0){
if(x.c[i-1].n>t-1){
}else{
}
}
if(y==null && i<x.n){
if(x.c[i+1].n>t-1){
}else{
}
}
if(y==null){
}
}
}
Какой тут паттерн? Ифов и елсов много.
Паттерн Ветвление, часть паттерна Структурное Программирование.
Используй паттерн элегантные объекты
Нахуя тебе это зубрить, дурачок? Спринг и спринг дату выучил - пиздуй работать. Пару видево по Кафке посмотрел и готовый мидл плюс джавист
Потому что "работает - не трогай", и эта формула хорошо работает. Изменения необходимы, они добавляются, но без излишеств, когда сахар богаче и сложнее языка, это не норма.
Analnoe Ochko
>>зубрить
>>slf4j
пишешь один раз конфиг
@
копипастишь во все проекты
>>log4j
log4j - медленное устаревшее говно, но иногда встречается. log4j2 - уже немного быстрее логбэка, но не видел его ни разу.
В принципе разницы между log4j и logback нет. Просто пишешь @slf4j и похуй что там за логер подключен.
Flog
JUL
Как можно вообще это зубрить? Это же просто тул с одним конфигом и тремя одинаковыми методами насирания в лог. Зубрители хуевы. Если для вас уже это "зубрить" то пиздец.
хуй знает, лог это хуйня EZ, вот многопоточность и модель памяти эт пизда, зубрю и потею
нет
В многопоточке реально есть что зубрить, особенно со всеми прибамбасами фьюч и форкджоинпулов. Правда это для 95% спринг-крудошлепов в работе вообще не надо, даже на собесах спрашивают не очень часто.
Перед собесом чисто освежить и всё. Потом всё равно выветрится
К слову о многопоточке. volatile надо использовать только к полям классов, которые наследуют thread? Типа чтобы переменные хранились в хипе, а не в стеке потока, и чтобы сторонний поток мог к этому полю обратиться. А если 2 потока обращаются к полю обычного класса, нужно ли там поля помечать volatile? Я уже жидко пукнул, т.к. запутался, где что хранится.
Если ты нормальный программист, тебе хоть раз, да понадобятся тредпулы в работе. Зубрить для трудоустройства на кодера вообще никогда и ничего не надо.
С хуя ли не надо, если подготовка к собесам это и есть зубрежка?
Это видно по любому мок-интервью, да даже кусок кракинг-кодинг-интервью это тоже конспект для зубрежки.
Да даже алго-часть это тоже зубрежка + долбежка прорешивания литкодов.
Что бы кто не вонял про софт скилы собесы на кодера это просто экзамен, как в вузике. В разных типах кампаний разные правила этого экзамена. Но это один хуй дрочь для зубрил.
Все темы ты один хуй не прокодишь в петах даже с простыми кейсами. Это займет на полпорядка больше времени, чем зубрежка.
Вообще устройство на работу вне фаангов это когда ты прокодиваешь заранее все мастхев темы, а потом зубришь все что не ответил на предыдущем интервью. Всегда кто-то что-то спросит из редко встречающегося в проде говна.
Повторение мать учения !
InputStream in = new URL( "https://commons.apache.org")
.openStream();
Почему там InputStream, а не URL ?
Потому что это интерфейс
Потому что ты присваиваешь не сам объект класса URL, а то, что возвращает метод openStream() этого объекта. А возвращает он как раз InputStream.
https://docs.oracle.com/javase/7/docs/api/java/net/URL.html#openStream()
Стэк хранит обычные переменные и ссылки, хип это хип, можно ошибиться в ссылке, если ее поменяли и не пометили volatile. То есть нет разницы между int и Integer. К тому же int как поле класса, а не локальная переменная, хранится вместе с объектом в хип.
Если есть мутабельное поле, то внутри него скорее всего тоже есть смысл использовать volatile.
К локальным переменным, будь то object, не являющимися полями классов, просто так не получить доступ из других классов или потоков.
Получается, что поток делает с определенным промежутком flush в хип, либо другой поток с определенным промежутком делает update из хипа, либо и то и то.
Возможно я не прав.
Сорич, я ошибся насчет стека. В кэше процессора, конечно. Я знаю, что поля объекта, который наследует thread, хранятся в кэше процессора и когда-то отправляются в хип. И меня интересует вот что, а как бы примитивы/ссылки полей других классов, к которым он обращается, он закачивает как копию себе в кэш, там допустим манипулирует с ними, а потом отдает обратно в хип, или поток напрямую все меняет/считывает с хипа?
Ещё скажите что в джаве префиксные и постфиксные инкременты есть.
Жабий волатил только для тредов, а сишный ещё и для memory-mapped IO и другой системной ебли.
Да это я порофлил малость, знаю что они есть.
И ещё когда впервые увидел, про себя подумал "ну и нахуя они ЭТО из крестов принесли??"
В итоге получается, что любой мало-мальски внятный кодстайл запрещает их использование внутри предложений, а на верхнем уровне они работают абсолютно одинаково.
Он считывает только файлы jar, а мне нужно и папки с их содержимым считать, как это сделать ?
Это не то
PersistenceAnnotationBeanPostProcessor persistenceAnnotationbeanPostProcessor = new PersistenceAnnotationBeanPostProcessor();
Да, именно так, только название должно быть processor или beanProcessor, а сам процессор должен быть внедренной зависимостью и непосредственно в коде использоваться как this.processor.doSomething()
Yoba yoba = new MyYoba(
....new PersistenceAnnotationBeanProcessor,
....new MyAboy(
........new MyYobby(),
........new NotMyYobby()
....)
);
Ооо, элегантно!
Вот так и должно быть.
Подскажите пожалуйста.
Ммм винапи
Хуйкрафт.
гав
Не понял. Тебе надо чтобы минисруфт прямо по кнопочке из идеи запускался вместе с тем что ты туда накостылил прямо в жарник?
Хочу лаунчер на swing написать.
>форж
>миллиард костыльных хаков для совместимости, жирнейшее апи, всё это нужно учитывать в коде
Настолько для белых людей, настолько быстро работает, что начали подниматься проекты по типу Fabric, как легковерная альтернатива форжу без ебатории.
О, фабрикодебил, ты че забыл тут в джава треде? Пиздуй в петухон тред и ной там, почему минисруфт не на петухоне написан
public static void main(String[] args) throws MalformedURLException, ClassNotFoundException {
URL[] urls = new URL[1];
urls[0] = new File("C:/Users/Desktop/load","minecraft.jar").toURI().toURL();
ClassLoader load = new URLClassLoader(urls);
Class<?> mine = load.loadClass("net.minecraft.client.main.Main");
}
Путь мой, а исключений нету ._. Майнкрафт 1.7.10
Ну конечно, на петухоне вообще никто ничего не декомпилит, вот уж сука язык богов - просто в текстовом редакторе открываешь файлик со скриптом и редачишь! Красота!
И плагины
В пизде твоей мамки
Как минимум трое.
Всем привет!
Работаю джуном уже 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 с нужными ключами (чтоб отрисовывались чекбоксы с ингредиентами)
Пока писал понял что с этой еботой никто разбираться не захочет, ну и ладно, хоть в поряд немного мысли привел, как же доебала эта книжка, хотя я только начал
Интересно, а если я хочу, чтобы какое-то поле не кешировалось, то мне тоже нельзя волатайл использовать? Пошел нахуй такой код стайл
нет блять, не используется. Весь мировой банкинг не на жаве работает, и айти индрустрия держится не на ней
Там все на дотнете, особенно где есть поддержка государства (медицина например)
Такие же микросервисы на net 5-6, как на спринге. Framework это как найти сейчас место с 5 жабой
Скорее с 8.
новую разработку никто на коболе не ведет. Более того, я знаю людей, которые портировали мейнфреймы с кобола на жаву. В втб жава, в тинкоф жава, в других банках тоже жава.
Работал на проектах с госзаказом. Все на жабе. И на старой жаве с деплоем в томкат и на новой с микросервисами.
Требуется принимать и отдавать в soap в поле body (как запроса, так и ответа) XML-стринги.
Я зделол, но потом в спеке увидел, что есть файл с примерами запросов и ответов, и там везде body завернут в <arg0>.
Поясните, мне на серверной части просто в xsd это подправить, или это какая-то искоробочная история soap, типа там биндинг особый, RPC или еще какой-то нюанс
Работаю в финтехе, клепаю моды для майнсруфта, и там и там нужна жаба (ну ещё для душевного, блядь, спокойствия нужна жаба, потому что финтех на 1с), поэтому изучаю. Проблемс?
Ну государству простительно быть ебанутым и стрелять себе в ногу через финансирование проектов на проприетарном говнеце.
>The .NET Framework (pronounced as "dot net") is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows.
А хуле так написано? По любому ведь ты не договариваешь.
Уже
свой пробный проект. Напиши простейшую реализацию ArrayList с методами get(int index), put(T object), add(T object, int index) и delete(int index), сделай это через дженерики, можно подглядывать в эталонную реализацию в jdk
>до этого изучал дженерики
Ты че, долбаеб? Че там изучать? Я их "изучил" за 1,3 секунды, когда увидел использование их в сорцах какой то хуйни и подумал, что это довольно удобно.
Загуглил, нихуя не понял, иди нахуй, собесодрочедебил. Такая хуйня никогда не применяется на практике,=> ты долбоеб
Метапрограммирование на тьюринг-полных дженериках в компайл-тайме.
Я изучал. Читал учебники, смотрел видосы, решал задачи по рекурсивным женерикам и вайлдкардам.
Но когда вкатился и гдето через год после достаточно подробного знакомства мне потребовались вайлдкарты с применением средней изьебистости оказалось, что все это просто вылетело из головы и пришлось разбираться заново. Посидел, часок читал статьи и стак, часа три писал и переписывал набор методов, и все норм.
Задрачивать синтаксис это бессмысленно, гугл это вторая память.
Реально держать это говно в голове имеет смысл даже не для собесов, а для сертификаций, которые бесполезны.
Заглянул в пизду твоей мамки, упал в обморок от вида.
Долбоеб, шифруй данные как обычно и суй уже зашифрованное в обычные структуры.
это всё легаси. даже если переписывают на новый дотнет, легаси истории это не отменяет. новые проекты (крупные) на дотнете не начинают. незачем абсолютно.
Я вот сейчас могу свой сайт сделать на Спринге, но как понять, смогу ли работать на реальных проектах?
нюхнуть стажировОЧКУ, ай суппоуз
Хардкор - это пизда твоей мамаши, джависты самые основные практиканты ИБД.
Реальные проекты - это дебаггинг и небольшие доработочки.
Большая часть времени уходит на то, чтобы понять как всё работает, как в случае отладки (ну тут очевидно), так и в случае доработок (куда бы мне впихнуть своё говно чтобы всё вокруг не развалилось)
Ну мы сейчас полностью переписываем один тырпрайз проект на 1с на микросервисы на спринге и жабе 11. И я, как джун написал больше половины кода в двух из 25 уже имеющихся микросервисов.
И у меня большая часть работы уходила на тесты.
У меня нетиповой случай хочешь сказать?
Вы в эклипсе пишете?
>У меня нетиповой случай хочешь сказать?
Нет, думаю нетиповой. Устроившись в жабу, с большей вероятностью будешь поддерживать готовое (и довольно старое), нежели писать новое.
Но во-первых чёткой статистики нет ни у меня, ни у кого-то вообще, а во-вторых можно и работодателя спросить чем он занимается. Загвоздка в том, что он практически всегда будет выпячивать какие-то новые проекты, и ты по факту придя, можешь столкнуться с тем, что на самом деле тот крутой проект, которым хвастался кабан, окажется ОЧЕНЬ ДОЛГОИГРАЮЩИМ. Никто не захочет в открытую сказать, что там лесаги болото, так же как никто не признает например, что в фирме каждые выходные овертайм.
Выход как всегда один - пробовать и не стесняться ливать, если тебе не подошло.
Я например нормально отношусь к поддержке старого, она тоже знаешь поддержка поддержке рознь, в одном месте кабан будет заставлять роняя кал срочно пилить какие-то костыли, забивая хуй на всё что связано с ликвидацией удержанием техдолга, в другом кабан может быть весьма лоялен к этому, а когда кабан лоялен - рефакторить старый кал это прям охуительное удовольствие.
Я давно про это говорю, что создают монструозные фреймворки, чтобы выплюнуть простую страничку html. А РНР - это лучшее, что создали для веба.
Не отправляй ему донаты и не смотри его специализированные "разговорные" видосы, где он пиздит о том, в чём не является профессионалом.
Вот в последнем видосе он несёт сильно субьективную хуйню, борется с попенсорсом, но ничего про хохлов вроде бы нет. А вот видосы по типу "новости", где там танчик на превьюхе - сразу понятно, что можно не открывать. Короче будь более открытым, что-ли, не дели на своих и чужих, просто фильтруй контент по его содержанию, а не источнику. Я буду видосы хоть от поедателя младенцев смотреть, если он в чём-то конкретно хорошо разбирается и эта область мне интересна.
Используй bigdecimal и в хуй не дуй. Ты все равно потеряешь точность при вычислении, ибо существует порядок операций, и вычисление будет разбиваться на этапы. Ну или можешь реализовать систему компьютерной алгебры, которая будет производить упрощение выражений, сокращая число операций.
Это больше философский вопрос, так-то я подозреваю, что никто так адски не ебется в фин вычислениях, чтобы прям всё-всё-всё сохранить, там главное флоаты не использовать и ты уже герой, а bigdecimal даст приемлемый уровень точности в реальных, земных задачах, плюс там готовые способы округления, из которых можно выбрать. Главное ведь не чтобы погрешности совсем не было, а чтобы она не накапливалась со временем. Округление до ближайшего чётного этот вопрос должно решать на корню.
>Я пытался понять... Я работал в команде... Сложно... Зачем мне DI если я могу сам... А вот в двухтысячных...
>Ваши действия?
Ору.
Дык я ради орева в основном и запостил.
Ну и хотелось бы послушать его адвокатов, если таковые найдутся. А то мы всё только адвокатов бугаенки слушаем.
Вот и говори дальше. Всё равно на жабе не пишут то, что ты называешь вебом.
В целом да там через всё интервью красной нитью проходит "ряя если я немогу всё знать до байтиков значит оно нинужно", типа если либу подключаешь то пока не продрочишь её сорцы то ты не имеешь права с ней работать "а вдруг там баги/уязвимости??", но блядь программирование уже давно невозможно и не нужно обымать целиком.
Любой проект большой ты просто в голове не удержишь, даже проект блядь, а если ты ещё будешь пытаться держать в голове все зависимости, то ты точно ебанёшься. Если бы все такие были как этот чел, то айти бы не ушло дальше того, о чём способен помыслить один человек.
Долбаебы, сэр.
Там 16 вакансий.
Сейчас же можно писать на джаве из любой точки мира, типа лежать на пляже с ноутом и писать.
Если у меня libA использует libB версии 1
А projectA использует libA и libB версии 2
Какая версия libB в итоге будет использоваться при выполнении projectA в виртуальной машине? Более новая? Или строго которую использует projectA?
Мавеном все собирается в один джар плагином maven-assembly-plugin.
Ну так я так и сказал.
А что в теории помешает машине загрузить байткод обеих версий либы?
Или тебе твой конкретный кейс интересен - тогда тут только доки мавена.
> А что в теории помешает машине загрузить байткод обеих версий либы?
А как тогда в памяти два класса юудут резолвиться? Или это будут два разных класслоадера? Ну, скажем, если если я сделаю Class.forName("classname") который вытащится?
> Или тебе твой конкретный кейс интересен - тогда тут только доки мавена.
Ну ок, покурю. Вообще, пока сейчас печатал этот пост понял, что в итоге только один класс же попадает в итоговый бвсе-в-одном jar. Вот только по какому принципу выбирается какой именно - пока загадочка.
> Или это будут два разных класслоадера?
Ну да.
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.
>Мавеном все собирается в один джар плагином maven-assembly-plugin
Если все пакуется в один jar, то там рандомным образом будет одна из версий. Если все собирается в zip который потом распаковывается и выполняется, то все будет зависеть от того как ОС сортирует файлы, тут на дев машине все работает одним образом, а на прод другим тру стори из личного опыта.
> там рандомным образом будет одна из версий
Не совсем. В моем случае, как указано вот здесь, можно описывать правильные депенденси. Разобрался, спасибо, анончики.
https://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
Крч проблема следующая- нужно сгенерировать описание всех классов- поля, методы (публичный метод объекта класса ССС, принимает объект класса ХХХ, и возварашает объект класса УУУ), наследование, интерфейсы и тд.
Когда то я видел такую прогу, типа от какого то универа пиндосского, прилагалась к статье о рефлексии. Моя нынешняя реализация чет слишком корявая и хотелось бы либо заиметь толковый оригинал, либо какую нить либу нацеленную именно на получении информации о классе (ну типа отфильтровывать наследуемые поля и методы енамов - такое себе удовольствие), ну а в идеале готовое решение которое умеет генерить шаблонную документацию(я удивлся когда нихуя не нашел)
Ставишь ультмейт, каждый месяц учетку новую регаешь.
такс, никакой документации в классах нет, вот что уже есть реализованное, но я прям оч дохуя чего не учел https://pastebin.com/X3eVHpje
Хотелось бы хотя бы либу, чтоб можно было из метода сразу получить переопределнные классы, дерево наследования/интерфейсов, вменяемую параметризацию и тд
JAVADOC????????
Попробуй вот это
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
Может быть тебе подойдет.
Вкатуну будет даже полезнее конфиги руками подрочить.
>>Какая версия libB в итоге будет использоваться
>>Maven picks the "nearest definition".
Возьмет тут что объявлена ближе к корню. Можешь просто явно указать в своем pom.xml нужную либу - тогда использует ее.
емнип можно настраивать разные стратегии разруливания транзитивных зависимостей, читай тут подробности
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
А вообще используй спринг бут стартеры и не еби мозги.
> читай тут подробности
Да, то что надо.
> используй спринг бут стартеры
Этот проект (сюрприз) без спринга. Но спасибо за ответ.
лтс это 2к, обычный - 1к.
Но мне важно знать, допустимо ли использовать наследование в коде, или же это говно, которое сломает нахуй инкапсуляцию, если в расширяемом классе есть протектед члены, или может быть нужно везде хуярить композицию, но возникают вопросы что делать если тебе нужно расширять либу, следовательно ты не перепишешь либовый класс под интерфейс, а если ты будешь создавать новый объект расширяемого класса и хранить в своём классе то как быть если расширяемый класс abstract.
У меня возникают трудности с поиском информации по Спрингу. Ещё многие функции в бесплатной идее заблокированы, которые нужны для написания полноценных приложений.
А вот в сишарпе есть бесплатная и полнофункциональная Visual Studio 2022 и больше ресурсов по фреймворкам.
Информации по спрингу высрано больше, чем ты в состоянии осмыслить. Ты просто не умеешь гуглить.
Обмен между контроллерами и представлениями и так сложный и не очевидный, а они ещё накручивают там всякие трудновыразимые конструкции. В итоге я сижу и вообще ничего не понимаю в том, что написано.
>>У меня возникают трудности с поиском информации по Спрингу
>>есть бесплатная и полнофункциональная Visual Studio 2022
>>больше ресурсов по фреймворкам.
Вот ты и ответил на свой вопрос.
Больше не появляйся в этом итт треде.
Так продай. Нахуя покупал?
+++
> За сколько месяцев примерно ботаются необходимые для среднестатистической работы фреймворки или другая залупа, если сейчас из вводных неплохое знание жаба cora?
Если знаешь сам SQL, то пара месяцев плюс-минус.
>>пиздовать учить ведроид или добить ебучую джабу
>>добить
написал хеловорлд, осталось добить многопоточку
Потому что это сравнит ссылки на них?
Расскажите про спринг фекториз. Есть ли опыт написания свои стартеров?
Есть кейс: есть запрос в БД с объемом 100кк++ строк и кучей ебучих джоинов. По сути простое журналирование.
1. Как синхать БД и эластик в реалтайме? Логстеш?
2. Как перенести этот ебанутый запрос с n+1 подзапросами внутри с разными каунтами вида sum x/sum y и сортировками? Это говно не читабельно нихуя и делалось на коленке.
Из за того что нужны сортировки и данные отдаются по лимиту все сделано так что считает прям в запросе и это пиздец.
Хотя производительноть запроса ок и отдает за 1-2 секунды с учетом ебанутейшго коста на БД в миллиарды.
Думал сделать отдельную таблицу с денормализованными данными по этому журналу, прикрутить логстеш к постгресу и хуярить напрямую оттуда в эластик. Но пока нашел только общую инфу как это делать. Конкретики не видел.
И что делать с каунтами не ебу.
Да там и учить-то особо нечего.
Жс тоже представление.
Все зубрить- классы, интерфейсы, методы, аннотации, паттерны дао и репозитори, какие депенденси пихать в пом.
А какая у тебя цель? Вкатиться в жабу на бэкенд или стать фуллстеком? Если первое, обойдёшься одним HTML и тупыми шаблонизаторами.
>мы в курсе, что есть пятое
Теперь есть и шестое!
Ты учти, хибернейт не единственная орм, также придется вызубрить eclipselink и apache cayenne. И если будешь медлить и долго возиться- еще что нибудь выкатят, пока ты ковыряешься.
Спорим ты просто не шаришь нихуя, лул.
История из ньюфаготреда, когда чел что-то спросил, ему пояснили что по его вводной нихуя не ясно, надо конкретизировать, на что он ответил что мол мы выёбываемся. Это клиника, помноженная на даннинг-крюгер.
Как извлечь из любого треда имя мейн класса приложения (класса в котором был изначально запущен main(String[] args))?
Могу пройтись по стектрейсу наверх, но это работает только из основного треда.
Эластика больше нет.
Мне нужно из разных приложений юзать класс который в общее хранилище будет складывать кое какие данные, но имена должны быть разные у приложений, и ключи в хранилище соотвественно.
>>361444
Исследую этот вопрос, получаю все стектрейсы, может как-то по ключевому слову main и еще какому-то признаку буду вытаскивать.
Хз насчёт четвёртого, я сразу читал пятое с русеком.
> Мне нужно из разных приложений юзать класс который в общее хранилище будет складывать кое какие данные, но имена должны быть разные у приложений, и ключи в хранилище соотвественно.
Рядом с каждым приложением кладёшь по конфигу с именем, при записи в хранилище пишешь эти имена.
>Мне нужно из разных приложений юзать класс который в общее хранилище будет складывать кое какие данные, но имена должны быть разные у приложений, и ключи в хранилище соотвественно.
Ты че, долбаеб? Ты про микросервисы слышал хоть раз?
>>361444
Похоже, все таки, есть возможность. По крайней мере на моей JVM у первого треда всегда ид = 1 и имя main. Соотвественно, пробегаюсь по всем стектрейсам, беру только тот стректрейс у коготорого ид треда 1 и имя main, первый вызов в этом стектрейсе - там полное имя класса - профит.
>>361451
Я ленивый, хочу чтоб вся магия сама делалась, а я в каждом приложении дергал один единственный метод.
Эта лень тебе потом аукнется так, что придётся половину архитектуры переделывать.
> придётся половину архитектуры переделывать
Нахрена? Я всего лишь извлекаю имя мэйн-класса и не лезу ни в какую другую ответственность.
Есть хоть одна причина по которой можно было бы раздавать треды с другого числа?
Ну ладно, если не нахожу тред с идом 1 или в треде с идом 1 не нахожу метода main начале стектрейса - бросаю исключение, которое, никогда не будет брошено, так как главный тред, похоже, всегда 1
WIN
Ну, по крайней мере, орокловская джвм выдает ид 1, поэтому похуй, к тому же
> если не нахожу тред с идом 1 или в треде с идом 1 не нахожу метода main начале стектрейса - бросаю исключение
Ну то есть ты намертво привязываешься к текущей реализации оракловой JVM. Из-за таких как ты все до сих пор сидят на 8 жабе - создатели фреймворков привязываются к кишкам текущей реализации, а они берут и меняются, и везде эксепшены как у тебя.
А какие еще варианты, слиться с задачи раз другого решения нет? Задача сформулирована так, что надо уметь извлекать имя главного класса приложения из любого треда. Варианты с подкладыванием вручную конфига с именем или каким бы то ни было еще ручным маркированием приложений не канает.
Мы вам перезвоним.
Обожаю двач
-- Помогите решить X?
-- Не надо решать X, ты не прав
/thread
>>361496
Да, это запасной вариант - запоминать имя класса в начале каждого main, но хотелось бы не париться, а просто из любого места кода вызывать метод и получать условный уникальный идентификатор любого приложения, желательно имя класса без предварительной возни с его регистрацией.
Я бы написал длиннее про свою задачу, чтоб ты понял что мне нужно именно решение проблемы X, но не буду потому что ты токсичное хамло с выебонами.
>>Обожаю двач
Ты спрашиваешь у хирурга как правильно пришить себе хуй на лоб, на что он закономерно отвечает что ты долбоеб и тебе не стоит этого делать. После чего ты бежить плакаться какие хирурги токсичные и не хотят ничего рассказывать по делу.
Ну и какая проблема Y у меня тогда?
>>361515
Что не так с задачей получать уникальный идентификатор приложения по факту его существования?
Я хочу использовать это в отладочных целях, вставляя метод куда мне надо, и в хранилище собирать данные, в котором ключ это имя приложения, а значение - данные. Приложения куда я буду это вставлять очень разные, в них могут быть использованы (или не использованы) любые фреймворки, технологии и библиотеки. Если у каждого приложения в любом случае всегда уникальное имя main-класса, почему бы не взять именно его? Возиться с предварительной вставкой в каждое приложение, засирая мэйн класс не всем сразу понятной регистрацией имени класса и, конечно обязательно забывая ее вставить или убирать в каждое приложение будет дороже, чем просто вызвать метод в нужном мне месте. А в хранилище, я буду на 100% уверенным, что вот эти данные пришли именно вот от этого конкретного приложения, при этом не ведя нигде никаких списков и таблиц всех приложений. Почему нельзя просто взять имя мэйн класса то, если это полностью решает задачу. Хуй знает, по-моему, пришивание хуя на лоб это как раз был бы гемморой с учетом всех существующих приложений, когда уже есть уникальный критерий, по которому можно сходу идентифицировать приложение, к тому же еще и вполне человекочитаемо.
Охуеть сколько текста я высрал для тебя, зная что в ответ все равно получу очередное хамсто.
> Ну и какая проблема Y у меня тогда?
Вся твой задача - проблема Y. Проблему X ты упорно утаиваешь.
> Если у каждого приложения в любом случае всегда уникальное имя main-класса
Ложная предпосылка. Они могут тупо совпасть, и никакого контроля на это нет. А может быть и такое, что ты деплоишь все свои приложения на один сервер приложений, и у них всех будет один и тот же главный класс с методом main - класс самого сервера приложений, который запускает всё остальное. Ты на 100% уверен, что подобные варианты у тебя исключены, даже при том, что у тебя по твоим же словам используются любые фреймворки, технологии и библиотеки? Значит, всё-таки не любые?
> Вся твой задача - проблема Y. Проблему X ты упорно утаиваешь.
Ну хз, я в посте выше постарался довольно подробно описать как что и зачем мне нужно. Так можно доебываться по иерархии проблем вверх сколько угодно и дойти до того, что исходная проблема X - получить оплату работы и купить на нее хлебушек.
> Они могут тупо совпасть, и никакого контроля на это нет
> у них всех будет один и тот же главный класс
Исключено, такие приложения, у которых имя класса (пакет+simple class name) будет одинаковымы тут точно запускаться не будут.
> Значит, всё-таки не любые?
Здесь ты прав, не совсем любые, уточню, что каждое приложение запускается в своем инстансе JVM путем вызова java -jar, а не в сервере приложений.
Энивей, задача решена, готов поспорить на $1, что в официальной JDK от Oracle мэйн тред всегда будет под id 1 на срок пока Java 17 является текущим LTS.
> хамсто
А ничего что ты хамишь? Причём было ясно с первых двух постов, что ты намерен хамить, если ответы тебе не понравятся.
Какой же ты дегенерат, пиздец просто. А вдруг тред сделают номер 0? Что тогда? Жидко пукнешь и утонешь в своем дерьме, слезах, рвоте и моче?
Например, "Напишите алгоритм вывода последовательности Фибоначчи"
Хочу потренировать свою тупую башку мозг
На вопрос отвечать пробовал? Вместо того чтобы нести хуйню
А что тебе мешает зарегаться на жавараше, там именно в таком ключе задачек огромный вагон и маленькая тележка. Да, надо платить, но естественные конструкции языка доведешь до автоматизма при написании кода с этим сайтом. Я друга так тренил, правда я ему еще давал теорию по тырпрайз разработке, бд и прочим нужным шляпам. Ничего, вкатился через 2-3 месяца на зп в 60к. Конечно не 100 и не 150, но все же неплохо
Ну жабараш - эт уже какой-то вариант. Ток там ща проплатить за рубли нельзя
Мне бы не прост джавовые, а чтобы на логику.. поучиться декомпозировать, расписывать алгоритмы. А то я сразу лезу в бой.. без системного подхода. И как-то не оч получается.
Представить в голове алгоритм нормально не получается. Все время зацикливаюсь на какой-то хуйне.
Да и че там говорить.. и на бумаге не всегда сразу получается расписать. Приходится какое-то время затрачивать.
Вот я и прошу. Чтобы потренироваться
Можешь попробовать codeforces с самыми простыми задачками. Но это олимпиадное программирование в одном классе
Начал погружаться в микросервисные архитектуры. Не могу понять: как будут общаться между собой микросервисы?
Они будут друг к другу стучаться по REST в эндпоинты?
Или напрямую вообще не касаются друг друга, а получают инфу из брокера сообщений?
Может кто-нибудь объяснить на говне и палках?
ну в таком случае тебе на leetcode, там много задачек, в том числе и простых. На ютубе есть разборы на русском некоторых из них на канале "3.5 задачи в неделю". Также можно посмотреть решения других людей и сравнить со своим. Выбираешь, например, задачи с листами и херачишь. Там можно порезвиться вволю
Создаст конфиг с id главного треда и будет класть рядом с каждым приложением.
Спасибо, попробую
во многих компаниях общение back-to-back через рест запрещено, где-то запрещены синхронные http запросы, но при этом можно в grpc (который поверх http). Обычно через кафку общаются сервисы, но это если компания большая и достаточно богатая, чтобы себе такое позволить. В принципе, кафка дает много приемуществ, например сервисам не надо знать друг про друга ничего, для каждого из них есть только они, их бд и кафка, из которой они погут получать данные, если знают название топиков
Зачем вообще делать микросервисы, чтобы потом городить огороды со всякими кафками? Типа сейчас так модно и надо сделать, чтобы как у всех?
спасибо за ответы каким то хуем сам нарулил продление лицухи через github education
Микросервисы можно масштабировать горизонтально, монолит только вертикально, а у вертикального масштабирования есть вполне конкретные пределы. У горизонтального, конечно же, они тоже есть, но значительно выше по производительности. Ну и плюс ко всему, если у тебя упал один сервис, то на веб морде перестала работать только одна кнопка, а не вся аппа, а это уже отказоустойчивость. В целом, микросервисная архитектура гораздо дороже и сложнее в плане инфраструктуры, чем монолитная, поэтому выбирать ее стоит только тем, у кого есть такие потребности и деньги на нее. Ну и само собой, если мы говорим про банки, где отказоусточивость крайне важна, там буду микросервисы, если у тебя есть абмиции устроиться на работу в банк, то велком в микросервисы.
Я еще год назад совсем не понимал что это и с чем это едят, но все на деле оказалось гораздо проще и легче, чем я себе это представлял.
А еще можно подробить стрим из 100 человек на маленькие команды, и у каждого будет своя зона ответственности. Как следствие, почти не бывает merge conficts, которые никому не нравятся. Но это скорее приятный бонус, ИМХО
тестовое для бэка имхо зашквар
хабр юзай, читать книгу ради patch notes пустая трата времени имхо. Изменения были, например больше нет пермгена, он был переименован в метаспейс и упразднен. В частности, пулы констант теперь лежат в хипе в хуипе
Чтобы ресурсы разделить. Ты не хочешь, чтобы тяжелые отчёты генерировались на том же железе, которой обслуживает пользователей, ибо генерация отчётов может выжрать все ресурсы, из-за чего пользовательские запросы будут обрабатываться очень долго.
Это один из примеров
>Микросервисы можно масштабировать горизонтально, монолит только вертикально
> где отказоусточивость крайне важна, там буду микросервисы
Это заблуждение. Микросервисы это скорее про изолированные команды, независимый деплоймент, вот это все, про организационные вещи больше. А для масштабируемости и отказоустойчивости ничто не мешает мне запустить N инстансов монолита.
все эти инстансы будут в одну и ту же базу ходить?)) А если база шлепнется, то все инстансы твоего монолита станут бесполезными.
Лично мне кажется, что ты тут пошел от противного. Независимый деплоймент это то, на что ПРИХОДИТСЯ идти, ради микросервисов. И это то, что делает микросервисы дорогими и сложными, поскольку нужны дево псы, а не сисадмины обычные. То что команды изолированы, это конечно здорово, но то, что сервисы изолированы друг от друга и под их нужды можно выделить разное кол-во мощностей - вот что круто.
Когда у тебя монолит, и ты много инстансов разворачиваешь, то разворачивается в том числе и та часть, которая может быть не нужна. Приведу пример, регистрация испытывает нагрузку в 60 рпм, а часть, отвечающая за сообщения 1 000 000 рпм, в случае с микросервисами можно было бы отмаштабировать сервис, ответственный за сообщения, и при этом сервис, отвектственный за регистрацию потребял бы столько мощности, сколько ему нужно в данный момент времени
Спринг бут видел когда-нибудь?
>А если база шлепнется
А на уровне базы нужны свои решения для отказоустойчивости, причем даже если в нее ходят микросервисы
>разворачивается в том числе и та часть, которая может быть не нужна
Это понятно. Но плохо это на практике конкретно чем? Ну да, наверное тем, что сколько-то мегабайт памяти и сколько-то секунд времени старта будет съедено на этом дублировании "ненужных" частей монолита. Но много ли в реальности проектов, для которых это было бы существенно? Только ради такой экономии на гибком масштабировании, стоило бы идти на все усложнения, которые приносят микросервисы?
А если тебе ровно половина монолита нужна реже, чем другая раза в три, то бишь на вторую половину нужно в три раза мощности. Разворачивая тысячу инстансов ты можешь запросто потрадить дофига дорогих ресурсов, которые деняк вообще-то стоят, хотя платишь их конечно же не ты)
>Разворачивая тысячу инстансов
Окей, на том и согласимся. Ради отказоустойчивости микросервисы не нужны, а ради масштабирования они имеют смысл на проектах с масштабами по нагрузке в тысячи инстансов.
project euler, ебаный неумеющий гуглить кусок гавна
> Они будут друг к другу стучаться по REST в эндпоинты?
> Или напрямую вообще не касаются друг друга, а получают инфу из брокера сообщений?
Ну вот как лично ты сделаешь, так и будут, по большому счёту.
Да в спринге как в токавом нечего разбирать на самом деле. Есть на тытубе канал алишера какого-то, там основы спринга популярно обьяснены. Есть еще доклады Жени Борисова "Спринг потрошитель", есть вроде какой-то русскоязычный сайт, но там статей немного. Можешь еще почитать Spring 5 для профессионалов в русском переводе, если не боишься сломать зубы об этот толмуд, но для начинающих в теме людей, имхо, будет сложно. Есть еще spring in action на русском, тоже вполне годно. Вообще, не раз замечал, что очень долго могу гуглить какой-то вопрос, вот прям неделю и не найти на него ответа. А потом открываешь книгу и находишь ответ на 25 странице. Конечно, можно сказать, что я плохо гуглю, но откуда я блять знаю, как надо гуглить, если я начинающий. Это я к тому, что книга нормальная может здорово тебе помочь
>>не даёт нормально закинуть файл
выдели файл и нажми F6
>>как вообще отключить эту тупую фичу?
пикрелейтед
>Ну вот как лично ты сделаешь, так и будут, по большому счёту.
>Программа будет работать так как ты ее напишешь
spring boot starter rest soap kafka(?) apache stream flux flow ?
Поч Кафка маньяк? Он же писатель. Или не кафка?
На счет потоков не уверен, stream
Это давно уже так. Еще два года назад на стажера требовали год коммерческого опыта.
>рисуешь сам себе в резюме
Такое перестало работать еще в нулевые. Теперь нужен столичный опыт разработки, официально зафиксированный в трудовой книжке.
PROJECT LOOM
Чтобы была уникальность названия проекта. Если разные разрабы создадут либы с одинаковым названием, их всё равно можно будет юзать в одном проекте, т.к. группы одинаковые.
Хотя можно обойтись и одним уникальным именем, например, предполагалось, что в группе будет домен, принадлежащий организации, а артефакт - само имя проекта, а организация централизованно обеспечит уникальность имени артефакта в олной группе, в действительности в группе начали придумывать несуществующие поддомены для большей детализации, например, projectName.departmentName.companyName.com, а в артефакт суют не сам проект, а модуль.
@
БЛЯТЬ, КАКАЯ ЖЕ ОНА ПИЗДАТАЯ!
@
СУКА, Я ЕБАЛСЯ НАД ПРОБЛЕМАМИ ИЗ ЭТОЙ ЛИБЫ НЕДЕЛЮ, А ТУТ ВСЁ РЕШЕНО УЖЕ!
@
БЛЯЯЯЯ ЩАС КОНЧУ НАХУЙ
@
ПОСЛЕДНИЙ АПДЕЙТ 2 ГОДА НАЗАД
@
9223372036854775807 ISSUES OPENED
@
БЛЯТЬ, КАКАЯ ЖЕ ОНА ПИЗДАТАЯ!
@
СУКА, Я ЕБАЛСЯ НАД ПРОБЛЕМАМИ ИЗ ЭТОЙ ЛИБЫ НЕДЕЛЮ, А ТУТ ВСЁ РЕШЕНО УЖЕ!
@
БЛЯЯЯЯ ЩАС КОНЧУ НАХУЙ
@
ПОСЛЕДНИЙ АПДЕЙТ 2 ГОДА НАЗАД
@
9223372036854775807 ISSUES OPENED
Задача: Мне нужно выкачать свои данные из огромного общего файла гугель таблиц для дальнейших действий над ними в жаве. На выходе это будет тоже таблица (не гугель, а в смысле что визуально таблица) с кучей довесков которые я уже в Жаве сделаю.
Вопрос: Как это сделать?
Я не очень хочу ебаться с гуглом, поэтому пока мне это видится так, что я для начала делаю кнопочку "скачать данные" и разовым действием перегоняю свои данные в какую-нибудь H2 и забываю про гугол. А дальше че, REST делать? Я просто больше особо нихуя не умею честно говоря. Операции чтения (со всякими фильтрами) и редактирования будут 100%, удаление хз, запись... ну наверное только во время перегонки данных из таблиц в БД.
Гугол таблица постоянно редактируется, поэтому сохранять какие-либо данные в полноценную БД смысла нет. Никакая многопоточность мне не требуется (пока по-крайней мере) - тыкать эту хрень я один. А, ну и нужно чтоб эта хуйня с ярлыка/закладки_в_браузере запускалась, а не через ide, лул. Может тут вообще типа десктопное приложение надо делать?
ПЫ.СЫ 1: Да-да, я довен и все такое, просто подскажите по архитектуре в какую сторону вообще идти.
ПЫ.СЫ 2: Нет, в самом гугле/экселе будет не проще.
ПЫ.СЫ 3: Я хуй знает как это все правильно сформулировать, если че могу на наводящие вопросы ответить.
приоритет поставить 1
- Раз вы не можете подтвердить свой опыт документально, придется подтвердить его знаниями. Возьмем, к примеру, абстрактный симплициальный комплекс, множество вершин которого....
таких вопросов никогда не видел на собесах, для меня это что-то из разряда невозможного. Наверное, потому что я молодой, меня за свитчера никто не считает.
знакомый с 2 годами нарисовал себе +3 года, в сумме получсется 5. Пошел в газ на 400к)))
> абстрактный симплициальный комплекс, множество вершин которого....
И чё не продолжаешь? Множество вершин которого что?
Задача: Напишите программу, при запуске которой создается и выводится на экран графическое окно. В окне размещена группа компонентов JRadioButton, метка и кнопка. После нажатия на кнопку, текст выбранной радиокнопки отображается в тексте метки.
Я погуглил. Там тупой способ вставлять в каждый файл кусочки шаблонов хеддеров и футтеров, но это тупо.
Шаблонизаторы вообще не предназначены для умного использования, всё по тупому, всё дубово. Поэтому их никто не использует в проде для веба.
Почему шаблонизатор из ASP.NET Razor можно гибко использовать, а ни один из Спринга так не умеет?
Ты похоже догуглил до фрагментов, но не дошел до лейаутов. https://www.thymeleaf.org/doc/articles/layouts.html
там как раз и будет
>>в главный шаблон _Layout.html вставился list.html и т.п.
>>шаблонизатор
>>Спринга так не умеет
Спринг используют в тырпрайзе, а там всегда найдется жс макака с реактом/ангуляром.
Но если очень хочется - таймлиф, ваадин и прочие фримаркеры для легаси подхода с шаблонизаторами.
вишмастер
Вот эти курсы подойдут мне ? И что мне все слова и предложения зубрить ??? Я по другому не могу запомнить...
https://youtu.be/BAahBqreWZw
Аннотации
Сделал минимальные шаблончики для теста и не работает ничего.
Два кофе
Ныыаа в ебучку очкарику
Это ж JSP буквально
Разобрался. Оказывается там надо подключать левую библиотеку, которая тянет за собой кучу всякого говна, которые потенциально могут заменить мне все файлы на сердечки.
В общем, сами создатели Thymeleaf шаблонов не предусмотрели и всё расширяется кривыми библиотеками сторонних челиков.
Невозможно нормально заинжектить зависимости. Может быть больно тестировать
Можно, конечно. То, что нельзя, придумали шизоиды, которые во главе всего ставят написание юнит-тестов.
Что мешает использовать Идею?
Конструктор тоже вызывается спрингом через рефлексию. В тестах разница только в том, что с конструктором ты можешь его просто вызвать через new, а с @Autowired на приватных полях тебе придётся поднимать спринговый контекст. Но шизики не признают, что тест со спринговым контекстом может считаться юнит-тестом.
Сап, маленькие любители тырпрайза.
Есть кейс, а спросить не у кого.
Имеем spring data (hibernate), mysql.
Имеем 5-8 вложенных друг в друга энтити, которые удаляются по @Cascade
На каждом из энтити висит hibernate listener на удаление, который апдейтит другие энтити и выполняет несложную логику.
Проблема:
При удалении энтити A, каскадом удаляются энтити B,C,D и так далее, все вложенные друг в друга.
Соответственно при каждом удалении происходит много всего, что в конечном итоге занимает много времени.
Как сократить время выполнения?
Удалять в обход хибернейта - отвалится логика в листенерах.
Делать задачи в листенерах асинхронными - не сможем откатить транзакцию в случае чего.
Может тут есть закалённые в боях воины, которые подскажут решение?
>>всё расширяется кривыми библиотеками сторонних челиков.
Это все же не супер важное что то, чтоб туда гугл с амазоном бабла вваливали.
Свои задачи тем не менее она выполняет. Че тебе еще надо то?
бамп
Не понял нихуя. Просто скачай всю таблицу и распарсь
Гугли жаба fx
Автовайрить вообще нельзя. Спринг - антипаттерн. Все, что делается со спрингом, можно сделать без него.
Иди нахуй, порридж
Старая-добрая ебля с уродливой архитектурой спринга. Пожинай плоды того, что в самом начале разработки сэкономил пару часов времени, милсдарь.
А как это к спрингу относится?
А завязываться на хибер и вообще, какую либо инфраструктуру - то ещё говно, согласен
Узнаю старый добрый двачик. Предлагаешь использовать для таких проектов jdbc и сокеты? Ну успехов, хули.
>>362763
А разве спринг и хибер не созданы для того, что бы на них завязываться?
Кстати, в посте забыл упомянуть soft delete - это решение, но крайне не желательное. Уверен найдутся знающие аноны, которые предложат пути оптимизации этого говна.
Ну ты же вешаешь аннотацию @Entity, @Table, @Repository куда то, вот там ты и завязываешься на спринг, причем самым ужасным образом
Предлагаю максимально изолировать базу данных от объектов и моделек. В коде класса модельки или объекта не должно быть ни одного символа, написанного ради сохранения этого говна в базу данных.
И руками управлять связями между таблицами, валидацией и прочим говном. Тогда это мало чем отличается от голого jdbc.
Пойду посплю лучше, к утру может кто по делу и выскажется.
>>хибер не созданы для того, что бы на них завязываться?
У меня на проекте жук, никакой ебли с жпа проблемами, пишешь почти как на скл, только без всяких там ждбц темплейтов и прочего оверхеда. вся ебля - с генерацией кода если у тебя микросервисы, но решается один раз, потом просто пишешь С транзакциями тоже все просто и удобно.
>>там ты и завязываешься на спринг
>>@Entity, @Table
это хибернейта/жпа аннотации, а не спринга.
>>завязываешься на спринг
>>самым ужасным образом
как будто есть смысл писать не на спринге
>>362772
>>прочитали тот перевод хейтера ORM на хабре.
я просто помню как меня попускали вопросами по хиберу на собесах, там же полно подводных
>есть смысл писать не на спринге
Есть. Спринг превращает любой проект в неподдерживаемое говнище.
- пикокли (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")) {} не вариант, класс получается в несколько тысяч строк кода и нечитаемый абсолютно. Велосипед, если буду делать, сделаю общим и абстрактным и не только для майнкрафта, а вообще для всего, где может быть нужно парсить командную строку.
- пикокли (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")) {} не вариант, класс получается в несколько тысяч строк кода и нечитаемый абсолютно. Велосипед, если буду делать, сделаю общим и абстрактным и не только для майнкрафта, а вообще для всего, где может быть нужно парсить командную строку.
Сходил своим хуём тебе за щёку, проверяй.
Полгода очень мало для курсов. При том теории всего три месяца.
Даже если тебя и вкатят, то на работе ты будешь нихуя не знать и несколько месяцев придется ночами доучиваться и дико овертаймить, чтобы не поперли. И отдавать ползп этой кате.
Бугаенка бы как раз такую хуйню под дулом пистолета бы не написала. Тут антипаттерн на антипаттерне, блядь! Начиная с названия, заканчивающегося на -er, заканчивая ебучим статиком, безжизненной моделькой Clan и ебучей процедурщиной в целом, нахуй
Я про это как раз. Постарался найти картинку, где бугаенка мог бы показаться недоумевающим.
Бугаенка прав во многом, но не во всём, а рабов писать заставляет на своём говноеоланге с уродливым синтаксисом и в котором захардкожено использование всего, в чем он себя считает правым, даже в том, в чём он на самом деле не прав
Ну это не из-за того, что бугаенка пишет код как-то неправильно, а из-за того, что у него взгляды на процессы разработки очень специфичные. Потогонка короче. Сделайте мне бугаенку, но с эджайлом и печеньками - я пойду.
Энтити и табл - не имеют ничего общего со спрингом
хз, три месяца, но по 5 часов каждый день + месяц в коммерческом проекте. Кореша из уников рассказывали, что там плюсы с основой ооп проходят целый семак по 2 пары в неделю
Петухоклин или абсолютно нерелейтед говно для микро-команд без адекватной поддержки вложенных команд?
Весь.
Я из твоего описания нихера не понял, что тебя не устроило. Но если ты хочешь сделать что-то типа git-а, то посмотри JCommander там даже есть описание git своими руками https://jcommander.org/#_more_complex_syntaxes_commands
Потому что у бугаенки есть только две точки зрения.
>Все, что делается со спрингом, можно сделать без него.
Егор иди нахуй, никому твои Elegant Objects не всрались.
Твоя мамаша никому не всралась, дегенеративное хуйло. Воистину, бисер перед свиньями, зачем рассказывать про подходы, позволяющие улучшить читаемость и поддерживаемость кода в десятки раз, когда можно ебнуть пару аннотаций и превратить java в j, зато печатать меньше.
Там рассказывали про джаву?
Задание - говно говна, такое даже у самого зеленого вкатуна должно вызывать отвращение. Но ничего в нем сложного нет.
Многие думают, что раз в самом языке дофига всяких мощных конструкций, то и результат будет крутой, но на самом деле всё упирается в скудные возможности JVM.
КАБАН КАБАНЫЧ СМОТРИТЕ ВОТ ЕСТЬ ТАКАЯ ТЕХНОЛОГИЯ НАЗЫВАЕТСЯ ЖАБА МОЖНО В 100 РАЗ УСКОРИТЬ РАЗРАБОТКУ ЧЕГО УГОДНО, ДА И ЕЩЕ И СДЕЛАТЬ ВСЕ ЭТО НЕЗАВИСИМЫМ ОТ ПЛАТФОРМЫ И ХОСТИНГА
@
АХАХАХХАХАХАХАХХА НИХАЧУ СКАЧИВАТЬ КАКУЮ ТО НЕПОНЯТНУЮ ПРОГРАММУ JVM)))))
@
КАБАН КАБАНЫЧ УБЕГАЕТ, РОНЯЯ КАЛ
Вроде бы потому что тогда используется больше рефлексии, а это медленней
> Вот ни кому не объяснишь, что для выполнения программы надо ставить ещё какие-то JRE/JDK на компьютер.
Сейчас же контейнеры везде и всюду
> Многие думают, что раз в самом языке дофига всяких мощных конструкций, то и результат будет крутой
А как это связано?
> но на самом деле всё упирается в скудные возможности JVM.
???
>ставить что-то на компьютер
Десктоп мёртв. Хотя это и не помешало самую продаваемую игру в мире ебануть на жабе, и каждый из этих миллионов игроков теперь как миленький ходит и скачивает всё что нужно.
Даже если Кабан Кабаныч согласится, то как вы убедите потом заказчика, что ваши непонятные jar-файлы - это и есть программа. Если бы были ехе, то вопросов не возникло.
>>363128
Ты можешь сколько угодно перебирать данные, вертеть и крутить ими как угодно, но всё упирается в интерфейсы для взаимодействия с окружающим миром. А в JVM они ограничены!
Чел, толсто.
>Твоя мамаша никому не всралась
Егорка, главное что твоя популярна у всего ДСа.
>>363096
>зачем рассказывать про подходы, позволяющие улучшить читаемость и поддерживаемость кода в десятки раз, когда можно ебнуть пару аннотаций и превратить java в j, зато печатать меньше.
В гробу я видал я такую читаемость, когда один мизерный объект прокидывается через пяток конструкторов, тупо потому что он нужен на самом нижнем уровне.
Как раз наоборот. Даёт стандартный набор инструментов и подходов, понятный любому кто способен читать.
А что ты делал, расскажи. И что было прям вообще пиздец?
Надо было йобу выбрать.
> Если бы были ехе, то вопросов не возникло.
Можно и в ехе собирать, даже специальный плагин для maven есть.
Vaadin, GWT, JSF и другое говно.
java.lang.reflect.InvocationTargetException
Нужно зубрить от и до.
>Что это за исключение и как его можно убрать ?
При вызове метода через рефлексию произошла ошибка. Надо смотреть Caused by:
rest api еще есть
В принципе, классика. Зато кто-то получит увлекательные вопросы в 2 часа ночи "а что такое интерфейс?"
пошел нахуй
Причём тут ит и кто сказал, что не любят? Проблема вообще в другом.
Съеби уже из моего уютного треда, токсичный даун.
На какую зп вкатился?
Как её реализовали в JS до появления async/await.
Фьючи, колбеки. Все как и везде
Буковками.
Меня заебал спринг со своими уродливыми аннотациями и абсолютной их нерасширяемостью. Я больше не спрингоблядок. Ура!
Спрингоблядь, как антипод царя Мидаса, превращает всё, к чему прикасается, в говно.
spring-boot-starter-lombok
Петуханы, там лицензию на IntelliJ IDEA продлили!
Их и не переставали набирать. А вот недостажеров-джаварашеров-крудошлёпов больше никогда не будут набирать. Просто бизнес понял, что долбоебы, вызубрившие вопросы для собеса ничего кроме убытков (даже больше своей зп) не принесут. П
Когда война закончится.
А где еще ты предлагаешь смотреть? на лингкедине ?
Да бухти сколько хочешь, можешь даже на пикет выйти. С плакатом: Требуем async в Java!
Когда будут отключать JVM?
Вот у меня есть функция:
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.
Чому так?
Первый паттерн позволяет длину ввода от 0 до 11, т.е. по мере того как ты вводишь цифры он будет принимать ввод. Второй шаблон требует сразу чтобы у тебя был сразу введено валидное мыло.
n % 1 == 0
?
Всрато. Делай как нормальные люди через n == (int) n
Что-то этот сеньёр заливает, что джуну надо знать только джава кор и немного спринга. Его послушать дак вкатиться проще не куда.
Поверь человеку который на нем сидел - шляпа. Вот не задавай лишних вопросов. Просто поверь
Ни в одной книжке по джава кору, я что-то не видел jdbc, orm или сервлетов.
Посмотрел - действительно нет. Нахуй значит такие книги, где даже тема жавы не полностью раскрыта, не говоря уже о спринге. Зато про свинг и авт не забыли.
Ну например в полном руководстве Шилдта сервлеты есть. Орм конечно не будет рассматриваться, но реализуется средствами core в любом случае.
Ну во первых 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);
который будет на вход принимать строку, содержащую введённый код с синтаксическим сахаром, а возвращать массив строк самого обычного джавовского кода, который потом можно будет легко использовать в других местах!
Кто хочет со мной заняться этим? Это будет величайший шин легивона, ведь двач буквально изменит весь джава-мир, а может быть и вообще весь мир, весь другие языки-паразиты джавы (шарп, петухоклин, груви) обязательно подтянутся за этим!
Объём работы оцениваю в 100 часов, я сам это не потяну, навыков не хватит, но вместе мы - сила, сука. Пишите мне в телегу: @ancap_kun
Я готов выполнить всю работу по проектированию этого, написанию логики, от вас - интеграция с идеей, если (что врят ли) нас соберётся много для этого, логику будем делать вместе.
На самом деле, мне только один человек нужен, вдвоём такое уже не так сложно потянуть будет
>>кастомный синтаксический сахар
От него очень быстро наступит синтаксический диабет.
Код ведь превращается в нечитаемую хуетень, когда каждый пишет на одному ему понятном языке.
Это то же самое, что и аннотации компилятора, только удобнее. От аннотаций же диабет не наступает? Всем понятны @Getter и @Setter из ломбока, также будет понятен и собственный синтаксис.
К тому же, сложность создания полноценного синтаксиса исключит возможность налепливания синтаксиса петухона на джаву - это будет использоваться только для мелких сокращений вопиющего бойлерплейта.
Крутая штука, но там же нет кастомного синтаксического сахара, я всё ещё не могу написать вот это
eventspace {
....abstract MyAbstractEvent with Integer integer;
....MyCustomEvent extends MyAbstractEvent with final String immutableString;
....MyOtherCustomEvent with String mutableString;
}
с ним?
Ахаха, лошара
>>Всем понятны @Getter и @Setter из ломбока
Одно дело что ломбок, мэпстракт и прочие апач комонс - отраслевой стандарт. И совсем другре когда каждый мимохуй будет засирать код таким "сахаром". А потом приходишь на проект и не понимаешь это блять вообще джава или какой то питон/пхп/жс?
>>я всё ещё не могу написать вот это
>>with
Ты заблудился по пути в питонотред?
>>eventspace {
Я вот читаю этот кусок и мне не понятно что ты имел ввиду. В каком смысле эвент с числом? Что ты имел ввиду?
Мимохуй кроме легковесного сокращения для кода вряд ли что-то напишет, что хотя бы будет работать, потому что это довольно сложная задача, превращать String в синтаксис, и потом ещё и обратно в String запихивать. Кастомного сахара будет мало, и он будет разрабатываться крупными компаниями/опенсорс организациями, а что будет разрабатываться мимохуями будет маленьким и понятным
>>365487
eventspace - пространство ивентов, значит, что внутри будут перечислены ивенты, можно например тоже самое написать так:
abstract event MyAbstractEvent with Integer integer;
event MyCustomEvent extends MyAbstractEvent with final String immutableString;
event MyOtherCustomEvent with String mutableString;
Ну же, никто разве не хочет обмазать ебало шарпосвиньям говном и навсегда возвысить жабу над всеми пародиями?
Только представьте, как на вас будут смотреть HRы, когда узнают, что вы один из основателей проекта, убившего шарп, котлин и груви, который является стандартом индустрии и используется в каждом проекте, в том числе и у них? Да вы на изи устроитесь на 450к$ в год в нетфликс, ещё думая, как вы продешевили жёстко!
>Это то же самое, что и аннотации компилятора, только удобнее. От аннотаций же диабет не наступает?
Бывает что наступает. Иногда тот же лобок генерирует не совсем тот код, что ты ожидаешь. Или классический вопрос по спрингу и @Transactional. Но там код написан крупными сообществами, задокументирован и есть куча тьюториалов и видео про тонкие моменты.
>>365489
>Мимохуй кроме легковесного сокращения для кода вряд ли что-то напишет
Мало ты еще всякого легаси видал, тут тебе и свои недо-ORM, и свои билд системы поверх ANT/make, и кастомный вайринг бинов в Спринге, и свой DSL на базе Groovy/Kotlin/ANTLR, и свои билд сервера. Чем меньше своей кастомной параши, тем легче саппортить проект и вливаться в него новичку.
Также IJ IDEA часть функций предоставляет только за деньги, а в Eclipse они полностью бесплатны.
>Мало ты еще всякого легаси видал, тут тебе и свои недо-ORM, и свои билд системы поверх ANT/make, и кастомный вайринг бинов в Спринге, и свой DSL на базе Groovy/Kotlin/ANTLR, и свои билд сервера. Чем меньше своей кастомной параши, тем легче саппортить проект и вливаться в него новичку.
Ну как сейчас от такого избавляются, так и потом будут избавляться от ёбнутого нечитаемого кастомного синтаксиса. Никто не мешает и сейчас написать какую то магическую аннотацию. К тому же, ты в любом случае, чтобы заюзать какую то библу, смотришь мало мальски документацию по ней или вики, по кастомному синтаксическому сахару можно также вики написать.
>>365510
В смысле закрыть? Файлы с компов что ли выкачать? Нанести точечные ракетные удары по местам хранения установочных файлов в России?
Сделают блок по IP на сайте и без VPN не скачаешь и обновления тоже не будут приходить.
Вот уж проблема, автоматических обновлений не будет.
Шиз, ты заебал.
>Ну как сейчас от такого избавляются, так и потом будут избавляться от ёбнутого нечитаемого кастомного синтаксиса.
Так об этом и речь, лучше сразу не начинать пилить кастомный синтаксис. То что кому-то там не нравиться писать бойлерплейт код и нравится писать свои багогенераторы, еще не повод так делать.
В крупных компаниях даже ограничивают список используемых языков и библиотек, чтобы легче было саппортить код.
По твоему вышеупомянутый ивентспейс хуже трёх вот таких вот классов? А подобного говно-бойлерплейта немало в различных фреймворках, он есть не только в бакките. 60 строк против 5
>>тоже самое написать так:
Переписывай, в джаве нет ключевого слова "with".
Вообще мне сдается что ты какие то женерики хочешь переизобрести или что то вроде гуавы/апач комонс.
>>вы один из основателей проекта, убившего шарп, котлин и груви
>>вы на изи устроитесь на 450к$ в год в нетфликс
Нетфликс уже все, а вот хуавэй скоро заменит эпл.
>>обновления тоже не будут приходить.
я уже года 2 не обновляю - нахуй мне платить второй раз, если и так вечная лицензия?
>в джаве нет ключевого слова with
А я его добавлю. С помощью кастомного синтаксического сахара.
Значит на 1kk в год в хуявей устроишься.
>По твоему вышеупомянутый ивентспейс хуже трёх вот таких вот классов? А подобного говно-бойлерплейта немало в различных фреймворках, он есть не только в бакките. 60 строк против 5
По моему:
- это простой и понятный джава код
- в нем разберется любой джава программист
- с ним работают все тулы всякие спринги, файнд юзач и прочие рефакторинги
- этот код поменяет поведение, только если его кто-то изменит руками, что легко отслеживается в гите
А вот >>365394 эта параша
- требует разбираться в йоба плагине, как он работает
- поддержку тулов надо писать, надо написать не только багогенератор, но и плагины для IDE, Maven, Gradle, поддержку рефакторинга, поиска и прочее
- а вдруг у вас в команде будет фанат VS Code что делать с ним?
- при изменении плагина, меняется код который он генерирует и это не отследить по гиту
Кстати в случае с Maven и Gradle подобные файлы надо будет закидывать в отдельную директорию иначе они сломают билд.
Код простой и понятный, но когда у тебя этих ивентов 100 штук, становится хуёво. Просто прочитать 10 строк документации по кастомному сахару не такая непосильная задача.
>но и плагины для IDE
Единственное, что надо сделать. По задумке, системы сборки ничего не будут знать о кастомном сахаре, они будут видеть обычный java-код, и физически в файлы будет писаться обычный код, а кастомный синтаксический код идея будет хранить где то в своих собственных файлах (обдумать ещё можно этот момент)
>при изменении плагина, меняется код который он генерирует и это не отследить по гиту
Плагин не предполагает генерацию кода, генерацию кода предполагают паттерны, которые легко отслеживаются
>а вдруг у вас в команде будет фанат VS Code что делать с ним?
Пусть строчит бойлерплейт код, как и строчил всегда раньше.
Нет этого ни в петухуви, ни в петухлине.
>но когда у тебя этих ивентов 100 штук, становится хуёво
1. Ни в одном нормальном проекте они не появляются сразу. Их пишут по мере развития проекта.
2. Выноси общий код в базовые классы, так чтобы оставалась только бизнес-логика.
3. В конце концов можно и через рефлексию работать, те же MethodHandle не сильно просаживают перформанс.
>Единственное, что надо сделать. По задумке, системы сборки ничего не будут знать о кастомном сахаре, они будут видеть обычный java-код, и физически в файлы будет писаться обычный код, а кастомный синтаксический код идея будет хранить где то в своих собственных файлах (обдумать ещё можно этот момент)
Ты теоретик, который даже не подумал до конца про сценарий использования. У тебя или в исходниках хранятся твой йоба код, который потом хер знает как превращается в джава код. Или у тебя плагин который генерирует код на базе шаблона, но тогда после генерации никто не знает откуда он сгенерирован. Просто подумай над сценарием когда кто-то делает git clone и открывает в IDE. В целом live templates могут покрыть подавляющее большинство потребностей. Все остальное не стоит усилий по внедрению.
>Плагин не предполагает генерацию кода, генерацию кода предполагают паттерны, которые легко отслеживаются
А где хранятся эти шаблоны если не внутри плагина?
Ещё раз, мб не понятно объяснил. Плагин загружает JVM и обращается к уже скомпиленному классу паттерна, работая с ним. Когда разработчик пишет код с кастомным сахаром - то, что он пишет хранится только у него на компе где то в данных идеи, а в src попадает обычный Java-код, который идеей подменяется на написанный разрабом код, лежащий в данных идеи. На гитхаб пойдёт тот же бойлерплейт код, но написать его будет гораздо легче.
Почему при импорте не виден пакет javafx.scene.media ? Если вот он лежит в библиотеках которые сами закачались из мейвена когда создавался проект?
я нуб.
Да да, javaFX мертв, гуй на джаве не нужен. Но пока только так.
Чисти кеш. Переимпорти библиотеку. Можно ещё заново проект склонить
В чем там прикол Intellij Ultimate?
Я год работал на комьюнити (у нас не спринговый проект был) и норм было.
Сейчас раскопал старые проекты спринговые дома, открываю через комьюнити, все ок, вроде. Что я теряю? Сниппеты, или что? В чем поддержка спринга заключается в алтимейте, кроме создания проекта из коробки?
Из очевидного - всякие фичи типа работы с бд, хттп, поддержка всех основных языков (жс, го, питхон, руби и тп), плагины которые на комьюнити недоступны (JPA Buddy вроде только для энтерпрайза) в тч для работы с докером/кубером.
Не знаю как там с анализатором в комьюнити, будет ли он тебе подсвечивать что твои лямбды - говно и надо переписать по другому
Попользуйся месяц - сам увидишь нужно оно тебе или нет. Желательно на большом проекте на спринге.
Спасибо.
А, точно, помню там еще всякие реакты и прочее поддерживались из коробки. Удобно было пилить из одной ИДЕ все вместе.
>Когда разработчик пишет код с кастомным сахаром - то, что он пишет хранится только у него на компе где то в данных идеи, а в src попадает обычный Java-код, который идеей подменяется на написанный разрабом код, лежащий в данных идеи.
У тебя или плагин должен уметь работать в обе стороны: по твоему йоба коду генерировать джава код и сохранять его в src и наоборот по джава коду из src генерировать йобу. Но это пиздец как сложно.
Или у тебя тупо генерация кода по шаблону. Тут уже есть live template, можно конечно и свой шаблонизатор написать, но не уверен что это нужно кому-то.
>Да да, javaFX мертв, гуй на джаве не нужен. Но пока только так.
Попробуй Compose https://github.com/JetBrains/compose-jb
ЖидБрейновичи много пишут всякого гуя и это их платформа для гуя следующего поколения.
Может подскажет кто, что происходит с моделью (Model) при ее передаче шаблонизатору с Get-реквестом, и при попытке поймать ее обратно с Post-методом?
Я через GetMapping-метод прикрепляю Model, запихиваю в него атрибуты по именам, возвращаю шаблон. В шаблоне есть форма, в которой я могу кое-какие свойства ввести, и форма возвращает методом Post все это дерьмо на @PostMapping метод. Если я в этом методе через (Model model) атрибут пытаюсь поймать то что пришло с запросом, то там уже будето абсолютно другая модель лежит (там нет тех атрибутов, которые передавались с Get-запросом). Так и должно быть?
> ЖидБрейновичи много пишут всякого гуя и это их платформа для гуя следующего поколения.
От этого гуй на жабе не стал живее и нужнее. Жидбрейнсы не правы и должны срочно всё переписать на C++ или Rust. Но делать они этого не будут, потому что в штате одни жаба-индусы, которые больше не умеют нихуя.
Да, так и должно быть, никак ты обратно модель не поймаешь. Нигде в спринге не хранится состояние, объект Model тупо создаётся на каждый запрос заново. Максимум, что можно сделать - это добавить в форму поля input type="hidden", чтобы сохранить данные между запросами.
В шаблонизаторах нет никакой магии, они работают максимально тупо. Они настолько примитивны, что приходится на любую динамику придумывать подобные костыли с формами, и поэтому шаблонизаторы юзаются исключительно в учебных проектах и никогда не применяются к реальности.
>>не применяются к реальности.
емейлы все еще на шаблонизаторах, но кроме них конечно они не нужны.
Штош, хуёво. Благодарю за ответ.
Нихрена тогда не понимаю, как нормально сделать пример из Крейга Уоллса, где после валидации нужно вернуть ровно ту же страницу, а в передаваемой модели изначально был массив ингредиентов, каждый из которых передавался с собственным именем в модель. Из-за отсутствия этих объектов он тупо рисует листы ингредиентов пустыми.
К примеру, я могу сделать свой файл html с какими-нибудь метками типа %CONTENT% или %TITLE% и их заменять на реальные значения. А уже замененную строку выплевывать как ответ.
Что это даст? Полная свобода формирования. Можно сделать любой уровень вложенности шаблончиков. Сам определяешь структуру и не нужно подстраивается под кривые шаблонизаторы, всякие кривые связки с моделью и валидацией. Пишешь свой код, а не как макака переписываешь с книжки.
> А что если не использовать шаблонизаторы, а самому формировать html-страницу как строку и отдавать её на выходе из контроллера?
То ты переижоьретёшь сервлеты.
зовет переехать в санкционную помойку
не зря ты на джаве пишешь, петушок
если съебывать, то в нормальное место, а не из снг говна в другое такое же
Опять ты на связь выходишь, мудило?
Получится тормозное поделие, которое по функциональности будет полностью являться подмножеством шаблонизатора (но при этом шаблонизатор будет функциональнее конечно), будет глючить и ебать тебе мозги. Почти так всегда и получается, когда кто-то решает изобрести свой собственный инструмент вместо годами отлаженного и эволюционировавшего
Почему тогда за все эти годы они не догадались сделать вложенные шаблоны, чтобы можно было определить главный шаблон _Layout.html и уже конкретные для контроллеров типа List.html, которые вставляются в главный?
>>367148
>>367520
Подрывом пердаков - удовлетворен!
>Жидбрейнсы не правы и должны срочно всё переписать на C++ или Rust. Но делать они этого не будут, потому что в штате одни жаба-индусы, которые больше не умеют нихуя.
Спешите видеть - вкатуны учат мировые IT компании как им надо работать и на чем писать.
Честно нихуя не понял что ты имеешь ввиду. Думаю и не стоит разбираться в это хуйне
Что не понятно? Сейчас надо полностью писать всю html-страничку для каждой вьюхи. Если у тебя 100500 страниц на сайте, то надо написать 100500 вьюх. Если где-то надо поменять немного шаблон, то пройдись по всем 100500 вьюхам.
А я предлагаю иметь базовый, а остальные лишь как вложеные используются. К примеру, в базовом определяем основной шаблон:
<html>
<head>
<title>%TITLE%</title>
</head>
<body>%CONTENT%</body>
</html>
А в остальных лишь то, что будет содержать %CONTENT%
Полная поебень. Это все типовое для всех страниц, и может копипастой множиться. Нет ничего тупее чем на том же хтмл содержимое вписывать в хтмл-код "выше" рангом. Если б ты предложил какой-то транслятор в хтмл более удобной разметки, а то и вовсе графического конструктора, то да. А так какую-то поебень уровня лабы для 2 курса задумал.
Мне кажется, что ты просто завидуешь, что мне пришла в голову такая классная идея, а ты продолжаешь маяться с кривыми шаблонами тимлифа.
Лол.
Вырезка из словаря В. И. Даля:
Петухон - петухон.
Петухлин - петухлин.
Петушарп - петушарп.
Говнуви - говнуви.
Петухланг - говноланг.
Срала - срала.
Петухаскель - петухаскель.
Жопаскрипт - жопаскрипт.
Педалюсы - педалюсы.
Сраст - сраст.
Сруби - сруби.
Можно еще 200 всегда возвращать.
>Петухлин - уродство мирового масштаба и эталон буржуйского самодурства.
Ты что-то запизделся, уже все геттеры написал?
Любое вкатунское тестовое от 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 апи на спринге + постгрес + авторизация спринг датой + сваггер + флайвей/ликвидбейс + завернуть это все в докер и развернуть на хероку.
Любое вкатунское тестовое от 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 апи на спринге + постгрес + авторизация спринг датой + сваггер + флайвей/ликвидбейс + завернуть это все в докер и развернуть на хероку.
Официальные доки и туториалы спринга, baeldung, доклады Борисова. Еще видосы Алишева говорят годнота.
Ну и само собой гуглишь и копипастишь все это в процессе работы с горящей жопой.
Я всё перечисленное уже смотрел, но даже базовой картины не смог сформировать. Всё бессистемно. Борисов дак вообще в какой-то своей вселенной живёт и о чём рассказывает - не понятно. У Алишева вроде норм видосы, но там только начало. Остальные он продаёт курсом платно на каком-то сайте.
baeldung - какой-то прикол. Там статьи вообще ничего не описывают. Я тоже могу сотню таким написать ни о чём. Типа нам понадобится джава, спринг и мавен. Теперь пишем хеллоу ворлд. Всё, вы изучили спринг.
Доки - это справочник, а не учебник. А нужен учебник.
>>368141
А инфу где брал?
URL[] url = new URL[2];
url[0] = new URL("https://tartar-sous.zip");
url[1] = new URL("https://ket4yp.zip");
Лол, охуенно придумал. Сяпки.
Хз
Написал на ебальник твоей мамки, петухлинщик.
Видел кучу таких. В основном это спринг + ангуляр. Не рекомендую такой путь. Нихуя не дает.
>Доки - это справочник, а не учебник. А нужен учебник.
Хуявочник.
Ни один копроучебник не объясняет спринг лучше и лаконичнее, чем
https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core
Если после этой доки и построителя/потрошителя ты не понял спринг, то варианта два:
1) ты долбоеб
2) рано тебе ещё понимать спринг. Напиши пару проектов без него и может в процессе придет понимание нахуй он нужен
Я бы это добавил в том месте, где ты собираешь контекст. Хотя, если это бизнес требование, то , возможно, декораторы для аудита я бы добавил в отдельный модуль
А какой рекомендуешь?
Внутри Java разработки какие есть специализации?
На какой стул самому можно сесть, а на какой мать посадить?
Какие вилки для разрабов с годом опыта? 6 мес опыта?
Своя квартира на Кирочной есть?
че вообще спросить то хотел?
Как оказалось, чтобы Таймлиф прибиндил результат заполнения формы к респонзу как объект, обязательно необходимо, чтобы входящий с реквестом объект, с которым надо поработать, имел в контексте соответствующий @Компонент (правда, если это спринг-бут, то для тебя это будет просто классом). Если все это соблюдается, то от формы отлично ловятся 2 и больше объекта. Но если ты отправил в запросе просто какую-то хуиту типа
model.addAtribute("myXyita", "text for replacing");
то, хотя в форме ты сможешь получить к нему доступ, обратно он уже не вернется, потому что, видимо, из строки нельзя создать бин.
Также, судя по всему, по причине того что все так устроено, к форме можно прикрепить два объекта одного типа при отправке, но вернуть сразу оба не получится (если в аргументах пишешь MyObj obj1, MyObj obj2, Model m, то объекты оказываются совпадающими, а в модели он один лежит)
Не знаю зачем я все это высрал. Судя по всему, с этим таймлифом кроме меня никто не ебётся тут
Как-то тут сложно наворочено, но у меня была примерно такая же проблема. Я хотел id род. сущности перекинуть через модель в другой метод контроллера, чтобы дочернюю залупу через него получить, но никуя не получалось. В итоге сделал класс с единственным полем, чтобы как раз этот айдишник и перекидывать - вроде сработало. З.Ы. Вроде как можно модель вместе с айди сохранить в сессии через аннотацию, но я не пробовал.
Мдэ, я кстати немного поторопился праздновать. Сейчас детально присмотрелся как все работает, и работает оно хуёво: если передаешь два объекта, у которых есть поля с одинаковыми именами, например name, то даже обратившись на форме к этим полям отдельно th:field="${key1.name}" и th:field="${key2.name}", в итоге получаем такую хуйню, что эти имена не достаются как положено каждому объекту своё, а конкатенируются через запятую и пихаются в оба объекта. Пиздец я хуею какая в этом логика.
>Ничем, лучший паттерн в джаве.
Билдер позволяет создавать красоту - не спорю. Но он яро противоречит хуевой туче принципов программирования. Например, билдер должен знать об изменениях в других классах - добавляешь новый функционал - будь добр добавить его ещё и в билдер. Когда я первый раз с этим столкнулся, списал всё на то, что я работал с говнокодом и такая запутанность зависит не от меня. Но сейчас встретился с ровно той же ситуацией в полностью моём собственном коде. Нужна замена билдеру, которая не зависит от изменений в других классах.
Шизло, тут вообще не про петухлиновские билдеры речь идёт, мы говорим о билдерах с нагруженной на них логикой, которые создают маленькие объекты с одним полем.
Кинь сюда. Не могу спиратить данное произведение искусства. Совесть не позволяет
Хуйло, ты хотя бы понимаешь что у бугаенки в той книге 4 главы всего?
>добавляешь новый функционал - будь добр добавить его ещё и в билдер
ваще пахую
ломбак уплатит за все
Билдер вспомогательный класс для того, который ты создашь. Меняется основной класс -> меняется и билдер, ибо он создан только для основного класса
он строит супер билдеры
Если пишешь код не как мудак, то тебе билдеры чисто для основного класса нахуй не нужны будут. А если и требуется, то умный билдер, который в себе часто имеет больше логики, чем сам класс. Вот такие я и хочу на чето заменить.
У меня есть делегатор команд, который в зависимости от обстоятельств перенаправляет обработку команд к другим обработчикам. Инфа о том, что и куда перенаправлять хранится в мапе DelegateKey-CommandExecutor. Просто так сходу сделать мапу сложно, в конструктор какого то класса заасунуть вообще не возможно. К тому же, при делегации могут возникнуть дополнительные проблемы, которые тоже нужно как то обрабатывать, типичная - делегатор не знает, кому делегировать команду. На помощь приходит билдер, который грамотно управляет всей этой хуйней и превращает создание хэшмапы делегатора в что-то сродни декларации аннотаций, когда не нужно задумываться о внутренних дебрях делегатора, просто декларируешь "хочу сделать так" и всё.
Но, те проблемы, внезапно возникающие при делегации, никуда не делись. Они все ещё могут вылезти когда то. И если вдруг у меня в будущем появится задача при желании вводящего команду посрать прямо во время ввода команды отправлять ему рекламы унитазов, и физическая возможность отследить желание посрать, мне придется менять делегатор с билдером, а чтобы еще и обратную совместимость не поломать - допиливать различные анальные конвертаторы/провайдеры/сервисы. В общем, я хотел сказать, что класс билдера реактивно разрастается на сотни почти идентичных строк, а добавление какого то удобного функционала часто заставляет удваивать число методов.
В целом, то, что я описал, это проблема вообще всего, но я в других местах как то решал эти проблемы, а вот на что паттерн билдера заменить не знаю.
Лучший курс по gradle: https://ru.stackoverflow.com/questions/1030296/Перевод-с-gradle-на-maven
>>добавляешь новый функционал - будь добр добавить его ещё и в билдер
Да, это хуево, мапер конечно же лучше, но и не надо хуячить билдер везде. Я его для всяких фильтров использую - когда из 10 полей пустыми могут быть все и это норма.
А если уж завязался на билдеры - то пиши тесты или смотри внимательно в постмане что там возвращается.
>>Нужна замена билдеру, которая не зависит от изменений в других классах.
маперы ебашь, им похуй что там во что трансформировать, лишь бы поля назывались одинаково.
Почему нельзя заменить кастрюлю шкафом?
Пиздишь
>>делегатор не знает, кому делегировать команду.
А кто это знает? Сам делегат сможет это понять его говно или нет? Или это тоже путем гадания на хэшах решается?
>>что-то сродни декларации аннотаций
>>хочу сделать так" и всё.
не понял, аннотацию ты куда вешаешь? Ты просто хочешь чтоб задача решилась и делегаты сами разобрались кто пойдет драить очки?
>А кто это знает? Сам делегат сможет это понять его говно или нет? Или это тоже путем гадания на хэшах решается?
Делегатор вычисляет делегейт кей и ищет по нему того, кому переслать команду. Если не нашел, кого заставить обрабатывать команду - возникает эта проблема, и ее надо как то решать
>не понял, аннотацию ты куда вешаешь? Ты просто хочешь чтоб задача решилась и делегаты сами разобрались кто пойдет драить очки?
Я говорю с помощью билдера "хочу, чтобы если у команды не было субкоманд никаких, то драил очки SichovExecutor, субкоманду "pidor"обрабатывал ErohaExecuror и тд, например:
public CityCommandTarget {
....super(
........new CommandDelegatorBuilder()
............delegateSubCommand("new", new CityCreateCommandTarget())
............delegateSubCommans("delete", new CityDeleteCommandTarget())
............build();
........)
....)
}
Используется один для настройки локального сервера приложений (только для разработки, в проде не юзается), да и тот можно выкинуть и заменить на exec-maven-plugin.
>Я говорю с помощью билдера "хочу, чтобы если у команды не было субкоманд никаких, то драил очки SichovExecutor, субкоманду "pidor"обрабатывал ErohaExecuror и тд
В итоге, сама реализация делегатора надежно инкапсулируется, и вообще не важно, что возвращает билдер, главное, чтобы он мог команду обработать
>да и тот можно выкинуть и заменить на exec-maven-plugin
Вот, а я как раз думаю что лучше, использовать этот плагин, или написать свой. Второй вариант мне кажется будет понятнее, параметры там можно удобнее задавать и т.д. Какие еще плюсы и минусы у своего пдагина?
Никаких плюсов. Одни минусы.
Если часто будешь юзать этот плагин с разными параметрами, то пиши, а если надо один раз настроить и забыть, то не стоит того, хватит и exec.
>>Делегатор вычисляет делегейт кей
Все же думаю можно было бы собрать лист бинов поставив там квалифаеров над листом(или мап, но хз как там с автовайрингом, мапу можно в пост-констракте сделать если в нее сразу не инжектит), чтоб собирать ерох которые нужны на эти команды, а ерохи пускай сами собирают лист сычевых кто будет это выполнять(на основании того что за команды в конструкторе получили, например). А то получается (продолжая армейскую аналогию) комбат сам решает кто траву красит и кто асфальт подметает, вместо того что задачи поставить офицерам. Но зато инкапсуляция, хуе-мое. Никто не ебет что и как делать кроме главного.
Со спрингом просто вместо билдера ебаться со сборкой будет спринг, добывая все из контекста, тебе только квалифаеры развесить надо кто что умеет и где нужен.
Но без погружения в логику тут хз. Как там эти билдеры внутри устроены неизвестно. Может иначе хуйня выйдет и так задумано. Это просто взгляд со стороны спринг-макаки.
>>Если не нашел, кого заставить обрабатывать команду - возникает эта проблема, и ее надо как то решать
С моей точки зрения - это задача аналитика, пускай выдумывает какое дефолтное поведение должно быть. Эксепшен на все ебало, оставить очки грязными, самому идти драить.
Думаю 100к+ скорее исключение. Я бы не гнался за деньгами в начале, а то можно попасть в ловушку, когда уровень задач будет соотвествовать зарплате, но не скиллам и вместо продуманных решений будет копипаст низкопробный.
Похожая тема, могу визуально вспомнить как выглядел код, какие отступы, были в листинге, лол. Но воспроизвести прочитанное не могу. Надо писать код сразу же, чтобы закреплялось, периодически повторяя.
Просто чтение это юзлесс кал. Надо читать и пересказывать прочитанное кому-то, чтобы он понял. Желательно челам на собесе. Если поймут они, значит и ты понял. Начнут задавать вопросы, значит ты обсерился в понимании
ADHD, it's over. Построить карьеру программиста сможешь только сидя на веществах типа риталина
Ну или Шилдт просто говно ебаное, распиаренное компанией пидорасов ака Oracle
Ты прорабатываешь примеры на компьютере?
Да не, нихуя, как раз комбат только делегирует задачи офицерам, а конечные действия выполняют конечные выполнятели. А с бинами у тебя получится огромная неповоротливая неинкапсулированная нечииаемая неподжерживаема хуйня, знаем, проходили.
Переходи на Хорста Весселя и дрочи сурсы кода в иде. Найди задачник, например степики и порешай его.
Был свой кастомный кодогенератор.
>>начал читать Шилдта, уже понимаю, что я нихуя не понимаю.
Возьми книжку попроще упражнения - все нахуй, просто базу надо понять, на свинге можно дропать
Потом вернешься к хорстману/шилдту - уже будет понятно. Наверное, я их не читал все равно, учил сначала по видосикам от индусов, а потом уже по докам
if - антипаттерн.
Ор
В дженкинсе есть текстовые поля, чекбоксы и выпадающие списки, что ещё тебе нужно?
Написать свой плагин для дженкинса, либо поискать существующий.
Нужно запилить телеграм-бот, которому дают данные, он подставляет их в документ и возвращает готовый ПДФ (пока этого достаточно). Вот прям чтобы челик просто быстренько потыкал в телеграме и получил результат. Такое же возможно?
С ботом сам разберусь, а как грамотно сделать шаблон документа? Чето в инете хуеты понаписано, а дельного нифига. Там будут и таблички(количество строк всегда разное) и картинки (шапка и подписи).
Пилить html/xml и потом сторонними сервисами конвертировать в pdf? Сразу pdf заполнять? Юзать штуки типа JasperReports (в душе ниебу что это, просто наткнулся в гугле но разберусь если че)?
Дайте стек пож, как это у вас "айтишникау" говорят...
Html хорошо перегоняется в pdf через встроенный псевдопринтер в браузере, а для шаблонизации html есть куча инструментов. Насчет полей в pdf хз. А вообще апачи уже все наверняка сделали.
>рез встроенный псевдопринтер в браузере
Так мне нужно чтобы не было ничего кроме телеграма.
Грубо говоря: чел вбивает боту "Hello World" -> получает pdf (сверху шапка с картинками, по центру "Hello World", снизу фамилия-подпись). Ну это все образно говоря.
Подразумевается что чел находится вне офиса, пеки под рукой нету, а ебаться с заполнением таблиц в ворде на экране телефона ну вот совсем не хочется. Телеграм - самый быстрый и доступный способ.
Встроенный принтер тоже на чем-то написан, и скорее всего для конвертации html в pdf уже есть библиотеки, я вот к чему.
Да, зубрить junit, testng, моки, spring test, иначе не перезвонят.
В разных конторах по разному. Где-то забивают на тесты вообще, где-то без этого сразу заканчивают собеседование. Смотри по вакансиям в твоих пердях. Если ты живёшь в Мухосрани на 200к человек и там всего 3 конторы, а JUnit требуется только в одной вакансии, то прежде, чем туда идти, лучше знать, чем не знать.
Че там зубрить, долбаеб. Весь джунит - это запуск метода при компиляции и отлов его эксепшенов.
В твоей матери не используют DDD, DDD подходит к абсолютно любому языку программирования как принцип и как идея
Пруф.
Я бы тебе не советовал работать там, где тестов нет.
В подавляющем большинстве это не очень места.
Правда вкатунов часто могут на собесах не долбить по тестам, типа на месте научишься. Меня из пяти собесов по тестам спрашивали на одном.
Сейчас я устроился в место, где тесты писать принято, как минимум на апи с базой в тестконтейнере. А мой ментор вообще сказал писать еще немного больше тестов. В итоге на 800 строчек кода на спринге - я написал 90 тестов. Сперва это бесило, особенно старые тесты дописывать и переписывать при внесении новой фичи. Но теперь я привык и мне даже комфортнее как-то.
Да и вообще я на тесты больше времени трачу, чем на сам функционал. Это значит, что работодатель может себе позволить тратить мое время на тесты(и даже на рефакторинг), а значит это не совсем потогонка.
А что нужно знать по написанию тестов?
Как написать инетграционные тесты на springe? Или юнит-тесты с использованием мокито?
Т.е. чисто практические навыки или рассказать как например мокито работает внутри?
https://timmson.github.io/java-interview/016-test.html
Ну перед собесами читал что-то типа таких вопросов. Ну и такое и спросили на одном.
Ну или по спринг-тестам тоже читал, не спросили, но в тестовых это нужно было: https://javarevisited.blogspot.com/2021/02/-spring-boot-testing-interview-questions-answers-java.html
>>там, где тестов нет.
Тут скорее дело в том кто эти тесты пишет - автотестер на уровне CI или разрабов ебут с говноюнитами с дохулиардов моков и обжект генераторов.
>>апи с базой в тестконтейнере
Хочу начать писать такие, но одного не пойму - как тестировать микросервисы? Тестконтейнер сможет поднять 5 микросервисов чтоб протестировать 1? Или тоже надо все мокать?
Мы мокаем все межсервисное взаимодействие. Да и есть куча эндпотнтов, после вызова которых нет обращения к другим сервисам.
Вот начинаю писать кафка консьюмер, пока хз как его тестить. Наверно придется делать моковый продюсер, но не понятно как с портами быть. Но во все тесты момвс я кафку уже замокал.
Ну и в чем он не прав?
Все ради обезумевших байтоебских пердоликошвайнов.
И так можно превратить. Все объекты делаем Object, а к методам долбимся по getMethod(String)
Если посмотреть его профиль, он только-только до алгоритмов добрался.
Время летит медленно, я в прошлом треде постил.
Варарги начали делать до введения дженериков. Вдумайтесь!
Уже превратили. Spring называется.
Груви?
>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.
Проиграл, название уровня /b.
> but the name is bad
Названия всех паттернов придумывал какой-то шизик. Так что не надо вникать в глубинный смысл, надо просто запомнить названия как термины.
Если название можно избавить от er без потери смысла - то паттерн, возможно, хороший. Если избавить не получается - паттерн кал.
Хотя, переменные можно исключить, там придумывать нечего, все равно их вне метода и твоего собственного класса не видно (а в хорошем коде обычно все переменные называются по последнему слову из названия класса). Методы тоже не так сложно обозвать. А вот красиво и понятно назвать класс - высший пилотаж.
Поныл.
Синглотн.
Хуя блять.
Тебе требования обычно от бизнеса приходят. Если то пет, то любые. Самое простое - среднее, мин/макс
Контроллер и диспетчер - антипаттерн.
new Lister()
жук клевый. Конечно нет спрингдатовской халявы из коробки, зато нет мозгоебли с кешами и персистенс контекстом хибера и жпкуэлями.
Вот я так иногда натыкаюсь на свой код трёхлетней давности в проекте и думаю, какой же я говнокодер, как меня только не уволили.
Это пока работает, а скоро кабан скажет, что надо улучшить какую-то функциональность, ты лезешь в этот код, где костыли компенсируют друг друга, чуть-чуть его правишь - и всё ломается.
Постарайся сделать так,чтоб поломался не твоими руками.
Бредни про инкапсуляцию это для слесарей пишущих круды.
Настоящим инженерам, пишущим инфраструктуру оно ни к чему.
Ты че, долбаеб? Ты через магический шлюз долбишься прямо в кишки какой то хуйни, какая тут инкапсуляция?
Это уже 100% проверенная инфа, вот-вот должны объявить.
agakaksgagesh
Мне пагинации и спецификации только не хватает, заебывает немного ебля с фильтрацией, а какую то йобу типа спринговой сам писать не хочу.
Ах-ха-ха! А сколько было кукареканья от шарпоблядей, про асинки и тут внезапно зеленые треды.
Лол, шарпосвиньи как всегда, облизывают дрисню жаба господ.
Nigger moment
>Почему слесарей?
А а кто же мы еще? Не инженеры же мы, митов не кончали.
Конфигурируем спринг, соединяем куски готового кода со стековерфлоу.
Рабочая косточка.
Или не захостил, а поставил локально. Их действия?
В общем-то на Kotlin + Spring Webflux можно писать в императивном стиле. https://github.com/Kotlin/kotlinx.coroutines/tree/master/reactive/kotlinx-coroutines-reactor
Если верить гуглу, будет пикрил.
https://vaadin.com/docs/v14/flow/starters/bakeryflow/validating-license
Там есть и какой-то Vaadin license-checker.
А вообще, не используй Vaadin, забудь про него.
А, ну ладно.
> А вообще, не используй Vaadin, забудь про него.
А что использовать если хочу писать фронт не на эйштиэмэле, а на джэйве?
> А что использовать если хочу писать фронт не на эйштиэмэле, а на джэйве?
Смириться с html-программированием, это единственное, что осталось, нормальных альтернатив нет.
Vaadin в последних версиях упорно скатывается в веб-дрисню, уже качает ноду при сборке и что-то ею собирает, ещё там предлагают какой-то свой набор компонентов для JS, и непонятно, какой смысл тогда от них, если это мало чем отличается от тех же реактов-ангуляров (хотя компоненты на Java ещё можно использовать). Аналоги ещё хуже: либо какие-то сырые ноунеймы (можно найти на гитхабе), либо работают только на EE-стеке и выглядят как шаблонизаторы (wicket, gwt).
У html только один минус "не хочу".
Джависты, пояните ньюфагу - почему в вакансия иногда указывают ide Eclipse?
У моей есть, но купить не могут. У большинства был куплен ключ, а потом был на полгода в конце февраля. Кто-то будет сидеть на вечной старой версии, купленной в прошлом году.
Но вот те, кто пришел недавно - сидят на всяких левых лицензиях, типа учебной.
Там никаких новостей нету по этому поводу? Половина от полгода кончились.
Как бы мой тимлид не решил уйти на эклипс.
> Там никаких новостей нету по этому поводу?
Когда основная "новость" (обсуждаемая в /po/ и /news/) закончится, тогда, может, через некоторое время и появятся новости по лицензиям.
>повешу аннотацию которая заставляет орм долбится прямо в private поля
>и делать на основе этого какую то логику
>разрежу класс на кучу полей рефлексией
>которые ещё и потом можно будет увидеть в базе данных самостоятельно
>инкапсуляция ёпта
Чтобы внутренняя реализация не торчала и на кишки завязываться не приходилось. Стоит рядом с принципом полиморфизма.
Через аннотации ничего не торчит. С точки зрения аннотации тоже частично инкапсулируют данные. Инкапсулируют в di-контекст, контекст это большая область видимости, но я бы не сказал что она совсем глобальна.
А то что там под капотом инкапсуляция нарушена - я уже отвечал. Там господа-настоящие-инженеры. Им можно ничего не инкапсулировать.
Идея вообще хороший пример того, как не надо писать на жабе.
Друг, я не программист, сильно в этом не шарю но пытаюсь.Делал только свои web странички, на html.
Но вот сестра моя на питонщика учится и кодит.Они там программируют руку робота - баристы и вроде у них что то получается.
Получается, что ты пиздишь, что питон только для нейросетей и спам ботов.
Год "программирования" на плюсах за спиной, если
то важно.
Питон - для всего, где программирование не сильно нужно и не сильно заёбисто.
Помимо
>нейроночек и спам-ботов для ВК
Это ещё
1. датасатанизм
2. тестировщики
3. всякие там роботы пылесосы и умные дома
4. мелкий бекенд
5. девопс
Вот теперь перечислили всё, а суть особо не поменялась.
Чел, делай тестовые:
https://github.com/Raiffeisen-DGTL/cib-interns-test-task
Читай практические книжки:
http://libgen.rs/book/index.php?md5=B72614F796DA3A3740779709203220F7
Смотри практику:
https://www.youtube.com/playlist?list=PLU2ftbIeotGqSTOVNjT4L3Yfy8jatCdhm
Если что-то неясно идешь на стековерфлоу, баелдунг, потом в гугл.
Если что-то не можешь нагуглить - спрашиваешь в https://t.me/javastart или в этом треде.
Все. Я все что мог - я тебе дал.
>Но вот сестра моя на питонщика учится и кодит.Они там программируют руку робота - баристы и вроде у них что то получается.
Классика, команда из 20 прогрессивных леволиберальных маркетологов-сммщиков-траффикменеджеров-дизайнеров-пидорасов-бизнесцентрпосетителей-фрилансеров подставляет анус спонсору этой хуйни программирует уже хуй знает сколько времени таску на 4 часа с результатом "вроде чтото получается"
>>374998
Я тебе на твою мать внимания не обратил, петухонщик ссаный, хули ты забыл в джава треде, уродливое чмо петушарное блядь?
>>374620
> я уже отвечал. Там господа-настоящие-инженеры. Им можно ничего не инкапсулировать.
Я тоже уже на это отвечал, мамкин инженер.
>>375014
Никак. Спринг - раковая опухоль джавы.
Он в качестве замены орм переизобрёл инлайн sql, ради избавления от которого ормки и создавались. Хотелось бы глянуть где у него в проде эти sql-speaking objects крутятся.
Оригинальное название - и есть петухон.
Я жук использую для сикулей. Ну а хибером со spring-data-jpa охуенно делать прототипы крудов для микросервисов. Переписать потом недолго.
И там в комментах бугаенке по русски написали, что не надо мешать теплое с мягким и мечтать "реляционную модель инкапсулировать внутри объектов".
>>375027
За 12 лет на двачах первый раз кто-то сохранил мой пост.
Чувствую что не зря вкатился в джава-слесари.
Никак, иди нахуй. Нет инфы про спринг. Н-е-т-у. Ноль.
>А то что там под капотом инкапсуляция нарушена - я уже отвечал. Там господа-настоящие-инженеры. Им можно ничего не инкапсулировать.
Было бы забавно послушать оправдания >>375033 >>375028 этих петухов, на тему того что у внутренних классов генерируются package private аксесоры для полей. Что когда инженерам Sun было не досуг допиливать JVM, они просто взяли и срезали угол. И ничего, не кто не бухтит что классы в Java дефетные из-за этих аксесоров.
инкапсуляция это про свойства
Нельзя.
Ахахах, узнал его по шизоидным высерам.
Полезно для разного рода polling, чтобы не загружать проц на 100%.
Нахуй ты пишешь не на 8 жабе?
Петушня ебаная, инкапсуляция это не про уровень доступа, тупое ты мудило, инкапсуляция это про постройку структуры, мразь тупая, причем тут костыль, использование которого сродни рефлексии, тупоголовое чмо?
Рванула твоя мамаша от моей кончи внутри нее, выблядок петушарный, хуйло тупое блядь
Мы вам перезвоним.
>>казывают ide Eclipse
Какое то супер легаси, которое зависит от плагинов эклипса, возможно даже самописных. Других причин привязываться к этому куску говна не вижу.
>>у компании нет денег
Компании обычно похуй на чем ты пишешь - на своей лицензии, на ворованной или вообще в комьюнити.
>>374481
>>Когда основная "новость"
Скоро начнется новая "消息" и на текущую всем странам кроме соседей станет похуй.
>>тимлид не решил уйти на эклипс.
так пускай уходит, сам пиши на идее.
чел, тебе нужен developers.giphy.com там аккаунт создаешь и в дэшборде будет апиха
Хуясе у даунича небомбит!
Это же ты, мудак слабоумные пиздел про:
>>374516
>повешу аннотацию которая заставляет орм долбится прямо в private поля
>разрежу класс на кучу полей рефлексией
>инкапсуляция ёпта
а теперь завилял жопой
>причем тут костыль, использование которого сродни рефлексии, тупоголовое чмо?
https://www.yegor256.com/2022/06/05/reflection-means-hidden-coupling.html
Прописные вещи
С примеров обосрался. Вроде бы нормальная тема, но примеры не позволяют донести мысли, скорее наоборот. Складывается впечатление, что у Егорки все хуже и хуже дела с головой
Где она? Должна быть синяя кнопка "add application", но ее просто нет. Я даже с разных браузеров заходил.
Вот что то непонятное мне кинули... Не работает.
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
Вот что то непонятное мне кинули... Не работает.
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
При чем здесь капли? Вон скрин, там не появляется кнопка, чтобы ключ запросить. Это сайт глючный или я что-то не так делаю?
Решил проблему, зайдя с телефона. Почему-то на компьютере кнопка не отображалась.
Появился второй вопрос. Как из JSON-а вытащить одно значение? Мне сервис возвращает вот такую агромаду, а мне нужно только взять поле url. Не хочется создавать отдельный класс под это, как это можно спринговым парсером сделать?
В принципе, можно просто регулярным выражением выцепить, но мне кажется, это топорный подход.
Сам спросил, сам ответил. Есть замечательный класс JsonNode с методом at().
Ты пытаешься LegacyLauncher пердолить с нуля? Там много конфигов нужно, которые не описаны в доках, я экспериментальным путём добывал. Как-нибудь напишу пост в блоге на эту тему.
Мне не нужен легаси, я обычный лаунчер на swing пишу.
Мне бы кто обьяснил как запускается forge, обычный я знаю как запускать...
Я не понимаю как вызвать FMLTweaker, какой метод вызывать ?
Хм.... Можно через ProseccBuilder батник запускать, но
это будет по читерски. Лучше использовать reflection api, но там тяжело будет.
Нет, какой-то неизвестный фреймворк совсем, трудно разобраться(
Я только на дургасофт натыкался. Сука весь нижний рунет перерыл.
Слишком много инфы по спрингу. Идёшь в пятёрочку за пивасом, и тут хуях - и инфа по спрингу.
ИДИ НАХУЙ СПРИНГОДЕБИЛ
ИДИ НАХУЙ СПРИНГОДЕБИЛ
ИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛ
ИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛИДИ НАХУЙ СПРИНГОДЕБИЛ
Нет. Кому ты собрался 500 возвращать, если в тебя шедулед метод зафейлился?
Причем тут 500?
Оно же и так трейс в лог запишет. А так, насколько мне известно, для каждой аннотации свой обработчик ошибок
Чтобы официально сообщить вам, что мы не готовы продолжить общение.
Так они уже сообщили, что не прошел задание. Им заняться больше нечем?
Скачай с торрентов курс от Отуса. Довольно информативно, но увы, там не прикрепили сами задания. Алишева посмотри, у него уроки про самые основы. Для углубления можно Крейга Уоллса почитать.
1 сентября.
На всё, кроме DTO/Entity.
А я Виталик.
Долбоебы потому что. При нормальном ООП программировании ты только создаёшь объекты и изредка вызываешь методы, 99% логики- в конструкторах, в которых тесты не нужны (установку значений в поля тестировать что ли?).
Именно тебя заставляют, раз ты ничего другого не видел и думаешь, что "99% логики в конструкторах" встречается повсеместно.
Даунич сравнил код в конструкторах и логику в конструкторах. Поздравляю, мы вам перезвоним.
Егорка же выпал из окна?
Для тестового - используй мокито+ жюнит/спрингтест.
>>или вообще для всего?
Можно онпозитории не тестировать. Покрывай сервисы и контролеры.
>>Что почитать на эту тему?
если тебе гайд нужен - то баелдунг
если теория - то деда мартина можно почитать, но вообще эта хуйня с тестами не работает так как он пишет.
Я только на пыхарей и 1сников особого хейта не замечал
Комплексы. Если бы не существующая кодовая база джавы на планете, на джаве 99% разработчиков бы никогда не стали писать (что сейчас и наблюдается в евросоюзе)
Наоборот все ненавидят джавистов. Джависты - спокойные гигачеды, тратящие свои силы не на ненависть, а на написание качественного объектно-ориентированного кода.
Никого не ненавижу за просто так, вот ещё.
Придёшь ко мне в тред и будешь толстить - тогда и буду, но не абстрактную категорию, а вот тебя лично.
зачем говорить такую чепуху?
за всех кого_то_там не стоит говорить, если у тебя бинарное триггерное мышление -- то тебе судя по всему тяжело приходится)
>Переходи на Хорста Весселя
По запросу Хорст Вессель гуглится нацистский активист, штурмфюрер и автор текста гимна НСДАП.
Ты бы не мог уточнить, что имел в виду?
Именно это и имел в виду. Прежде чем писать на джаве, нужно ознакомиться с его книгами. Я надеюсь, ты хоть мейнкампф то прочитал?
Напоминаю базу:
Петухонщики - народ-гной, народ-мразь, народ-пидор, народ-червь, хуже них уже нет. Сейчас я возможно задену за живое и ты заплачешь, но ни у одного из петухон-треда нет работы, петухонщики живут на мамкины деньги, успокаивая себя в интернетах тем, что они крутые погромисты.
Зато кукарекают петухонщики больше всех. Они больше всех рассказывают в зарплато-тредах о своих маня миллионах, ведя себя по блядски и выёбываясь перед не-погромистами, явно привлекая к себе тонны негатива. И ладно бы ненавидели только их (потому что реально есть, за что) - нет, из-за них с ненавистью сталкиваются вообще все программисты, даже джависты, на которых в целом держится весь IT-бизнес, которым пользуется каждый из нас (петухонщикам приготовиться к слёзкам: на их петухоне не держится вообще ничего, кроме самых гнойных отраслей IT - нейроночек и спам-ботов для ВК (да и даже любители нейроночек недовольны тем, что им приходится ассоциировать себя с таким гноем, как петухонщиками, остаются только спамеры в ВК - вот это весь петухон)).
Петухон, в целом, сам по себе ничего плохого не представляет, но вот комьюнити его - сплошной гнойник. Простота вката привлекает скам общества - мелкобукв, европрокладок, мамкиных нитаких как все, ЛГБТ/фем мразей и подобных. Неудивительно, что ко всем вышеперечисленным группам населения, даже за пределами петухона люди относятся с нескрываемой ненавистью.
Очень грустно, что из-за такого большого гнойника, но небольшой части программистов приходится страдать всем.
>Я надеюсь, ты хоть мейнкампф то прочитал?
Поднял свой майнкампф сервер с парой самописных модов.
Пиши с большой буквы, во первых.
Во вторых, поведение объекта будет зависеть от того, что ты в него запихнёшь при создании его. В этом и логика. Пример - пик1.
Пик1 немного ебанутый, но зато полностью отражает суть сказанного. Пик2 - более реалистичный пример.
Хорошо ещё, если только троллит, а не обчитался умных книжек.
>Ты бы не мог уточнить, что имел в виду?
Core Java Volume I & Core Java Volume II by Cay S. Horstmann
Неуч - твой мертвый спидозносифилисный батя, хуйло тупое. Ты сегодня уже писал небойлерплейтный класс с сеттерами и вызовом чтения данных из БД в статическом инициализаторе?
Но ведь олл аргс консрактор сосет при наследовании. Как так у тебя получилось его повесить на твою элегантную структуру с 20 уровнями наследования?
> ни одного @AutoWired не прилепил к приватным полям
Кстати, считается плохим тоном, надо якобы делать конструктор @Autowired и в нём сеттить приватные поля ради сомнительной возможности быстро сменить DI-контейнер на другого вендора.
Считается плохим тоном не только поэтому. Ну и, как бы, я поэтому и подъебнул его этим, потому что это раковый говнокод в кубе.
Кто мешает super использовать? Да и можно разные конструкторы определить.
Устройся на работу.
Деды на перфокартах антипаттернили на фортране.
Руками пиши свои документы ручкой на бумаге и начальнику в кабинет сам носи.
Ну так я и говорю, при нормальном программировании ты всегда можешь повесить алл аргс консрактор.
Вкатуны не нужны.
Вообще не то.
Если отцу завтра оторвут руку, у меня руки останутся.
В джаве это не так.
И поэтому наследование в джаве отсасывает член.
> Если отцу завтра оторвут руку, у меня руки останутся.
Наследование в ООП не про это. Оно про наследование догов от анималов, а отец и его дети - это один и тот же вид.
Не в курсе, но как это поменяет тот факт, что
>наследование в джаве отсасывает член
Ты бы хотя бы блоха почитал, не позорился.
Егор Бугаенко, я приношу извинения.
Я был неправ, действовал сгоряча, эмоционально!
ООП - круто!
Сын функциональщицы, не позорься...
Теперь понимаю, почему тесты не нужны. Еще свой код под них подстраивать.
Можешь тестировать корректность Model.
А вообще, у нормальных людей не обычные контроллеры @Controller, а рест-контроллеры @RestController, которые возвращают не имена страниц, а объекты, которые потом превращаются в JSON и парсятся клиентом. Такие объекты тестировать представляется более разумным.
>А вообще, у нормальных людей не обычные контроллеры @Controller, а рест-контроллеры @RestController
Да я в курсе, мне просто в задании нужну именно картинку вывести. Я решил не заморачиваться, и тупо сделал страницу, куда Таймлифом будет подставляться ссылка на нее.
А кстати, можно ли в ответе вернуть картинку?
Нельзя, только HTML с этой картинкой.
Тесты не нужны не потому что спринг нетестабельное говнище, а потому что это лишняя трата времени.
Скажи это тому шизику, который дал анону такое тестовое задание.
>спринг нетестабельное говнище
А есть альтернатива? Джакарта? Что-то не вижу, чтоб в вакансиях ее вообще упоминали. Ах да, забыл, Джава же сама по себе антипаттерн.
Все, что делается со спрингом можно сделать без него и даже гораздо быстрее.
Это все термины сприга. Тоже самое спросить "а как объявить спринг компонент без спринга". Ты скажи конкретную задачу, которую без спрмга сделать нельзя.
Съебался отсюда в страхе, шарпосвин.
Какие нахуй термины спринга? Тебя слово "сервис" смутило? Это общий термин, рест-сервисы пишут на всех языках.
Конкретную задачу то назови. Что ты хочешь сделать, и почему тебе так нужен сринг.
Написать REST-сервис. Он должен уметь принимать HTTP-запросы с разными урлами и методами, брать тело в виде JSON, обрабатывать и возвращать ответы с другими JSON. Как бы ты решал эту задачу без спринга, чтобы было быстрее?
Еще раз, задача какая? Это не задача. Кабанчик таких задач не даёт. Он часто сам даже про жсон не знает.
Так тебе бизнесовая задача нужна, а не техническая?
Предметная область в этом вопросе значения не имеет, рест-сервис может быть хоть для справочника клиентов, хоть для расчётов с банком, а суть одна и та же. И неважно, что было в изначальной постановке от кабана. Технология клиент-серверного взаимодействия должна быть универсальная, и спринг с этим справляется. Если не спринг, то что? Речь не про бизнес-логику в доменных объектах (её можно легко написать без спринга), а про её взаимодействие с вебом.
Допустим, тебе лень читать документацию или книги про очередную библиотеку, хочется быстро сделать то, что тебе нужно, и забыть. Ты в гугле вводишь "libraryname tutorial" и "how to do X with libraryname", открываешь первую попавшуюся ссылку с краткой васянской статьёй, где описано, как пользоваться либой, не вдаваясь в подробности. Такие статьи и есть мурзилки.
Ясно, спрингоклоун слит. Впрочем, я все ещё жду бизнес задачу, в которой нужен чаринг.
И как в одной такой мурзилке можно описать все возможности Спринга?
Орирую с ограниченного джуна крудошлепа, который ниможит выйти за рамки задач от тимлида, лол!
мимо
Представь, что да. Отказаться нельзя, уволиться нельзя, спринг использовать нельзя.
И семёнить тоже нельзя.
Кабанчик просит "сделоть сайт чтоб можна была корованы грабить". Если кабанчик просит что-то более глубокое - он ещё и лид по совместительству. Вот ты мне задачу от кабанчика и предоставь, которую без спринга по твоему мнению невозможно решить.
> Кабанчик просит "сделоть сайт чтоб можна была корованы грабить". Если кабанчик просит что-то более глубокое - он ещё и лид по совместительству.
Представь, что у тебя такой кабанчик-лид.
> Вот ты мне задачу от кабанчика и предоставь, которую без спринга по твоему мнению невозможно решить.
Можно, вопрос на чём вместо спринга и зачем.
Можно еще представь, что у тебя кабанчик просит объявить спринг компонент без спринга, только зачем?
Я тебе блядь говорю, что твоя задача сходна с задачей объявить спринг компонент без спринга и ее будет затруднительно сделать без него, так как сама она поставлена неправильно и лид уже принял решение использовать спринг, и тебе в любом случае придется его использовать, тупое ты чмо.
И всё же это другая задача.
А кабанчик-лид принял решение запретить использовать спринг и всё, что с ним связано.
Кабанчик-лид умственно отсталый, если требует использовать спринг без спринга, в прочем, как и ты.
При чём тут спринг? Напиши REST-сервис без спринга, и всё. Любые технологии, но не спринг. Какие?
Написание рест сервиса предполагает использование спринга, тупое ты чмо, ровно также, как объявление спринг компонента подразумевает использование спринга.
Мне нужна задача более высокого уровня, задача от кабанчика, ещё не принявшего решение использовать спринг. Не предоставляешь задачу = слит, убежав роняя кал.
> Написание рест сервиса предполагает использование спринга
Не предполагает. Рест-сервисы вообще никакого отношения к спрингу не имеют.
> Мне нужна задача более высокого уровня, задача от кабанчика, ещё не принявшего решение использовать спринг. Не предоставляешь задачу = слит, убежав роняя кал.
Не предоставляешь альтернативу спрингу для написания рест-сервисов = слит, убежав роняя кал.
Мне не нужно использовать рест сервисы для решения любой из задач кабанчика, а ты зациклен на том, чтобы тебе, как тупорылому крудошлепу, тыкнули в ебло прямо, что нужно сделать. И тебе, логично, ничего, кроме крудошлепства на спринге ничего не доверят, и ты не способен думать, что без спринга возможно решить что угодно.
> И тебе, логично, ничего, кроме крудошлепства на спринге ничего не доверят, и ты не способен думать, что без спринга возможно решить что угодно.
Повторяю: спринг использовать нельзя. Доверили использовать что угодно, кроме спринга. На чём крудошлёпить, если не на спринге?
Крудошлёпить? Только на спринге, это лучший фреймворк для 80 iq крудошлепов. А любые задачи кабанчика можно решить без него.
> Только на спринге, это лучший фреймворк для 80 iq
А для 160 iq?
> А любые задачи кабанчика можно решить без него.
Молча используя спринг и общаясь с кабаном на языке бизнеса?
Для 160 iq нет единого фреймворка. 160 iq не пытаются решить всё и сразу через сринг. Для различных задач - различные библиотеки.
Повторяю еще раз, нельзя пытаться решить все и сразу с помощью одной хуйни, это антипаттерн "god object". А значит и единой замены для спринга нет, кмс его не могут заменить.
Ну ты можешь часть задач спринга заменить кмсами, но в целом каждую задачу нужно рассматривать отдельно.
gold hammer*
Я сто раз спрашивал про мурзилки, но никто не ответил. А вообще в детстве мне родители выписывали Весёлые картинки.
Пиздец ты дед.
Да, массив байт с хедером
Твоя мамаша в жире, а тред - в базе.
Razor лучше Thymeleaf, потому что поддерживает вложенные шаблоны, а через @ можно писать код шарпа.
Рейзор некорректно сравнивать с шаблонизаторами. Это скорее аналог JSP и GWT.
Я адепт бескомпромиссно чистого кода.
Вот это всё зубрить перед собеседованием ?
Мало просто вызубрить, надо понять. Если на понимаешь, всё равно сольёшься на решении тестовой задачи с алгоритмами.
Я умею кодить, понимаю что я делаю. Но вот на вопросы ответить не могу :(
В ДЖАНГЕ только хуйлоад.
Ты рофлишь? Любой, кто на джаве хоть что-то когда-то разрабатывал - как минимум знает разницу между jre и jdk.
Я например не знал подробностей, что jvm это всё-таки просто голая машина, без стандартных классов. Теперь знаю.
jre = jvm + те самые стандартные классы. Годится чтобы запускать, но не чтобы компилить. Сейчас по моему уже не выпускается отдельно и работодатели не должны это спрашивать соответственно.
jdk = jre + инструменты разработчика.
Но энивей, это не предмет зубрёжки, это предмет "я на этом разрабатываю и как я могу это не знать".
> разницу между jre и jdk.
Это старьевая информация. Сейчас нет такого явного разделения, все по умолчанию пользуются ждк. ЖРЕ нужен был для клиента, то есть либо умерший десктоп, либо майнкруфт. И gc в клиентском режиме не подрубают.
>Это старьевая информация. Сейчас нет такого явного разделения, все по умолчанию пользуются ждк
Я так и сказал, просто я и сам старьё, качал jre когда её ещё поставляли.
>либо майнкруфт
Хз, качаю jdk для майнсруфта.
Короче тот вопрос не шибко релевантен.
Для большинства простых задач переключение контекста системного треда будет перекрывать выигрыш от распараллеливания.
Думаю иногда даже зеленые треды бесполезны.
Плюс есть закон амдала.
А че там по модулям то? Вроде должны были даже стандартную библиотеку модульно поставлять, чтобы часть ее можно было бы не пихать в бандл.
На самом деле, ждк на сервере установлена не должна быть. По крайней мере, абсолютно не нужна. Ждк только для персональных компов, где идея стоит. Устанавливают ждк чтоб было усё по красоте и ради перфекционизма, потратить лишние 70мбайт места ради удовлетворения желания синдрома перфекциониста не так дорого.
ЖАБАТРЕД САМ НЕ ПЕРЕКАТИТСЯ
ПЕРЕКАТИ ЕГО, ПЕРЕКАТИ ЕГО ЕЩЕ РАЗ
ЗАЧЕМ МНЕ НУЖНО ЖДАТЬ ДО 2000 ПОСТА, У МЕНЯ НЕТ ВРЕМЕНИ ЧТОБЫ ЖДАТЬ СТОЛЬКО РАДИ ПЕРЕКАТА
ЛУЧШЕ ЕЩЕ РАЗ ПЕРЕКАТИТЬ ЖАБАТРЕД
Я ПЕРЕКАТЫВАЮ ЖАБАТРЕД ПО 3 РАЗА В ДЕНЬ
КАЖДЫЙ ПЕРЕКАТ ЗАНИМАЕТ ДЕСЯТЬ МИНУТ
Я ЖИВУ АКТИВНОЙ И ПОЛНОЦЕННОЙ ЖИЗНЬЮ
Я УСПЕШЕН И ПОЭТОМУ ЦЕЛЫЙ ДЕНЬ ИГРАЮ В ИГРЫ
А ПОСЛЕ ЭТОГО ПЕРЕКАТЫВАЮ ЖАБАТРЕД
ТУПЫЕ СПРИНГОДЕБИЛЫ ОДЕРЖИМЫ КУЧЕЙ ПОСТОВ ТРЕДА
А Я СВОБОДНЫЙ ОТ ЗАДРОТСТВО ЧЕЛОВЕК
СКОЧАТЬ БЕЗПЛАТНО И БЕЗ РЕГИСТРАЦИИ ELEGANT OBJECTS JAVA EDITION
КРЯК УЛЬТИМАТ КЕЙГЕН РАЗБЛОКИРУЙ ВААДИН
ЛУЧШЕ Я ПЕРЕКАЧУ ЕЩЁ РАЗ ЖАБАТЕРД
И ДОБАВЛЮ ШАПКУ, ШАПКА НУЖНА
Я НЕ ПЕРЕКАТЫВАЛ ЖАБАТРЕД НЕДЕЛЮ
ПОЙДУ ПЕРЕКАЧУ
В ЖАБАТРЕДЕ ВСЕ ПРОСТО И ПОНЯТНО
ОБЩЕНИЕ РАЗДЕЛИЛОСЬ НА ТРИ ТРЕДА. ЭТО ЖЕ ОЧЕВИДНО КАК ЭТО РЕШИТЬ
НАДО ЕЩЁ РАЗ ПЕРЕКАТИТЬ ЖАБАТРЕД
ПРИШЛО ВРЕМЯ ПЕРЕКАТИТЬ ЖАБАТРЕД
ККОКОКОКОКОКОКО
ЖМУ/ПИНУС ШВАБОДКА ПИТУХОН
КОКОКОКОКОКОКО
Не пришло, иди нахуй.
Человек и Декоратор.
Развёртывание на разных серверах - не единственное назначение микросервисов.
Смотрят чтобы этого говна в резюме не было.
Смотря где. Где-то без релевантной вышки сразу шлют нахуй, обычно это госконторы.
Но обычно, если нет вышки или вышка не релевантная, но есть опыт работы, могут взять.
Если нет ни вышки, ни опыта, это тоже вызовет вопросы.
На курсы не смотрят, с тем же успехом можно написать "изучил жабу в свободное время", и никого не ебёт, курсы, книги или что-то ещё.
>>Если кабанчик просит что-то более глубокое
Кабанчик говорит "сделоть сайт чтоб можна была корованы грабить. Кстати я вам уже нашел архитектора Джамала он вам расскажет какие технологии использовать надо (но делать все будете вы сами)."
Когда-то прочитал примерно половину на англюсике
Регистрация новых акков и переустановка софта? Раньше анонимно было, помню.
По запросу Сделать сайт, чтобы там не нужен был заебавший CRUD ничего не найдено.
Рекомендации:
Убедитесь, что все слова написаны без ошибок.
Попробуйте использовать другие ключевые слова.
Попробуйте использовать более популярные ключевые слова.
Возможно тупой вопрос, но...
Как работать с изображениями?
К примеру имеется профиль пользователя и я правильно понимаю что в этом случае мы просто держим Path-переменную(путь до изображения) в нашем объекте? Если мы отсылаем этот объект на view-слой, то запихиваем в Json только путь к изображению как строку или нужно сериализовать его? А если мы получаем этот объект, то изображение будет в виде массива байтов в Json'e, который нужно будет десериализовать, поместить в папку и сохранить путь в базе?
Любой динамический сайт предполагает как минимум круд. Кроме круда бывает специфичные фичи типа видеоконференций Zoom, вот и пили что-то подобное.
На Amazone и прочих зарубежных площадках смотри, можно заказать через специальные фирмы вроде бандерольки. Смысла в ру-изданиях вообще не вижу.
Нет. В геттере вообще не должно быть логики, только один return nickName. А логика его создания должна быть в конструкторе или ещё где-то.
Обычно изображение не пихают в жсон, а загружает его отдельно, получают линку на картинку, загружают жсон с полученной урлой
Это не геттер у тебя, и должен называться он соответственно. Например, buildLoginField().
Не надо передавать задачи объектов другим объектам. Не getLogin, а LoginFrame и show у него.
Дебил сука ебаный, ты че сделал, долбаеб
cringe...
Какой вообще смысл несёт класс Login? Ты его под поле с именем пользователя создал или под всю форму входа?
Если имя пользователя, в отдельном классе необходимости нет, а то у тебя даже не отдельная сущность получилась, а какой-то странный вариант фабрики.
Если вся форма входа, наследуй класс от какого-нибудь JFrame, в конструкторе создавай и настраивай поля, и весь объект Login добавляй в родительский объект.
Можешь почитать в книжках по джаве главы про Swing, там обычно адекватные примеры, как подружить ООП и Swing.
Спойлер: на работе гуй на жабе писать не придётся.
Login будет содержать в себе форму входа (логин, пароль и кнопка войти), класс Window это главный класс в котором находится форма. Я пытаюсь реализовать ООП таким образом... А на скриншотах выше был пример с одним полем.
Тогда точно делай Login отдельным фреймом, в нём собственный лейаут, а в Window просто добавляй его через add() и к полям не обращайся. Тебе тогда не нужны будут ни публичные поля, ни геттеры, по крайней мере до тех пор, пока не будешь обрабатывать значения полей (хотя там вместо геттеров можно передавать коллбек в Login и вызывать его при нажатии на кнопку).
✅ Accepted answer
The best answer...
о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.
Буквально первый день в джаве, не совсем понятна именно эта ситуация. Спасибо за ответ
У тебя нет пяти объектов, есть пять ссылок и три объекта. В отличие от объектов, ссылки не хранятся в куче, они хранятся в стеке, и удаляются сразу после выхода из области видимости, т.е. для локальных переменных это будет завершение работы метода или блока if/while/и.т.д. Объекты не удаляются сразу после того, как не осталось указывающих на них ссылок, они удаляются в фоне сборщиком мусора, когда тот сочтёт нужным почистить память.
Объект, который на 1 строчке останется, т.к. о4 и о5 ссылаются на него. На второй строчке тоже останется, т.к. о2 ссылается. Объект, созданный на 3 строчке удалится, т.к. на него никто не ссылается
Егор Бугаенко форсит специфичный подход к ООП, а нормальный подход объявляет антипаттерном.
Ни что ни попадя, а только антипатерны. Егор Бугаенко - чел, который просто и доступно объясняет, как нужно программировать.
> Почему тут все что ни попадя называют антипаттерном?
Думаю, это один дурачок семенит
> И кто такой Бугаенко, за что его все так любят?
Чел, который топит за Ъ ООП. Считает только свою точку зрения единственно верной. Из-за того, что мешает популярные фреймворки и довольно распространенный принцип написания продакшен кода с говном , бывает действительно по делу, вызывает НЕНАВИСТЬ у большинства погроммистов. Имхо, он довольно часто воюет с соломенными чучелами, как здесь >>375911
>Считает только свою точку зрения единственно верной
Потому что его точка зрения единственно верная.
Ну по идее вроде должно быть норм, типа Write once, run anywhere.
А на деле как?
ПРИШЛО ВРЕМЯ ПЕРЕУСТАНАВЛИВАТЬ ШINDOWS
ШINDOWS САМ НЕ ПЕРЕУСТАНОВИТСЯ
ПЕРЕУСТАНОВИ ЕГО, ПЕРЕУСТАНОВИ ЕГО ЕЩЕ РАЗ
ЗАЧЕМ МНЕ НУЖЕН LINUX, У МЕНЯ НЕТ ВРЕМЕНИ ЧТОБЫ ЕБАТЬСЯ С НИМ
ЛУЧШЕ ЕЩЕ РАЗ ПЕРЕУСТАНОВИТЬ ШINDOWS
Я ПЕРЕУСТАНАВЛИВАЮ ШINDOWS ПО 3 РАЗА В ДЕНЬ
КАЖДАЯ ПЕРЕУСТАНОВКА ЗАНИМАЕТ ДВАДЦАДЬ МИНУТ
Я ЖИВУ АКТИВНОЙ И ПОЛНОЦЕННОЙ ЖИЗНЬЮ
Я УСПЕШЕН И ПОЭТОМУ ЦЕЛЫЙ ДЕНЬ ИГРАЮ В ИГРЫ
А ПОСЛЕ ЭТОГО ПЕРЕУСТАНАВЛИВАЮ ШINDOWS
ТУПЫЕ ЛИНУКСОИДЫ ОДЕРЖИМЫ КОНПЕЛЯЦИЕЙ ВЕДРА
А Я СВОБОДНЫЙ ОТ ЗАДРОТСТВО ЧЕЛОВЕК
СКОЧАТЬ БЕЗПЛАТНО И БЕЗ РЕГИСТРАЦИИ МОКРЫЕ ПИСЕЧКИ
КРЯК УЛЬТИМАТ КЕЙГЕН РАЗБЛОКИРУЙ ВЕНДУ
ЛУЧШЕ Я ПЕРЕУСТАНОВЛЮ ЕЩЕ РАЗ ШINDOWS
И КРЯКНУ ЕЕ, СТАБИЛЬНОСТЬ НЕ НУЖНА
Я НЕ ПЕРЕУСТАНАВЛИВАЛ ШINDOWS НЕДЕЛЮ
ПОЙДУ ПЕРЕУСТАНОВЛЮ
В ШINDOWSE ВСЕ ПРОСТО И ПОНЯТНО
ОШИБКА STOP 0x0000000A. ЭТО ЖЕ ОЧЕВИДНО КАК ЕЕ РЕШИТЬ
ПРИШЛО ВРЕМЯ ПЕРЕУСТАНАВИТЬ ШINDOWS
ККОКОКОКОКОКОКО
ЖМУ/ПИНУС ШВАБОДКА ПИТУХИ
КОКОКОКОКОКОКО
Можно скопировать, да. Там просто сеттингс.хмл и папка с жарниками, хеш-суммами и метаданными.
Кстати со штабильностью все збс. 2 года - никаких нареканий(до этого еще 2, но сдох дешевый ссд). Просто 11 хочу поставить на новые железки, обновлять не хочу. А то на 10 даже ш7-12700 еле ворочается. А в 11 тред директор есть. И куплю под нее нвме.
Потом придется менять бп и охлад и снимать паверлимиты.
Вот тогда мавен будет в идее быстро резолвиться и тесты гоняться моментально, вотувидити.
✅ Accepted answer
Нахуя тебе копировать 5 гигов устаревших и неиспользованных библиотек? Ты через xDSL капчуешь?
А ещё проблема в том что я живу в мухосранскозалупенске и что бы устроится на работу нужно ехать в другой город, снимать хостел и т.п.
Вопрос не совсем по жаве.
Перенес данные из одной БД (db2) в другую (postgres) через экспорт-импорт csv. Поле таблицы в db2 было типа blob, в таблице postgres оно имеет тип bytea.
Теперь мне нужно в жаве достать значение поля через jdbc.
Проблема в том, что на некоторых записях resultSet.getBytes(index) падает с IOException "Not in GZIP format". Т.е. какие-то значения я достаю без проблем, на каких-то ошибка. При этом, если обращаться через тот же jdbc в db2 - никаких проблем.
ЧЯДНТ?
>IOException "Not in GZIP format"
Херня какая-то. Почему IOException, вместо SQLException. Покажи полный стектрейс.
Напиздел - 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)
Так при чем тут постгресс? У тебя не стектрейсе только твой код и код распаковки. Ошибка говорит о том, что то что ты подсовываешь не GZIP. Или что-то криво перенеслось или стоит добавить проверку на null/пустой byte[].
Я понимаю, что я подсовываю не гзип.
Вопрос в другом: в каком месте мог гзип, который изначально хранился в db2, превратиться в не-гзип.
Все, что я делал - это экспорт блобов из db2 в отдельные файлы, а потом импорт этих файлов в postgres. Все делалось через встроенные в субд утилиты.
>Вопрос в другом: в каком месте мог гзип, который изначально хранился в db2, превратиться в не-гзип.
Ты серьезно хочешь, чтобы мы отсюда тебе сказали где произошел косяк?
Для начала можешь сделать так
SELECT id, MD5(data) from table;
на обоих базах и сравнить. Если различаются ковыряй CSV что там написано для этих строчек.
Твой батя даун, сынок.
Ну баелдунг например до половины этих зависимостей качает.
И много другиъ репозиториев с туториалов, из моих петов, просто с гита ну и с работы. папку с исходниками я тоже закину.
Нахуй тебе хранить репозитории с мурзилками баелдунга, ты вообще блядь ебанутый?
>Хочу винду переставить. У меня папка .m2\repository больше 5 гигов. Не охота чтобы потом год все выкачивалось.
>Не охота чтобы потом год все выкачивалось.
Анальники совсем ебанулись, даже артефакты не выбрасывают, а перетаскивают на новую систему.
хахахаха отец шлюха
>>вызубрить
Тебя не будут просить перечислить все методы всех классов. Лучше пет проект напиши, чтоб понимать как он работает.
>>искать работу по 8 часов
Какие 8 часов пчел? Откликнуться на хх на все что есть - 10 минут в день. В остальное время учись.
>>что бы устроится на работу нужно ехать в другой город, снимать хостел и т.п.
Переедешь когда офер будет на руках. Сами собесы в 99% случаев - по зуму/скайпу. Просто не говори что ты из залупинска а сразу пиши тот город куда ты там ехать планируешь.
я не знаю, у меня ломбок это делает
this.
Так я сами то мурзилки иногда не читаю или читаю по диагонали, а вот запускаемые куски кода наоборот нужны. Иногда прямо в туториаловской репе могу переписать под свои задачи.
Недавно вот более-менее научился пользоваться поиском по коду в гитхабе. Теперь тасочки с новыми для меня технологиями выполняются быстрее. Стянул 5 репозиториев, слепил из них то что нужно у себя.
А ты не обманешь потом?
Объекты должны быть не безжизненными модельками с данными, они должны работать. Пишешь, зачем ты сделал объект в myMethod и его вызываешь. Никаких геттеров. Другие объекты не знают, что в в твоем объекте вообще есть какие то поля. Идеальная инкапсуляция.
>Идеальная инкапсуляция.
Сферическая в вакуме, и как все подобное говно - не работает в реальной жизни.
Ну ты и дегенерат.
Ну давай, пиздабол, расскажи как ты сделаешь класс таймстемп без геттеров. Так чтобы его можно было использовать в реальном проекте.
Слив засчитан.
Т.е. вместо геттеров должна быть простыня юзкейсов на пару тысяч методов.
"Чужой код" я не могу изменять, да и наследовать его тоже не хотелось бы.
Что хочу - имея ссылку типа Bird, спокойно вызывать у неё метод talk(), которого в изначальном Bird нет, при этом желательно иметь дефолтную реализацию, т.е. если данная конкретная Bird у меня не доопределялась, то она должна по методу talk() вернуть что-то вроде "говорит на непонятном нам птичьем языке".
Нарыл это - https://www.baeldung.com/java-dynamic-proxies , пока нихуя не понял нужно ли оно мне и как этим пользоваться.
Заранее спасибо.
И этот дебил рассказывает про icq 80. Да у тебя у самого не больше 50. Ты взял готовый класс, со всеми геттерами и даже сеттерами.
>>383052
Егорка большой теоретик, но практик из него хуйовый. Когда тебе надо будет записать этот класс в БД, JSON вывести на форму и куча всего прочего, ты просто заебешься писать на каждый юзкейс свой "принтер". А главное ты будешь тащить левую логику в твой класс. А если это библиотека - то то в принципе не можешь предусмотреть все возможные юзкейсы.
Ни через какие динамикпрокси ты не превратишь джаву в джаваскрипт и не сможешь вызвать метод, которого у класса заведомо нет, компилятор тупо посмотрит на тип ссылки и скажет, что метод не найден.
Я не собирался превращать джаву в джаваскрипт.
Может неверно выразился, поточнее
>имея ссылку на Bird, получить из неё результат метода talk
При этом я могу в своём коде кастануть её к чему-нибудь, но проблема в том что на вход может прийти любая из сотен Bird (и я не знаю в компайл-тайме, какая именно), например Rooster, и мне нужно привести её к своему доопределённому петуху (но я пока не знаю, что это будет именно петух) и уже у него этот метод вызвать.
Если не говорить про рефлексию, то обычный вызов метода это вызов метода класса или интерфейса. Значит твой метод talk() должен быть где-то определен. Если он не определен в базовых классах, значить ты должен определить его или в интерфейсе или в классе наследнике. И потом твои классы просто наследуются от базовых и реализуют интерфейс.
Но в целом задача выглядит странной, если нет необходимости получать доступ к протектед полям, можно это реализовать через статический метод или объект враппер.
1. Куплена книжка "Философия джава". Она стоит не малых денег, поэтому надо оправдать вложение.
2. Сказал маме, что буду учить джаву. Как бы я смог объяснить ей, что вдруг решил учить сишарп!?
3. Применил методику Сергея Немчинского по выбору языка: подбросил монетку и выпала джава.
> 1. Куплена книжка "Философия джава". Она стоит не малых денег, поэтому надо оправдать вложение.
Так продай.
> 2. Сказал маме, что буду учить джаву. Как бы я смог объяснить ей, что вдруг решил учить сишарп!?
Для неё это всё равно что говорить на китайском. Завтра ты можешь ей сказать "я продолжаю изучать сишарп, как и говорил", и она ничего не заметит.
> 3. Применил методику Сергея Немчинского по выбору языка: подбросил монетку и выпала джава.
Это хуйня, а не способ.
Молодец!
>Долго выбирал между сишарпом и джавой, но в итоге сделал выбор в пользу джавы по следующим причинам:
>1. Куплена книжка "Философия джава". Она стоит не малых денег, поэтому надо оправдать вложение.
Лучше бы Элегантные Объекты Java Edition купил.
>2. Сказал маме, что буду учить джаву. Как бы я смог объяснить ей, что вдруг решил учить сишарп!?
Правильно, мамка бы с хаты нахуй выгнала, если бы ты сказал, что собрался петушарп учить.
>3. Применил методику Сергея Немчинского по выбору языка: подбросил монетку и выпала джава.
Монетка шарит.
Про рефлексию говорить можно, так же есть вариант инъекции в чужой байткод (но в идеале без инъекций бы, т.к. помимо моего кода, который расширяет чужой, есть ещё другой чужой, который расширяет тот же код).
>значить ты должен определить его или в интерфейсе или в классе наследнике
А я могу это сделать и делаю, тут вопрос в другом. У меня есть метод, который должен принимать на вход ссылку типа А, а эта ссылка может быть как частью моего кода (зеленый), так и частью чужого. В чужом коде mymethod() нет. Я расширяю некоторые чужие классы (могу и все), определяя в наследниках этот метод, но мне в момент выполнения программы не может прийти ссылка на наследника, только на расширяемый класс. И в этот момент я должен узнать, какой именно тип у ссылки (это будет один из типов второго уровня на картинке), если он зеленый то я я спокойно вызываю метод, а если он черный то нужно понять какой именно чтобы кастануть его именно к своему наследнику. Как сделать это через рефлексию я примерно понял, но это грязновато, так же я могу создать структуру данных и установить в ней соответствие "родитель - наследник", т.к. там в mymethod нет никакой логики и не предвидится, просто возврат некоей константы, то можно насовать в мапу экземпляров объектов и соответствующих им возвращаемых констант (благо там при инициализации один хуй все эти объекты нужно создавать для технических нужд, можно заодно ими и заполнить мапу)
>Но в целом задача выглядит странной
В целом задача - добавить поведение к объектам и потом иметь возможность понять, что именно это за объект, чтобы кастануть его именно к своему наследнику.
>можно это реализовать через статический метод
В котором написать что-то уровня
if (obj instanceof myobj1) { return 1; } else if (obj instanceof myobj2) { return 2; }
и так далее?
отклеилось
Когда я изучал сишарп, то там активно использовали SQLite как кроссплатформенное решение. Преимущество её заключается в том, что не нужно поднимать сервер и всё хранится в файлике .db
Понял.
Когда ума не хватает ума сконструировать из кубиков лего какое-то сооружение, всегда можно насыпать кучу этих кубиков, залить цементом, замотать скотчем и надежно закрепить изолентой.
Когда не хватает ума сконструировать годную архитектуру, всегда можно навернуть говна со спрингом и обосрать код аннотацией и рефлексией.
В обоих случаях получается говно, к которому новые кубики без цемента не добавишь, а если захочешь что-то уже построенное изменить, то у тебя это либо не получится (если залил цементом) или все с шансом 90% развалится нахуй, если закрепил скотчем.
С помощью рефлексии можно создавать удивительные вещи. К примеру, создать фреймворк без фреймворка, когда пишешь только логику своего приложения, а не стереотипный код большинства фреймворков.
Непонятно как ты собираешься это использовать, потому сложно сказать как лучше делать, но попробую описать:
1. Наследуемся от класса, реализуем интерфейс MyFancyInterface в котором определен твой метод, и реализуем его. Там где надо использовать этот метод просто
if(obj instanceof MyFancyInterface) ((MyFancyInterface)obj).myMethod();
но тогда надо будет создавать не new Duck() а new MyDuck()
2. Тоже самое но без наследования, не
MyDuck extends Duck
а
MyDuck {
private Duck realDuck;
}
ну и там можно даже заделигейтить методы или просто геттер для утки сделать.
3. Можно взять AspectJ и при загрузке класса модифицировать его и добавить метод и реализовать интерфейс
https://livebook.manning.com/book/aspectj-in-action-second-edition/chapter-5/
в реализации самый сложный, но зато получится так, будто ты модифицировал код классов.
А так тебе придётся каждый раз собирать из лего одну и ту же монструозную конструкцию по гайду, чтобы потом приделать несколько своих.
>но тогда надо будет создавать не new Duck() а new MyDuck()
Видимо к этому и придётся идти в итоге. В принципе это более-менее реализуемо - найти все места, где создаётся Duck (их сравнительно немного) и поменять их на MyDuck.
С недавних пор да. Ранее был лобкохейтером.
Это суть всех фреймворков, которые заставляют клепать тонны стереотипного кода. Причём надо строго следовать ему, иначе всё перестаёт работать. Ещё проблема, что по ним мало инфы и как писать не понятно. Книги пишут редко, да и те быстро устаревают.
Только на украинском. Такую хуйню только хохол-пидорас придумать мог.
Нет
Или без разницы как ?
> Кнопки в отдельный класс вынести
С какой целью? У тебя есть какие-то мега-кнопки, которые много всего умеют, и при этом их надо повторно использовать?
Ну а чо, не игровой движок конечно, но рисовать 2D-графику можно.
А зачем нужно чистое ООП?
А почему нас должно ебать борщехлебское абстрактное ооп, а не то, как легче написать наши круды, бизнес логику, логи, обработку ошибок и сотни другой хуиты, которая есть под капотом у спринга и других библиотек, ебущих в рот настоящее ооп?
Почему кого то вообще ебут нахрюки Бугаенки?
> Почему кого то вообще ебут нахрюки Бугаенки?
Так в том то и дело, что всем насрать. Хочет Егорка так писать код - пускай пишет. Только одному буйному дивану все неймется, и он постоянно срет про ООП™
Этим буйным диваном был Егор Бугаенко.
Что самое клевое и современное из того, что предлагает спринг?
Вебпукс
За интересным стеком иди во всякие ноды. В жабе пишут скучные круды для кабана.
Потому что ты тупоголовый дебил, который в конечном итоге потратит больше времени на написание, дебаг, прочтение своего говнокода и будущую поддержку. Вообще ебать не должно, пиши сколько хочешь, только потом не сри тредами "я выгорел((((((" и не убегай в слезах в питухон тред со словами "жопа для крудошлепаф((((( ни дают прахода нармальнум кодирам(((("
Узбагойся, Егорка.
Кодинг это на 5% разработка и на 95% поддержка.
Нет смысла ускорять разработку в ущерб поддержке.
А в каком месте чистейший ООП поддерживаемый? Хотя бы потому, что у нас кода больше раза в 3-4
Только крудошлепом. Позиции мидла и тимлида для тебя закрыты.
Ты че, долбаеб?
Этот прав.
Они не древние, а самый актуальный первоисточник. Книга устаревают быстрее спецификаций.
>Это суть всех фреймворков, которые заставляют клепать тонны стереотипного кода.
Ты даже не понимаешь где причина, а где следствие. Тонны стереотипного кода возникают потому, что у тебя тонны стереотипных задач. А что ты хотел, на 100 энтити надо 100 репозиториев. По крайней мере ты можешь написать YobaRepository extends JpaRepository и у тебя сразу есть базовый функционал. Без ёбли с реализацией базового CRUD.
>Причём надо строго следовать ему, иначе всё перестаёт работать.
Можешь и не следовать, но тогда будешь дополнительно все прописывать руками в конфигурации.
>>383742
Ну так пиздуй работать к Егорке, у него фреймоврки только самописные, ООПшерные, все как мамкины теоретики любят. Смотри какие условия работы классные, делаешь тасочки, получаешь бабки. http://www.zerocracy.com/faq.html
>Подскажите книгу, где описан байт-код JVM
https://docs.oracle.com/javase/specs/
>как работает GC
Базовое описание есть в JEP конкретного GC. ВНЕЗАПНО для Java есть десяток разных GC. Которые работают по разному.
>описание типов JVM в разрезе Java
Нету никаких типов JVM, есть спецификация и тесты, JVM или соответствует или нет.
Получается на изучение джавы нужны годы? А как тогда учатся на всяких курсах за 3 месяца с нуля и идут работать?
А как изучать тогда? Где брать инфу?
Видосики не воспринимаю, потому что они разной степени паршивости и большинство не закончены. Тот же Тагир Валеев картавит и звук нормальный не может сделать на своих лекциях, да и сам лекция у него обзорная, детали он не рассматривает.
Алишев по Спрингу выложил только часть видео, остальные надо покупать как курс.
Плагины для майнкрафта делай.
Схуяли? На тру-ооп нам просто тонны кода писать вместо спринга. Ну например общение с вебом как писать? На голых сервлетах? Или сервлеты тоже не по ооп?
И потом во всех этих велосипедах будешь постепенно находить дырки. А то и не найдешь.
У спринга огромное комьюнити и куча его косяков описаны и придуман костыли.
Код на популярном фреймворке намного более поддерживаемый, чем велосипед. Вот накакал Егорка на проекте своими чистыми велосипедами, а потом убежал к другому кабану. Ты завтра пришел и охуел. И одного вечера за куском доки и тремя страницами на стековерфлоу у тебя уйдет месяц на ковыряние в егоркиной писанине.
А почему? Он не может сделать? Такое даже в васянских либах могут себе позволить сделать.
> 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.
В телеграм чате
Плагины для майнкрафта - это не замена книгам или курсам. Тем более они ни как не помогут продвинуться как бэкенд-разработчик.
Вообще, у сишарп-программиста Степана Берегового есть видео на канале, где он делает обзор книг. И там он говорит, что глупо не читать книги, потому что это концентрированный источник знаний.
Да, те же знания можно нагуглить, но во-первых надо знать что гуглить, а во-вторых потратить кучу времени на поиски, когда в книге достаточно перевернуть страничку.
Какой же ты дегенерат, пиздец просто. Тебе сказали, как выучить жабу, ты такой "не, хуйня", а через пять минут ноешь, что тебе не помогают.
А какой второй тред?
У меня развернутый ответ по теме, а у вас только переходы на личности и оскорбления. Так что вас надо репортить, а не меня.
Да хоть миллион. Всё равно возьмут того, кто прочитал все книги, а не играл в майнкрафт.
> Nobody will teach or help you;
какой пиздобол. Ведь всю дорогу учит акой-то шизовой хуерге. Ну даст тикет, нахуячу его на спринге и хибере. Че он сделает, если:
> There will be no chats or discussions.
Такая херня не лечится никакими аргументами. Пока чел сам не придет на проект на котором местный, давно уволившийся, Бугагаенко понаписал своих велосипедов в правильном ХХХ стиле. Пока ты не поебешься с фиксаньем багов в этом говно мамонта и добавлением новых фич туда. Вот тогда ты поймешь почему на предложение написать свой велосипед надо вначали пиздзить, а потом уже слушать почему надо использовать свой велосипед.
>2384521
>Че он сделает, если:
Код ревью никто не отменял. Там секта идейных поедателей кактусов.
Я лично тебе два треда назад отвечал.
Ты троллишь, но для дргих вкатунов: что хочешь книг - читай про спринг(есть на русском, но много устаревшего) и спринг ин экшон(нет на русском, кинь пдфку в хроме в автопереводчик, и в последних изданиях нет ничего про подкапотное устройство).
А так на русском по видеоурокам - сперва алишев на ютубе(там нормально объясняется di. Все кроме di - наживное), потом отус на торрентах.
Ничего законченного по спрингу быть не может. Дока только по мастхевным кускам спринга это 3к страниц.
По всем конкретным вопросам баелдунг и стековерфлоу с автопереводчиком. Потом дока, если мало. Вот еще хорошие статьи на русском:
https://sysout.ru/spring/spring-core/
https://easyjava.ru/spring/spring-framework/
Еще есть практические проектики у летскода.
брат, забей хуй на этого вкатыша, лучше скажи где продуктовый практис взять для джуна(если знаешь), а то пизда на рынке.
В джаве новички не нужны.
Не работаю еще. Ток задрочился к собесам по всем темам достаточно глубоко. Ну и уверенность что могу джоны перекладывать уже появилась.
Петы. Придумай что-нибудь и веслай. Если не можешь придумать, то запили стриминговую платформу.
и да, ты не джун, и даже не стажер :3
Ну и ходи везде. Подавай резюме, ври если надо. Я прямо до спецоперации вкатился. Было сильно легче, чем я думал. Из 200 откликов до собеса дошло в 6 местах. В 4 - из них взяли. Причем в моей 300к мухосрани ответили, пособесили и дали оффер в обоих. Ну и еще в 5 местах скидывали тестовое до собеса. 1 начал делать, но тут собесы пошли. Если бы не пошли - стал бы дрочить их. На все про все - ушло 3 месяца.
Сейчас вкатуну на собес попасть за счастье.
Ну а по практике - ну тестовые пили. Или если скучно - петы. Я для подруги начал пилить магазин хенд-мейд шмоток на шаблонах, а для приятеля базу данных(ну типа базу с урлами видосов и табличкой стримера - много ко многим) по треш-стримерам на ресте. И то и другое никому не было нужно, я как доделал первые прототипы - забил. Ради этого пришлось целый месяц учить html/css/js и чуть за рякт не сел, потому что на голом js костылить компоненты неприятно. Лучше бы тестовые пилил, типа райфовского, но это скучнее было бы.
fuck) Я штук 10 петов уже отштамповал. . Тоже подумал о чем-то более сложном. Спасибо)
А врать насчет чего? Скажу я например что пару месяцев крудошлепил, как меня могут прочекать? Я знаю на уровне аоп-аспекты, транзакции, хибер, докер могу поднять. Цикл жизни бина и прочую хуйню, которую многие не отвечают.
О, я туда осенью на 40к собесился)))
Завалил собес т.к. нулевой был, но и ехать до их офиса пришлось бы по 2 часа в одну сторону
Можешь усложнять текущие. Можешь попилить на микрухи, притащить брокер и аналитику, деплоить все в кубер. Постоянно улучшая свой старый код. Сроков нету - делай что хочешь
Принял
Соври, что стажировался, а потом контора убежала/сдохла, а тебя на мороз. Ну епам например.
Ну херкам хотя бы соври.
пруф или пиздабол
Иди плагин пилить. Егор же сказал: плата только за тикеты
https://github.com/yegor256/takes
Там и квикстарт, и ссылки на примеры проектов. Читать только после бугаенковских книжек, иначе фокус не получится.
свой проект. стараться мочь обосновать каждое решение принятое в проекте и каждый кусок кода (почему так сделал итд)
Могу скидывать тебе задачи с работы, если готов платить.
Думаешь, 1к откликов - это настоящие 1000 вкатыщей зашли, вдумчиво прочитали вакансию и решили откликнуться?
А на прекрасном сишарпе в 10 раз меньше чем на джаве!
Так лень, завтра может почитаю на тру-ооп методы крудостроения.
литкод, петы
Балуемся
Закончил вузик в мск по ит специальности. И получилось так, что вроде и что-то делать пытался за время учёбы, а по итогу хуй в стакане. Сейчас дата сосист на питоне, но контора такая, что по факту я нихуя не знаю. Выиграл пару хакатонов даже пока учился. И вот теперь бесповортно пришло время выбирать как жить дальше. Как вообще найти стажировку себе или джуновину. Какой язык взять, чтобы точно начать карьеру можно было. Знаю все и по немного по факту, но на деле языка который я бы реально знал на достойном уровне нет. ООП понимаю вроде как. Я планирую выбирать из этого примерно: Java/C#/C++/(Мб питон, но не уверен насчёт него). Хотелось бы услышать совета от знающих людей... И что вообще сделать чтобы максимально эффективно и быстро найти полноценную норм работу себе(или стажировку)
Балуюсь плюсами и пивасом.
По моему опыту - 100%. Из моих знакомых пытался только я и у меня получилось.
Во фронты тоже все кто вкатывался - вкатились. А челики с плюсами и питом - соснули(забили после 500+ часов).
Нужно было ещё во время учебы вкатываться
1. Определяешься с языком. Твердо и четко
2. Находишь самый распространенный стек на этом языке
3. Дрочишь гайды по этому стеку, параллельно пиля свой проект на нем
4. ???????
5. PROFIT
Так вот я и пытаюсь определиться. Я просто хочу в серьёзную разработку как бы и норм шириной языка для своих проектиков. Без мелкого говна. Сложно вообще сейчас по жаве стажировку найти? Там сделать крудик какой-нить условный мб пару тестовых из открытых источников и их на гит. Так пойдет?
>По моему опыту - 100%. Из моих знакомых пытался только я и у меня получилось.
А что нынче для джуна нужно? Джава кор, спринг, git, linux - дня начала нормально? Из петпроектов только небольшой форум на собственном движке и телеграмм бот, который видео с ютуба качает.
Если сам и с нуля, то 700-2000, как попрет и насколько ты тупой. У меня ну 1200 ушло где-то. Из них 500 я мог бы скостить сам, если бы не брал лишние штуки, типа основ html/js и не залипал в книжки и некоторые ненужные библиотеки.
Может если не с нуля и брать менторов можно и быстрее.
Ну я знаю основы жабы, ооп, алгосы, rest, html/css/js/react на уровне петов типа
линукс не нужон.
джавакор
гит
сикуля
мавен(ну и градл на полшишки тоже может пригодится)
спрингкор
спрингбут
штмл-рест
спрингмвс(на ресте)
спрингдата
жюнит+мокито
докер
спрингтест(мокмвс+тестконтейнеры)
сваггер
Если запилишь тестовое от райфа на стажера и тесты напишешь к нему, то в нормальном месте(без понтов, как в тиньке) должны взять на джуна(если на кишках жабы и фреймворков не обосрешься). Главное попасть на собес.
Пытаюсь скачать весь сайт (похоже что он на java (не яваскрипт) сделан, через wget . Там есть авторизация. Скармливаю куки для wget, но авторизации не происходит. Реально ли вообще скачать такой сайт? Сайт в виде 2х фреймов сделан, при клике на фрейм слева, грузится контент (видео) в правый фрейме
Selenium
Хз, на жабу не вкатился. После СВО хуй да нихуя вакансий и стажировок. Был на 1 коллективном собесе на жабу (там 15 человек группу набирали на стажировку бесплатную с последующим трудоустройством если ты ок), так ебашил алгоритм на листочке, потом немного тех. собес, далее каждый человек (всего нас было 8 человек) проводили самопрезентацию. Ну бля... У меня тех. вышка есть, но непрофильная, но туда приперлись 3 чувака которые УЖЕ в айти (1 тестировщик, другой на легаси жабе, другой ваще червь-пидор обвешанный дипломами и опытом работы), другие прогают с 15 лет и прочая хуйня. Ясен хуй как бы идеально я не ответил - все равно теряюсь на плане таких терпил (был первый собес, поэтому не смог себя продать, надо вечно хуйню нести как будто ты ракеты в космос запускал но в рамках разумного, все равно проверять не будут). Второй собес был как последний этап, сначала отбраковка резюме, далее тестовое. Тестовое сказали збс сделал, поговорили за жабу, за многопоточку за память и прочее. Норм отвечал, в общем. Ну где-то разумеется ошибался, всего хуй узнаешь - на след день отказ. Ну и все... Больше ни стажировок нихуя нет. Но залетел на шарп и дотнет вот сегодня после тестового - огромная удача, на самом деле. 9.5 месяцев от первой строчки кода до первой работы без всяких бесплатных стажировок.
Читай книги до просветления и станешь сатчитананда
Получается, что меньше. Ещё там есть полностью бесплатная вижла, а не как в джаве обрубок от жидбрейнс.
Сейчас даже простые текстовые редакторы делают подсветку синтаксиса для многих форматов типа CSS, но у жидбрейнс это только в платной версии.
Получается как? Цифры-то есть?
>Ещё там есть полностью бесплатная вижла, а не как в джаве обрубок от жидбрейнс.
>Сейчас даже простые текстовые редакторы делают подсветку синтаксиса для многих форматов типа CSS, но у жидбрейнс это только в платной версии.
Чего? Давай на конкуренции на место сфокусируемся, ты пытаешься съехать с темы (зачем-то), но съезжаешь туда, где не вывозишь.
Что тебе эти цифры дадут? На джаву конкуренция выше не по цифрам, а потому что там более опытные претенденты. На шарп порог входа ниже и легче заскочить.
Ты тот же тупорылый уебан, который про книги по спрингу спрашивает? Открой мобильный хх и сам посчитай, ты же программист (нет)
Просто после 24 февраля, по моим наблюдениям, жаба вся испарилась. Я ж говорю, на 2 собесах на стажировках побывал, банки стажировки заморозили (кроме тинька вроде), и все, полный голяк. На шарпе если чекнуть побольше вакух и стажировок даже сейчас. На шарп учить ничуть не меньше, чем на жабу. Не значит, что легче, просто лично мне было несложно за пару дней было накидать тестовое на шарпе (ну лол калька с жабы с сахарком) и дотнете юзая дизайн паттерн, DI и пр. + понял для чего и почему нужно юзать синглтон, а то на спринге аннотаций нарасставил и че блять, зачем, почему именно так - нихуя не понятно.
>Ещё там есть полностью бесплатная вижла, а не как в джаве обрубок от жидбрейнс.
- Как узнать что шарпидор пиздит?
- Он открыл своё ебало.
Вижла даже бесплатная которая тоже урезанная работает только после регистрации на сайте майков. И естественно у майков есть анальный зонд в каждом шарпидоре от чего они получают большое удовольствие, но помимо этого майки могут в любой момент вырубить студию из санкционных стран. И прецедент с Ираном уже был, даже с бесплатной версией людей послали нахуй https://social.msdn.microsoft.com/Forums/en-US/5362bd19-4033-40f0-811d-6f7ff7cb4444/visual-studio-2012-express-for-web-activation?forum=vssetup
Так что это вопрос времени кода шарпидоров натянут как дюрекс.
Да не, я думаю стоит что нибудь маленькое написать на ждбс и жаба ее, чтобы хоть чуть чуть что-то пынямать, как что и для чего.
Есть каки-то опции выдачи на фронт файла без указания его внутреннего url на сервере через GraphQL? Через рест решил проблему через Resource объект и передал туда байты, полученные с инпутстрима файла. В графе кроме выдачи коллекции скаляра byte - ни до чего не дошёл.
Все так. Только не хватает всех остальных яп
Биллибои, как всегда в своей манере.
Самые отбитые, что в консолестрачах, что в япсрачах.
Когда там лицензия заканчивается у жидбрейнс? На полгода продлили и отлегло? Ну ничего, скоро забегаете.
>Когда там лицензия заканчивается у жидбрейнс?
У комьюнити никогда.
инбифо: кукареканье про неполноценность комьюнити стартует через 1, 2, 3...
Вижла даже комьюнити содержит почти все фишки. Сколько пользовался и ни разу не возникало ощущение неполноценности. А идея каждый раз напоминает тебе, что этот файлик мы не поддерживаем, купи ультимейт. И как я выше говорил, доходит до смешного, что в поддержке отказывают для тех файлов, которые поддерживают уже все бесплатные текстовые редакторы.
Но самое болезненное в идее - это отсутствие поддержки спринга и работы с базами данных. Для сравнения в вижле полная поддержка всех дотнетовских фреймворков и MS SQL базы данных.
>>Когда там лицензия заканчивается у жидбрейнс?
Я себе вечную купил, в более свежих ничего особо важного для меня не появлялось. А вообще у них недавно очередной ЕАР стартовал, если пиратить не хочется.
Я сейчас скажу хуйню: чем меньше пакетов - тем лучше
Как же зааебали в проде все эти однообразные EntityProcessingDataService и UserSecurityRoleController. А хочется называть классы например именами богов, персонажей из легенд/мифов/аниме.
>>Для сравнения в вижле
его аналог это бесплатный эклипс который тоже требует установить дохуя плагинов перед началом работы.
Так пиши моды для майнкампфа.
Да заебало, мудило тупорылое, по 100500 кругу мусолить одно и то же.
Нехватает чего-то в комьюнити - ставь Эклипс или НетБинс.
Цифры дадут понимание ситуации. Чьё-то представление о ситуации мне такого понимания не даёт.
То, что это 1000 пустых резюме от хохлов. Пиздуй нахуй отсюда, выблядок хохлятский, в петухон тред
Майнкрафт плагины.
Самые высокие во всем IT.
Больше слушай книгодебила. Существует только одна книга, достойная чтения.
У тебя гребешок торчит, петушарпер.
Через 7 часов. Завтра зарегаю новую почту.
Хуйню пишешь, раз только такие названия приходят в голову. Во первых, в пакете не больше 3-4 классов - это закон. Во вторых, утиль классы - утиль и антипаттерн. Пока ты будешь свои утили создавать, у тебя будут вот такие хуевые названия пакетов.
У тебя пятак торчит.
Ну я меньше полугода, как вкатился. В большинстве нормальных мест всего этого хотели. В неочень местах не нужен был докер, свагер. В паре помойных было похуй на тесты и спринг был без бута. В охуевших с вкатунца хотели mq/kafka. Ну это из где-то 30 мест отуда до меня хотя бы письмо/звонок херки доходили(из них 20 просто исчезали и на сообщения не отвечали потом) и там я внимательнее читал резюме.
В 3 местах прямо спрашивали по жпа, в одном(в люкссофте) просто ебли жизненным циклом жпа и его методами без спринговой оболочки(думаю просто интервьюер хотел меня завалить).
Ну вообще нужен джавакор(80% для вкатуна), гит, спринг-кор, сборщик, рест, реляционки и куски спринга под рест/реляционки.
Опять каклы пидорашке гадят. На микрогалере в моей мухосрани, куда я пытался устроиться стажером за опыт в прошлом году(сейчас она закрылась), конкурс в районе пяти сотен на место, причем полсотни из них из них- студенты и выпускники ит и физмат специальностей трех вузов, и еще две сотни- тыжепрограммисты после колледжей.
держи в курсе
Из минусов наверное только то, что если попадутся те кто не знает мифологию начнут странные вещи творить. В кластер Хель закинут Тора, а Бальдр окажется почтовым сервисом.
Мало обоссал я твою мамку, не утонула, всплыла, сука.
Такого дебила еще поискать надо.
Каких ещё плагинов? Nuget-пакеты - это библиотеки, а не плагины. Типа как в мавене(градле) подключаем зависимости.
Это в VS Code нужно ставить плагины для каждого языка. Но ставятся они в один клик и полностью бесплатны. Так что даже этот полуредактор/полуИДЕ превосходит идею.
https://youtu.be/mnnlmjBLPGw
Я уже заканчиваю изучение основ, вроде типов данных, If-else, ООП, циклов и т.д. и так понимаю, что дальше буду изучать Java Core и фреймворки. Так вот вопрос: успею ли я до сентября если идти ударными темпами начать программировать на уровне, достаточным для трудоустройства или хотя бы заработка каких-то денег?
И второй вопрос: когда я начинал изучать Java, то хотел заниматься мобильной разработкой, но сейчас я похоже изучаю Java в целом. На каком этапе у меня появится выбор направления моей учебы? Не получится так, что я разобрался с Java, а что бы заняться мобильной разработкой, нужно будет потом переучиваться заново?
> Так вот вопрос: успею ли я до сентября если идти ударными темпами начать программировать на уровне, достаточным для трудоустройства или хотя бы заработка каких-то денег?
Если круды лепить, то не успеешь. Про мобилки не знаю
> И второй вопрос: когда я начинал изучать Java, то хотел заниматься мобильной разработкой, но сейчас я похоже изучаю Java в целом. На каком этапе у меня появится выбор направления моей учебы?
После изучения кора как раз и идёт разделение. В беке используются одни фреймворки и принципы. А что там в Андроиде - вообще без понятия
Большое спасибо за ответ анон. Мне кабзда походу. В сентябре уже без работы буду т.к. сокращение, а программированию не успеваю нихуя выучить. Пока что ток в ебанных курсах по программированию проебал 50к в нано/секунду и нихуя не получил от них, даже каких-либо знаний. Теперь приходится все самому по открытым источникам изучать.
Дизморалит еще то, что смотрю какие программы люди делают и не понимаю как такие программы может делать человек. Типа настолько ебические возможности у программ, что кажется, что её не человек делал нахуй.
Ударными темпами - сгоришь раньше. Сергей Немчинский рекомендует учиться от 2-4 часа 2-3 раза в неделю. Главное, чтобы это было регулярно и выработалась привычка так делать.
Нужно просто перестать беспокоится о проблемах, пусть проблемы беспокоятся о себе сами.
А такие программы может делать каждый, ведь каждый может стать просветленным, стать сатчитананда.
Такой совершенный, что петушарперы даже не знают что lock() reentrant.
Я хочу стать сатчитананда.
>>плагины для каждого языка. Но ставятся они в один клик
изучал как то питухон. Чтоб нормально работать поставь плагин на то, поставь на это. Постаил pycharm - а там все из коробки есть и ничего докачивать/донастраивать не нужно. Да и в идее плагин на питон тоже не требует докачивать что то еще.
>>превосходит идею.
в нем гит хороший, в остальномон хуже идеи.
Как гит вообще может быть где-то лучше, чем в идее? С чем не сравнивал, идея - лучший гит UI клиент.
Мне нужен ментор, а не минет.
>>нужны петы
Когда их писать то? Времени мало, голова забита рабочими задачами. Я скорее в выходной накидаю как какую то таску решить, чем начну с нуля свой пет разворачивать. Я ж уже поражен корпоративизмом и не смогу написать пет в не интерпрайзном стиле. А когда думаю что вот тут надо щас микросервисы сделать, кафку ебануть, хибернейт навернуть, тестконтейнеры обязательно, секьюрити через жвт как минимум - то - понимаю что работы тут дохуя и пошло оно все нахуй. Пет конечно хочется, но накладные расходы моей шизы на "правильном" коде и архитектуре слишком велики.
Точно. Но тебя я менторить не буду, потому что ты долбаеб какой то и хуй знает что получится у тебя. А я всегда даю гарантии и за просто так деньги не беру.
А мог бы на эти 50к 2 месяца жить, изучая жабу по 30 часов в неделю.
Знания тебе в рот не запихнут.
Ну ты и раб ебаный. Не хочу быть таким как ты.
Есть лист целых чисел.
Как мне запихнуть этот лист в лист листов с помощью стрима? Хочу матрицу получить например.
https://youtu.be/yyLVNUUFFnA
Теперь ты говноглазый. Узнали? Согласны? Умный объект?
Ладно, идём дальше. Теперь ты иммутабельный человек. Но в тебя инжектнули мутабельные глаза, которые написал Вася, которому похуй на ООП.
К тебе подходит чел на улице и говорит ты.получитьГлаза.установитьЗрение(Зрение.хуевое());
Теперь у тебя хуевое зрение, хотя странно, вроде ты иммутабельный господин.
Узнали? Согласны?
У подсоса Егорки крыша едет быстрее чем у самого Егорки. Пиздос
Иммутабельность - хуйня без задач.
В реальности объекты изменяются, так какого хуя их нельзя изменять в программе?
>В реальности объекты изменяются
Композиция - да. Стейт - очень редко.
Что у тебя часто меняется? Прическа? Обои в халупе? Ну раз в 5 лет. Может машину красишь каждый день?
Это если мы про Объекты, а не про рандомные структуры данных, приходящие по сети, которые почему-то кто-то называет объектами.
А я не хочу.
Сука, проиграл.
> запихнуть этот лист в лист листов с помощью стрима
Я в одно время столько говнокода на этих стримах написал с подобными фокусами, что когда пришлось фиксить баги, я сам кое-как в этом разобрался. Теперь юзаю стримы только для простых однострочников, во всех остальных случаях пишу нормальные понятные циклы, и остальным советую. Фокусы со стримами выглядят красиво и элегантно, пока не приходится их поддерживать, и уж тем более разбираться в чужом таком коде.
Просто надо интеллект ниже среднего иметь, чтобы понимать работу стримов и мочь писать на них красоту.
Уже 20 вышла чел...
ИЛИ
Ваша зп делает x0,3, но вы получаете лучшую тян, о которой только мечтали. Одно условие - потерянные 0,7 зп вернуть не может.
Ваш выбор?
Тян у меня и так нет и не будет, так что х10 зп и снимаю топовую проститутку.
Не знаю что там за методика, но просто идёшь на metanit, учишь java se, и просто читаешь про коллекции и стримы, потом идёшь на ютуб ищешь плейлист alishev по spring, после того как заканчиваешь, подтягиваешь ещё коллекции и стримы и ищешь статейки по boot(но это желательно сразу прочитать когда будешь работать с проектами alisheva, ибо он там советует накатить томкат, а с boot этого делать не нужно будет), так вот читаешь про boot, jpa, mvc, security, hibernate, на каком ни будь хабре есть статьи с расписанным кодом, и ты уже по сути сможешь лепить рест апи с крудами. Сам так же делал, сейчас вот дискорд бота натягиваю на спринг и хочу кое какие функции через браузер реализовать. По поводу выгорания согласен с аноном выше, наверное ебашить 24\7 не реально, выгорание быстро приходит. Например я ща на такой стадии, я знаю что хочу сделать, и знаю что мне это будет интересно, в голове примерно уже понимаю как это будет работать и как сделать, и даже есть наброски уже, но блять вот тупа лень делать, так что сколько то ещё подожду и за дело.
А и когда будут уже базовые снания спринга с его фреймворками(boot, jpa и т.д.), идёшь в оффициальные доки для закрепления информации.
Ты видео смотрел вообще? Там чел пытается хеллоу ворлд написать, но у него не получается, потому что командная строка ошибку выдаёт. Эккеля он не осилил, поэтому читает Файна для бабушек и дедушек, но тоже мало что понимает. Надеется, что со временем придёт понимание.
В итоге наговнокодил так.
Читаю строку из файла и с помощью стрима запихиваю в лист с разделителем пробелом.
В цикле беру сублисты и запихиваю в лист листов.
Но ведь это некрасиво.
ООП-шиза. Ты ещё фабрики не видел и другие паттерны, где клепают кучу кода, когда можно всё решить парой строчек процедурного кода.
Есть еще второе поле, которое никак нельзя изменить извне - только прочитать значение. Например размер коллекции.
Это не инкапсуляция. Думаю, основное применение для изменения поведения гета/сета, навешивания на них прокси и т.д.
Если у тебя на каждое поле есть сеттеры и геттеры - правда, никакого. Поэтому нужно писать умные объекты без геттеров и тем более сеттеров.
>можно всё решить парой строчек процедурного кода
Чел, ты программисту на процедурном языке не рассказывай про пару строчек.
Не, видео я не смотрел, я пытался, но речь в которой 1 предложение произносится 2 минуты я не осилил. Просто поделился с вкатунами годным материалом.
тебе идея пишет что это говнокод, неужели трудно прочитать почему?
Я читал метанит и лекции потом по корусмотрел хорошие, не хватило.
Мне пришлось сотню задач на степиках прорешать и прочесть двухтомник Хорстмана, ковыряясь в каждом сурсе из книги, чтобы себя более-менее уверенно в коре почувствовать и перейти к фреймворкам.
Ну не учи, мне лично похуй.
>Просто надо интеллект ниже среднего иметь, чтобы понимать работу стримов и мочь писать на них красоту.
Вкатывайся в ворд и эксель, там тебе вакансий точно хватит.
В сишарп же
> Уже запилил пет веб проджект без фреймворков
Это как? На сокетах? На сервлетах? На com.sun.net.httpserver.HttpServer?
> как учить спринг хибер и всю эту помойку?
Начни со Spring web / Spring MVC, научись писать рест-контроллеры и возвращать json-ы. Можешь ещё научиться юзать обычные контроллеры с шаблонизаторами, но скорее всего не пригодится. Дальше копай Spring JDBC, Spring Data и хибернейт. Для простоты запуска разберись с Boot, но можешь посмотреть и традиционный спринг без бута, который конфигурируется вручную, пакуается в war-ники и деплоится на сервер приложений. Ну и тесты научись писать.
> страдаю насчет паттернов, не пойму когда что нужно применять
Когда чувствуешь, что через них задача решается лучше. Паттерны не всегда нужны, большинство задач решается без них.
> депенденси инжект
Посмотри, как в спринге одни сервисы связываются с другими. Один сервис не создаёт объекты других сервисов, вместо этого он прописывает в своём конструкторе этот сервис как параметр, спринг этот сервис ему подсовывает сам без твоего участия. Это и есть инжект.
> депенденси инверс
Это просто концепция, как проектировать архитектуру программы, что сущности, которые ты пишешь, не должны зависеть от деталей реализации более низкоуровневых сущностей. Примерно как при написании веб-приложения ты не задумываешься, что там происходит в кишкакх компьютера на уровне регистров и операционной системы, так и здесь. Ничего тайного тут нет, как и во всём SOLID, такой подход представляется наиболее логичным и здравым. Не путать с инжектом, названия похожи, но суть совершенно другая.
> А как вообще как часто в собесах паттерны,солиды,клин коды спрашивают?
Настолько часто, что приходится в этом разбираться. Но учить там немного.
А, и ещё. Посылай Егора Бугаенко нахуй.
Я первый раз про это пишу.
Баг идеи. Лучше пользуйся эклипсом или вс кодом.
В Таджикистан?
Я ТВОЮ МАТЬ СУКА НАХУЙ ПОСЫЛАЛ УРОДЛИВОЕ ТЫ ГОВНО БЛЯДЬ СУКА ПЕТУХОНЫШЬ ЕБАНЫЙ ТЫ НЕ ОХУЕЛ ЛИ НУФАГАМ БЛЯДЬ В ГОЛОВУ СУКА ГОВНО ЗАКЛАДЫВАТЬ УРОД БЛЯДЬ БУГАЕНКО ЭТО ЛУЧШИЙ АВТОР БЛЯДЬ ДЛЯ ВКАТЫШЕЙ СУКА УРОД ЕБЛИВЫЙ БЛЯДЬ ЧУРКА ТУПАЯ ХУЕСОС ЕБАНЫЙ МАЛОЛЕТНИЙ ПИЗДОЛИЗ КУКОЛД БЛЯДЬ
ЗАВАЛИ ЕБАЛО АВАТАРКОБЛЯДУН Я ТВОЕЙ МАТЕРИ В ГОРЛУ СРУ ПРЯМО ЩАС УРОД СУКА
Это Бугаенка - объект. А я субъект.
Вчера перевел свой маленький микросервис с 11 на 17. Что мне надо там использовать, чтобы ревьювер не знал синтаксиса? Рекорды?
Многострочки - фигня. Паттерн-матчинг и свитчи не нужны почти никогда.
Реально ораклы 6 версий тупо хуй пинали.
К сожалению, наши дороги разошлись. Недавно дропнул все что связывало меня с сообществом Егора и ушел.
Отвечу на ваши вопросы.
У него реально маленький пиписяндр?
Какая классификация по МКБ?
>>Что мне надо там использовать, чтобы ревьювер не знал синтаксиса?
ебани лучше там вебфлакс, в самой джаве ничего радикально нового не появлялось.
Заебал его фокус на политоту.
Я подписывался на дикие, смелые, невообразимые ООП-эксперименты, от которых джавистов бомбит, а не на унылое полит-срачево с либерахами. С момента эпик-срача на backendsecret политики у него становилось больше, а объектов - меньше. Вместе с уходом объектов начало распадаться и его сообщество: в 2016м оно было англоговорящее, интернациональное и там было как минимум интересно. Щас не осталось ничего кроме "созидания" (которое суть филиал /po с ватой и коммуняками). Ну а с началом СВО я потерял всякую мотивацию оставаться там. Какой смысл? ЕО как брэнд - уничтожен вместе с его автором.
Вот например, что здесь происходит ?
File file = new File("C:/Users/jjjj/AppData/Roaming/.minecraft/");
file.toURI().toURL();
чтобы преобразовать файл в URI а потом в URL
Там же java 6, не?
Ниже 8 совсем бред учить че нить, если не планируешь с мужиками 50 лет поддерживать говно проект на хуй пойми чём
Задачи из головы бери
Учить жабу - это как смотреть сериал на 500 серий. Можешь месяц не смотреть, и потом всё равно всё понятно.
Я читал книжку гослинга по жабе 1, и ничего, просто отдельно прочитал про дженерики и стримы.
мимо
По джаве читать нужно только мурзилки.
Спорим ты просто не шаришь нихуя, лул.
Не пизжу.
Напоминаю базу:
Петухонщики - народ-гной, народ-мразь, народ-пидор, народ-червь, хуже них уже нет. Сейчас я возможно задену за живое и ты заплачешь, но ни у одного из петухон-треда нет работы, петухонщики живут на мамкины деньги, успокаивая себя в интернетах тем, что они крутые погромисты.
Зато кукарекают петухонщики больше всех. Они больше всех рассказывают в зарплато-тредах о своих маня миллионах, ведя себя по блядски и выёбываясь перед не-погромистами, явно привлекая к себе тонны негатива. И ладно бы ненавидели только их (потому что реально есть, за что) - нет, из-за них с ненавистью сталкиваются вообще все программисты, даже джависты, на которых в целом держится весь IT-бизнес, которым пользуется каждый из нас (петухонщикам приготовиться к слёзкам: на их петухоне не держится вообще ничего, кроме самых гнойных отраслей IT - нейроночек и спам-ботов для ВК (да и даже любители нейроночек недовольны тем, что им приходится ассоциировать себя с таким гноем, как петухонщиками, остаются только спамеры в ВК - вот это весь петухон)).
Петухон, в целом, сам по себе ничего плохого не представляет, но вот комьюнити его - сплошной гнойник. Простота вката привлекает скам общества - мелкобукв, европрокладок, мамкиных нитаких как все, ЛГБТ/фем мразей и подобных. Неудивительно, что ко всем вышеперечисленным группам населения, даже за пределами петухона люди относятся с нескрываемой ненавистью.
Очень грустно, что из-за такого большого гнойника, но небольшой части программистов приходится страдать всем.
Пчил, я джавист, уймись.
Другой челик будет хуячить скоро на флаксе новый сервис, попрошусь ему наверно в шныри.
Дак это правда, что все отказываются от Спринга и переходят на Флакс?
Чел, ты...
ага
шарпошизик снова ты?
бамп
>Вот например, что здесь происходит ?
Хуета какая-то, потому что результат file.toURI().toURL() игнорируется.
>Обьясните пожалуйста, для чего нужны методы toURI и toURL ?
Во первых Ъ
Во вторых чтобы из канонического пути C:\Users\vkatun\AppData\Roaming\.minecraft\ получить URI: file:///C:/Users/vkatun/AppData/Roaming/.minecraft/
Не думаю что все, но асинхронщина сейчас в моде.
У нас 20 нормальных микросервисов. И вот созрел кейс, чтобы один реактивный замутить. И то там все под вопросом, как и с носикулями. Может и выбросим через месяц.
Да после любого популярного языка легко перейти на другой популярный язык.
Как там твои криптоинвесторы?
Пошёл нахуй хабрашиз, вслед за Егоркой.
Только в самом начале, а потом начнутся итераторы-компараторы, лямбды-хуямбды и станет сложно.
Да не
Щас бы ОСНОВНОЙ столп языка называть самым сложным. как вы пишете на языке где многопоточка запроектирована с самого фундамента языка?
То, что в языке есть продвинутые возможности многопоточки, её делает только сложнее. Можно, конечно, хуйнуть new Thread(), но там подводные и с ресурсами, и с эксепшенами, и синхронизацией. Для большинства задач хватит ExecutorService, но иногда этого не достаточно, и начинается ебля.
Надо, чтобы само всё многопоточилось, а программист писал всё в едином стиле.
Многопоточка простой не бывает, это не проблема джавы, это проблема многопоточки.
я нажимаю на кнопку, второй фрейм создается пустой (без компонентов). Хотя, когда я вызываю метод который создает второй фрейм в методе main, он открывается с компонентами :/
В чем прикол ? Почему не отображаются компоненты ? Подскажите пожалуйста.
Вы не поверете но решением было впихнуть второй фрейм в поток :0
юридическое лицо, выполняющее посреднические функции между продавцом и покупателем (на фондовой, товарной, валютной биржах).
Я про java, я написал рест контроллер, и общаюсь с фронтом, например серелезуя десерелизуя джейсон, зачем мне брокеры?
>Я про java, я написал рест контроллер, и общаюсь с фронтом, например серелезуя десерелизуя джейсон, зачем мне брокеры?
Тебе в этой ситуации незачем. Брокеры сообщений для асинхронного взаимодействия, чтобы выполнять посреднеческие функции между отправителем и получателем сообщений.
Это такой аналог мессенджера для серверов и сервисов. Допустим, есть два независимых сервиса (нет, я не про микросервисы), с каждым работают свои юзеры, а сервисам надо периодически отправлять друг другу какие-то данные. Одна сторона может запилить по своему API для взаимодействия, а другая сторона должна знать адрес первой стороны, дёргать эндпоинты, а если сервис окажется недоступен, делать некую долбилку, которая с какой-то периодичностью будет пытаться отправлять данные, пока тот снова не окажется доступен. В итоге есть много проблем: адреса API могут меняться, оба сервиса могут быть недоступны, API обычно в виде синхронного реста (хотя ответ не всегда нужен), проблемы с аутентификацией, а если таких сервисов много, очень долго и сложно делать по планировщику и обработчику для каждого сервиса. А можно просто договориться, что все будут подключаться к одному конкретному брокеру сообщений, который обо всём этом позаботится сам.
Из жизни таких примеров не бывает, пользователи работают синхронно с каким-то одним сайтом, и подобных проблем у них нет, вся магия происходит за серверах. Зато такое можно встретить в любой организации, где есть несколько продуктов, которым надо синхронизировать данные друг с другом.
Ты бы почитал что умные люди пишут, вместо того, чтобы показывать свою необразованность.
Ты себя к умным людям причислил? Для начала научить писать хоть какие-то аннотации к своим ссылкам.
Если ты не можешь осознать смысл ссылки без дополнительных приписок, то ты явно не очень умный.
Смысл ссылки без дополнительных приписок - это реклама или самопиар.
Класслоадеры пердолинг, но сложного там ниче нет, вайлдкарты генериков вообще какой то рофл, многопоточку писать легче чем синхронный код.
Ну вот ты все обесценил. А что тогда личто для тебя самое сложное из такой несложной джавы?
Красивый элегантный поддерживаемый ООП код.
Без бесконечного дроча хуйни с 0 эффективностью на практике, не процедурщина, не кал с даунскими фреймворками, а именно высококлассный легкочитаемый код, который еще и быстро пишется. В такое очень сложно вкатится.
ООП - не обязательно на сто процентов дроч. Можно бугаенкить всего на полшишечки. Тогда выбирать не придется.
Когда сообщений овердохуя и сервера с разных сторон могут отваливаться.
Поднимать монолит для тестирования микросервиса никак не хочется. В какую сторону гуглить хотя бы? Поиск по запросу spring boot integration test не выдал чего-то полезного, везде внешний сервис мокается.
Трогать монолит нельзя
моск
СОДОМИТИЩЕ
Wiremock
Куда ему до шести уровней вложенных циклов.
Прямо сейчас разбираюсь с кафкой. Кейс:
В один микросервис сохраняют данные. И нам надо часть этих данных сразу реплицировать в несколько сервисов, в том числе и мой.
Ну вот тот сервис публикует данные через продюсер в топик в кафка-брокер.
Я на своем сервисе через консьюмер читаю эти данные, фильтрую из топика то что мне нужно, коммичу в брокер, что я прочитал что мне нужно, а что ненужно отфильтровал.
Я и другие потребители получили данные, тот кто публиковал вообще не знает кто потребители и не заморачивался.
Как в раббите и других это сделано не знаю, но синхронно по ресту это была бы боль.
Никак, бери кресты.
Консоль идеи.
Я его хвалю за набор примеров-сорцов. Единственное что мне не нравится в его примерах, это то что он многопоточку объяснял через свинг. Мне было лень разбираться в иерархии свинговых классов. Но с другой стороны рисовка гуя это хорошая иллюстрация возможностей многопоточки для начинающих.
Урму не читал. Может кстати почитаю, если соберусь снова собеситься на другую работу или если назначат экзамен для повышения грейда. Хорошее содержание. Но не для новичков.
Что у Урмы не для новичков? Это продолжение Эккеля по 8-11 джаве.
Зато есть много другой хуйни, делающей его непригодным для промышленного применения.
Мне помогли все книги, кроме бесполезных элегантных объектов, так что пошёл нахуй, Егорка.
Я его с 2006 года использую и норм
Ну увидишь ты какие-то магические закорючки и как это тебе поможет что-то понять?
Позорятся те, кто форсит ООП в 2022. Остальные смотрят на них как на дедов с делфи и борландом.
Основной синтаксис я выучил по бесплатному гайду на одном известном сайте, все более высокое понятно интуитивно. Если не понятно - гуглю, че это такое.
Позорятся те, кто форсят процедурщину, которая намного старше ООП. Какие же порриджи дегенераты все таки.
Везде во внешнем апи ставишь @notnull. Внутри не надо, производительность убъет.
1. Метод, возвращающий ссылку, помечен как @Nullable
2. Десереализуешь данные, где форматом предусмотрена необязательность каких-то полей.
3. Ещё по какому-то контракту может возвращаться null, например, указано в документации.
4. Натыкаешься на код другого разраба и знаешь, что он любит возвращать нуллы.
> форсят процедурщину, которая намного старше ООП
Это означает, что надёжность процедурщины подтверждена временем.
Дегенерат блядь, под нулл подстраиваться не надо, с ним надо бороться блядь. Плодя проверки на нулл, ты плодишь скрытые связи. Гораздо эффективнее вломить пизды разработчику, написавший нуллоговно или если такой уощпожеоатии нет написать обёртку для его говнокласса.
Ну давай приди на 15-летний легаси проект и вломи пизды 150 разрабам, большая часть из которых давно уволилась.
Ну, надежность писания кода на машинном языке еще больше временем подтверждена. Давай теперь писать на нулях и единицах, хули, проверено временем!
Не подменивай понятия. От машинного кода давно отказались, а процедурщину активно используют и по сей день, что означает неэффективность машинного кода для промышленной разработки и эффективность процедурщины.
Кабан устанавливает такие сроки, что тупо нет времени. А на написание if (hui = null) времени хватает.
Печет у твоей блядоты мамаши во рту от моей кончи, урод ебаный, из за которого время разработки в десяток раз увеличивается.
Энджой ёр энтерпрайз.
Что непонятного? Если ты только вкатываешься, то про нуллы не беспокойся, ибо свои пет-проекты ты будешь писать в одиночку. Понимание потом придёт, тем более когда устроишься на работу и словишь пару багов про NPE и увидишь закономерность.
Хуй знает как ты жабу приплёл, да и программирование вообще.
База
Я такой подход практиковал, мне зашло:
1. Просто притворись что в джаве нулов нет. Примерно как в СССР секса. Вот прям вообще нет такого литерала - null. Все референсы - не нулл, по определению. Мы оба знаем что это не правда, но все же.
2. С мыслью из п.1 выживай как хошь но нулов в коде проекта не делай никогда и ни при каких условиях. Юзай опшенал если нужно, но не нулл. Заточи статик-анализаторы если придется, чтоб другим тоже было не повадно.
3. Так как в коде проекта нулов не будет исходя из п. 2, на нуллы останется проверить только те места, где код проекта вызывает внешний код библиотек, либо где идет прием-передача данных с нулями по транспорту/из базы. При этом даже если ты и прощелкаешь какую нить проверку, вероятность того что тебе прилетит какой нить нетривиальный NPE стремительно сокращается. А если код еще и юнит тестами покрыт, нули вообще перестанут быть проблемой.
Используй типы не допускающие null
Вы там совсем охуели что ли? Это же блять совковая фраза с плаката! Ебучие чубатые свиньи блядь, пытаются в перефорс на благо барина, потешно.
Если ты смотрел вебмку, то она там и зачитывает этот плакат
В книге вся инфа уже собрана и изложена в едином стиле. Какой смысл сидеть и тратить время на поиск инфы, когда можно просто перевернуть страничку?
У него шило в жопе? Половину слов не понял, потому что тараторит да ещё и видео ускорил. Сразу понятно, что придурок.
>>Заточи статик-анализаторы если придется, чтоб другим тоже было не повадно.
Лид на такое предложение скажет "не, хуйня". Такого твой план не предусматривает?
>>где идет прием-передача данных с нулями по транспорту
Сторонний сервис на твой запрос по ресту присылает не все поля или часть из них - нул. Валидация не проходит и срет ошибками, тебе говорят что твой говнокод не работает, срочно чини.
Требую советов как бороться
Оборачивать все в опшионал? Код совсем в говно превращается
Ексепшены? То же самое
Нулы такое же говно офк
И что делать
Там реклама джавараша. Собственно ради этого и снималось видео, чтобы порекламить.
> Лид на такое предложение скажет "не, хуйня". Такого твой план не предусматривает?
Обрати внимание --- выше я описываю не какой то там план, и не пропозал. Выше я описываю свой опыт. Лиды на моей памяти никогда не возбухали --- какая им разница, если я могу по факту обосновать и проблем никому не создаю. Буду я еще кому доказывать чего то там...
> Сторонний сервис присылает...
Если нулов там по контракту быть не должно, пусть валидация на это и валидирует. Что вполне укладывается в правило 3 --- проверять на нулы там, где тебе по транспорту приходят неподконтрольные твоему сервису данные. В чем противоречие?
> Если нулов там по контракту быть не должно, пусть валидация на это и валидирует. Что вполне укладывается в правило 3
А если должны быть, то не укладывается.
> Оборачивать все в опшионал? Код совсем в говно превращается
Почему? Как по мне --- это вполне себе выход. Нужда в нуллабл референсе, кмк, встречается в разы реже, чем не-нуллабл, так что не так уж и много их будет.
> Ексепшены? То же самое
Эксепшены вообще не замена. Контрол флоу через эксепшены --- моветон, а он неизбежно появится если ими пытаться зареплейсить нулы.
> Нулы такое же говно.
Тут следует разобраться, почему люди вообще нулы ненавидят. Что характерно, нулы и его аналоги обычно ненавидят в языках типа джавы, или джаваскрипта, но при этом в хаскеле, например, есть пустой тип '()', который какбэ тоже нул, но к нему наоборот ни у кого претензий нет. Казалось бы, почему?
Причина, кмк, кроется в том, что присутствие нулей в джаве превращает ее систему типов в дырявое решето. Потому что с ними получается, что переменную, поле или аттрибут референсного типа, способный принимать нулевое значение, ты объявить можешь (они все так умеют, лол), а референс, запрещающий нулевое значение --- нет. Что ведет к тому, что невозможно потребителям этих референсов обеспечить на уровне системы типов гарантию того, что значение по референсу будет присутствовать --- если они сами не проверят на нулл, рискуют свалиться в NPE либо пустить этот тромб вверх по стеку.
Хаскелевый '()' этой проблемы лишен --- он вполне конкретного типа.
}
Контрол флоу через эксепшены - единственный адекватный способ бороться с нуллами при недостатке мозгов. Опшионал == нулл.
При достатке мозгов можно попытаться обойтись и без экспешнееов, и без нулдов, но это сложно и много времени потратит, лучше в эксепшены все обернуть.
Опшионал ничем сука не лучше нулла блядь, ничем. Если какой то метод что то возвращает, он возвращать должен нормальный, живой объект, а не кота в мешке. А если не может вернуть - кричать "блять, я не могу!" и кидать исключение.
> А если не может вернуть - кричать "блять, я не могу!" и кидать исключение.
Очень хуёвый подход. Логикой может быть предусмотрено, что метод не может чего-то вернуть, и это будет нормальная ситуация, а не исключительная, и обрабатывать её надо соответствующе, а не ловлей эксепшенов.
Не понял сначала твой высер. Нулл - это ничего и точка, сука. Он не может что-то значить, его не надо никак обрабатывать. Если надо - придумываешь замену для нулла, которая будет значить что-то конкретное.
И кто тебе мешает в кетч блоке пихать свою говнологику, если уж так приспичило?
>Если надо - придумываешь замену для нулла, которая будет значить что-то конкретное.
Так придумали уже, Optional.empty().
А нахуя блять придумывать замену для нулла, если нулл уже существует?
Чтобы не было NPE
Ничем, поэтому опшионал == нулл.
>Оптионал == нулл
Ну скастуй Optional к любому классу и вызови у него любой метод в таком случае, придурок.
1. Вместо возврата нулл надо возвращать пустую коллекцию, Optional юзать нельзя никогда, потому что недостаточно ООП-шно.
2. Принимать нулл в качестве аргумента нельзя, надо принимать "нулевой объект", который является нормальным объектом, но при это ведёт себя нейтрально, как, например, 0 нейтрален для операции сложения.
Первое база, второе кринж. Даже нулевой объект принимать нельзя.
Если метод, который возвращает String вернет тебе null, и ты вызовешь у этого объекта метод length, то вылетит NPE. Если метод возвращает Optional, то такой проблемы нет, потому что никто у него get сразу не вызывает. Используется либо orElse, либо map.
>Optional юзать нельзя никогда, потому что недостаточно ООП-шно.
А вот эта хуйня ООП-шна? https://github.com/yegor256/cactoos/blob/master/src/main/java/org/cactoos/scalar/Unchecked.java
Раз это написал Егорка, то ООПшно.
Жаба 4 была лучшим языком, дальше пошла наркомания: аннотации, дженерики, лямбды блять.
> Опшионал ничем сука не лучше нулла блядь, ничем
Опшенал лучше нулля тем, что опшенал --- тип. Ты не можешь присвоить опшенал переменной не-опшенал типа, равно как и наоборот. В отличие от нулла, который ты можешь присвоить любой переменной референс-типа. Это ключевая, основоопределяющая разница.
Орать и бряцать понятием "живой объект" на меня бесполезно, впечатление на меня это не произведет. Я знаю откуда это понятие --- "живой объект", в эти ваши "живые" и нулл-объекты я упарывался еще в 2016м, просек фишку сполна, и не тебе, шавка залетная, поучать меня --- какой объект живой, а какой --- мертвый.
Стрелочная поблядуха, тише.
Хех, правды знаток)
Правда в том, что охуительные истории про живые объекты хорошо выходят только у Егора. У свидетелей Егора обычно харизмы не хватает, равно как и мозгов с терпением чтобы все сказанное им обдумать и переварить (как кстати еще сам Егор завещал делать в своих Bloghacks 256) --- они и носятся по интернету как мамкины евангелисты с библией, думают что если ткнуть пальцем в конструкцию и погромче рявкнуть "зло", как Егор делал на докладах, все сразу поверят, акстятся и перестанут пользоваться, а евангелистик получит оффер в ФААНГ где перепишет гугль на живые объекты. Pathetic.
+++ но видео не прям хуйня. Рекламу джавараша всерьёз не воспринимать, остальное пойдет.
Ебать я чуть лицо себе не разбил с этой манеры речи, да и в целом с содержания поста.
Ты тут новенький? Сюда регулярно петухонобляди протекают и пишут хуйню, в которой не соображают вот в таком уебанском стиле.
Хуйня, которую стоит забыть как страшный сон.
Кстати, такой еще вопрос: нельзя инжектить бины с другим скоупом? То есть, у нас есть какой-то синглтон, например, а мы хотим заинжектить некий бин со скоупом Session.
Обёртка над каким-то значением, причём значения может не быть. Например, не известно заранее, может ли метод вернуть нужный тебе объект, и поэтому он в зависимости от своей логики возвращает тебе Optional с объектом или пустой Optional. Без Optional ты бы просто возвращал null вместо объекта, а Optional придумали те, кто считает, что использование null надо свести к минимуму. У Optional есть несколько полезных фич, например, можно через map() применить к содержащемуся в нём значению какую-нибудь функцию, а если не содержится, то ничего не произойдёт.
Всё можно сделать без Optional, просто он явно подчёркивает, что каких-то значений может не быть, и это нормально.
Это суть Spring IoC, но в спринге есть дохуя чего ещё.
Инжектить можно, то есть нюансы со всякими @Lookup. Большинство не ебёт себе мозг и везде юзает синглтон.
>>Требую советов как бороться
>>Оборачивать все в опшионал?
1. репозитории возвращают опшинал для одного объекта (для нескольких очевидно пустой лист)
2. контролеры все валидируют все параметры/поля дто через @NotNull и шлют нулы нахуй, либо делай дефолтные значения если там нулы быть могут (0, "" , List.of() и тп).
Этого должно хватить.
>(для нескольких очевидно пустой лист)
Нет, лучше Optional<List<T>>, это гораздо более хороший код в процедурном стиле. Хуй ООП!
>Большинство не ебёт себе мозг и везде юзает синглтон.
А если, например, это корзина в интернет-магазине? Допустим, мне надо как-то заинжектить корзину в контроллер.
Заинжекти и проверь.
Не юзать спринг.
У меня лид через жавараш вкатывался (правда эт давно было, тогда он вроде бесплатнывм был).
Сам я им не пользовался - прошел на курсере курс от Duke University(тоже бесплатно) а потом сразу начал петы по гайдам пилить минуя книги и прочую хуйню. Потом просто доучил джаву перед вкатом.
По мне так что жавараш, что курсера для совсем нулевого в программировании - норм. Хотя платить конечно за это стремно, а в нынешней ситуации еще и за терроризм могут привлечь, если выяснит что жаварашна азов тоже скидывается.
У корзины должен быть id, и она должна храниться в базе данных. А не быть смесью сервиса и сущности.
>а в нынешней ситуации еще и за терроризм могут привлечь, если выяснит что жаварашна азов тоже скидывается.
По моему тут больше самому будет противно, что ты чубатых мразей спонсируешь, чем опасность набутылиться.
Ты че, охуел? Корзину в БД писать? Каждый раз когда кто то пукнет нажав на кнопку "добавить в корзину" долбится в бд?
Так используй специальную in-memory БД для этого, либо вообще держи на фронте до начала оформления заказа.
Такой хуйнёй только пидорас хохол с пораши будет заниматься, чтобы доказать что оннисимён. Или петухоноблядок с куклой типо тебя.
Поговорил с ботом.
Так прувов, что он семён, у тебя тоже не будет. Даже не будет прувов, что я - это не ты.
Вкатун скорее поймёт, что такое опшенл, чем Maybe.
Петуховен --- это ты. Спок.
https://www.sitepoint.com/how-optional-breaks-the-monad-laws-and-why-it-matters/
Ты долбоёб? Где я про SQL БАЗУ ДАННЫХ говорил? Я говорил про in-memory, она по твоему обязательно должна быть SQL БАЗОЙ ДАННЫХ? Посмотрю я на твою хешмапу, когда она на несколько гигабайт разрастётся и перестанет влезать в ОЗУ.
Я не буду читать твоё говно на языке из параши, уноси обратно в петухон тред, где этим обмажутся и назовут это ангельским языком.
>>394625
>>кричать "блять, я не могу!" и кидать исключение.
А если я взял ОПа, хочу узнать шлюха ли его мамка и достаю мамку из резозитория, но у ОПа ее нет? Мне в принципе похуй, я могу и по дефолту значение проставить(через опшинал как раз, либо через ==null), а визги "блять, я не могу!" мне нахуй не нужны.
То есть опшинал никаких проблем не решает, а только усугубляет проблему, легализуя ее и давая возможность засрать весь свой код этим. Понятно.
Репозиторий визжит, что мамки нет и ты понимаешь, что ее нет. Иначе может произойти такая ситуация, что мамки нет, но ты работаешь так с опом, как будто мамка у него есть и ловишь глубинные баги.
>>Вместо возврата нулл надо возвращать пустую коллекцию
Вызвал объект - пришла коллекция. Спасибо, очень элегантно получилось. Теперь вместо ==null буду писать instanceof
>>надо принимать "нулевой объект"
getSome (1, "string", new Object(new Fizz(), new Buzz(), new Fuzz(new Fiz(), new Buzz())))))))))
>она по твоему обязательно должна быть SQL БАЗОЙ ДАННЫХ?
>in-memory БД
Дохуя in-memory NoSQL назовешь?
>Посмотрю я на твою хешмапу, когда она на несколько гигабайт разрастётся и перестанет влезать в ОЗУ.
А in-memory БД на несколько гигабайт каким образом в память влезет?
Какой инстанц офф? Зачем он тут? Ты совсем дебил блядь? Берёшь и итерируешь эту коллекцию, всё. Если там 0 элементов - ничего не произойдёт. Если дохуя - дохуя чего произойдёт.
Потому что это процедурненько и православненько. Никакого ООП, только пердолинг, только опшенал!
Я-то как раз умею пользоваться встроенными возможностями спринга, поэтому мне никакие in-memory БД не нужны.
Ты не сливайся, а докажи сначала, что стейтфул бины чем-то лучше SQL БАЗЫ ДАННЫХ.
Лаконичностью.
А еще тем что тебя компилятор заставит делать эту проверку и ты не сможешь что то достать, пока не развернешь опшинал. Забыть проверить нулл гораздо проще.
А смысл? Если назову, ты будешь говорить, что они все говно, ведь твоего спринга по твоему мнению достаточно для вообще всего.
Не так. Я просто хочу сказать что ОП-хуй, а его мамка - шлюха, но сначала хочу убедиться, что не членодевка, а если данных нет, то по дефолту - шлюха. Но когда начнутся визги что репозиторий что то там не смог мне это вообще все сломает.
Слит.
>>Какой инстанц офф? Зачем он тут?
Вместо объекта типа Egorka мне пришел Collection.
>>Берёшь и итерируешь эту коллекцию
А если это был не Collection, а Egorka и у него нет итератора?
А если каждый объект заворачивать в коллекцию из одного элемента это тот же самый опшинал только костыльным путем.
Какой же ты тупой, пиздец просто.
>А если каждый объект заворачивать в коллекцию из одного элемента это тот же самый опшинал только костыльным путем.
Делать только такие методы, которые даже без нуллов возвращали бы коллекцию.
>>Опшенал можно достать и без этого.
Его как минимум придется достать. Может тебе конечно и наплевать на все варнинги он идеи, но все же это лучше чем просто вызывать сходу поля объекта не подозревая что там хуйня.
Какой же ты долбаеб. Пиздец просто
Тебе пришёл не Collection, а Collection<Egorka>. Смысл instanceof, ты и так все типы знаешь.
Поперхнулся чаем со смеха. Спасибо
Вот именно. МОЖНО НАПЛЕВАТЬ и НЕ СКОМПИЛИТСЯ абсолютно разные вещи. Для этого и надо кидать проверяемые исключения.
Пиздец, я ж тебе дебилу все объяснил, а ты этого понять не можешь, еще и на меня агришься.
>>Делать только такие методы, которые даже без нуллов возвращали бы коллекцию.
Напиши метод который вернет сущность по ИД.
>Напиши метод который вернет сущность по ИД.
public Entity findById(String Id) throws NoSuchEntityException()
Если эксепшен будет проверяемым, придётся писать обёртку
try {
hui();
} catch (final Exception e) {
throw new RuntimeException(e);
}
А чем Collection<Egorka> лучше Optional<Egorka> если мне нужен только один бугаенка?
Нет, в catch ты пишешь свою логику, что произойдёт, если репозиторий нихуя не найдёт.
Да хуй знает, высосано из пальца.
>>394815
>>394814
>>394813
>>394812
>>394811
>>394810
>>394807
Вы все срётесь на ровном месте. Эксепшен, опшионал, коллекция, нулл - всё это абсолютно одно и то же и фактически разницы не имеет. У вас всех код в переводе на натуральный язык выглядит так:
Найди хуй, а если не нашёл сделай X. Как это реализовано - через опшионал, коллекцию, эксепшен - не важно.
Правильное решение - не допускать существования двояких значений в программе. Например, если мы обращаемся к конкретному значению у объекта, то оно в любом случае должно возвращать валидное значение, которое будет работать правильно. Для этого надо правильно создавать эти объекты.
Если же возвращать валидные объекты всегда ну никак не возможно, можно воспользоваться любым из этих вариантов. Разницы между ними нету. Хотя конечно самым элегантным решением (но по сути ничего не меняющим, можно также опшеоналом и даже ненавистным нуллом) будет выброска исключения. Выброска исключения - самый семантически логичный вариант.
>Если же возвращать валидные объекты всегда ну никак не возможно
Пример - репозиторий и получение данных от пользователя. Например, пользователь вводит условную команду "найти другого пользователя по айди egorka". Исключение стоит делать непроверяемым, а данные проверять на входе. Получил исключение после обращения к репозиторию - данные, значит, не проверил и это ошибка программиста.
В треде началось обсуждение интересной и актуальной темы, а не модов на майнкрайт или курсов как обычно. Но надо было прийти и все изгадить.
Спринг == глобальные переменные == высер из под коня.
пахую
Если тебе не похуй на проёб корзины, которая в обычно и так проёбывается каждые 5 минут из за динамического айпи у пользователей, то можешь и сохранять в БД. Всё зависит от таски.
А как масштабироваться?
Зачем учил простейших SQL, если невъебенно сложная JPA с кучей подводных камней сама всё делает?
Так все равно жпкл надо писать
Нужно в JAVA строке узнать, содержит ли прописную букву (верхний регистр)
Pattern pattern = Pattern.compile("[A-Z]");
String lineItems = "QWasD";
Matcher matcher = pattern.matcher(lineItems);
boolean found = matcher.matches();
Он все равно выводит false, хотя он же должен проходить. Почему?
Рекурсией.
https://pastebin.com/fpJ3gtmf
С названием функции я обосрался, это не prmutations а combinations. Но перепастить лень.
Я просто узнал себя в 16 лет.
Двачую.
Обсуждай то, что тебе интересно.
Перекатывайся нахуй...
тред грузится быстрее секунды, перекат не нужен.
Потому что спринговые стейтфул бины - лучшая СУБД всех времён и народов, куда там редису и SQL БАЗЕ ДАННЫХ до спринга.
Контрол-флоу посредством эксепшенов --- плохая идея. Эксепшен это не просто какой то там особый return, легализованный goto или if. Выброс эксепшена --- это еще и дорогостоящий сбор стек-трейса. Такое оправдано разве что в обработчиках ошибок с целью собрать побольше инфы для девелопера, или смаппить ошибку на HTTP респонз с кодом 500 как это делают в сервисах, но никак не универсальная замена чекам на нулл.
https://www.baeldung.com/java-exceptions-performance
Толсто.
Да, жестко как то. Не знал, что аж настолько хуево по производительности оно. Надо тогда сделать синтаксический сахар в виде
do {
....something();
flows (NotFoundCase case) {
....something2();
}
Который по факту будет обёрткой над обычным ретурном
Ну а если голыми опшеналами некрасиво, и надо языковую конструкцию, то это тебе в языки, где поддерживается do-нотация с монадами (scala, haskell, kotlin c arrowkt каким нить).
В петухлине можно вот такое писать?
public void first() {
....do {
........something();
....flows (NotFoundCase case) {
........something2();
....}
}
public void something() {
....if (true) {
........flow new NotFoundCase()
....}
....return;
}
Минут 10 пытался вкурить код, но так и не раскурил. Зачем аккумулятор обёрнут в лист? Как вообще пользоваться выводом?
>>2395740 (OP) А
>>2395740 (OP) К
>>2395740 (OP) Е
>>2395740 (OP) Р
>>2395740 (OP) Е
----ТАКЕРЕП
ПЕРЕКАТ >>2395740 (OP)
ПЕРЕКАТ >>2395740 (OP)
ПЕРЕКАТ >>2395740 (OP)
ПЕРЕКАТ >>2395740 (OP)
Немного поменял чтобы можно было разные лимиты для измерений задавать и создал объект враппер для координат.
https://pastebin.com/APB7NZw7
В
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, который сложился в джаве и по которому фреймворки умеют работать со структурками данных --- тупо конвеншен. Инкапсуляцией я б это не назвал.
>>в энтерпрайз приложениях используют сейчас Хибернейт? И если да то в каком виде? Как им управляют?
через абстракцию - Spring Data
Я все чаще с jOOQ сталкиваюсь.
>такая популярность питухона?
Первый язык тех, у кого IQ на уровне хлебушка и его хватает только на прочитку реддита.
Читай доку и смотри видосы. Также Spring in action 5-ое (вроде), издание.
На Pluralsight был в принципе годный "курс" по Спрингу, но если тебе доступ кабан не оплачивает, то и не заморачивайся.
t. кодомакачил на SAP Commerce и теперь хочу открыть форточку и выпрыгнуть.
Раньше было едва ли не корпоративным стандартом и много легаси запилено с прицелом на это.
Может, какие-то платформы используют эклипс и заточены под него, а маняплагины на Идею ставить - религия не позволяет.
Иногда бывает, что кабанчик жлобится на лицензию от идеи, в одной крупной галере, например, было проще ебашить через Community edition, чем покупать лицензии.
Эклипс это ещё не самый зашквар. Самый пиздец - это когда ты видишь NetBeans в качестве IDE.
Вы видите копию треда, сохраненную 1 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.