Поясните нуфагу, чё нужно, чтоб вкатиться на мидла? Если я охуенно шарю за ООП и код пишу чистый, опыта на 50к строк в общем, на чё я могу рассчитывать? Все эти 50к строк на гитхабе есть
Вопрос. Сделал пет проект, изучил спринги, хиберы скл, поверхностно. Все это делаю чтобы искать потом какую-то работу. Но не могу заставить себя читать алгоритмы и тестирование, особенно алгоритмы. Насколько это нужно при трудоустройстве? И в каком объеме? Как мне кажется для изучения Кнута какого-нибудь нужны годы, а я чёт не становлюсь моложе с годами, и интереса к этой теме нет. И в работе часто надо писать свои деревья, например?
>>2341652 Для джуна - крайне важно. Можешь ещё про корзины в хешмапах почитать и про обход бинарных деревьев ахахах. К мидлу уже вопросы более адекватные. Тесты не пишешь - не пройдёшь, кстати.
>>2341666 >>2341661 Да понятно что вручную проверить легко, но я же не контролирую ничего между отправки значения с формы и до валидации. Можно как-то валидировать уже после регулярки? Сорян если вопросы тупые, я совсем ещё дебил
>>2341664 ну я не мидл, я совсем не в этой сфере работаю. так таки в каком объеме надо знать алгоритмы и где и как их изучать с чего начинать и в каком объеме. из твоего поста не понятно
>>2341705 Представь, что твоя программа не умеет работать с кредитками с пробелами, и ты это изменить не можешь. Основываясь на этом, решай проблему с валидатором.
>>2341685 То что тупо делать ответом на вопрос, решаемый методом, эксепшены как вариант нормальной работы. Нормально сделать возврат булевым и возвращать true false ааа результат валидации
>>2341715 Удачи разбираться в методах с 10 отступами и на 150 строк с if/else, лол. Если метод содержит if, то он должен выглядеть как пик
>>2341718 Сделай тогда для пользователя более широкий подходящий диапазон форматов вводимых значений, валидируй ручками, а потом подгоняй к общему валидатору
>>2341722 >Удачи разбираться в методах с 10 отступами По моему ты просто кокой-то долбоеб. Ни в одном пособии по даже самому упоротому клин-коду нет такого что ветка else ни в коем случае недопустима, даже однократное вложение и то еще норм. Энивей, никто и не возвращает булевское значение через if-else, потому что можно вернуть его непосредственно: return xxxx.matches("xyi"); Энивей-2, упрощение через направление штатного потока выполнения в эксепшены? сириусли?
>>2341770 Ну окей, хуярь свои if(a) return b; с муками если пришлось написать полтора лишних оператора. Вообще похуй, лол. >даже не джун ахаха. это я бы тебя даже джуном себе не взял, с такой кашей в голове.
>>2341776 Всегда тут был. Че так бомбишь, клован? Это наверное ты через месседж эксепшена передаешь питоновский код, чтоб поймать распарсить и исполнить, чтоб охуенно упростить все.
>>2341781 >питоновский Петухонист не палицца. >Это наверное ты через месседж эксепшена передаешь питоновский код, чтоб поймать распарсить и исполнить Продристался с паттерна проектирования. Такое и придумать то сложно, стопроц так делаешь регулярно.
>>2341787 >Использование исключений для управления потоком выполнения является достаточно распространённой практикой. Однако во многих статьях и книгах, посвящённым лучшим практикам, например в замечательной книге Джошуа Блоха “Java — Эффективное программирование“ (Effective Java, Joshua Bloch), даётся рекомендация не использовать исключения как способ ветвления кода.
>>2341787 >придумать сложно потому что ты дебил-крудошлеп, который вне своих фреймворков нихуя не умеет, кек. а так-то всё самое замутное как раз в маршаллинге промеж собой всяких разных трудносовместимых вещей, и я бы почел за интересную задачу такое решить.
>>2341727 >А вообще, все знают, что аннотации это анти-паттерн Так весь спринг на них же работает. Что, если есть форма на 10 полей то все их лучше будет руками валидировать?
>>2341805 я ваще-то только про два говорил, иди перечитай, у тебя похожк память слишком короткая, в нее тупо не влазит больше 2 операторов в строке, потому ты и боишься так циклов и ветвления.
>>2341809 Как тебе такой код, любитель ветвления? Уже обкончался от необходимости вмещать в свою память больше 2 операторов? Уххх, ща как напряжёшь мозги, да?
>>2341816 Отстой пидорский, конечно же. Даже не из-за goto, а потому что только пидорасы называют переменные А, Б, Цэ и так далее. Нормальные люди стараются хоть какую-то семантику прилепить.
>>2341821 Но тут же так дохуя твоего любимого ветвления. Мозги надо напрягать, а то разленились эти ваши ооп программисты, вот мы раньше писали код и приходилось запоминать переменные, не то что щас
>>2341826 Это самый настоящий код для прода. Для примеров используют более проверенные временем языки программирования, в которых меток нет и goto пишется по строкам
>>2341823 Ты какой-то дурак, который в зелёнку полез. Тебе никто не говорил никогда что милионы вложений циклов и ветвлений, особенно через гоу-ту, это заебись, тебе говорили что несложные комплексные операторы вроде if-else или там какого-то for это нормально. Короче, каждый пишет как хочет. Я тебя ни в чем не убеждаю. Что мне похуй сказал еще постов 10 выше.
>>2341826 Именно код примеров и требует семантики в том числе. Для целей нормального сосредоточения на теме, а не на ебле с буквами class Outer{ class Inner{ } }
>>2341834 наааайс. теперь совсем хорошо ты заебал, пчел. я верю что ты знаешь про существование машкодов. не нужно мне это доказывать. принципиальной схемы проца с графиками напряжений на ногах пожалуй не нужно, хорошо?
>>2341855 Да бля, ты дебс. Я пишу так или иначе в зависимости от позы в кресле. Вообще похуй. Давай еще уличи во мне делфиблядка какого-то за регистронезависимость
>>2341869 Как говорил Стивен Кинг вроде, не помню на самом деле нихуя "начните с осознания того факта, что скорее всего вы не заработаете писательским трудом ни цента за всю свою жизнь. Если вы осознаете это и примете, ваш шанс стать писателем станет гораздо выше" Вкатывальщики за хлеб идут нахуй. Полюби решать траблы, полюби хардкодить сука. Шутка. а правда в том что зависит от того даун ты или нет, а из твоей постановки выходит что скорее даун, потому что спрашивать такое не говоря бэка своего - даунство
>>2341874 Я в депре, поэтому через жопу формулирую вопросы. До этого говнокодил на 1С. Сейчас хороший шанс для съеба в штаты, но там только двор мести, если возьмут. Мимокроком пришел спросить. Почитал гайд в шапке, но я даже хоть с каким-никаким бэком не могу понять сколько мне нужно в моем состоянии чтобы хоть на джуна взяли. Вопрос был серьезно задан без рофлов. Могу сказать что в 1С можно что-то заработать уже месяца через 3 после пары учебников. ХЗ как обстоит дело в джаве.
>>2341877 > Функциодауны > Ради бабла Чет проиграл с этого знатока. И какое бабло ты поднимаешь на каком-нибудь хаскеле, лиспе или эрланге? >>2341879 Если без рофлов, то твой бэкенд не репрезентативен так сказать для понимания как тебе пойдет джава, потому что в сравнении с 1С это пиздец как отличается. Если б ты сказал что раньше ебашил на шарпе или плюсах (короче, на чем-то типобезопасном и ООП-заточенном), то можно было бы делать хорошие прогнозы. А так хз. Но если честно, кмк, ответ: ДОЛГО. Просто потому что сейчас, судя по этому треду, джуну недостаточно знать тупо язык и станднртную либу, ему надо волочь во фреймоворках типа EE или Springa, в БД вообще по дефолту, в системах сборки, девопс-параше и еще куче всего.
>>2341888 Там то ты не поднимешь бабла, но эти недоумки, которые не способны в ООП лезут в джаву и обгаживают тут всё своими аннотациями, статиками и прочей хуитой.
>>2341894 Что то хуево от этой музыки становится, сразу засыпаю. Нужно что то долбежное и крутыми неоновыми постэфектами и еще с ебейшей тряской камеры.
>>2341891 Прикол в том, что это массово. Возможно, в это стоит перекатиться когда ты уже в чем-то шаришь, но просто постепенно уехал в специфичные задачи.
>>2341902 Гораздо интереснее не музыка, а код. Мне было бы в сто раз интереснее здесь читать про имплементацию новых удобных расширяемых решений в его код, чем смотреть на новые сделанные уровни для игры
>>2341888 Спасибо за ответ, анончик. Обнадеживает, конечно. Хотелось бы в интерпрайз какой-нибудь вкатиться, но сейчас как-то все очень стремительно меняется.
>>2341902 Это шутка, это музыка из водных уровней в Супер Марио.
>>2341907 Я не только уровни делаю, их я вообще почти еще не делал. Могу пописывать про свои велорешения иногда, если и правда интересно. Вот код, только он не продокументирован и вряд ли ты захочешь в нем разбираться : https://github.com/Anc3vt/d2d2/tree/dev
>>2341911 Начни просто язык учить. Это довольно долго, и это БАЗА, так что полезно в любом случае. Если именно энтерпрайз, то даже на шарп потом переехать легко будет. Просто ты должен понимать что выучить сам язык это процентов 25 от всего.
>>2341652 никогда, желательно выучить с какой скоростью выполняются классические структуры данных (поиск, вставка, удаление) этого хватит, как устроена хешмапа стандартный вопрос который задают всегда и желательно знать как она реализована именно в том языке что ты учишь, если расскажешь интервьюеру зачем в реализации хешмапы в яве побитовые сдвиги этого хватит более чем.
>>2342085 Ну я сразу написал что она немного умеет) там есть свои проблемки. Ну и кстати настраивать тоже можно, так что не выёбывайся сильно, это всё равно лучше чем ничего
>>2342597 Еблан? Кто сейчас меня на 100к возьмет без опыта? Дай боже выторговать 30 тысяч в Москве, 15к за комнату в коммуналке в области, 8к на пожрать, 7к на проезд (удаленку не дадут). Что не так?
Ты просишь избегать try catch. А в Селениуме трудно просто сделать проверку true false на отсутствие объекта, если этот объект - Веб Элемент. Отсутствие элемента на странице для Селениума или его неактивное состояние - это не false, это "пошел нахуй, тестер, исключение: элемент не найден".
>>2342614 >Еблан? Кто сейчас меня на 100к возьмет без опыта? Дай боже выторговать 30 тысяч в Москве, 15к за комнату в коммуналке в области, 8к на пожрать, 7к на проезд (удаленку не дадут). Что не так?
30k, ты что, дворник или тот чел, что у турникетов метро в кабинке сидит, за эскалаторами наблюдает? Кассиры пятерочки меньше 50к не просят. Твоя цена, как Джуна - от 90к
>>2342686 >Твоя цена, как Джуна - от 90к Пошли мантры ДимСоула и Саксонова, лол. Джун - это человек с минимум 1 годом КОММЕРЧЕСКОГО опыта, чел. Зарплата ему - ну тысяч 50 максимум. Его еще учить и учить. Что уж говорить, когда матерые сеньки максимум по 250к идут.
>>2342733 >принося прибыли на 5000к Попустись, сычуш! Какие ты там прибыли приносишь? Лепить круды на спринге и пукать в кафку любой студент умеет и цена этим "навыкам" - ну 50к максимум за фуллтайм.
Какие есть аналоги спринга для инъекции зависимостей? Тема то вроде интересная, но так, как это реализовано в спринге, с кучей аннотаций и полной покладкой хуя на ООП выглядит турбокринжово и убого
>>2342545 Нужны петпроекты. Надо знать как минимум поверхностно (сам с нуля все собрал и завел) стек микросервисной архитектуры, с всратым монолитом на депрекейтед никто даже разговаривать не будет
>>2342756 >>2342748 Чел, ну зарплатные вилке же открыты. Открой проджвмджобс и узри, что 250-300к платят матерым сенькам. Если ты работаешь на зарубеж, то никто тебе не станет платить 8к, т.к. местные спецы обойдутся дешевле. Максимум на зарубеж - это 4-5к. И это в том случае, если ты обладаешь уникальной экспертизой, а не просто круды лепишь на спринге.
>>2342951 >Градла голден стандарт Грэдл - это глорифайд ант. Мавен предлагает декларативный способ описания сборки проекта, когда грэдл заставляет прописывать все команды по сборке и указывать куда что положить и откуда чего взять, чтобы хоть как-то собралось. В итоге портянки на градле невозможно читать и поддерживать. Ну и тормозит он и память жрет - будь здоров!
>>2342953 >Грэдл - это глорифайд ант. Мавен предлагает декларативный способ описания сборки проекта, когда грэдл заставляет прописывать все команды по сборке и указывать куда что положить и откуда чего взять, чтобы хоть как-то собралось. В итоге портянки на градле невозможно читать и поддерживать. Ну и тормозит он и память жрет - будь здоров!
Ну понятно, ты монолит пишешь. Вот тебе и нужно чтобы только зависимости подтянулись и погнали.
А градл - для микросервисов. Как я его использую: когда внутри папки с проектом ещё несколько папок с проектом, которые способны независимо работать. А связаны между собой тасками.
>>2343099 > когда внутри папки с проектом ещё несколько папок с проектом, которые способны независимо работать. А связаны между собой тасками. То есть если бы ты знал о существовании в мавене модулей, то градл бы не использовал?
>>2343099 >ты монолит пишешь >А градл - для микросервисов >Как я его использую: когда внутри папки с проектом ещё несколько папок с проектом >которые способны независимо работать В голосину!
По условию дан массив массивов строк из двух элементов. Первый элемент индекс(переводится из строки в инт), второй строка. Нужно у первой половины массива строки заменить на "-", а после этого вывести в строку все значения через пробел в порядке согласно индексу.
Я разделил проход по массиву на два цикла, чтобы отказаться от условных операторов. Стрингбилдер, так как он побыстрее листа и хэшмапа. Заполнил его пустыми строками опять же, чтобы не было ветвления. Чтобы не выводить все 100 значений, закидываю индексы в трисет и беру последний при выводе.
При миллионе строк начального массива не могу уложиться в лимит времени.
Интересно, есть ли смысл начинать изучать java в 2k22, если нет никакой вышки (а ведь без неё, как говорят аноны, HRюши даже на собес не позовут), или сразу идти в курьеры (заводы не предлагать, т. к. там всё печально)?
>>2343432 Хакерранк. Это далеко не самое ебанутое, что у них есть. Вот условия одной из них - я, честно говоря, не понял, что вообще требуется. >>2343526 Вот примеры.
>>2343550 >Твой пет проект будет ценнее Нет. Без навыков быстрого решения задач уровня медиум с литкода, ты даже до самого технического собеседования не доберешься, где с твоим резюме начнут ознакамливаться.
>>2343504 >>2343513 мне отказывали потому что вышка не компьютер сайненс, причем уже на этапе преофера, обидно было, херка конечно сука, лучше бы сразу отказала чем обнадеживать и кинуть
>>2343550 Хочется всё-таки знать, как эффективно и быстро работать с коллекциями. Если не можете подсказать, как ускорить, то хоть скажите что стоит изменить в моей версии хотя бы с точки зрения стилистики и читаемости?
>>2343348 Убрал изменение первой половины исходного массива. temp1=arr.get(i); temp1.set(1, "-"); Вместо этого в результирующий сразу записываю result[x].append("- ");
Но этого тоже не хватило, всё равно в лимит времени не помещаюсь.
Есть ли ИТТ кто-то, кто использует Thymeleaf в реальной работе, или хотя бы нормально его знает, чтоб выводить какие-то сложные модели данных на веб? Изучаю спринг, и что-то мне кажется бесполезной тратой времени изучение этой параши, если она в реальности никогда не юзается. Так ли это? Насколько он вообще сложный? За сколько можно освоить на хорошем уровне и что почитать?
>>2343601 В каких то проектах было, но только для емайлов. Но сейчас все посылают емайлы через экстернал сервисы вроде sendgrid, так что нахуй не надо, а на вебе у всех SPA.
Но если тебе прям так надо, то по примерам из гугла можно за час разобраться.
>>2343602 >а на вебе у всех SPA Насколько понимаю, это JavaScript У меня довольно тупая задача: я должен в одно лицо поднять веб-морду для некоторого сервиса над БД, такой, своего рода недо-фулл-стек таск. Вот я выбираю какую-то технологию, которая потребует минимума изучения какой-то бесполезной поебени, но в то же время позволит худо-бедно решить все нужные задачи. Есть какие-то эдвайсы что лучше предпринять (кроме как сменить работу, это я и так знаю, но пока не могу, да и тупой слишком)
>>2343614 Да ладно тебе, "за час в гугле", "пока тут сидишь - уже бы". Когда ты уже что-то знаешь всегда кажется что разобраться 5 минут. Так можно и про всю джаву сказать "хули там, за пару недель изучишь". Хотя объективно - это бред. >>2343616 >>2343620 Спасибо, покопаюсь
>>2343625 Меня интересует уровень владения его клиентским АПИ - все эти ссылки на переменные, свойства, условия, проходы по цикалм етц. Мне не особо интересно как там устроен его контекст и кишки. Трабл в том что еще и ХТМЛ придется более глубоко изучать, потому что у меня понимание сугубо поверхнострое, на уровне полутора тегов.
>>2343627 >Трабл в том что еще и ХТМЛ придется более глубоко изучат Так зато в следующий раз быстрее сделаешь. Вот и когда-нибудь тоже придешь к тому, что "за час в гугле" не покажется бредом. Там ведь по сути просто загуглить/скопировать ответ из гугла/адаптировать под своей проект (в контексте thymeleaf)
>>2343710 Двачую. Как платформа кстати, в сравнении со спрингом например? Стоит перекатываться в шарпы ради этого? У шарпов все же еще десктоп и даже гей-дев.
Всем привет. Как организовать аналог @sql из spring-test для neo4j? Чтобы перед каждым тестом в тесконтейнере был свой определенный набор данных. Пока только нашел способ каждый тест заворачивать в @Nested, вместе с @BeforeAll и @AfterAll. Но как то это громоздко. Сейчас так сделал. Или просто вызывать утил методы с загрузкой-очищением базы прямо в начале и конце теста. Но это как-то тупо.
>>2343579 >Хочется всё-таки знать, как эффективно и быстро работать с коллекциями. >Если не можете подсказать, как ускорить, то хоть скажите что стоит изменить в моей версии хотя бы с точки зрения стилистики и читаемости?
Расскажу по-нубски, но доступно: Коллекция вообще - это массив. Но такой массив, который растягивается или сужается, когда ты в него добавляешь или удаляешь.
List<String> list = new List<>; list.add() = "Мама"; list.add() = "мыла"; list.add()="раму"; list.get(2).remove(); list add="папу";
sout(list);
Cat vaska = new Cat(); Cat murka = new Cat(); Cat barsik = new Cat();
>>2343762 Да я не троллю и не рофлю. Питухон это вообще другая ниша, тупо скриптопараша для яйцеголовых профессоров. Шарпы практически аналог джавы, несколько более современный и органичный, и с более широким кругом задач. К тому же я на нем немного работал - все заебись, кроме того что VS сосет у Intellij
>>2343714 смотря чем ты хочешь заниматься. rest api и микросервисы ну плюс минус одна хуйня, только специфика платформы отличается. asp.net MVC выглядит ограничнее чем Spring MVC, но опыта мало, могу ошибаться. Что касается геймдева, это вообще отдельный мир. Там тебе знание веб стека особо не поможет никак.
>>2343996 Тебе не стоит что-то кому-то рассказывать, потому что ты сам ньюфажина с кашей в голове >Коллекция вообще - это массив Ультра-иносказательно. Такое с натяжкой можно сказать только про ArrayList. В общем случае коллекция - это объект, предназначенный для хранения и доступа к другим объектам, способы хранения и доступа отличают разные коллекции. >list.get(2).remove(); чего блять? ты пытаешься вызвать remove() на <String> >cat.add() = vaska(); Топ пиздеца. cat.add() это вообще ни разу не L-value, в него нельзя ничего положить. Точто так же как выражение murka() это вызов метода с именем мурка. Ты бухой или вчера начал изучать программирование?
>>2344253 Что используют вместо него? У меня на курсе преподают его. Думаю стоит ли вообще заморачиваться или сразу создавать интефейс на веб-странице.
>>2343883 Дианон, травля. Спасибо за ответ, хоть где-то ответили, а ты даже в сорцы полез. Ты мне предлагаешь каждый тест писать в отдельном классе, помеченный @ExtendWith(SomeExtension.class) и для каждого теста писать SomeExtension?
>>2344270 Немного посмотрел, расширения работают над методами. И вместо @ExtendWith(SomeExtension.class) можно написать свою аннотацию с нужными мне полями. То есть я могу написать руками аналог @Sql. Круто.
>>2344505 Я пока не понимаю, в чём разница. Но спасибо.
>>2344506 Я ожидал, что кто-то умный и красивый доку кинет. Ну в джававской документации обращался по мере надобности. Не вижу причин не смотреть и эту. Но для начала хочется подачу попроще. Спасибо.
1) Создаешь класс main, вешаешь аннотацию @SpringBootApplication 2) создаешь класс DvachController вешаешь на него @RestController 3) делаешь там метод String getOlolo() вешаешь аннотацию @GetMapping("/ololo") 4) curl localhost:8080/ololo
вот и весь спринг, для новичка хватит, ну если захочешь базу подключить то могу еще аннотаций подсказать )
>>2344512 Во фреймворках да, вообще зеро. Вот изначально и пришёл за советом, может, кто ультимативную годноту посоветует. Выше анон Letscode на ютубе подсказал.
>>2344516 Красиво. Ну базу я постгрес подключал через jdbc -- это считается?...
>>2344516 >вот и весь спринг >для новичка хватит Даже на стажера не тянет. Для начала нужно освоить базу спринга. А это минимум год-полтора очень усердных занятий. Нужно ПОНИМАТЬ как работает спринг под капотом. ВЫУЧИТЬ скоупы бинов и как происходит автовайринг. Тогда можно подаваться на стажера за 30-40к.
>>2344550 >Нужно ПОНИМАТЬ как работает спринг под капотом ну там это, ехал прокси через прокси, а еще они любят паттерн "цепочка обязанностей".
>ВЫУЧИТЬ скоупы бинов и как происходит автовайринг ну тип в коре 2 скоупа, в мвси еще 3. если используешь не синглтон = делаешь что-то не так. вайришь не в конструктор = делаешь что-то не так. можно вайрить мапки/листы/опшеналы (если у тебя бины таких типов, то надо приседать)
>>2344725 >Я когда народу отвечаю даже, казалось бы, на банальные вопросы, я себе даю отчёт, что ребята молодцы, что увлечены и им это надо. ну и дебил
>>2344716 Хз пока, барин-тимлид сказал надо, в доменную модель я пока не вникал. Созвон, когда это заранее объясняли я проебал. Вникать буду через пару дней. Заодно и сайфер этот поучу. Пока сами круды замутил на спрингдате кучей запросов, там neo4j знать не надо. Если тебе интересно могу через 5-7 дней тут написать в двух словах.
Делаю апи с динамичным подключением реализации. Пока что придумал как сделать всё от и до на велосипедах, есть какие то уже придуманные паттерны и библиотеки для такого?
>>2344740 У меня есть набор интерфейсов, я хочу, чтобы можно было писать что-то на основе этих интерфейсов используя только эти интерфейсы, а реализацию подключать отдельно, чтобы код, написанный на апи ничего о ней даже не знал
что то типа
#использование API api = //как то получить апи api.use();
Аннотации в жабе - это расширение ключевых слов. По сей причине кодогенерирующие аннотации, да и вообще любые аннотации компилятора, например из ломбока являются ужаснейшим анти-паттерном. Proof me wrong.
>>2344772 >кодогенерирующие аннотации, да и вообще любые аннотации компилятора, например из ломбока являются ужаснейшим анти-паттерном ты придумал, ну или притащил чужое мнение, ты это и аргументируй.
>>2344783 Спринг Бут - обёртка над спрингом, которая избавляет тебя от километровых конфигураций, так что там нет ничего сложного. Это если очень вкратце
>>2344793 >А чистый спринг это как тру-линукс, где надо все самому сначала настраивать. >Вы не поверите! Каждый божий день я просыпаюсь, чищу зубы, еду на работу, а потом лезу в спринг менять конфиги. Потом возвращаюсь домой, пью водку, пересматриваю видео Линуса Торвальдса, где он половину ролика вопит о том, что спринг-бут - это коляска. Плачу крокодиловыми слезами, навзрыд. А потом опять на работу менять конфиги! А зачем еще нужен спринг?
>>2344783 Нужно знать из spring framework только core(di), потому что бут работает поверх спринг кора. Туториалы и ответы на стаке без бута читай, только в случаях, если других нету. Из spring boot нужно знать саму концепцию бута, автоконфигурации, спринг-бут-стартеров. Самые нужные стартеры вне starter-parent в порядке убывания: - Spring Boot Starter Web - Spring Boot Starter Test - Spring Boot Starter Data JPA - Spring Boot Starter JDBC - Spring Boot Starter Validation - Spring Boot Starter Security Остальные можешь вообще не трогать. Обязательные первые три. На проекте может не быть jpa, но на собесе гонять тебя все равно будут по ней. Контроллеры без реста смотри наискосок, с шаблонизаторами шанс поработать - пара процентов. Нужно уметь ходить в реляционную базу. Делать рест-контроллеры и рест-клиенты. Обычные синхронные. С джексоном тоже придется поебаться. Остальное от проекта зависит.
>>2344691 Да не за что. Правда, на мой взгляд чуть грязновато получилось: ты сам тут поднимаешь контейнер, коннекты к бд прокидываешь через пропертя. Я бы чуть копнул в сторону того, что бы достучаться до контекста и от туда тащить драйвер/коннект к бд, а логику по поднятию контейнера и прокидыванию коннектов оставил в самом тестовом класс (ну или в абстрактный базовый вынес бы). Но если тебя или тимлида не напрягает, то похуй.
>>2344750 OSGI, только это немного специфичная штука. Не очень дружит со спрингом из-за того, что каждый джарник грузится своим классоадером, но можно что-то изобразить. Можно в рантайме загружать/выгружать джарки, подтягивать к себе реализации интерфейсов (service и serviceReference)
>>2344830 Ну мне дали задание написать аналог @Sql для spring-data-neo4j. Ну получилось вообще не по солиду. Но вроде получилось именно то, что просили. Там же в каждом классе будет 7-10 тестов. Пока есть два класса контроллеров. Но это пока. Где-то mockMvc выражение не в 4 строчки, а в 10. Потом через какое-то время мокировать внешние сервисы придется. Поэтому сказали - нужно компактнее, как в @Sql и чтобы загружалось все из файлов, скрипты баз в строчках или джейсоны это моветон.
>>2344839 Там человеческие проперти все равно не выходят. Тестконтейнер меняет урл на ходу на рандомые BoltUrl и порт. А юзера и тестовый пароль вынесу в проперти конечно. >>2344845 Никак. Просто гуглю каждый раз. На пятый раз запоминаю. Время на мнемотехники раз в 10 больше потратишь, чем на повторное гугление. А если анноташка забудется, значит она и не нужна.
>>2344854 Понял. Мне почему-то это показалось каким-то говном и загрязнением теста изначально. Хотя, если вынести тестконтейнер и инициализацию пропертей в абстрактный тест, то будет норм
>>2344325 кстати я в ахуе как много в огромных галерах всяких "конфигураторов спринга" чьи задачи состоят в дроче xml. Как они потом новую работу находят?
>>2344806 А что по АОП? Читаю книгу по спрингу, и там в первой части затронута эта тема, вроде интересный подход, но не знаю - стоит сейчас тратить на это время.
>>2345018 >Нах их запоминать. Скажи, что еще не помнишь сигнатуры методов интерфейса BeanPostProcessor? Как ты в принципе собеседования тогда проходишь?
>>2345061 >"что такое контекст" Лол, а ты небось ответил - "ну, мням-мням, ну это как контейнер для бинов, мдэ...."? Чел, с такими знаниями даже на стажера не пройдешь!
При запуске программы сеть может быть недоступна, нужно ждать пока она появится, написал пикрил1. Пикрил2 запуск, потом исключение подсоединение по адресу отклонено, потом снова пикрил2. Каждый раз HikariPool - * инкрементится, чем может быть чревато? Как сделать чтобы использовался только один?
>>2345232 Это то, что происходит, когда гос орган не может позволить себе отдельный сервер, и все работает на валящейся от постоянных скачков напряжения сети и перезагружающихся компах.
Сап программач. Помогите, пожалуйста, исправить приложение для ограничения скорости загрузки. Код здесь: https://github.com/oxplot/bradybound В текущей его реализации максимальное ограничение 10 Мб/с, что соответствует примерно 3 Мбит/с по данным speedtest (хз почему так).
Вопрос: Что нужно поправить в коде, чтобы увеличить максимальное ограничение до 100 Мб/с ? Моя логика в том, что эти 100Мб/с будут реальными 30 Мбит/с, хотя могу ошибаться.
>>2345488 А как ты запросы в рест контроллер собираешься логировать? А так написал аспект и логируешь! Транзакции в виде аннотаций тоже работают через аспекты!>>2345488
>>2345508 Логирование работает и ладно, всем похуй что там под капотом. Это знание джуну не нужно абсолютно. Да и реальное применение транзакций. На собесах будут спрашивать про асид и про пропагейшон и про изоляцию. Но в тестовом и в начале работы этого не будет.
>>2345511 Пиздец тебе приспичило скорость ограничить, сколько ты часов потратил? И да кстати, иди нахуй со своим восьмилетним старьём, сам копайся в своей легаси параше
>>2345538 8 лет назад был 2014 год, тогда писали совсем в других стилях и с другими технологиями. Ну и к тому же, тут андроид, андроиды за 8 лет намного сильнее поменялись.
>>2345548 >перезапусти приложение и уничтожь исключение. > >Если словишь второе исключение, то называй первое исключение вторым Че? >>2345548 >Пул не запускается исключительно из-за проблем с соединением? Да.
Едет мужик в поезде. Внезапно захотел срать. Забежал в один туалет - занято, говно так и прёт, бежит во второй - тоже сука занято, чует что щас обсерется, забегает в ближайшее купе, а там какой-то дед спит, открывает окно, сунул в окно жопу и как сиранёт от души.
И вот эта блямба прилетела в лобовуху стоявшей на переезде машины, а в машине двое под кайфом сидят. - Ебать вот это он мощно харкнул - А ты видел как щёки надул?
>>2345597 >Я заебался программировать на работе. а доебываться до чужого кода на работе ты не заебался? Настоящие заебавшиеся от кода вообще во всякие кодосообщества не заходят и вне рабочего времени за комп даже не содятся.
Я увидел, что ты насильно присваиваешь исключению про пул значение про соединение. В итоге, как мне кажется пул если упадет сам по себе а не из-за соединения, он всё равно будет ругаться на соединение, потому что ты заставлять его насильно это делать.
Вопрос по dao jdbc, если я вытаскиваю из бд сущность студент в таблицу, и у него внешний ключ на сущность группа. Вот что мне надо вытаскивать в java объект студента, ключ который лежит в студенте или сразу делать подзапрос чтобы достать имя группы? Мне же в таблице надо отобразить именно имя группы, но при этом при редактировании записи мне нужно будет id группы. Как это правильно реализовывать?
>>2345903 >нарисовать таблицу Правильно в запросе приджойнить таблицу группы по ее ID, и селектить ее готовое имя. >java объект студента ты определись, нужен ли тебе объект студента, потому что первичная постановка предполагает тупо рисование таблицы. Для этого достаточно resultSeta, без всяких инстансов. А вот если тебе нужен именно объект студента то все зависит от дизайна. Но сразу можно сказать что если студент включает в себя группу как зависимость это MMMMMAXIMUM долбоебизм.
Посоны, можете посоветовать какой-нибудь материал (желательно видос) где бывалый опытный разработчик пилит проект (реальный проект, а не учебную хуету с одним рест-контроллером) полностью с нуля (желательно на спринг буте). Т.е вот прям начиная с декомпозиции предметной области и делая реализацию с учетом всех возможных паттернов, солидных принципов и т.д. И что б за архитектуру пояснили.
Вроде вот в голове все более-менее понимаю ООП в целом, и по архитектуре, и по паттернам, но как сажусь что-то делать - просто пиздец мозк умирает...
>>2345964 >спринг буте >реальный проект Чел, твой спринг начинает срать ну очень странными ошибками в рантайме, когда не может заавтовайрить какую-нибудь хуитку. Приходится битый час лазить по задворкам интернетов, чтобы разгадать, чего это там спрэнгу не хватает. Решается все обычно каким-нибудь ну очень не очевидным костылем, который выпадает из памяти на следующий день.
>>2345955 так можно сказать про все программирование. на понимание концепций уходит больше времени чем на загуглить кусок кода как сделать что-то конкретное
>>2345964 и как ты это себе представляешь? даже видео с простым учебным проектом иногда идет 3-4 часа, а твое пожелание может растянуться на десятки часов.
>>2346113 Я не тот шиз, но вкатываюсь в жабу спринг уже 2 года. И каков результат? А нет никакого результата. С началом спецоперации вкат закрылся. Если раньше можно было за 50 тысяч пойти в сбер с посредственными знаниями, то сейчас эта лавочка закрылась. Что делать дальше я вообще не представляю. Джава за 2 месяца обрушилась на 1600 вакансий на хх.ру, и не особо пытается расти.
>>2346206 > Что делать дальше я вообще не представляю Попробуй пойти хоть куда нибудь за хоть сколько нибудь тысяч рублей. Всё лучше чем сидеть и дрочить конспекты индусов.
>>2346215 Вообще не вижу ни одного варианта на хх.ру, куда можно было бы податься в ДС. Так-то я отправил анкету на стажировку в неткракер. Сказали приходить через полгода. Охуенно, бля. Раньше был сбер, дойчетелеком, джетбрейнс, яндекс, куча всяких говнобанков и галер. Сейчас нихуя не осталось. Даже всякие госконторы не набирают, так как денег на цифровизацию предприятий больше нет в стране.
>>2346225 >Так-то я отправил анкету на стажировку в неткракер. Сказали приходить через полгода. Охуенно, бля. А вот был бы у тебя опыт, точно взяли бы.
>>2346225 А где ты раньше был то? Я прямо перед спецоперацией вкатился без образования под 30 лет. С нуля ушло полтора года, из них спринг + хибер - месяцев 8, из которых 3 месяца ходил на собесы(а 3 месяца потому что на нг попал). Откликов на хх сделал 150 где-то. Было 5 собесов, на 3 из них дали оффер. Причем я из дикой мухосрани 500к. У меня 1 вакансия в месяц появляется, остальные собесы были удаленка и релок в дс/миллионники. До операции вкатиться было вообще просто.
>>2346225 Я когда первый раз устраивался вообще стремался регаться на сайтах всяких пидорасов и офисного быдла, и вместо этого просто позвонил по номеру этой конторы. Сразу выслали тестовое, через неделю собеседования и сразу предложили начать в следующем месяце. Но я ливнул, потому что я хикка.
>>2345964 Летскода смотри. Два плейлиста: с таймлифом и вуем. Ближе к продакшен уровню все равно никто делать все равно ничего не будет. Выложить нормальный продакшен-уровня микросервис это часов 20 видосов, часов 40 монтировать и 200 часов гуглить и рефакторить. Плюс никто себе реальные проекты сам не придумывает и они существуют не в вакууме, а в общении с фронтами, другими сервисами вашей команды, соседней команды, внешними сервисами, тестировщиками, девопсами, админами, базистами и менеджерами/заказчиками. Без всего этого взаимодействия все равно проект будет учебный, даже если он будет в 10 раз больше летскодовских и там есть все, что он опустил, типа логирования, дтошек, эксепшенхенлеров и куче всего другого.
>>2346272 Да это я для пафоса спизданул. Лум в первью еще будет висеть года 3, не меньше. Но хотя бы наконец-то выкатили в релиз, надеюсь всякие томкаты и джетти к моменту выхода спринг 7 уже полноценно переедут на виртуальные сверхбыстрые потоки. А то в 2022 году джава до сих пор БЛОКИРУЮЩАЯ. Разве это не позор? Долбиться в тредпул системных потоков, какой же кринж...
>>2346283 >нахуй вам всрались гоморутины и виртуальные треды Чтобы создавать десятки и сотни тысяч потоков, чел. Чтобы брать и обрабатывать сотни тысяч запросов в секунду просто и без задней мысли. Без тредпулов. Без очередей. Без простоя.
На самом деле здесь мякотка в том, что JVM будет сама отслеживать появление блокирующего чтения/записи и обрабатывать его через epoll, как это сделано в говноланге. Суть в том, что сейчас системный поток просто ждет, пока recv/read прочтет данные из сокета. В виртуальных тредах, если появляется возможность обработать вызов в неблокирующем режиме, то системный тред, освобождается под другой вирутальный тред, а не стоит и ждет пока там сокет просрется.
>>2346293 >А что щас мешает? Ну попробуй, прямо сейчас запусти разом 500к потоков, посмотри как жидко просрется ОС от такого.
>Гоморутины это и есть тредпулы Под капотом там пул системных тредов, да. Но один хуй весь смысл в планировщике, который хитро переключает горутины между системными тредами. Тредпул без планировщика - это то, что и так в жабе есть аж с версии 5, или когда там экзекьюторы завезли?
>>2346270 Тут ядерная война через пару месяцев, какая JDK 19? А если серьезно, то можно посчитать, что в 21 жабе уже будет Лум. А вальгалла, видимо, потом.
>>2346303 Это куда мы все попадем, а они просто сдохнут. >>2346305 Я исхожу из того, что фичи сидят в превью около двух релизов. >>2346307 Ну так сделай.
>>2346309 Ну, полтора года это не мало. Полтора года назад ковидобесие только начиналось и всех из офиса на удалёнку выгнали. За следующие полтора года может ещё пять раз по столько же событий произойти.
>>2346299 >Ну попробуй, прямо сейчас запусти разом 500к потоков, посмотри как жидко просрется ОС от такого. А нахуя мне запускать 500к потоков? Я че, наркоман? Если у тебя есть 500к запросов в секунду, то тебе oche явно нужно перестать пытаться все их обработать на одном ксеоне и вообще одним сервисом.
>>2346232 >спринг + хибер - месяцев 8 А что в спринге и хибере учить 8 месяцев? Основные аннотации и практический проект чтобы закрепить знания это месяцок-другой если не спешить.
>>2346395 >Основные аннотации и практический проект чтобы закрепить знания это месяцок-другой если не спешить Это даже на уровень стажера не тянет. По хибернейту и спрингу книги по 600-800 страниц пишут с ГЛУБОКОЙ ПРОРАБОТКОЙ каждого момента работы. Видел я таких ЗНАТОКОВ, которые не разобравшись в хибернейте клали продакшен кривым запросом или выкатывали билд, который не поднимал контекст спринга.
>>2346101 Да, но только её core части. И если в начале это делается играючи, то середина и конец курса (накликал до концовки кристаллами, там можно задачки пропускать делая их "решенными"), с середины начинается обычная перепечатка тех толстых книг по Джаве. Причем создателям курса самим стало скучно и они даже перестали креативить и писали уже сухо.
В конце курса просто учат томкату, а спринг "в разработке" уже десятилетие. Видимо разрабы смирились, что их онлайн-тренажер умеет отображать классы, но не взаимодействие между ними и сдались.
>>2346395 sql, jdbc, spring di, iot, hibernate, spring data jdbc, spring mvc html/css/js. Ну и куча всякого побочного, типа гита или начатых и брошенных тем, типа спринг секьюрити или спринг интегрейшн. Глав 10 из трех книжек, под сотню статей, пол курса лекций, два плейлиста на ютубе. Три пета. Ну это за 5 месяцев. А потом, когда ходил на собесы дрочил всякую теорию по асидам, хттп-методам и по джавакору.
>>2346329 Ты думаешь в рф рванет толпа индусов или азиатов ? Рыночек уже решает. И он говорит что не едут сюда кулумбеки код писать в огромных количествах. Это новая попытка импортозамещения. Говоря коротко - работа будет всегда, не парься
>>2346569 Поэтому я петы писал разные и не дочитывал книги. И смотрел плейлисты с чужим кодом, переписывал его и переделывал. Коллеги зная мой опыт и бекграунд наоборот говорят, что ожидали от меня меньшего и я вполне крепкий джун.
>>2346683 Я все таки сперва читал статьи и главы книг, чтобы понимать вообще какие задачи есть и какие технологии для чего, а уже потом смотрел практику и петил проекты. Но итеративно. Пара тем теории - пара примеров из интернета и фич в своих петах. Например я сперва писал круд на чистом jdbc, потом на jdbc template, потом на чистом хибере и уже в конце на спринг дате. Перед каждым шагом читая по главе-другой из книг, ну и пара статей по ходу. Сборники практических статей, которые местный гейткипер называют мурзилками действительно лучше книг или доки. В книгах и доке сильно больше лишних подробностей, а в книгах - устаревшего материала.
>>2346759 Я просто хочу сам в джаву, но как ни гляну на зарплаты - просто охуеваю. То ли перенасыщен рынок, то ли хз что - но в 1с ты вкатываешься с минимальными знаниями и спустя минимальное время получаешь 150к, учась по ходу дела. А тут такое чувство что надо полжизни въебать, поунижаться на собесах (ебать мой хуй - 150 откликов. Меня, когда уволился, заспамили херки предложениями) и получить в итоге - вот хотелось бы знать - сколько? Просто писать на джаве "для души" и могу и дома, и так даже лучше - ведь дома я могу коммитить в моды для майнкрафта и наслаждаться процессом, а на работе можно коммитить в унылую тырпрайз хуйню, которой я и так сыт. А такое чувство, что чтобы в этом аду выйти на зп, которая превысит 1сный потолок - надо отпахать пятилетку минимум. Я и выгорю нахуй с тому времени. Убедите или разубедите. Может мне пиздят и на самом деле зарплаты космические, может вакансии нормальные просто не публикуют. Я сейчас именно на такой работаю - её не публикуют, чтобы пойти туда работать надо либо через знакомых, либо самому выйти на работодателя, если стеком интересуешься (а я интересуюсь) - то норм конторы всякие вебинары проводят - через них можно настучаться. Особенно я проиграл, когда в зп-треде постили ФЛАТТЕР блядь, фриланс - с зарплатой в 50к при двух годах стажа. Это меня вообще убило нахуй, я отказался верить и решил, что наверное там чел какой-то неправильный.
>>2346780 никто и не спорит в 1с хорошие ЗП, особенно с текущей ситуацией. от 1с просто многие нос воротят из-за синтаксиса и невозможности работы на западного барина. никаких космических ЗП нет, компании где хорошие ЗП хорошие ЗП на всех стеках, включая 1с тот же незтегаз итд
>>2346544 Пока читал, ждал: > не то, чтобы все это было обязательно нужно чтобы писать проекты на джаве, но если уж взялся программировать, то к делу надо подходить серьезно
>>2346861 Со старта.Работаю 2 месяца. Платят 90, но в договоре 70.
В декабре устроился на 2 недели на 40. Туда вообще брали без собеса, по тестовому, которое делалось день, из которой я большую часть времени убил на фронт. Но проект и контора были говно. Надо было бежать через одну неделю, а не две.
Еще в январе дали другой офер на 70, но там был тоже дикий треш. Собес был легкий, меня собесил байтоеб, который ничего не знал в жабе, тестового не было.
Еще была маленькая галера и люксофт. И там и сям ебали по хиберу и транзакциям. И там и там отказали. В люксе интервьюер был вообще механистичен и на похуй.
Тут был собес, чуть легче чем в люксе и собеседующий заинтересован. Потом дал тестовое. Рест клиент + сохранение в постгрес + рест-сервер. Сделал со сппринг датой, прикрутил сваггер, постгрес в докере и мокмвиси тесты чисто на контроллер.
Еще я не согласен с теми кто против тестовых. Тестовые, если они не ебланские - это для обучения новичка лучше петов.
>>2346889 Да, Я понимаю что мидлу и выше эти 4-10 часов на тестовое это потеря времени и денег соответственно. Но если ты вкатун, то тестовое норм. А я много где видел советы даже вкатунам сливаться с тестовых.
>>2346880 сейчас даже тестовые не дают( или игноры или отказы, даже пособеситься не дают, видимо надо создавать фейковое резюме на мидла чтобы собеды потрениться проходить
>>2346952 Как вариант. Видел разные мнения по нынешнему рынку вката. Что с одной стороны количество вакух упало на треть всего. А с другой, что количество реальных и актуальных вакансий упала раза в два, а для вкатунов - намного больше.
>>2346821 Я и не хочу доказать, что в 1с норм зп, я наоборот пытаюсь себе доказать что есть смысл перекатиться, но сука не получается, не могу аргументов найти за перекат кроме очевидных - не работать с убогим языком. >>2346858 Жаль, конечно.
>>2346952 Да сейчас вкат по сути умер. Жди теперь, пока конфликт не заморозят на несколько лет. Думаю через годика три снова можно будет начать пытаться входить в айти.
>что количество реальных и актуальных вакансий упала раза в два Все так, раньше на хх.ру было >5000 вакансий по запросу "java" в Москве, из которых примерно 2000-2500 были на разработку бекенда на спринге. Сейчас их количество сократилось до 1100-1200 примерно. Мне кажется, даже более чем в 2 раза упал рынок жабы.
>>2346978 А ты сколько хотел? У меня есть 1с-ники знакомые. Один с годом опыта меньше меня получают. И вкатывались тоже не сразу, полгода. Два Двух-трехлетние получают один 100, другой 140. Но все, кто из них интересуется кодингом хотят уйти именно в джаву почему-то. Лично знаю двух и в интернете еще кучу. Но и джавистов с 1с бекграундом тоже знаю пару. По моему впечатлению они шарят лучше, чем те, кто свичнулся с питона. Может просто те, кто шарит и на питоне норм живет.
>>2346993 Я по рф смотрел. Может часть вакансий для мск перевели на регионы? У нас например контора с одним офисом в москве и 4 офисами в регионах + удаленщики из регионов без офиса. И вот год назад москвичи были половиной сотрудников. А сейчас уже меньше трети. В мск хантят сильно меньше.
>>2346993 >>2347000 Ну да, я чета запизделся, прошлый раз месяц назад смотрел. Тогда была минус треть. В норм время по рф было 4.5к спринговских вакансии. Сейчас - 2.2. Реакт тоже смотрел, есть приятель реактер. Было 8.5к, стало - 3. По рф. И для джунов ситуация наверно еще хуже раз в 5. И до дна еще далеко. И тех кого сократят - еще не сократили. Они как раз через пару месяцев выйдут на рыночек. Вкат походу реально все.
>>2346994 >А ты сколько хотел? 150 хотя бы. И это немного, учитывая объём работы, которую надо проделать: >С нуля ушло полтора года, из них спринг + хибер - месяцев 8, из которых 3 месяца ходил на собесы(а 3 месяца потому что на нг попал). Откликов на хх сделал 150 где-то. Было 5 собесов, на 3 из них дали оффер >Один с годом опыта меньше меня получают. >И вкатывались тоже не сразу, полгода. Ну тут оба пункта не про меня. Я допускаю, что возможно кто-то дрочится долго, и получает меньше. С другой стороны - если так, то возможно мне понадобится меньше, чем >полтора года Может я просто особенный? Но дело осложняется нежеланием дропать работу на время переучивания, конечно. >Но все, кто из них интересуется кодингом хотят уйти именно в джаву почему-то. На джавошарпах дохуя тырпрайза, ты приходишь туда и делаешь ту же область, но на другом стеке. Дело в этом. >кто свичнулся с питона С питона свитчились бекендеры, судя по всему. Которые, условно говоря, не джейсоны заворачивали, а в монгодб учетки пользователей сохраняли.
Вообще на фоне этого разговора мне пришло в голову: 1. Зайти в узкую нишу, уровня Solidity 2. Пиздеть про коммерческий опыт Выглядит как реальный вариант не соснуть по зп при свитче, если конечно описания вакансий не врут.
Помогите нубу решить мою проблему. Есть энтити Итем, есть ИтемДто который я в рест контроллер сую, собственно ИтемДТО и выдается на GET-запрос Вот как быть например с Post и Update запросами? Создавать новую Дто, например, ItemUpdateDto, где будут сугубо нужные мне поля для создания сущности в бд (просто в итем дто есть лишние поля для POST'a, например дата создания энтити)?
Ещё есть такая проблема: Мне нужно, чтобы DTO-объект, который POST'ом приходит, содержал массив MultipartData объектов (прикрепленные файлы к моему итему). А как быть с обновлением итема? Помогите советом как лучше здесь поступить.
Пока попробую сам чёт найти на гитхабе, пока ничего нормального не нашёл
>>2347063 В большинстве случаев на всё делают одно ДТО, соответствующую сущности, а методы уже используют то, что им нужно. Никто не заставляет заполнять все поля.
>>2347063 Дело вкуса. Кто-то использует жсон вью. Кто-то дтоху на почти каждый реквест/респонз. Кто-то вообще ничего не делает. а кто-то отправляет энтити Как по мне отдельные дто - самый удобный вариант. Приятно генерится апишка и не надо страдать с наследования и жсонвью. Да и дтошки получаются чистенькие, почти без аннотаций
>>2347108 А ты побойся. Чтобы обеспечить атомарность бизнес-процесса, ты будешь его ради этого к БД привязывать? Или ты о транзакциях только на джавараше читал?
>>2347117 При чём тут бизнес-процессы? Есть конкретная аннотация, которая специально сделана для взаимодействия с БД, а не для универсального волшебного обеспечения атомарности на любом уровне. Используя аннотацию @RestControoler ты не ожидаешь, что это как-то связано с микроконтрллерами тупо из-за того, что слово одинаковое? Вот и с транзакциями такая же хуйня.
>>2347122 >EJB >При чём тут бизнес-процессы? >троллинг тупостью Похоже на то. Почему бы в ejb не быть транзакционности на уровне объектов? Там прокси на проксе и проксей погоняет.
>>2344738 >>2344716 Короче будет что-то уровня корпоративной соцсети. Организации, у них контрагенты, работники, отделы, подотделы, проекты, регионы, филиалы и всякое такое. И по всему этому будут хитрые анализы и отчеты, затрагивающие десяток сущностей. И поэтому реляционка не катит. Все что я пока знаю. Написал пока два круда с двумя сущностями, в которых графовость только мешает. Архитектить базу буду явно не я. Сказали, чтобы было как можно больше использования спрингдаты и как можно меньше более низкоуровневых апих. Но мне кажется спринг-дата-нео4ж очень бедная. Можете подкинуть что-то по neо4j, кроме доки сайфера и спринг-даты, их я уже читаю?
>>2347255 Пошёл нахуй, пидорас ципсошный. Копронахрюк даже в уютненький жабатред со своими фейками пробрался, пиздец. Всех остальных держу в курсе, что сотни откликов на каждую вакансию - это накрутка свиноботами, челы просто шлют пустое резюме и не выходят на связь сотнями
>>2347672 >>2347668 Ебанина какая-то. Названия какие-то долбоебские которые хуй пойми че значат. Сам метод какой-то ультраебанатский: если удается получить вэлью в нескольких членах листа, то вернется последний, если не удается, то хуй пойми че происходит, потому что ты, долбоеб, решил что прикладывать класс у которого вызывается геттер, нахуй не упало. Но если райзится эксепшен, то вообще весь цикл к хуям падает. Че несет вообще хуйня молофья. Убейся об стену, короче.
>>2347683 Да я понял, что на первом скрине кринж, второй получше >если не удается, то хуй пойми че происходит Экспепшен бросается же >что ты, долбоеб, решил что прикладывать класс у которого вызывается геттер, нахуй не упало Геттер вызывается у интерфейса, там под ним может быть чё угодно, хоть тот же бандл, вот одна из реализаций
Есть какие-нибудь плагины для идеи для расширенной подсветки кода? Чтоб код ещё более пёстрым был, иногда сталкиваешься с 5-10 строками чисто белого кода, это не супер заебись выглядит
>>2347759 Хорошим тоном бы было спрашивать такое, предварительно написав микро пет-аналог ситуации, на понятных каких-то интуитивных именах. Ты думаешь кто-то тут хочет разбирать твои AbstractDummyPlaceholderExtremalyFarAwayFromAnyLogicGateMotherFucker-сущности?
>>2347759 Так или иначе придется писать эти билдеры для каждого уникального случаю, через фабрики фабрик или как у тебя. Так хотя бы сразу видно что происходит.
>>2347843 Или передать язык и команду без непонятной хуеты, и дергать нужные аннотированные поля в комманде. Но я бы не стал заморачиваться если копипастой это решается за секунду.
>>2347897 В том то и мем, что семантика здесь довольно запутанная и каким-то экстрагированием можно добиться в теории улучшения до 2 строк кода максимум (это строка .build() и получение билдера), все остальные строки выполняют конкретную задачу 2- установка языка 3,4- добавление плейсхолдеров 6- установка пути)
В лучшем случае этот метод будет состоять из 4 строк, дальше сжимать некуда ( чисто физически это минимум как можно передать все эти данные). Я в принципе решил уже так оставить как есть, не так уж хуево оно выглядит
>>2347900 > не так уж хуево оно выглядит Видел бы ты как выглядел первый пиратский сервер ла2, полторы тысячи свич кейсов ловят ОПкоды и не брезгают обрабатывать прямо на месте.
>>2347990 Унылый язык, из которого выкинуто дохуя прикольных механизмов, который за каким-то хуем стремится перегружать семантику каждого своего кей-ворда по 15 раз в зависимости от контекста, программы на котором занимают километры листингов.
>>2343552 Весна это фреймворк под Джаву. Ну да, чистую джаву я лично редко встречал, обычно Спринг в той или иной манере требуется.
>>2343555 Хуйню говоришь. Сейчас от "олимпиадников" - литкодеров плюются, ибо именно в разработку обеспечения и решения бизнес-тасков они неспособны. Пет проект в этом случае ценнее именно потому, что это проект. Литкод годится только в говногалеры и то, к индусам в помощь.
>>2343504 Смысл в Джаве, безусловно есть, но нужно иметь представление о всём стеке. Это сама Джава, Спринг, Мавен или Gradle, как минимум. Если хочешь какие-то курсы луркать по этому поводу, советую либо поискать по торрентам, либо раскошелиться на Pluralsight. Некоторые курсы с курсеры тоже норм (те же Алгоритмы от Седжвика) но Pluralsight - топ.
>>2344692 Unrelated, но как лучше всего вести конспекты? Раньше делал хардкорно и по старинке, с тетрадью и ручкой (чтобы думать над тем, что записываю, а не тупо копипейст), но сейчас руки дошли до Notion, думаю там что-то типа базы знаний запилить.
>>2346206 Короче. Идёшь в латвийское посольство и плачешься, что ты жертва режима Пыни. Мигрируешь в Латвию. Залетаешь в Accenture через буткамп и просишься в SAP. Обещаю: от SAP Commerce у тебя либо настанет просветление по всей Джаве и Спрингу в том числе, за несколько месяцев, либо разорвётся жопа окончательно.
>>2348131 Я пытался в Obsidian сделать базу знаний по джаве, но пришел к выводу, что на создание базы тратится слишком много времени и выхлоп практически нулевой. В итоге вернулся к копипасту цитат из книг. Скидываю их в общий файл пока читаю книгу напр. horstmann.txt, потом перечитываю и сортирую по файлам вроде logging.txt
>>2348768 > Зарепортил в Capcom И что теперь будет? Запретят мне на двач видео выкладывать? >>2348778 Да, чистая Java17. Билжу bassh скриптами + maven. Отрисовка через LWJGL3 - это интерфейс к функциям OpenGL. Из стороннего еще gson, еще какая-то либа от гугла для воспроизведения ogg. Ну еще всякие там мелочи типа lombok, hamcrest, nashorn, logback и тому подобные депенденси. Кода довольно много, посчитал через wc: $ find ./ -name "*.java" | xargs cat | wc -l 41978 Ну это с учетом скобочек и переносов, надо иметь в виду.
Документации ноль, поэтому разобраться самому с нуля, наверно, не лучшая идея. Но если я все продокаю, или проведу пару-тройку видеоэкскурсий по проекту, думаю разобраться не очень сложно.
>>2348795 > Ебанутый? Что не так? Серверные моды и скрипты для ботов планирую делать чтоб скриптовались на JavaScript. > Нахуя, если в жабе жсон есть в стдлибе? Не знал. Мне gson подходит вполне.
>>2348827 Будто его трогали. Его и не стали трогать, потому что он не особо нужен был, а донбассцы посмотрели на ситуацию с крымом и такие "опа, надо тоже валить нахуй, ща путен поможет есличо". А путен потом ещё 8 лет булки мял, но назад пути уже не было. >>2348842 Ты бля поаккуратнее со своими желаниями, я могу это в шарпотред превратить.
Хочу потрогать котлин и спринг на котлине. Чисто для себя. На нынешней работе котла не будет. Но когда собесился в 2 из 6 мест он был. Какие у спринг-котла преимущества перед спринг-жабой?
>>2348856 Сваггер и с фронтом не морочиться вообще. Не так много вакансий с требованием знания спа-фреймворка. А там где требование такое есть - это обычно очень плохая вакансия, где из тебя захотят все соки выжать и чтобы ты один за целую команду работал. Если есть желание поиграть во фронт чисто для себя - дрочи реакт. С другой стороны я видел на торрентах курсы ангуляр+спринг. Вью теряет популярность.
>>2348856 Здесь орудует один вуешизик, соответственно, будет топить за вуе. Ещё здесь есть долбоёб, заявивший, что "thymeleaf - стандарт индустрии", хотя какой там стандарт, если шаблонизаторы юзают только в хеллоуворлдах для вкатышей, чтобы не грузить их веб-дриснёй, и в реальных проектах их почти не используют. А так особой разницы нет. Если идёшь в крупную компанию, вероятнее всего, заниматься будешь только бэком, хотя знание фронта будет плюсом. На галёре же придётся знать и бэк, и ангуляр, а реакт, и вуе, и девопс, и БД, и тестирование, и небо, и аллаха.
>>2348863 У нас в средней компании(ну человек 40 занимаются разработкой) фронты есть, а вот девопс и базы распределили между админами и двумя бек-командами. Тестировщиков вообще пока нет, но начали искать. До этого стажировался в конторе с 5-ю разрабами и там все делали люди нанятые, как джависты, в том числе и фронт. Ну и админ плюсом. Собесился в автомойку, где нужен был вообще 1 джавист и у них был один байтоеб. Плюс андроид приложение было на аутсорсе.
Я считаю, что бойлерплейт в джаве - это преимущество, а не недостаток.
1. 99% времени программиста умнее стажёра уходит не на напечатывание строк, а на их придумывание, и написать 100 бойлерплейтных строк - дело минуты-двух.
2. Бойлерплейтный код гораздо более читабельный. Не приходится часами вкуривать набор символов по 100 символов в строке, каждый из которых что-то значит
3. Время написания бойлерплейтных строк - это отдых для мозга. Программист меньше нагружается, у него появляются моменты отдыха прямо во время работы. Никакого выгорания. Язык заботится за программиста о его продуктивности и отдыхе.
>>2348966 При работе через рефлексию вообще поебать на любые сигнатуры, довен. Приватность полей защищает их от несанкционированного доступа всяким долбоебам. Во всяких петах это может и не так критично, но в больших либах ты просто утонешь в функциях и переменных которые к тому же могут руинить всю работу при несанкционированном доступе, если тебе не выделят отдельное публичное микроскопическое АПИ
создал на чтение из MongoDB число потоков равное числу ядер(6), в теории при одном потоке скорость прочтения обьема инфы N должна быть равна скорости прочтения при 6 потоках, на деле же при 6 потоках (каждый поток читает N инфы) чтение занимает раза в 3-4 больше времени. С записью при 6 потоках (каждый поток пишет N инфы) времени требуется больше раза в 2 чем при одном потоке, хотя из за write locka должно уходить в 6 раз больше. В "concurrency" MongoDB написано что монга сама контролирует процессы read и write локами. Что я делаю не так?
>>2349044 Шизоид, нахуя мне маскироваться, я могу написать максимум вложенный цикл, если это не противоречит логике программы. В остальных случаях стараюсь этого избегать. Тест пройден?
>>2349051 Да всё в ту, но лучше бы ты не пиздел, что ты это не ты. Но ладно, жаба-господа народ добрый, поможет тебе.
>пацаны, а как определить норм компанию для джуджуна? В следующем месяце переезжаю + врываюсь по собесам. На что внимание обращать мастхев? Если требуют высшее образование - нахуй. Если нет удалёнки - нахуй. Если требуют ёбнутый стек технологий - нахуй, это говорит о том, что там анальная бюрократия и говнокод по самые уши. Если платят меньше 75к - нахуй.
Почему все языки программирования, кроме жабы, имеют такой сука уродливый синтаксис? Как так получилось, что всего один язык имеет чистый и православный синтаксис и одновременно с этим синтаксис жабы идеален во всём?
>>2349056 > синтаксис жабы идеален во всём new BigDecimal("0.1").substract(new BigDecimal("0.2").add(new BigDecimal("0.3")).divide(new BigDecimal("0.4")))
>>2349103 >new BigDecimal("0.1").substract(new BigDecimal("0.2").add(new BigDecimal("0.3")).divide(new BigDecimal("0.4"))) Такое на практике не встречается. А если встречается - то растягивается минимум на пару пакетов и десяток классов.
>>2349129 А теперь разложи реальный пример и заодно ответь, почему при проектировании языка считалось что им будут пользоваться умственно отсталые, поэтому перегрузка операторов им не нужна.
>>2349136 Тебя мамка за двойки пиздила что ли, что ты так боишься формул? Тут ничего сложного в том, что ты скинул нет. Раскладывается он точно также, разве что хорошим тоном было бы не добавлять в чистом виде эту формулу вообще, разделив на пару объектов её фукционал.
>>2349136 Все строго наоборот, довен. Перегрузка оперторов как раз нужна только в двух случаях: 1) тебе хочется повыёбываться перед теми у кого ее нет 2) ты умственно отсталый дегенерат для которого осилить какую-то альтернативную нотацию операторов это ебанись-непосильный труд. мимо
>>2349136 >перефорс формулой банковской дрисни какой-то по начислению процентов >против единственного языка, являющегося де-факто движком всех современных банковских систем ты не самый умный в семье, да?
>>2349147 Единственный раз, когда мне хотелось иметь перегрузку операторов в джава, это когда хотелось написать собственную строку, поддерживающую помимо конкатенации еще и умножение на целое: > "I bet you doven " * 3 -> I bet you doven I bet you doven I bet you doven Задача эта была, ясное дело, сугубо песочная, джаст фор лулз
>>2349155 Опровергни чем-то, дебил. Мне как-то смешно слушать твои высеры, учитывая что бОльшая часть моей джава работы была связана не с крудами, а с созданием всяких вычислительных библиотек для нужд автоматизации.
>>2349164 >a.compareTo(b) > 0 а ты точно программист на java? А то был у нас тут такой дегенерат недельку назад: > lilt.add() = "мама я долбоёб" ты спалился, чухан. съеби в ньюфаг тред смешить таких же вкатунов-дебилов
>>2349171 Ах да, ты же аутист который обязательно хочет получить булевский аутпут. работать с int, содержащим исчерпывающий тот же смысл, тебе не с руки. Странно что ты не предложил еще сделать оболочку над булеаном из энама "BOLSHE CHEM" и "MENSHE CHEM"
Помогите нюфагу Нужно распарсить json в хэшмапу При этом есть класс с полями в виде всяких стрингов и интов, имена и значения которых должны быть в самом json. Пока очень плохо представляю, как это сделать, гугление ничего не дало, везде предлагают использовать List или Set, но мне нужен именно HashMap, чтобы данные из джейсона хранились в виде ключ - значение.
>>2349226 Есть один фундаментальный принцип программирования, который позволяет решать вот все такие тупорылые задачи нуфагов. Пока не поймёшь его продолжить кодить гуглением тупорылых задач.
>>2348955 Бойлерплейт это информационный шум. Это код который может быть просто выкинут из листинга (чем ломбок и занимается) и НИЧЕГО в работе программы не поменяется. То есть код становится намного чище чисто с нихуя. Бойлерплейт код никто не пишет, его или копипастят если это какие-то кастомные мапперы и прочая параша, или генерируют IDE.
>>2349245 > Бойлерплейт это информационный шум. Я так скозал. Это код который может быть просто выкинут из листинга (хихи шутливоубираем :) ) (чем лобок и занимается) и НИЧЕГО!СУКА! в работе программы не поменяется. То есть код становится намного чище чисто с нихуя прямо как >>2349148 тут. Бойлерплейт код ни-кто не-пи-шет!, его или копипастят если это какие-то кастомные мапперы и прочая параша, или генерируют IDE.
>>2349257 Нахуй ты сюда припёрся, пидоран петухоновский? Жаба - это ООП язык, инкапсуляция - один из принципов ООП. Если тебе нравятся 6 уровней вложенных циклов - ты всегда можешь пойти нахуй в уютненький петухон.
>>2349266 >Ухх ща как решу интеллектуальную олимпиадную задачу по сортировке массива на лямбда-циклах и рефлективном просмотре аннотированных паттернов работы с контейнерами валидаторов
>>2349352 >Жаба должна оставаться жабой до конца своих дней. Так сиди на 8-ке, зачем в новые версии лезешь.
>>2349340 Это виртуальные треды, как в Эрланге. В отличии от корутин в Котлине и Го, асинков в шарпе - у тебя всегда нормальный стек вызова, работают все плюшки с контекстом треда транзакции в спринге и всякие метрики. Работают с любым кодом, его не надо переписывать с использованием корутин/асинков.
>>2349404 >Жаба теперь Эрланг? Нет конечно, в Эрланге у потоков нет разделяемой памяти кое-что есть, но сильно ограниченное - у каждого треда своя куча, обмен данными между потоками только через посылку сообщений за счет этого и GC проще и быстрее.
Сап, анончики Делаю рисёрч среди server-side разработчиков. Если вы работаете с ktor, спрингом, express.js, микронавтами, http4k, ретрофитом и прочими серверными штуками - пройдите, пожалуйста, опрос. Занимает до 2 минут если делать не спеша. Гугл-форма: https://forms.gle/PpJGQvtDAwi49nfCA
Томкат, такой теплый и ламповый томкат уже много лет. И никакие Jetty нам тебя не заменят. И пускай тебя выкинули из JEE RI, заменив каким-то медведем (grizzly), ты все равно самый лучший! NIO Connector с клиентской SSL аутентификацией - все что нужно для счастья скромному корпоративному проекту (spring+hiber+wicket). А вообще по стабильности, качеству документации и распространенности равных у тебя нет.
Анчоус, если у меня есть некий класс Command<String>, где String это тип, который возвращает функция в этой комманде, но некоторые комманды ничего не должны возвращать, то я правильно понимаю что нужно указывать <Void>, а в функции возвращать null?
>>2343601 >>Thymeleaf в реальной работе Емейлы на нем верстаю изредка. Изучил когда петпроект делал перед вкатом. Умею всякие там лэйауты и прочее говно. >>чтоб выводить какие-то сложные модели данных на веб? Сейчас везде рест + жс. Лучше свагер изучи нормально и дергай через него. >>бесполезной тратой времени изучение этой параши Так и есть. Но если надо что то простое прям щас, а жс сложно - то пойдет. >>Насколько он вообще сложный? Довольно простой, но верстать хтмл заебывает ну и с конфигами местами сложности могут возникнуть у меня ебучий jar locator сломался из за переопределения одного резолвера, пришлось вникать. В принципе со спрингбутом там все на автомате подцепляется и работает из коробки как надо. стартер на таймлиф есть >>За сколько можно освоить на хорошем уровне Пару недель без учета времени на верстку и тп, если тебе прям целиком, вечер - если базово вставить значение в шаблон и добавить if. >>и что почитать? https://www.thymeleaf.org/documentation.html https://habr.com/ru/post/350862/
Не знаю написано ли там, но у него есть еще либы для интеграции с спринг секьюрити и всякие утилити для времени/даты. Догуглишь если что.
As shown above, in order to return from a method with the Void return type, we just have to return null. Moreover, we could have either used a random type (such as Callable<Integer>) and return null or no type at all (Callable), but using Void states our intentions clearly.
>>2350454 Пописял тебе на лицо, обезьяна. Вкатился год назад, никаких 25 лет, сразу выбрал жабу, потому что всё остальное и рядом не стоит по уровню синтаксиса, объёму уже написанного кода и библиотек, предрасположенности к чистокоду, понятности готового кода, области применения.
>>2350491 Твою мать я не видел, только обосранную и с выпотрошенными кишками в канаве блядь видел. Я видел синтаксис десятков ебучих копроязыков типо петухона сука, каждый из них блядь в сотню раз нахуй хуже жабовского, шалава ебливая, ты хули забыла в треде по жабе, блядь? Пиздуй нахуй в петухон тред, сука, обоссаная шлюха, я твоей матери в рот спускал, хуйло опущенное блядь
>>2350507 ПИЗДАБОЛ ЕБУЧИЙ, ХУЙЛО ЛИЦЕМЕРНОЕ БЛЯДЬ, КАК И ВСЕ ПЕТУХОНЕРЫ СУКА, ЕСЛИ БЫ ТЫ НАХУЙ НЕ ИМЕЛ К НЕМУ НИКАКОГО ОТНОШЕНИЯ, ТЫ БЫ В ЖИЗНИ НЕ НАПИСАЛ ПОЛНОЕ НАЗВАНИЕ ПЕТУХОНА И ТЕМ БОЛЕЕ С БОЛЬШОЙ БУКВЫ
>>2350454 Хуйню несёшь. Бизнес выбирает язык, а не рандомный разработчик. Понятно, что ничего лучше лиспа не существует, но знаешь чего ещё не существует? Правильно - вакансий на лиспе.
Когда в жабу добавят кастомные ключевые слова в виде синтаксического сахара? Было бы полезно, дохуя аннотаций можно было заменить и самый ужасный бойлерплейт убрать.
>>2350611 Ну так, с кастомным синтаксическим сахаром можно было бы никакие аннотации не писать, кода гораздо меньше было бы и самое главное он был бы в 100 раз более читаемым. ООП бы не пострадало
>>2350616 Так надо сделать так, чтобы весь этот сахарок преобразовывался в ванильный байткод, которому похуй было бы на наличие сахара (как например сделано уже с var)
>>2350618 Не, это понятно, что в байткоде все хорошо будет. Я про то, что человекам надо будет на каждом проекте учить разные ключевые слова. Аннотации хоть +- стандартизированы
>>2350624 Стандартизированы они потому, что их стандартизируют и потому что их создание реализовано уродливо и неудобно. Всё тоже самое будет с кастомным сахаром.
>>2350656 Котлин - хуета для пидаров, петухон №2 с тем же уродливым синтаксисом, самая мякотка это объявление методов через def, пиздец просто, как в петухоне fun
>>2350661 А если отсутствуе значения - валиднвй кейс? Ты делаешь что-то вроде: void doSomeAction(boolean aPresent, SomeObject a, boolean bPresent, SomeObject b) {...}
>>2350663 Не представляю, когда это может быть валидным кейсом. За всю практику не было ни разу, а что было - это из случаев, когда я был недостаточно опытен и писал в процедурном стиле.
>>2350673 Если появилась такая нужда - весь твой проект хуета и его надо переписать с нуля. Или ты просто тупой и не можешь придумать, как не обгаживать хороший проект нуллами.
>>2350687 Никогда раньше не слышал про симпл домейн модел, щас прочитал, че это такое и оказалось, что я в такой модели довольно долгое время писал (до прочтения книги бугаенки) и даже не знал, что кто-то выделяет такой стиль написания в отдельную модель.
Да, переписывать стоит, в ООП стиле. Как минимум потому, что этот миллион простынявых строк превратятся в 100к понятных.
Разработка ускорится в несколько раз, по своему опыту знаю.
>>2350693 Это не маленький проект. Просто ты сказал: пару недель для маленького. Т.е. даже на маленьком проекте сливается 2-3 десятка вечнозелёных без какого-либо профита. А рич домен модел начинает посасывать, когда бизнес сложный и модельки пухлые
>>2350683 Никто никого не наёбывает, просто код на жабе раз в 50 чище кода на любом другом языке, и раз в 5 бурнее развивается общая чистота кода и квалификация программистов. Так то если сравнивать с тем, что написано для петухона, например, то там всё надо раз 5 переписать подряд, чтобы прийти к идеалу.
>>2350694 Я не говорил, что для маленького, я говорил, что для 100к строк >А рич домен модел начинает посасывать, когда бизнес сложный и модельки пухлые Я предлагаю в полном ООП-стиле переписать, рич домейн модель это не фулл ООП. Фулл ООП бесконечно-расширяем, он не может пососать ни при какой сложности бизнеса, будь это небольшой проектик на 10к строк или вся экосистема гугла на 1кк строк.
>>2350715 Значит такой модельки быть вообще не должно, а вместо нее - несколько других моделей и UserAPI. Или скомпоновать эти поля по внутренним моделькам, если взаимодействие не такое сложное с ними и не требует йоба-логики, например LoginStateHolder, EntityDataHolder, PermissionSetHolder итд
Конечно, то что выше описано - это костыль, лучшим решением будет проектировать структуру так, чтобы любой класс имел по 2-3 метода без геттеров и даже холдер-геттеров, но это в кратце не опишешь, для каждого кейса надо думать, а не просто шлёпать паттерн.
>>2350840 Бугаенко шиз, который сознательно отказывается от лучшего из того, что придумало человечество - использования исключений для управления логикой
>>2350847 >>2350831 Засрать код кучей if(hui) { log("hui) } и сделать его нечитаемым или по необходимости добавлять дебаг мессаджи, чтобы потом пользователи на проде видели загадочные забытые сообщения 1,2 и 3?
>>2350873 Хуипедаватель, ты высираешь хуйню какую-то, не имеющую ничего общего с реальностью, ты и пруфай, иначе всхрюк. Как использование уровней логгирования избавит меня от проблемы засирания кода говном?
>>2351023 >Конечно, то что выше описано - это костыль, лучшим решением будет проектировать структуру так, чтобы любой класс имел по 2-3 метода без геттеров и даже холдер-геттеров, но это в кратце не опишешь, для каждого кейса надо думать, а не просто шлёпать паттерн. Читать умеешь?
>>2350866 Это делается во время билда с помощью filter source и релизного профайла. А вообще это конечно все хрень, JIT условие которое всегда ложно выпилит и так.
>>2350860 >Засрать код кучей if(hui) { log("hui) } и сделать его нечитаемым или по необходимости добавлять дебаг мессаджи, чтобы потом пользователи на проде видели загадочные забытые сообщения 1,2 и 3? В нормальной компании такой код не пройдет ревью. В приличных местах есть правила, что нужно логировать, что можно, а что нельзя.
>>2351159 >В нормальной компании такой код не пройдет ревью. В приличных местах есть правила, что нужно логировать, что можно, а что нельзя. В приличной компании есть копии прода, чтобы там проводить дебаг и тест, что твой код не обвалит всё нахуй.
>>2351184 >В приличной компании есть копии прода, чтобы там проводить дебаг и тест, что твой код не обвалит всё нахуй. Это не связано с тем, что ты предложил напхать всюду дебаг месаджей.
>>2351443 Чтобы ифка удалилась нужно поменять в коде constanta на false. Без директивы она меняется вручную, с директивой аргументами для препроцессора.
>>2351507 Пилю моды для копрокубов, но не ебу что такое баккит и зачем поверх него что-то надстраивать ещё. Хотя слышать слышал. Ещё ебу что ты вроде не первый раз тут с ним отмечаешься, зачем тебе это нужно? Если годнота, покупатель со звёздочками и сам найдётся.
>>2351518 >но не ебу что такое баккит Баккит - обёртка для майна, которая добавляет апишку для разработки плагинов для серверов. >и зачем поверх него что-то надстраивать ещё Апишка дырявая, с кучей нуллов и полностью процедурная, а без инстанце оф и кастинга туда суваться нечего.
>Ещё ебу что ты вроде не первый раз тут с ним отмечаешься, зачем тебе это нужно? - Планирую юзать как пет-проект для вката - Думаю распиарить среди разработчиков плагинов на бакките и лутать с этого профит - Использовать сам хочу >Если годнота, покупатель со звёздочками и сам найдётся. Нихуя не понял, лол.
>>2351524 >Баккит - обёртка для майна, которая добавляет апишку для разработки плагинов для серверов. А отличие плагина от мода? В том, что плагин через апи взаимодействует, а мод (будь то фордж или как в старых версиях) - заливается прямо в код игры? А хуле для модов апи не сделали? Это ж пиздец - дрочиться с деобфусцированными исходниками, потом компилить обратно. Странно почему не родилось и не вызрело нормальное апи, где код мода - отдельно, код игры - отдельно. Причём проекты-то были. Был даже проект, замахивавшийся на портируемость модов между версиями без (постоянного и радикального, блядь) переписывания. >- Планирую юзать как пет-проект для вката Господа джависты, скажите что этот чел троллит чрезмерно заморачивается и на самом деле для вката не нужен ебещий проект со звёздами. Хотя... он вроде не ебещий, и звезда всего одна. Такое наверное посильно. >- Думаю распиарить среди разработчиков плагинов на бакките и лутать с этого профит Ну это заебись >Нихуя не понял, лол. Забей, поставлю звёздочку, если буду сегодня в гитхаб логиниться. Не буду сегодня - поставлю завтра.
>>2351540 > не родилось и не вызрело нормальное апи, где код мода - отдельно, код игры - отдельно Так это фордж. Отличие мода от плагина в том, что мод на клиент (игру) прежде всего, плагин прежде всего на сервер (бэкенд программу).
>>2351546 > Отличие мода от плагина в том, что мод на клиент (игру) прежде всего, плагин прежде всего на сервер (бэкенд программу) А, понял, спасибо >Так это фордж. Так, я давно с форжом не работал, но если память не подводит. форж делает что: 1. Декомпилит игру 2. Деобфусцирует 3. Ты пилишь мод 4. Компилишь @ обфусцируешь (в другом порядке, разумеется) 5. При запуске игры форж суёт все моды в джарник кубача. При этом давая всякие плюшки типа порядка загрузки, резолва конфликтов айди предметов и так далее
Я немного не это понимаю под нормальным апи. Нормальное - это когда у тебя твоя прога подливает свой код в игру, а моды лежат отдельно, подсасываемые ею уже в рантайме. Как в minetest, например. Так даже перезапускаться не надо, берёшь и прям в игре подключаешь/отключаешь. Плюс полный слой абстракции между игрой и модами, не дырявый как в форже, где у тебя обращения к классам форжа идут вперемешку с обращениями к классам самого кубача, а прям полный: моды общаются с апи и только с ним.
>>2351555 Подсосать мод в рантайме чисто технически невозможно, потому что при запуске игры выполняется хуева туча оптимизаций и кеширования (собственно это и есть запуск игры), если это не оптимизировать, то игра будет идти примерно в 1 кадр раз в 5 минут с модами, если пересоставлять списки при подсосе мода - то времени это столько же займёт, сколько и загрузка самого майна (можно оптимизировать мб, но всё равно у тебя гарантированно зависнет надолго, так как каждый мод в текущем варианте в фордже составляет списки секунд по 10).
Чистого апи, в общем, то, не так уж и надо, потому что мод - он на то и мод, что может сделать чё угодно, хоть другую игру на другом языке программирования в окне майна запустить. Для базовых функций чистое апи есть, типа добавления блоков.
>>2351559 > хоть другую игру на другом языке программирования в окне майна запустить Но с тормозами, как ты говоришь, поэтому толку от этого мало. Ну я понял - недостатки архитектуры кубача, в которой это не закладывалось (и до сих пор, сука , не заложено, аж трясёт с этой хуйни). >Для базовых функций чистое апи есть, типа добавления блоков. Видел, функционала пока не завезли.
>Для этого оно должно быть известно во время компиляции. Ты откуда такой к нам в тред пришел? JIT - работает в рантайме, если в рантайме один из бранчей не выполняется JIT его просто выкинет из сгенерированного кода.
>>2351608 > filtering-source-code-in-maven Исключает целые файлы, а речь шла об отдельно взятом блоке внутри метода. > если в рантайме один из бранчей не выполняется Не выполняется сейчас, выполнится потом. Ни на то ни на другое нет гарантий, что такое рантайм знаешь? Жид может выкинуть только то что известно во время компиляции.
>>2351680 Ебало бугаенки при взгляде на всю экосистему кубача будет такое. Вангую, что этот говнокод выглядит именно так, потому что опирается за что-то ещё, что говенно написано. Хотя не факт, конечно. Но моды, например, поскольку юзают классы кубача - наследуют убогость последнего. Плюс ещё сдабривается это дело тем, что занимаются им школьники, студенты, вкатуна и тому подобные личности, хоторые если бы и хотели писать нормально - банально не знают, а как это делать. Один швед когда-то написал плохо - и понеслось. Я как-то глянул хеллоуворлд на lwjgl (библиотека, которую использует майнкрафт) с его WindowHandle опен/клоуз и тому подобной процедурной дриснёй - думаю охуел посильнее, чем бугаенко от спринга с хибером.
>>2351680 Ебучие ивенты баккита вынуждают писать такую хуйню, по другому тут невозможно. Зато при использовании уже моих собственных обёрнутых ивентов никакие instanceof не нужны, я об этом позаботился.
Еще там есть говно в автотесте, но я там вообще не заботился о качестве кода, думаю понятно почему
>>2351753 > Еще там есть говно в автотесте, но я там вообще не заботился о качестве кода, думаю понятно почему А зря. Хорошо написанные тесты помогают понять, как работает нужный класс
Прошла неделя. Падение на 203 вакансии. В реальности из этих 3 тыщ вакансий именно джава спринг бекенд будет где-то 1000-1200 в лучшем случае. Напоминаю, что до 24.02 по запросу java хх.ру выдавал более 5000 вакансий. Если бы было все так чудно, то почему количество вакансий сокращается уже третий месяц?
>>2351868 -2000 вакансий, 1500 из них от западного кабанчика, исчезли в первый день после санкций. Итого -15% ВАКАНСИЙ в кризис, то есть даже скорость роста бизнеса всего на 15% замедлилась.
>>2351871 >1500 Это 30%, если отсчитывать от 5000 вакансий, которые были в начале февраля. На самом деле где-то минус 40% случилось.
>западного кабанчика Западный кабанчик ушел. А еще сбер остановил найм и начал у себя сокращения (особенно сбердевайсы). Яндекс сначала приостановил найм, а сейчас очень многим тупо отказы шлет. ВТБ почти полностью остановил найм, как и Иннотех. Альфа туда же. Райф, Ситибанк, Росбанк похоже что ВСЕ в ближайшем будущем. Тинькофф уже вероятно будет не Тинькофф, перспективы туманные, но найм все еще идет. Дойчетелеком (T-Systems) ушел, Епам ушел, Люксофт ушел, Accenture ушел, DXC ушел. Не дохуя ли большие потери на рынке? Я вот вообще не знаю, куда сейчас можно относительно легко пойти работать джава-спринг-дебилоидом. Гос. энтерпрайз какой-то очень жидкий, в большинстве мест это тупо 1С + SQL + немного сишарпа для десктопиков.
>>2351837 >>Хорошо написанные тесты О существовании тестов узнаю только когда CI не проходит из за сломавшийхся тестов всмысле не фейлятся, а не запускаются, которые надо переписывать после добавления фич. >>помогают понять, как работает нужный класс А что делает код можно понять из кода (по названиям методов и пременных в первую очередь), а не из десятка when(x)thenReturn(y)
>>2351917 На первой работе был спринг4 без бута, джава8 и копролит. Сейчас жаба11 и последний спринг с микросервисами. Просто земля и небо. Вот выйдет спринг6 и с джава 17 в этом году. Ну в начале следующего года допустим мне дадут на нем микросервис написать. Получу я хоть толику той разницы, что сейчас?
>>2351943 О да, вот это квинтэссенция кринжа. Именно поэтому нужно с самого начала писать в чистом ООП стиле, чтобы потом не пришлось ломать совместимость или накостыливать какую то ёба-обёртку. А также рисовать на бумажке картинки структуры проекта
Привет, джавач! Пора строить график постов в день, однако за последние два треда назад это было невозможно сделать из-за шизоида, перекатывающего после 500 постов. Поэтому график будет сразу за 7 (семь) тредов.
>>2352190 Посчитай побольше тредов назад, чтоб большую картину видно было. И можно ещё сделать ещё один график с отметками не каждые 5 дней, а каждые 10, чтоб поровнее было и тренд был отчётливее виден
>>2352230 Построил за начала 2020 года. График строится точечно по дням, и если строить за 10 дней, поменяются только отметки на оси, но не сам график. Можно наложить линейную фильтрацию (только накладывается со сдвигом в +10 дней).
>>2352680 > Я смотрю тебе при сборке мозги исключили. Как исключить отдельно взятый иф с помощью filtering-source-code-in-maven? > Ну вот нахуя пиздеть про вещи про которые ты вообще ничего не знаешь? Иф остается. Ифа нет.
>>2352961 > Нет, не следует. Байткод выходит просто для красоты существует? > Он исключает в рантайме, а не при компиляции. Хоть один пруф будет? По моим тестам в асме те же инструкции ифов как и написано в байткоде.
>>2352994 >>но у меня ошибка Очевидно что он ждет стрингу, а ты пытаешь ему скормить какой то А. Что ты там переопределял стриму похуй, он об этом не узнает. Мапь и не выебывайся.
var str = list.stream().map(A::toString).collect(Collectors.joining());
>>2353027 Тебя недостаточно выше попустили? Ты ещё долго будешь срать тут, принимая кончу на ебло? Иди свои страшилки петухонерам рассказывай, им понравится
>>2353038 Это финальный набор инструкций после нескольких жид компиляций и оптимизаций. Эти хексы напрямую загружаются в кеш цпу. Дай мне пруф что он не финальный и кто то его выпилит. Ведь вы в этом меня пытаетесь убедить.
>>2353040 Выше кто то кидал спецификацию жида, можешь начать с нее. > как ты сдекомпилил жарку В жарнике байткод. Ты понимаешь что я говорю о том, что идет после байткода? >>2353041 > напрямую бацткод посмотрел Я его посмотрел еще 100 постов назад, чтобы убедится что javac вырезал от туда иф со статичной константой.
>>2352942 >Как исключить отдельно взятый иф с помощью filtering-source-code-in-maven? Ты не можешь документацию по плагину прочитать? http://www.mojohaus.org/templating-maven-plugin/examples/source-filtering.html Создаешь в проекте папку src/main/java-templates кладешь туда interface Flags { boolean DEBUG_ENABLED = ${debug.enabled}; } В основном классе пишешь if (Flags.DEBUG_ENABLED) В pom.xml задаешь пропертю debug.enabled. Все, при билде ${debug.enabled} будет заменено на значение и при компиляции основного кода у тебя будет или код без условия или вообще ничего.
>Иф остается. Ифа нет. Я понимаю когда люди чего-то не знают и спрашивают по нормальному, но когда не знают и выебываются - вот этого я не понимаю. Чтобы увидеть что там JIT скомпилировал надо смотреть https://wiki.openjdk.java.net/display/HotSpot/PrintAssembly Естественно этот код надо предварительно "прогреть".
Единственная надежда джава-мира на спасение будет, если после майских праздников начнут вакухи новые открывать. Может быть поднимемся с 3060 вакансий до хотя бы 3200, как сытые времена неделю назад...
>>2353146 > - вот этого я не понимаю. Я нигде не выебываюсь. Скриншоты это то что мне показывают разные инструменты, по сути факты. Вроде даже без оскорблений отвечаю, а в ответ одна токсичность без контрпримеров. То есть мне предлагают верить не своим глазам, а анониму который ни одного факта так и не привел. > PrintAssembly Вот скрин >>2353031 асм кода с этим флагом, прогретым хотспотом, несколькими компиляциями жида и всеми возможными отптизациями типа инлайнинга. Там все еще присутствует операция умножения которая не нужна.
>>2353229 >Вот скрин >>2353031 асм кода с этим флагом, прогретым хотспотом, несколькими компиляциями жида и всеми возможными отптизациями типа инлайнинга. Там все еще присутствует операция умножения которая не нужна. 1. У тебя прогрев курильщика, статические методы плохо оптимизируются. Да и вообще нужно юзать JMH, он правильно прогревает. 2. По картинке вообще хер поймешь это C1 или C2. 3. Ты дурацкой подсказкой закрыл половину кода, что там надо разглядеть вообще непонятно. Но первые строчки показывают что там нет никакого if
Вот прогрев здорового человека https://pastebin.com/SGTBNeiA А вот сравнение результатов C2 https://pastebin.com/Sb7iD0Nm Там нет никаких if для обоих случаев там безусловное выполнения кода. if выглядит как cmp+je. И видно что для C1 if на месте, но вот C2 его уже выпилил.
Какая же макось говно, пока соберешь ждк ебнуться можно. Да линукс или винда в 100 раз лучше.
>>2350509 Но Джава реально вырвиглазная. Если бы возможностей для работы было больше, я бы обмазывался Сями и дрочил. Причём, может, сама Джава ещё и нечего, но платформы, на ней написанные, это пизда. SAP Commerce, например, 'это вообще, имхо, месть немцев за Гитлера.
>>2363068 >>SAP Commerce Это 1С написанный на джаве. ИТТ нет тех, кто не считал бы его говном. Привычная всем джава это спринг. >>Джава реально вырвиглазная Это дело вкуса. Мне вот не нравится ямл и питон, из за того что проеб пробела/таба в лесенке отступов сломает билд.
Сап, нужна помощь. Завтра экзамен по Джаве, можно сказать основы ООП. Проблема в том, что не знаю синтаксиса т.к до этого ООП только на плюсах были.
Поэтому хотел бы попросить краткий-полезный видеотуториал/справочник/сайт с описыванием реализации ООП фич по типу полиморфизма, композиции, интерфейсов и т.д конкретно на Джаве. Благодарю.
Суть такова, пользователи уже расползлись по разным часовым поясам, а в переспективе еще маячут и разные страны Что делать с датой-временем? Маршаллинг и унмаршаллинг в человеческом виде у jaxb не нашел, чтобы сразу делался в часовом поясе пользователя и его региональными параметрами, jaxb этого по моему не умеет делать
Соответственно встает вопрос, как обмениваться с фронтом объектами, которые в себе содержут поля OffsetDateTime?