Вы видите копию треда, сохраненную 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>№2329462
То, что ты написал 50к строк еще не значит, что ты пишешь пиздатый код.
Для начала поссать на долбоеба который перекатывает на 500 постов раньше
Бамп вопросу, бутаны
Для джуна - крайне важно. Можешь ещё про корзины в хешмапах почитать и про обход бинарных деревьев ахахах. К мидлу уже вопросы более адекватные. Тесты не пишешь - не пройдёшь, кстати.
ну я не мидл, я совсем не в этой сфере работаю. так таки в каком объеме надо знать алгоритмы и где и как их изучать с чего начинать и в каком объеме. из твоего поста не понятно
Бампану вопрос
Да это пет проект. Есть валидатор готовый, но получается он не может валидировать со скипом и тримом пробелов
А как у вас построена работа над техническим долгом в проекте?
Ну так как надо то. Я могу его легко руками написать но зачем тогда вообще эти ебаные валидаторы
Представь, что твоя программа не умеет работать с кредитками с пробелами, и ты это изменить не можешь. Основываясь на этом, решай проблему с валидатором.
То что тупо делать ответом на вопрос, решаемый методом, эксепшены как вариант нормальной работы. Нормально сделать возврат булевым и возвращать true false ааа результат валидации
Ты троллишь что ли? Вон чувак выше предложил решить вручную, но ты сказал что это костыль и говно.
Я тебе предлагаю удалять пробелы из строк, лол. Самая обычное преобразование вводных данных.
class MinLengthValidator implements Validator(
boolean valid;
MinLengthValidator(String name, Validator origin) {
valid = name.length() > 2 && origin.isValid()
}
)
class RegexpValidator implements Validator(
boolean valid
RegexpValidator(String name, String regexp, Validator origin) {
valid = name.matches(regexp) > 2 && origin.isValid()
}
)
// usage:
System.out.println(new MinLengthValidator(name, new RegexpValidator(name, regexp)).isValid())
Бля, но аннотация @valid ставится на аргумент прямо, и работает ещё до того как я его получу. Как я удалю пробелы ДО валидации?
Хуёвый тред, переделывай
Чому хуже-то? Ты же же просил в стиле бугаенки, более бугаенково уже некуда, извините
Благодаря нашему охуеннейшему лиду, с такой хуйнёй не сталкиваемся и писать в долг не приходится.
>Удачи разбираться в методах с 10 отступами
По моему ты просто кокой-то долбоеб.
Ни в одном пособии по даже самому упоротому клин-коду нет такого что ветка else ни в коем случае недопустима, даже однократное вложение и то еще норм.
Энивей, никто и не возвращает булевское значение через if-else, потому что можно вернуть его непосредственно:
return xxxx.matches("xyi");
Энивей-2, упрощение через направление штатного потока выполнения в эксепшены? сириусли?
>По моему ты просто кокой-то долбоеб.
А по моему, ты ебучий 15 летний школьник, даже не джун, или жирдяй
Ну окей, хуярь свои if(a) return b; с муками если пришлось написать полтора лишних оператора. Вообще похуй, лол.
>даже не джун
ахаха. это я бы тебя даже джуном себе не взял, с такой кашей в голове.
>ахаха. это я
Ещё и мелкобуква. Какие же пердежи дегенераты, пиздец просто. Ты сюда из петухон-треда пришёл?
Всегда тут был. Че так бомбишь, клован? Это наверное ты через месседж эксепшена передаешь питоновский код, чтоб поймать распарсить и исполнить, чтоб охуенно упростить все.
>питоновский
Петухонист не палицца.
>Это наверное ты через месседж эксепшена передаешь питоновский код, чтоб поймать распарсить и исполнить
Продристался с паттерна проектирования. Такое и придумать то сложно, стопроц так делаешь регулярно.
>Использование исключений для управления потоком выполнения является достаточно распространённой практикой. Однако во многих статьях и книгах, посвящённым лучшим практикам, например в замечательной книге Джошуа Блоха “Java — Эффективное программирование“ (Effective Java, Joshua Bloch), даётся рекомендация не использовать исключения как способ ветвления кода.
Джаваскрипт макака спок, тебе в соседний тред
>придумать сложно
потому что ты дебил-крудошлеп, который вне своих фреймворков нихуя не умеет, кек.
а так-то всё самое замутное как раз в маршаллинге промеж собой всяких разных трудносовместимых вещей, и я бы почел за интересную задачу такое решить.
>А вообще, все знают, что аннотации это анти-паттерн
Так весь спринг на них же работает. Что, если есть форма на 10 полей то все их лучше будет руками валидировать?
я ваще-то только про два говорил, иди перечитай, у тебя похожк память слишком короткая, в нее тупо не влазит больше 2 операторов в строке, потому ты и боишься так циклов и ветвления.
Яндере, ты?
Охуенно подытожил. И на чем работаете вы в своей конторе?
Как тебе такой код, любитель ветвления? Уже обкончался от необходимости вмещать в свою память больше 2 операторов? Уххх, ща как напряжёшь мозги, да?
Отстой пидорский, конечно же. Даже не из-за goto, а потому что только пидорасы называют переменные А, Б, Цэ и так далее. Нормальные люди стараются хоть какую-то семантику прилепить.
Но тут же так дохуя твоего любимого ветвления. Мозги надо напрягать, а то разленились эти ваши ооп программисты, вот мы раньше писали код и приходилось запоминать переменные, не то что щас
Это самый настоящий код для прода. Для примеров используют более проверенные временем языки программирования, в которых меток нет и goto пишется по строкам
Ты какой-то дурак, который в зелёнку полез. Тебе никто не говорил никогда что милионы вложений циклов и ветвлений, особенно через гоу-ту, это заебись, тебе говорили что несложные комплексные операторы вроде if-else или там какого-то for это нормально.
Короче, каждый пишет как хочет. Я тебя ни в чем не убеждаю. Что мне похуй сказал еще постов 10 выше.
Это что за неуважение? Чтобы к следующему треду исправились.
Именно код примеров и требует семантики в том числе. Для целей нормального сосредоточения на теме, а не на ебле с буквами
class Outer{
class Inner{
}
}
всегда лучше чем
class A{ class B{}}
Оцени код BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
наааайс. теперь совсем хорошо
ты заебал, пчел. я верю что ты знаешь про существование машкодов. не нужно мне это доказывать. принципиальной схемы проца с графиками напряжений на ногах пожалуй не нужно, хорошо?
Да бля, ты дебс. Я пишу так или иначе в зависимости от позы в кресле. Вообще похуй. Давай еще уличи во мне делфиблядка какого-то за регистронезависимость
> дебс
> долбоеб
> пиздец дебил
> Дегенерат
> Проиграл пердежом с примесью дрисни тебе в рот
Тут прям учтивость и уважение благородных донов, я смотрю
За одну неделю.
Как говорил Стивен Кинг вроде, не помню на самом деле нихуя "начните с осознания того факта, что скорее всего вы не заработаете писательским трудом ни цента за всю свою жизнь. Если вы осознаете это и примете, ваш шанс стать писателем станет гораздо выше"
Вкатывальщики за хлеб идут нахуй. Полюби решать траблы, полюби хардкодить сука. Шутка. а правда в том что зависит от того даун ты или нет, а из твоей постановки выходит что скорее даун, потому что спрашивать такое не говоря бэка своего - даунство
Программист должен работать не ради бабла, а ради программирования, иначе появляются функциодауны и любители ветвлений.
Я в депре, поэтому через жопу формулирую вопросы. До этого говнокодил на 1С. Сейчас хороший шанс для съеба в штаты, но там только двор мести, если возьмут. Мимокроком пришел спросить. Почитал гайд в шапке, но я даже хоть с каким-никаким бэком не могу понять сколько мне нужно в моем состоянии чтобы хоть на джуна взяли. Вопрос был серьезно задан без рофлов. Могу сказать что в 1С можно что-то заработать уже месяца через 3 после пары учебников. ХЗ как обстоит дело в джаве.
Петухонист не вкатится в джаву никогда.
Лучше в штатах двор мести, чем на росии 1с программировать
Тут согласен. Программист это раб. Если он хочет получать деньги, то легко заменяется другим рабом.
> Функциодауны
> Ради бабла
Чет проиграл с этого знатока. И какое бабло ты поднимаешь на каком-нибудь хаскеле, лиспе или эрланге?
>>341879
Если без рофлов, то твой бэкенд не репрезентативен так сказать для понимания как тебе пойдет джава, потому что в сравнении с 1С это пиздец как отличается. Если б ты сказал что раньше ебашил на шарпе или плюсах (короче, на чем-то типобезопасном и ООП-заточенном), то можно было бы делать хорошие прогнозы. А так хз. Но если честно, кмк, ответ: ДОЛГО. Просто потому что сейчас, судя по этому треду, джуну недостаточно знать тупо язык и станднртную либу, ему надо волочь во фреймоворках типа EE или Springa, в БД вообще по дефолту, в системах сборки, девопс-параше и еще куче всего.
>И какое бабло ты поднимаешь на каком-нибудь хаскеле, лиспе или эрланге?
У меня друг в Фейсбуке на нем писал.
Там то ты не поднимешь бабла, но эти недоумки, которые не способны в ООП лезут в джаву и обгаживают тут всё своими аннотациями, статиками и прочей хуитой.
Что то хуево от этой музыки становится, сразу засыпаю. Нужно что то долбежное и крутыми неоновыми постэфектами и еще с ебейшей тряской камеры.
Прикол в том, что это массово. Возможно, в это стоит перекатиться когда ты уже в чем-то шаришь, но просто постепенно уехал в специфичные задачи.
Гораздо интереснее не музыка, а код. Мне было бы в сто раз интереснее здесь читать про имплементацию новых удобных расширяемых решений в его код, чем смотреть на новые сделанные уровни для игры
А мне было бы страшно даже взглянуть на его говнокод. Там наверное даже оопом и не пахнет ни разу.
Спасибо за ответ, анончик. Обнадеживает, конечно. Хотелось бы в интерпрайз какой-нибудь вкатиться, но сейчас как-то все очень стремительно меняется.
Тут как рулетка, вставляешь пулю в барабан год или два, а потом стреляешь себе в голову.
Даёшь 500 постов и перекаты каждый день!
Да
>>341902
Это шутка, это музыка из водных уровней в Супер Марио.
>>341907
Я не только уровни делаю, их я вообще почти еще не делал.
Могу пописывать про свои велорешения иногда, если и правда интересно. Вот код, только он не продокументирован и вряд ли ты захочешь в нем разбираться :
https://github.com/Anc3vt/d2d2/tree/dev
Начни просто язык учить. Это довольно долго, и это БАЗА, так что полезно в любом случае. Если именно энтерпрайз, то даже на шарп потом переехать легко будет. Просто ты должен понимать что выучить сам язык это процентов 25 от всего.
А почему бы и нет?
Сервер:
com.ancevt.d2d2world.server.D2D2WorldArenaServerMain
https://github.com/Anc3vt/d2d2/blob/dev/d2d2-world-arena-server/src/main/java/com/ancevt/d2d2world/server/D2D2WorldArenaServerMain.java
Клиент:
com.ancevt.d2d2world.desktop.D2D2WorldArenaDesktopMain
https://github.com/Anc3vt/d2d2/blob/dev/d2d2-world-arena-desktop/src/main/java/com/ancevt/d2d2world/desktop/D2D2WorldArenaDesktopMain.java
>>341945
Лол
Понял, попробую по шапке вкатиться. Спасибо еще раз, анон!
Он бугай.
try {
...
} catch(Exception e) {
throw new IllegalStateException(e);
}
Хорошо, что всё меньше долбоёбов использует checked exceptions, и не нужно ни оборачивать в unchecked, ни вешать аннотации.
Хуево, что всё меньше людей использует чекед экспешпены, и потом приходится на проде охуевать от анчекед
Можешь попросить идею нарисовать, она немного умеет в uml, есть куча онлайн рисовалок типа люсидчарта итд гугли uml онлайн
В гугл.
А я увидел проебы Idea.
Конечно пиздец. Ни одному нормальному человеку не придёт в голову строить и рассматривать эти диаграммы.
Какой-то пиздец. На уровне костылей с функциональными интерфейсами ради добавления в язык лямбд.
никогда, желательно выучить с какой скоростью выполняются классические структуры данных (поиск, вставка, удаление) этого хватит, как устроена хешмапа стандартный вопрос который задают всегда и желательно знать как она реализована именно в том языке что ты учишь, если расскажешь интервьюеру зачем в реализации хешмапы в яве побитовые сдвиги этого хватит более чем.
что-то рассказывал на собеседовании про то что это такое. после чего не прикасался (5 лет).
иди нахуй джун
там далеко не только это костыль ради лямбд, еще ради стримов интерфейсы похерили
На джунском языке он спрашивает, насколько важно знать все паттерны. А если не все, то на какие поднажать, а какие подождут.
Может у тебя 50 000 public static void и процедурного кода без абстракций и наследования.
Ну хоть меня автотестера обоссыте, но у меня org.selenium.noSuchElementException вернёт, чем проверку на object.isDisable()
Я фанат Борисова, каждый день пишу
Зачем так уродовать то, что должно быть сделано для удобства? Вот бы напридумывать лишней хуеты, лишь бы было не так как у всех.
Ну я сразу написал что она немного умеет) там есть свои проблемки. Ну и кстати настраивать тоже можно, так что не выёбывайся сильно, это всё равно лучше чем ничего
Въебать вискарика и на собес
Выглядит отвратительно конечно
Мне кажется они просто переизобрели шаблонизаторы.
Что, если без них? Возьмут куда-нибудь стажером за 10 тыщ?
10 тыщ, кек. Не легче дворы подметать за 10к?
Еблан? Кто сейчас меня на 100к возьмет без опыта? Дай боже выторговать 30 тысяч в Москве, 15к за комнату в коммуналке в области, 8к на пожрать, 7к на проезд (удаленку не дадут). Что не так?
Да тебе тупо не перезвонят, если будешь просить в разы меньше рынка. Запишут в неадекваты, которые не умеют оценивать свои навыки.
Он ещё и в москве, ну точно блаженный.
>Че?
Ты просишь избегать try catch. А в Селениуме трудно просто сделать проверку true false на отсутствие объекта, если этот объект - Веб Элемент. Отсутствие элемента на странице для Селениума или его неактивное состояние - это не false, это "пошел нахуй, тестер, исключение: элемент не найден".
>Еблан? Кто сейчас меня на 100к возьмет без опыта? Дай боже выторговать 30 тысяч в Москве, 15к за комнату в коммуналке в области, 8к на пожрать, 7к на проезд (удаленку не дадут). Что не так?
30k, ты что, дворник или тот чел, что у турникетов метро в кабинке сидит, за эскалаторами наблюдает? Кассиры пятерочки меньше 50к не просят.
Твоя цена, как Джуна - от 90к
Не я прошу, а тот попущенный петухонщик-шизоид. Трай-кетч это базис языка
>Твоя цена, как Джуна - от 90к
Пошли мантры ДимСоула и Саксонова, лол. Джун - это человек с минимум 1 годом КОММЕРЧЕСКОГО опыта, чел. Зарплата ему - ну тысяч 50 максимум. Его еще учить и учить. Что уж говорить, когда матерые сеньки максимум по 250к идут.
>принося прибыли на 5000к
Попустись, сычуш! Какие ты там прибыли приносишь? Лепить круды на спринге и пукать в кафку любой студент умеет и цена этим "навыкам" - ну 50к максимум за фуллтайм.
Толсто.
Лично себе приношу по 8к вечнозагнивающих ежемесячно окладом + до 5к премиями. Кабан на моём проекте по 100к лутает
Рынок труда сейчас иначе оценивает. Видимо некому писать круды инверсируя контроль и пукать в топики.
Показывать пока нечего.
Есть ещё гусь, даггер и CDI/EJB.
>А вообще, внедрение зависимостей - антипаттерн.
Сам их писать собираешься? Или у тебя доступ к Градлу, Мавену отсутствует.
Может ещё без них научишь Джаву sout печатать в UTF-8?
Градл хуита для петухонщиков и залётных порриджей. Ничего кроме мавена не существует.
Элегантные объекты.
Но индекс это же хешкод, получается хешфункция какая-то туповатая. Или ты от пизды написал?
Очевидный кваркус/микронавт
Но ведь на этом все ооп держится. Ты хотя не путал бы ди с ди контейнерами
Нужны петпроекты. Надо знать как минимум поверхностно (сам с нуля все собрал и завел) стек микросервисной архитектуры, с всратым монолитом на депрекейтед никто даже разговаривать не будет
Спс, там сдвиги только на емкость
Всюду — ненормально. Нормально там, где единственное, что ты делаешь с исключением — оборачиваешь его в RuntimeException.
А почему именно в RuntimeException (на него сонар руается) не в IllegalStateException?
Он самый общий и универсальный, не несёт конкретного смысла, как IllegalStateException, и не подвержен лишним проверкам при компиляции.
1140x612, 0:23
Ок, зарефакторю, спасибо
Разумеется. Ведь микросервис нужно уметь. Это для прицела в перспективе работать на крупную компанию.
>>342748
Чел, ну зарплатные вилке же открыты. Открой проджвмджобс и узри, что 250-300к платят матерым сенькам. Если ты работаешь на зарубеж, то никто тебе не станет платить 8к, т.к. местные спецы обойдутся дешевле. Максимум на зарубеж - это 4-5к. И это в том случае, если ты обладаешь уникальной экспертизой, а не просто круды лепишь на спринге.
Дуракчтоле? Градла голден стандарт для контор где пилят продукт (бэк на буте + андроид апп).
>Градла голден стандарт
Грэдл - это глорифайд ант. Мавен предлагает декларативный способ описания сборки проекта, когда грэдл заставляет прописывать все команды по сборке и указывать куда что положить и откуда чего взять, чтобы хоть как-то собралось. В итоге портянки на градле невозможно читать и поддерживать. Ну и тормозит он и память жрет - будь здоров!
Проиграл. Какой то даун, которого пидорнули на 2 стажер-собесах рассказывает мне, как я работаю
>Грэдл - это глорифайд ант. Мавен предлагает декларативный способ описания сборки проекта, когда грэдл заставляет прописывать все команды по сборке и указывать куда что положить и откуда чего взять, чтобы хоть как-то собралось. В итоге портянки на градле невозможно читать и поддерживать. Ну и тормозит он и память жрет - будь здоров!
Ну понятно, ты монолит пишешь. Вот тебе и нужно чтобы только зависимости подтянулись и погнали.
А градл - для микросервисов. Как я его использую: когда внутри папки с проектом ещё несколько папок с проектом, которые способны независимо работать. А связаны между собой тасками.
> когда внутри папки с проектом ещё несколько папок с проектом, которые способны независимо работать. А связаны между собой тасками.
То есть если бы ты знал о существовании в мавене модулей, то градл бы не использовал?
>ты монолит пишешь
>А градл - для микросервисов
>Как я его использую: когда внутри папки с проектом ещё несколько папок с проектом
>которые способны независимо работать
В голосину!
Бля просто пиздец, почему такие дауны сидят на работе, а я ещё даже не джун и меня не возьмут?
Возьмут. Видишь, какой низкий порог вхождения?
И вместо Градовских tasks, в мавен проекте вся надежда на манифест.inf?
https://pastebin.com/ysuMKLWG
как это сделать быстрее?
По условию дан массив массивов строк из двух элементов. Первый элемент индекс(переводится из строки в инт), второй строка.
Нужно у первой половины массива строки заменить на "-", а после этого вывести в строку все значения через пробел в порядке согласно индексу.
Я разделил проход по массиву на два цикла, чтобы отказаться от условных операторов. Стрингбилдер, так как он побыстрее листа и хэшмапа. Заполнил его пустыми строками опять же, чтобы не было ветвления. Чтобы не выводить все 100 значений, закидываю индексы в трисет и беру последний при выводе.
При миллионе строк начального массива не могу уложиться в лимит времени.
да, как с завода уволят, так и поступлю. И ведь в макдак не пойти, они же закрыты ((
Это "олимпиадность". Лучше "создай прогу". Твой пет проект будет ценнее.
Всё на свете выучить невозможно. А вот искать решение для разработки твоего собственного приложения - это "из жизни".
В ВУЗе учат джаве но челы которые практикуют говорят что она мертва и надо учить Весну. Кто прав?
>Твой пет проект будет ценнее
Нет. Без навыков быстрого решения задач уровня медиум с литкода, ты даже до самого технического собеседования не доберешься, где с твоим резюме начнут ознакамливаться.
поверь, по сравнению с тем кого видел я с 3-4 годами опыта разработки, эти аноны боги разработки
Теперь понятно. Руки до спринга не доходили проста.
Хочется всё-таки знать, как эффективно и быстро работать с коллекциями.
Если не можете подсказать, как ускорить, то хоть скажите что стоит изменить в моей версии хотя бы с точки зрения стилистики и читаемости?
Убрал изменение первой половины исходного массива.
temp1=arr.get(i);
temp1.set(1, "-");
Вместо этого в результирующий сразу записываю
result[x].append("- ");
Но этого тоже не хватило, всё равно в лимит времени не помещаюсь.
В прошлом году обошел где-то 50 контор. Буквально в каждой были задачи с литкод. А в желтом банке так вообще устроили олимпиаду в три раунда
>как эффективно и быстро работать с коллекциями
Через утилитные классы guava и apache commons.
Изучаю спринг, и что-то мне кажется бесполезной тратой времени изучение этой параши, если она в реальности никогда не юзается. Так ли это?
Насколько он вообще сложный? За сколько можно освоить на хорошем уровне и что почитать?
В каких то проектах было, но только для емайлов. Но сейчас все посылают емайлы через экстернал сервисы вроде sendgrid, так что нахуй не надо, а на вебе у всех SPA.
Но если тебе прям так надо, то по примерам из гугла можно за час разобраться.
>а на вебе у всех SPA
Насколько понимаю, это JavaScript
У меня довольно тупая задача: я должен в одно лицо поднять веб-морду для некоторого сервиса над БД, такой, своего рода недо-фулл-стек таск. Вот я выбираю какую-то технологию, которая потребует минимума изучения какой-то бесполезной поебени, но в то же время позволит худо-бедно решить все нужные задачи.
Есть какие-то эдвайсы что лучше предпринять (кроме как сменить работу, это я и так знаю, но пока не могу, да и тупой слишком)
хз у нас огромный сайт на тысячу шаблонов на нем
Меня интересует уровень владения его клиентским АПИ - все эти ссылки на переменные, свойства, условия, проходы по цикалм етц. Мне не особо интересно как там устроен его контекст и кишки.
Трабл в том что еще и ХТМЛ придется более глубоко изучать, потому что у меня понимание сугубо поверхнострое, на уровне полутора тегов.
>Трабл в том что еще и ХТМЛ придется более глубоко изучат
Так зато в следующий раз быстрее сделаешь. Вот и когда-нибудь тоже придешь к тому, что "за час в гугле" не покажется бредом. Там ведь по сути просто загуглить/скопировать ответ из гугла/адаптировать под своей проект (в контексте thymeleaf)
в какой конторе так?
в какой конторе так?
Не проходит по времени. И изначально дан массив массивов, а не длинная строка с элементами, потому так быстро не считаешь.
Ну как читать - это сам подгони под условие, я через консоль тестирую.
Мб у меня из-за сортировки по времени зашло, попробуй вот это загнать:
https://pastebin.com/gHmeUShm
*Мб у меня из-за сортировки по времени не зашло
Двачую. Как платформа кстати, в сравнении со спрингом например? Стоит перекатываться в шарпы ради этого? У шарпов все же еще десктоп и даже гей-дев.
Пока только нашел способ каждый тест заворачивать в @Nested, вместе с @BeforeAll и @AfterAll. Но как то это громоздко. Сейчас так сделал.
Или просто вызывать утил методы с загрузкой-очищением базы прямо в начале и конце теста. Но это как-то тупо.
Леонид, думаю вы можете воспользоваться механизмом расширений, существующим в библиотеке для тестирования junit5.
Примерно таким образом сделана обработка аннотации @Sql в spring-test: https://github.com/spring-projects/spring-framework/blob/main/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java есть методы (before/after)TestMethod, в которых из аннотации достаются необходимые данные и выполняется запросы в базу данных.
В ванильном junit существуют подобные коллбеки: https://junit.org/junit5/docs/current/user-guide/#extensions-lifecycle-callbacks-before-after-execution
Бугаенко красава! Настоящему ООП учить надо смолоду.
>Хочется всё-таки знать, как эффективно и быстро работать с коллекциями.
>Если не можете подсказать, как ускорить, то хоть скажите что стоит изменить в моей версии хотя бы с точки зрения стилистики и читаемости?
Расскажу по-нубски, но доступно:
Коллекция вообще - это массив. Но такой массив, который растягивается или сужается, когда ты в него добавляешь или удаляешь.
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();
List<Cat> cat = new List<>;
cat.add() = vaska();
cat.add() = murka();
cat add() = barsik();
Да я не троллю и не рофлю. Питухон это вообще другая ниша, тупо скриптопараша для яйцеголовых профессоров.
Шарпы практически аналог джавы, несколько более современный и органичный, и с более широким кругом задач. К тому же я на нем немного работал - все заебись, кроме того что VS сосет у Intellij
В петухоне ИДЕшка не сможет тебе дать нормальные подсказки в коде, потому что не в состоянии угадать, что учудит язык при запуске.
Ты че, даже в хэшмапе массив есть
>нет
Я знаю. Это нубское объяснение, чтобы мозгу было проще визуализировать. Мозг образы любит.
> list.add() = "Мама";
> list.add() = "мыла";
> list.add()="раму";
Это что за ебанутая хуйня? Где ты такое видел вообще, лол?
Литкод 150
Советую то, где больше вакансий.
Лол, читал тот пост раньше, но не обратил на это внимание, щас дико проиграл ахахах
Конечно же петухон.
Что ревьюить, 30 строчек?
смотря чем ты хочешь заниматься. rest api и микросервисы ну плюс минус одна хуйня, только специфика платформы отличается. asp.net MVC выглядит ограничнее чем Spring MVC, но опыта мало, могу ошибаться. Что касается геймдева, это вообще отдельный мир. Там тебе знание веб стека особо не поможет никак.
Тебе не стоит что-то кому-то рассказывать, потому что ты сам ньюфажина с кашей в голове
>Коллекция вообще - это массив
Ультра-иносказательно. Такое с натяжкой можно сказать только про ArrayList. В общем случае коллекция - это объект, предназначенный для хранения и доступа к другим объектам, способы хранения и доступа отличают разные коллекции.
>list.get(2).remove();
чего блять? ты пытаешься вызвать remove() на <String>
>cat.add() = vaska();
Топ пиздеца. cat.add() это вообще ни разу не L-value, в него нельзя ничего положить. Точто так же как выражение murka() это вызов метода с именем мурка.
Ты бухой или вчера начал изучать программирование?
Насколько fx распостранен?
Что используют вместо него? У меня на курсе преподают его. Думаю стоит ли вообще заморачиваться или сразу создавать интефейс на веб-странице.
Шараги да. Не MIT.
Дианон, травля.
Спасибо за ответ, хоть где-то ответили, а ты даже в сорцы полез.
Ты мне предлагаешь каждый тест писать в отдельном классе, помеченный @ExtendWith(SomeExtension.class) и для каждого теста писать SomeExtension?
Немного посмотрел, расширения работают над методами. И вместо @ExtendWith(SomeExtension.class) можно написать свою аннотацию с нужными мне полями. То есть я могу написать руками аналог @Sql. Круто.
Зачем становится настоящим программистом, если можно быть конфигуратором спринга?
Вообще моя задумка была примерно следующей: https://pastebin.com/ELpghuhM. Тут конечно надо еще подумать откуда брать коннект к бд. В спринге его просто тянут из контекста https://github.com/spring-projects/spring-framework/blob/main/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java#L246, а что у тебя - не знаю.
Подскажите, порекомендуйте, наиболее годные бесплатные курсы по Спрингу, пожалуйста. Куда смотреть, с чего начать.
Потому что. У VS-Code мало помогающих моментов. У Intellij автодобавлялок всякой всячины много.
Хочешь хорошего мидла - взрасти джуна. Я готов если что
И совсем не пахнет.
Спасибо большое.
А насчёт курсов alishev'a и некого Гоши Дударь что-то можешь сказать? Мне ютуб их выкинул первыми.
Ок, какую книгу по Спрингу почитать, где пошагово всё описывается и показывается?
Ну если ты совсем нулёвый, то лучше всё таки посмотреть видосики, иначе подгоришь на настройке томката и прочих штук.
>настройке томката
Что ты там настраивать собрался, болезный? Или ты до сих пор варки по сасахэ в томкат подкладываешь?
Вот тебе книга:
1) Создаешь класс main, вешаешь аннотацию @SpringBootApplication
2) создаешь класс DvachController вешаешь на него @RestController
3) делаешь там метод String getOlolo() вешаешь аннотацию @GetMapping("/ololo")
4) curl localhost:8080/ololo
вот и весь спринг, для новичка хватит, ну если захочешь базу подключить то могу еще аннотаций подсказать )
Не смотрел обоих, но:
вроде как видосик алишева норм, когда ты уже сделал что-нибудь на спринге совершенно ничего не понимая
дударя - нахуй
Точку убери.
Что ты скинул, дуралей? Это библиотека (которая поддерживается ноунеймом, а не Pivotal), которая генерит доку по OpenaAPI спеке.
>вот и весь спринг
>для новичка хватит
Даже на стажера не тянет. Для начала нужно освоить базу спринга. А это минимум год-полтора очень усердных занятий. Нужно ПОНИМАТЬ как работает спринг под капотом. ВЫУЧИТЬ скоупы бинов и как происходит автовайринг. Тогда можно подаваться на стажера за 30-40к.
>Нужно ПОНИМАТЬ как работает спринг под капотом
ну там это, ехал прокси через прокси, а еще они любят паттерн "цепочка обязанностей".
>ВЫУЧИТЬ скоупы бинов и как происходит автовайринг
ну тип в коре 2 скоупа, в мвси еще 3. если используешь не синглтон = делаешь что-то не так. вайришь не в конструктор = делаешь что-то не так. можно вайрить мапки/листы/опшеналы (если у тебя бины таких типов, то надо приседать)
возьмешь на мидла?
Чел, тебя джаварашер троллит.
Зачем?
Напиши просто спринг в требованиях, а не стену текста и тогда отзовётся
Гоша Дударь - это такой Хауди Хо из мира джавы. Вероятно он просто индусские туторы переводит на русский.
Все получилось, как я и хотел. https://pastebin.com/Qc698acJ
Разве что жирноватый получился экстеншн/конфиг.
Спасибо, ты очень помог.
Чел... Нужно ЧИТАТЬ книги и ВЕСТИ КОНСПЕКТЫ. Без этого ты не ПОЙМЕШЬ как работает спринг.
"Дебил" - без этого слова обойтись сложно?
Человек спрашивает, а значит интересуется, а ты его дизморалишь.
Я когда народу отвечаю даже, казалось бы, на банальные вопросы, я себе даю отчёт, что ребята молодцы, что увлечены и им это надо.
>Я когда народу отвечаю даже, казалось бы, на банальные вопросы, я себе даю отчёт, что ребята молодцы, что увлечены и им это надо.
ну и дебил
Хз пока, барин-тимлид сказал надо, в доменную модель я пока не вникал. Созвон, когда это заранее объясняли я проебал. Вникать буду через пару дней. Заодно и сайфер этот поучу. Пока сами круды замутил на спрингдате кучей запросов, там neo4j знать не надо.
Если тебе интересно могу через 5-7 дней тут написать в двух словах.
Да, спасибо. А то у меня кроме регионов (и других древовидных структур) и системы рекомендаций нет идей, куда притянуть графы
У меня есть набор интерфейсов, я хочу, чтобы можно было писать что-то на основе этих интерфейсов используя только эти интерфейсы, а реализацию подключать отдельно, чтобы код, написанный на апи ничего о ней даже не знал
что то типа
#использование
API api = //как то получить апи
api.use();
#подключение
something.loadApi(new CustomAPI());
https://www.baeldung.com/jackson-annotations#jackson-polymorphic-type-handling-annotations
это? Для случаев, если у дтошек есть подтипы.
со спрингом можно?
@Bean
public API createAPI() {
if (allah>1) return new AllahApi()
} else {
return new CustomAPI();
]
}
ServiceLoader
Так всё равно получается высокая связность. Это тоже самое new CustomAPI(), но завуалированное
>кодогенерирующие аннотации, да и вообще любые аннотации компилятора, например из ломбока являются ужаснейшим анти-паттерном
ты придумал, ну или притащил чужое мнение, ты это и аргументируй.
https://www.oracle.com/technical-resources/articles/javase/extensible.html
Мб что-то здесь будет полезное. С жавы 9 можно юзать модули, которые хорошо работают с сервисами.
Нужно было так на шарпах делать. Я там ручками либу грузил и искал наследников своего интерфейса. Но думаю, что можно попроще и побыстрее
Спринг Бут - обёртка над спрингом, которая избавляет тебя от километровых конфигураций, так что там нет ничего сложного.
Это если очень вкратце
А, ну а спринг - стандарт индустрии сейчас
Спринг бут это как коляска по типу убунту
А чистый спринг это как тру-линукс, где надо все самому сначала настраивать.
>А чистый спринг это как тру-линукс, где надо все самому сначала настраивать.
>Вы не поверите! Каждый божий день я просыпаюсь, чищу зубы, еду на работу, а потом лезу в спринг менять конфиги. Потом возвращаюсь домой, пью водку, пересматриваю видео Линуса Торвальдса, где он половину ролика вопит о том, что спринг-бут - это коляска. Плачу крокодиловыми слезами, навзрыд. А потом опять на работу менять конфиги! А зачем еще нужен спринг?
Нужно знать
из 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, но на собесе гонять тебя все равно будут по ней. Контроллеры без реста смотри наискосок, с шаблонизаторами шанс поработать - пара процентов.
Нужно уметь ходить в реляционную базу. Делать рест-контроллеры и рест-клиенты. Обычные синхронные. С джексоном тоже придется поебаться. Остальное от проекта зависит.
Да не за что.
Правда, на мой взгляд чуть грязновато получилось: ты сам тут поднимаешь контейнер, коннекты к бд прокидываешь через пропертя. Я бы чуть копнул в сторону того, что бы достучаться до контекста и от туда тащить драйвер/коннект к бд, а логику по поднятию контейнера и прокидыванию коннектов оставил в самом тестовом класс (ну или в абстрактный базовый вынес бы). Но если тебя или тимлида не напрягает, то похуй.
OSGI, только это немного специфичная штука. Не очень дружит со спрингом из-за того, что каждый джарник грузится своим классоадером, но можно что-то изобразить.
Можно в рантайме загружать/выгружать джарки, подтягивать к себе реализации интерфейсов (service и serviceReference)
Меня напрягает, я пробовал через контекст дернуть драйвер в другой класс-экстеншон и в тестовый клас внедрять два экстеншона, но почему то не получается выдернуть драйвер никуда кроме самого тестового класса, как в самом первом примере с которого я начал. https://github.com/meistermeier/pokemon-tcg-app/blob/main/src/test/java/com/example/cardapp/CardAppApplicationTests.java
А с другой стороны моим другим коллегам понравилось одно большое расширение у класса + одна аннотация над методом.
Я чуть еще поигрался: https://pastebin.com/wnknR4ii Наверное в каком-то таком виде я бы себе в проект это затаскивал
Можешь попробовать создавать тестконтейнер в ApplicationContextInitializer. Там же можно загнать ури с кредами в проперти
Как вы учите аннотации спринга? Делаете конспекты? Карточки в Anki? Мнемотехника? Как быстро с нуля собирать микросервисы по уму?!
Ну мне дали задание написать аналог @Sql для spring-data-neo4j. Ну получилось вообще не по солиду. Но вроде получилось именно то, что просили.
Там же в каждом классе будет 7-10 тестов. Пока есть два класса контроллеров. Но это пока. Где-то mockMvc выражение не в 4 строчки, а в 10. Потом через какое-то время мокировать внешние сервисы придется. Поэтому сказали - нужно компактнее, как в @Sql и чтобы загружалось все из файлов, скрипты баз в строчках или джейсоны это моветон.
Но зачем? @DynamicPropertySource по-сути был запилен как замена использованию ApplicationContextInitializer https://github.com/spring-projects/spring-boot/issues/16886
Запомнил тебе 500 аннотаций за щёку, проверяй.
Там человеческие проперти все равно не выходят. Тестконтейнер меняет урл на ходу на рандомые BoltUrl и порт. А юзера и тестовый пароль вынесу в проперти конечно.
>>344845
Никак. Просто гуглю каждый раз. На пятый раз запоминаю. Время на мнемотехники раз в 10 больше потратишь, чем на повторное гугление. А если анноташка забудется, значит она и не нужна.
Понял. Мне почему-то это показалось каким-то говном и загрязнением теста изначально. Хотя, если вынести тестконтейнер и инициализацию пропертей в абстрактный тест, то будет норм
ClassLoader
кстати я в ахуе как много в огромных галерах всяких "конфигураторов спринга" чьи задачи состоят в дроче xml. Как они потом новую работу находят?
>Нужно уметь ходить в реляционную базу
Ну репозитории же есть. Если без Data JPA то JDBC?
>Делать рест-контроллеры и рест-клиенты. Обычные синхронные.
Что значит рест-клиенты? Типо JS знать?
А что по АОП? Читаю книгу по спрингу, и там в первой части затронута эта тема, вроде интересный подход, но не знаю - стоит сейчас тратить на это время.
>Нах их запоминать.
Скажи, что еще не помнишь сигнатуры методов интерфейса BeanPostProcessor? Как ты в принципе собеседования тогда проходишь?
>"что такое контекст"
Лол, а ты небось ответил - "ну, мням-мням, ну это как контейнер для бинов, мдэ...."? Чел, с такими знаниями даже на стажера не пройдешь!
хз, я уже 5 лет работаю
Это то, что происходит, когда гос орган не может позволить себе отдельный сервер, и все работает на валящейся от постоянных скачков напряжения сети и перезагружающихся компах.
А зачем тебе каждый раз контекст перезапускать? Может быть как-то можно эту херню на уровне хикари пула делать?
>Может быть как-то можно эту херню на уровне хикари пула делать?
Я ж не знаю. Сделал самое очевидное - ловить исключение на старте.
Вопрос: Что нужно поправить в коде, чтобы увеличить максимальное ограничение до 100 Мб/с ? Моя логика в том, что эти 100Мб/с будут реальными 30 Мбит/с, хотя могу ошибаться.
Он игнорит меня. Подозреваю, что истина кроется в пикрил 2, но мозгов маляра не хватает для освоения сего манускрипта.
Просто написать в помнике спринговые зависимости, например:
org.springframework
spring-context
5.0.0
И дальше создать объект AnnotationConfigApplicationContext или тот, что нужен тебе.
Идут конфигурировать спринг в другую галеру
Установил, открыл. Где зависимости искать?
Уже, но получил на клыка. При попытке применить значение выше 10 Мб/с приложение намертво зависает и все ограничения сбрасываются.
С 10001 работает, но в приложении 10 максимум показывает. Пробовал 50000. На значениях скорости выше 10 Мб/с приложение зависает.
Оно показывает 10, потому что 10001 конвертируется функцией тоРидейблСпид в 10мб.
Сейчас попробовал 11000 и 12000 тоже заработало. Зависает при значении 13000 и выше.
Логирование работает и ладно, всем похуй что там под капотом. Это знание джуну не нужно абсолютно. Да и реальное применение транзакций. На собесах будут спрашивать про асид и про пропагейшон и про изоляцию. Но в тестовом и в начале работы этого не будет.
Ну, если код писали имбицилы то возможно и не обойтись без этого. При нормальной структуре проекта никакие аспекты нахуй не нужны.
Бамп.
Пиздец тебе приспичило скорость ограничить, сколько ты часов потратил? И да кстати, иди нахуй со своим восьмилетним старьём, сам копайся в своей легаси параше
8 лет назад был 2014 год, тогда писали совсем в других стилях и с другими технологиями. Ну и к тому же, тут андроид, андроиды за 8 лет намного сильнее поменялись.
Забавный код . :)
Если выскочило исключение (нет соединения), перезапусти приложение и уничтожь исключение.
Если словишь второе исключение, то называй первое исключение вторым, лол. Пул не запускается исключительно из-за проблем с соединением?
За 8 лет андроиды не поменялись. Только разрешалки стали всплывающими.
Там чистая жаба. Зумерки в ондроидо треде только на котлине умеют. Здесь нужен подход тёртых, бородатых олдов.
И вот эта блямба прилетела в лобовуху стоявшей на переезде машины, а в машине двое под кайфом сидят.
- Ебать вот это он мощно харкнул
- А ты видел как щёки надул?
Съебите со своими анекдотами из спринготреда, хуле вы тут забыли?
Другое не работает, третьего нету, а баш скрипты на tc в андроиде кастрированы.
>Я заебался программировать на работе.
Пиздец ты омежка. Настоящий двачер на такую наглость ответит в лучшем случае посылом нахуй.
Иди нахуй и в пизду.
Пошел нахуй.
>Я заебался программировать на работе.
а доебываться до чужого кода на работе ты не заебался? Настоящие заебавшиеся от кода вообще во всякие кодосообщества не заходят и вне рабочего времени за комп даже не содятся.
Твоей мамахи аргумент.
>>
>Че?
Я увидел, что ты насильно присваиваешь исключению про пул значение про соединение.
В итоге, как мне кажется пул если упадет сам по себе а не из-за соединения, он всё равно будет ругаться на соединение, потому что ты заставлять его насильно это делать.
Кажется у кого не задалось с разработкой под смартфоны или нет времени на обучение.
Нет, он про dependency injection.
Чел, если у тебя спринг, то он не логирует запросы в рест контроллер. Тебе самому нужно все обмазать аспектами для этого
Это стандарт, чел. Это - БАЗА!
отдельным методом по id группы получать её название
>нарисовать таблицу
Правильно в запросе приджойнить таблицу группы по ее ID, и селектить ее готовое имя.
>java объект студента
ты определись, нужен ли тебе объект студента, потому что первичная постановка предполагает тупо рисование таблицы. Для этого достаточно resultSeta, без всяких инстансов. А вот если тебе нужен именно объект студента то все зависит от дизайна. Но сразу можно сказать что если студент включает в себя группу как зависимость это MMMMMAXIMUM долбоебизм.
Вроде вот в голове все более-менее понимаю ООП в целом, и по архитектуре, и по паттернам, но как сажусь что-то делать - просто пиздец мозк умирает...
>спринг буте
>реальный проект
Чел, твой спринг начинает срать ну очень странными ошибками в рантайме, когда не может заавтовайрить какую-нибудь хуитку. Приходится битый час лазить по задворкам интернетов, чтобы разгадать, чего это там спрэнгу не хватает. Решается все обычно каким-нибудь ну очень не очевидным костылем, который выпадает из памяти на следующий день.
так можно сказать про все программирование. на понимание концепций уходит больше времени чем на загуглить кусок кода как сделать что-то конкретное
и как ты это себе представляешь? даже видео с простым учебным проектом иногда идет 3-4 часа, а твое пожелание может растянуться на десятки часов.
Ну это да, но там только жава-кор же, ну! Там энтерпрайс разработка только косвенно по азам и все...
Вы охуели что ли? Мне наоборот обещали что достаточно пары месяцев чтоб стать спринговым-джуном-крудошлепом.
Ты до сих пор не научился детектить этого толстого спрингошиза?
Так и есть. Учишь его годы, а потом всего за пару месяцев происходит просветление.
Я не тот шиз, но вкатываюсь в жабу спринг уже 2 года. И каков результат? А нет никакого результата. С началом спецоперации вкат закрылся. Если раньше можно было за 50 тысяч пойти в сбер с посредственными знаниями, то сейчас эта лавочка закрылась. Что делать дальше я вообще не представляю. Джава за 2 месяца обрушилась на 1600 вакансий на хх.ру, и не особо пытается расти.
> Что делать дальше я вообще не представляю
Попробуй пойти хоть куда нибудь за хоть сколько нибудь тысяч рублей. Всё лучше чем сидеть и дрочить конспекты индусов.
Вообще не вижу ни одного варианта на хх.ру, куда можно было бы податься в ДС. Так-то я отправил анкету на стажировку в неткракер. Сказали приходить через полгода. Охуенно, бля.
Раньше был сбер, дойчетелеком, джетбрейнс, яндекс, куча всяких говнобанков и галер. Сейчас нихуя не осталось. Даже всякие госконторы не набирают, так как денег на цифровизацию предприятий больше нет в стране.
>Так-то я отправил анкету на стажировку в неткракер. Сказали приходить через полгода. Охуенно, бля.
А вот был бы у тебя опыт, точно взяли бы.
Хех, сейчас бы коммерческий опыт требовать у стажеров
А где ты раньше был то? Я прямо перед спецоперацией вкатился без образования под 30 лет. С нуля ушло полтора года, из них спринг + хибер - месяцев 8, из которых 3 месяца ходил на собесы(а 3 месяца потому что на нг попал). Откликов на хх сделал 150 где-то. Было 5 собесов, на 3 из них дали оффер. Причем я из дикой мухосрани 500к. У меня 1 вакансия в месяц появляется, остальные собесы были удаленка и релок в дс/миллионники.
До операции вкатиться было вообще просто.
Я когда первый раз устраивался вообще стремался регаться на сайтах всяких пидорасов и офисного быдла, и вместо этого просто позвонил по номеру этой конторы. Сразу выслали тестовое, через неделю собеседования и сразу предложили начать в следующем месяце. Но я ливнул, потому что я хикка.
>А где ты раньше был то?
Учился в универе. Работать вообще было не вариант, не вывез бы совмещать работу и учебу, и тогда бы отчислился.
Летскода смотри. Два плейлиста: с таймлифом и вуем. Ближе к продакшен уровню все равно никто делать все равно ничего не будет. Выложить нормальный продакшен-уровня микросервис это часов 20 видосов, часов 40 монтировать и 200 часов гуглить и рефакторить.
Плюс никто себе реальные проекты сам не придумывает и они существуют не в вакууме, а в общении с фронтами, другими сервисами вашей команды, соседней команды, внешними сервисами, тестировщиками, девопсами, админами, базистами и менеджерами/заказчиками. Без всего этого взаимодействия все равно проект будет учебный, даже если он будет в 10 раз больше летскодовских и там есть все, что он опустил, типа логирования, дтошек, эксепшенхенлеров и куче всего другого.
Ну и зря. 20-22 летнего парня с неоконченной профильной коркой звали бы на собес не на 3% откликов, как у меня, а на 10-15%.
Да это я для пафоса спизданул. Лум в первью еще будет висеть года 3, не меньше.
Но хотя бы наконец-то выкатили в релиз, надеюсь всякие томкаты и джетти к моменту выхода спринг 7 уже полноценно переедут на виртуальные сверхбыстрые потоки.
А то в 2022 году джава до сих пор БЛОКИРУЮЩАЯ. Разве это не позор? Долбиться в тредпул системных потоков, какой же кринж...
откликнуться всё равно можно
В сбер и раньше было невозможно попасть
А ты не выёбывайся, а то ещё и async/await дрисню завезут.
>нахуй вам всрались гоморутины и виртуальные треды
Чтобы создавать десятки и сотни тысяч потоков, чел.
Чтобы брать и обрабатывать сотни тысяч запросов в секунду просто и без задней мысли. Без тредпулов. Без очередей. Без простоя.
На самом деле здесь мякотка в том, что JVM будет сама отслеживать появление блокирующего чтения/записи и обрабатывать его через epoll, как это сделано в говноланге. Суть в том, что сейчас системный поток просто ждет, пока recv/read прочтет данные из сокета. В виртуальных тредах, если появляется возможность обработать вызов в неблокирующем режиме, то системный тред, освобождается под другой вирутальный тред, а не стоит и ждет пока там сокет просрется.
>десятки и сотни тысяч потоков
А что щас мешает?
>Без тредпулов. Без очередей.
Гоморутины это и есть тредпулы
>А что щас мешает?
Ну попробуй, прямо сейчас запусти разом 500к потоков, посмотри как жидко просрется ОС от такого.
>Гоморутины это и есть тредпулы
Под капотом там пул системных тредов, да. Но один хуй весь смысл в планировщике, который хитро переключает горутины между системными тредами.
Тредпул без планировщика - это то, что и так в жабе есть аж с версии 5, или когда там экзекьюторы завезли?
Тут ядерная война через пару месяцев, какая JDK 19? А если серьезно, то можно посчитать, что в 21 жабе уже будет Лум. А вальгалла, видимо, потом.
А хули они не могут так долго такую хуйню запилить? Там десятки разрабов, делается всё это за два вечера.
Ну, полтора года это не мало. Полтора года назад ковидобесие только начиналось и всех из офиса на удалёнку выгнали. За следующие полтора года может ещё пять раз по столько же событий произойти.
>Ну попробуй, прямо сейчас запусти разом 500к потоков, посмотри как жидко просрется ОС от такого.
А нахуя мне запускать 500к потоков? Я че, наркоман? Если у тебя есть 500к запросов в секунду, то тебе oche явно нужно перестать пытаться все их обработать на одном ксеоне и вообще одним сервисом.
Для долбоёбов вроде тебя есть специальный загон МыВамПерезвоним, но ведь нахуя, когда можно срать ею во всех тредах.
Меня интересует именно джава, мнение пидарасов из котлина и пиздона мне не интересно, так как я туда вкатываться не собираюсь
Оно должно само компилировать, как только закончишь написание кода. Попробуй переустановить идею.
Место куда скоро отправится джава.
Горький опыт другого провального долгостроя jpms.
интересно когда додумаются зеков в тюрьмах обучать крудошлёпству за еду?
>спринг + хибер - месяцев 8
А что в спринге и хибере учить 8 месяцев? Основные аннотации и практический проект чтобы закрепить знания это месяцок-другой если не спешить.
Никак
>Основные аннотации и практический проект чтобы закрепить знания это месяцок-другой если не спешить
Это даже на уровень стажера не тянет. По хибернейту и спрингу книги по 600-800 страниц пишут с ГЛУБОКОЙ ПРОРАБОТКОЙ каждого момента работы. Видел я таких ЗНАТОКОВ, которые не разобравшись в хибернейте клали продакшен кривым запросом или выкатывали билд, который не поднимал контекст спринга.
Да, но только её core части. И если в начале это делается играючи, то середина и конец курса (накликал до концовки кристаллами, там можно задачки пропускать делая их "решенными"), с середины начинается обычная перепечатка тех толстых книг по Джаве. Причем создателям курса самим стало скучно и они даже перестали креативить и писали уже сухо.
В конце курса просто учат томкату, а спринг "в разработке" уже десятилетие. Видимо разрабы смирились, что их онлайн-тренажер умеет отображать классы, но не взаимодействие между ними и сдались.
sql, jdbc, spring di, iot, hibernate, spring data jdbc, spring mvc html/css/js. Ну и куча всякого побочного, типа гита или начатых и брошенных тем, типа спринг секьюрити или спринг интегрейшн. Глав 10 из трех книжек, под сотню статей, пол курса лекций, два плейлиста на ютубе. Три пета. Ну это за 5 месяцев. А потом, когда ходил на собесы дрочил всякую теорию по асидам, хттп-методам и по джавакору.
Хоть 1500 страниц прочитай без практики эта зубрежка забудется сразу после прохождения собеседования в лучшем случае.
Так нужно прорабатывать знания, чел. Или ты просто читаешь и как-бы ПОНИМАЕШЬ, лал?
Попустись, сычуш. Говнеца ты хлебнешь на своих проектах. Читай книги и прорабатывай их, чел.
Ты думаешь в рф рванет толпа индусов или азиатов ? Рыночек уже решает. И он говорит что не едут сюда кулумбеки код писать в огромных количествах. Это новая попытка импортозамещения.
Говоря коротко - работа будет всегда, не парься
Практика из прорабатывания книг и пет-проектов ни чета практики на коммерческом проекте.
это настолько очевидно что я даже скажу что двачую
>кишки это баловство
Спросят на первом же собеседовании. Если не понимаешь как технология работает ПОД КАПОТОМ, то тебе не место в айти.
спрашивают просто чтобы спросить, на самом деле никто нихуя не знает когда дело доходит до дела, а не пиздежа
Поэтому я петы писал разные и не дочитывал книги. И смотрел плейлисты с чужим кодом, переписывал его и переделывал.
Коллеги зная мой опыт и бекграунд наоборот говорят, что ожидали от меня меньшего и я вполне крепкий джун.
это правильный подход, потом при чтении книг/статей все ложится уже на имеющийся опыт
Я все таки сперва читал статьи и главы книг, чтобы понимать вообще какие задачи есть и какие технологии для чего, а уже потом смотрел практику и петил проекты. Но итеративно. Пара тем теории - пара примеров из интернета и фич в своих петах.
Например я сперва писал круд на чистом jdbc, потом на jdbc template, потом на чистом хибере и уже в конце на спринг дате. Перед каждым шагом читая по главе-другой из книг, ну и пара статей по ходу.
Сборники практических статей, которые местный гейткипер называют мурзилками действительно лучше книг или доки. В книгах и доке сильно больше лишних подробностей, а в книгах - устаревшего материала.
Во всем прав. Главное с теорией не слишком увлекаться
Я просто хочу сам в джаву, но как ни гляну на зарплаты - просто охуеваю.
То ли перенасыщен рынок, то ли хз что - но в 1с ты вкатываешься с минимальными знаниями и спустя минимальное время получаешь 150к, учась по ходу дела. А тут такое чувство что надо полжизни въебать, поунижаться на собесах (ебать мой хуй - 150 откликов. Меня, когда уволился, заспамили херки предложениями) и получить в итоге - вот хотелось бы знать - сколько?
Просто писать на джаве "для души" и могу и дома, и так даже лучше - ведь дома я могу коммитить в моды для майнкрафта и наслаждаться процессом, а на работе можно коммитить в унылую тырпрайз хуйню, которой я и так сыт. А такое чувство, что чтобы в этом аду выйти на зп, которая превысит 1сный потолок - надо отпахать пятилетку минимум. Я и выгорю нахуй с тому времени. Убедите или разубедите. Может мне пиздят и на самом деле зарплаты космические, может вакансии нормальные просто не публикуют. Я сейчас именно на такой работаю - её не публикуют, чтобы пойти туда работать надо либо через знакомых, либо самому выйти на работодателя, если стеком интересуешься (а я интересуюсь) - то норм конторы всякие вебинары проводят - через них можно настучаться.
Особенно я проиграл, когда в зп-треде постили ФЛАТТЕР блядь, фриланс - с зарплатой в 50к при двух годах стажа. Это меня вообще убило нахуй, я отказался верить и решил, что наверное там чел какой-то неправильный.
никто и не спорит в 1с хорошие ЗП, особенно с текущей ситуацией. от 1с просто многие нос воротят из-за синтаксиса и невозможности работы на западного барина. никаких космических ЗП нет, компании где хорошие ЗП хорошие ЗП на всех стеках, включая 1с тот же незтегаз итд
>упростят получение вижа на жительство
хуя проиграл чуть не обдристался нахуй.
сириусли? а че бы им в северную корею не поехать? ебанутые
Пока читал, ждал:
> не то, чтобы все это было обязательно нужно чтобы писать проекты на джаве, но если уж взялся программировать, то к делу надо подходить серьезно
IoT уж точно нужен
Со старта.Работаю 2 месяца. Платят 90, но в договоре 70.
В декабре устроился на 2 недели на 40. Туда вообще брали без собеса, по тестовому, которое делалось день, из которой я большую часть времени убил на фронт. Но проект и контора были говно. Надо было бежать через одну неделю, а не две.
Еще в январе дали другой офер на 70, но там был тоже дикий треш. Собес был легкий, меня собесил байтоеб, который ничего не знал в жабе, тестового не было.
Еще была маленькая галера и люксофт. И там и сям ебали по хиберу и транзакциям. И там и там отказали. В люксе интервьюер был вообще механистичен и на похуй.
Тут был собес, чуть легче чем в люксе и собеседующий заинтересован. Потом дал тестовое. Рест клиент + сохранение в постгрес + рест-сервер. Сделал со сппринг датой, прикрутил сваггер, постгрес в докере и мокмвиси тесты чисто на контроллер.
Еще я не согласен с теми кто против тестовых. Тестовые, если они не ебланские - это для обучения новичка лучше петов.
Тестовые норм для стажеров без опыта. Но когда ты уже веслаешь, как-то впадлу делать еще какие-то тестовые забесплатно
Да, Я понимаю что мидлу и выше эти 4-10 часов на тестовое это потеря времени и денег соответственно. Но если ты вкатун, то тестовое норм. А я много где видел советы даже вкатунам сливаться с тестовых.
сейчас даже тестовые не дают( или игноры или отказы, даже пособеситься не дают, видимо надо создавать фейковое резюме на мидла чтобы собеды потрениться проходить
Как вариант. Видел разные мнения по нынешнему рынку вката. Что с одной стороны количество вакух упало на треть всего. А с другой, что количество реальных и актуальных вакансий упала раза в два, а для вкатунов - намного больше.
Да сейчас вкат по сути умер. Жди теперь, пока конфликт не заморозят на несколько лет. Думаю через годика три снова можно будет начать пытаться входить в айти.
>что количество реальных и актуальных вакансий упала раза в два
Все так, раньше на хх.ру было >5000 вакансий по запросу "java" в Москве, из которых примерно 2000-2500 были на разработку бекенда на спринге. Сейчас их количество сократилось до 1100-1200 примерно. Мне кажется, даже более чем в 2 раза упал рынок жабы.
А ты сколько хотел? У меня есть 1с-ники знакомые. Один с годом опыта меньше меня получают. И вкатывались тоже не сразу, полгода. Два Двух-трехлетние получают один 100, другой 140.
Но все, кто из них интересуется кодингом хотят уйти именно в джаву почему-то. Лично знаю двух и в интернете еще кучу.
Но и джавистов с 1с бекграундом тоже знаю пару. По моему впечатлению они шарят лучше, чем те, кто свичнулся с питона. Может просто те, кто шарит и на питоне норм живет.
Я по рф смотрел. Может часть вакансий для мск перевели на регионы? У нас например контора с одним офисом в москве и 4 офисами в регионах + удаленщики из регионов без офиса. И вот год назад москвичи были половиной сотрудников. А сейчас уже меньше трети. В мск хантят сильно меньше.
У нас в городе с 400 упало до 90 и джуновских вакансий там штук 5, всё остальное middle+.
>>347000
Ну да, я чета запизделся, прошлый раз месяц назад смотрел. Тогда была минус треть.
В норм время по рф было 4.5к спринговских вакансии. Сейчас - 2.2. Реакт тоже смотрел, есть приятель реактер. Было 8.5к, стало - 3. По рф. И для джунов ситуация наверно еще хуже раз в 5.
И до дна еще далеко. И тех кого сократят - еще не сократили. Они как раз через пару месяцев выйдут на рыночек.
Вкат походу реально все.
>А ты сколько хотел?
150 хотя бы. И это немного, учитывая объём работы, которую надо проделать:
>С нуля ушло полтора года, из них спринг + хибер - месяцев 8, из которых 3 месяца ходил на собесы(а 3 месяца потому что на нг попал). Откликов на хх сделал 150 где-то. Было 5 собесов, на 3 из них дали оффер
>Один с годом опыта меньше меня получают.
>И вкатывались тоже не сразу, полгода.
Ну тут оба пункта не про меня. Я допускаю, что возможно кто-то дрочится долго, и получает меньше.
С другой стороны - если так, то возможно мне понадобится меньше, чем
>полтора года
Может я просто особенный?
Но дело осложняется нежеланием дропать работу на время переучивания, конечно.
>Но все, кто из них интересуется кодингом хотят уйти именно в джаву почему-то.
На джавошарпах дохуя тырпрайза, ты приходишь туда и делаешь ту же область, но на другом стеке. Дело в этом.
>кто свичнулся с питона
С питона свитчились бекендеры, судя по всему. Которые, условно говоря, не джейсоны заворачивали, а в монгодб учетки пользователей сохраняли.
Вообще на фоне этого разговора мне пришло в голову:
1. Зайти в узкую нишу, уровня Solidity
2. Пиздеть про коммерческий опыт
Выглядит как реальный вариант не соснуть по зп при свитче, если конечно описания вакансий не врут.
Вакансий сейчас столько, сколько было в 2015-2016 примерно.
Ещё есть такая проблема: Мне нужно, чтобы DTO-объект, который POST'ом приходит, содержал массив MultipartData объектов (прикрепленные файлы к моему итему). А как быть с обновлением итема? Помогите советом как лучше здесь поступить.
Пока попробую сам чёт найти на гитхабе, пока ничего нормального не нашёл
В большинстве случаев на всё делают одно ДТО, соответствующую сущности, а методы уже используют то, что им нужно. Никто не заставляет заполнять все поля.
Нахуя? Пусть в нескольких контекстах живут!
Дело вкуса. Кто-то использует жсон вью. Кто-то дтоху на почти каждый реквест/респонз. Кто-то вообще ничего не делает. а кто-то отправляет энтити
Как по мне отдельные дто - самый удобный вариант. Приятно генерится апишка и не надо страдать с наследования и жсонвью. Да и дтошки получаются чистенькие, почти без аннотаций
@ComponentScan(basePackages = "moj.paket")
А что, транзакции только к БД относятся? Быть такого не может. Методы тоже не откатываются.
А ты побойся. Чтобы обеспечить атомарность бизнес-процесса, ты будешь его ради этого к БД привязывать? Или ты о транзакциях только на джавараше читал?
При чём тут бизнес-процессы? Есть конкретная аннотация, которая специально сделана для взаимодействия с БД, а не для универсального волшебного обеспечения атомарности на любом уровне. Используя аннотацию @RestControoler ты не ожидаешь, что это как-то связано с микроконтрллерами тупо из-за того, что слово одинаковое? Вот и с транзакциями такая же хуйня.
>EJB
>При чём тут бизнес-процессы?
>троллинг тупостью
Похоже на то. Почему бы в ejb не быть транзакционности на уровне объектов? Там прокси на проксе и проксей погоняет.
Еще раз задаю свой вопрос, который задавал месяц назад: нахуй нужен спринг?
Особенно, если он даже со своей первоначальной задачей справляется куда хуже, чем встроенный в джаву сервис лоадер.
Особенно, если он даже со своей первоначальной задачей справляется куда хуже, чем встроенный в джаву сервис лоадер.
И где мишустинские вакансии? Вроде для всяких магазинов приложений жаба самое то.
>>344716
Короче будет что-то уровня корпоративной соцсети. Организации, у них контрагенты, работники, отделы, подотделы, проекты, регионы, филиалы и всякое такое. И по всему этому будут хитрые анализы и отчеты, затрагивающие десяток сущностей. И поэтому реляционка не катит.
Все что я пока знаю. Написал пока два круда с двумя сущностями, в которых графовость только мешает. Архитектить базу буду явно не я.
Сказали, чтобы было как можно больше использования спрингдаты и как можно меньше более низкоуровневых апих. Но мне кажется спринг-дата-нео4ж очень бедная.
Можете подкинуть что-то по neо4j, кроме доки сайфера и спринг-даты, их я уже читаю?
А давай. Нахуя сделали варарги до дженериков? Куда спешили?
Пошёл нахуй, пидорас ципсошный. Копронахрюк даже в уютненький жабатред со своими фейками пробрался, пиздец. Всех остальных держу в курсе, что сотни откликов на каждую вакансию - это накрутка свиноботами, челы просто шлют пустое резюме и не выходят на связь сотнями
>>347668
Ебанина какая-то. Названия какие-то долбоебские которые хуй пойми че значат. Сам метод какой-то ультраебанатский: если удается получить вэлью в нескольких членах листа, то вернется последний, если не удается, то хуй пойми че происходит, потому что ты, долбоеб, решил что прикладывать класс у которого вызывается геттер, нахуй не упало. Но если райзится эксепшен, то вообще весь цикл к хуям падает. Че несет вообще хуйня молофья. Убейся об стену, короче.
Да я понял, что на первом скрине кринж, второй получше
>если не удается, то хуй пойми че происходит
Экспепшен бросается же
>что ты, долбоеб, решил что прикладывать класс у которого вызывается геттер, нахуй не упало
Геттер вызывается у интерфейса, там под ним может быть чё угодно, хоть тот же бандл, вот одна из реализаций
А где цвета дополнительно менять
Хорошим тоном бы было спрашивать такое, предварительно написав микро пет-аналог ситуации, на понятных каких-то интуитивных именах. Ты думаешь кто-то тут хочет разбирать твои AbstractDummyPlaceholderExtremalyFarAwayFromAnyLogicGateMotherFucker-сущности?
Да я вроде стараюсь писать чтоб понятно было без пояснений. Че, правда, вообще нихуя не понятно че методы делают?
Как же больно читать темную тему.
Так или иначе придется писать эти билдеры для каждого уникального случаю, через фабрики фабрик или как у тебя. Так хотя бы сразу видно что происходит.
>>347843
Или передать язык и команду без непонятной хуеты, и дергать нужные аннотированные поля в комманде. Но я бы не стал заморачиваться если копипастой это решается за секунду.
Главный принцип программирования - не копипастить. Копипастой ничего не решается.
Экстрагируй часть этих километровых вызовов в отдельные методы, че как маленький
В том то и мем, что семантика здесь довольно запутанная и каким-то экстрагированием можно добиться в теории улучшения до 2 строк кода максимум (это строка .build() и получение билдера), все остальные строки выполняют конкретную задачу 2- установка языка 3,4- добавление плейсхолдеров 6- установка пути)
В лучшем случае этот метод будет состоять из 4 строк, дальше сжимать некуда ( чисто физически это минимум как можно передать все эти данные). Я в принципе решил уже так оставить как есть, не так уж хуево оно выглядит
Оподливился, лол
Потяно
100500 главных принципов программирования противоречат друг другу.
> Копипастой ничего не решается.
Уже решено, смекаешь первокур?
> не так уж хуево оно выглядит
Видел бы ты как выглядел первый пиратский сервер ла2, полторы тысячи свич кейсов ловят ОПкоды и не брезгают обрабатывать прямо на месте.
Settings -> colour scheme
Это кобол.
Если написал вручную, то не копипаст.
Унылый язык, из которого выкинуто дохуя прикольных механизмов, который за каким-то хуем стремится перегружать семантику каждого своего кей-ворда по 15 раз в зависимости от контекста, программы на котором занимают километры листингов.
Пример для подражания.
Весна это фреймворк под Джаву.
Ну да, чистую джаву я лично редко встречал, обычно Спринг в той или иной манере требуется.
>>343555
Хуйню говоришь. Сейчас от "олимпиадников" - литкодеров плюются, ибо именно в разработку обеспечения и решения бизнес-тасков они неспособны. Пет проект в этом случае ценнее именно потому, что это проект. Литкод годится только в говногалеры и то, к индусам в помощь.
>>
Зависит от конторы, если честно. На вышку могут и не посмотреть.
Смысл в Джаве, безусловно есть, но нужно иметь представление о всём стеке. Это сама Джава, Спринг, Мавен или Gradle, как минимум.
Если хочешь какие-то курсы луркать по этому поводу, советую либо поискать по торрентам, либо раскошелиться на Pluralsight. Некоторые курсы с курсеры тоже норм (те же Алгоритмы от Седжвика) но Pluralsight - топ.
Обезьянка смотрит, обезьянка делает.
К тому же у видео есть комменты, да и книги проще в бумажном виде иметь.
Unrelated, но как лучше всего вести конспекты?
Раньше делал хардкорно и по старинке, с тетрадью и ручкой (чтобы думать над тем, что записываю, а не тупо копипейст), но сейчас руки дошли до Notion, думаю там что-то типа базы знаний запилить.
Не только по Джаве, кстати.
Максимум, какие-нибудь книги от Packt.
Но это пиздец говно.
Самое ближайшее - либо инфоцыганство типа скиллбокса, отуса, либо курсы и практические работы с курсеры или плуралсайта - edx.
Короче. Идёшь в латвийское посольство и плачешься, что ты жертва режима Пыни. Мигрируешь в Латвию. Залетаешь в Accenture через буткамп и просишься в SAP.
Обещаю: от SAP Commerce у тебя либо настанет просветление по всей Джаве и Спрингу в том числе, за несколько месяцев, либо разорвётся жопа окончательно.
Я пытался в Obsidian сделать базу знаний по джаве, но пришел к выводу, что на создание базы тратится слишком много времени и выхлоп практически нулевой. В итоге вернулся к копипасту цитат из книг. Скидываю их в общий файл пока читаю книгу напр. horstmann.txt, потом перечитываю и сортирую по файлам вроде logging.txt
Я туду пишу в notepad++, а какие еще конспекты вести нужно тебе, что простого блокнота не хватает?
Да всегда плевались. Рынку не нужны любители 6 уровней вложенных циклов
Попробуй сделать базу знаний в голове.
Уже достаточно давно так, ибо самомнения у них много. Проще макаку научить.
бля чел, 2 дога это дохуя. Мб просто начнешь ходить на собеседования и похуй какие там требования?
Хуераху
Зато многие ошибки вылетят сразу, а не потом через неделю.
Ну ты и дебил, вкатился с надежной, что рубль и дальше дешеветь будет? Уже забыл 2014 год?
Насколько сложно все там понять с нуля? Много классов/строк сейчас в проекте? Юзается что-то кроме чистой джава?
уже 300
> Зарепортил в Capcom
И что теперь будет? Запретят мне на двач видео выкладывать?
>>348778
Да, чистая Java17. Билжу bassh скриптами + maven. Отрисовка через LWJGL3 - это интерфейс к функциям OpenGL.
Из стороннего еще gson, еще какая-то либа от гугла для воспроизведения ogg. Ну еще всякие там мелочи типа lombok, hamcrest, nashorn, logback и тому подобные депенденси.
Кода довольно много, посчитал через wc:
$ find ./ -name "*.java" | xargs cat | wc -l
41978
Ну это с учетом скобочек и переносов, надо иметь в виду.
Документации ноль, поэтому разобраться самому с нуля, наверно, не лучшая идея. Но если я все продокаю, или проведу пару-тройку видеоэкскурсий по проекту, думаю разобраться не очень сложно.
> Ебанутый?
Что не так? Серверные моды и скрипты для ботов планирую делать чтоб скриптовались на JavaScript.
> Нахуя, если в жабе жсон есть в стдлибе?
Не знал. Мне gson подходит вполне.
<dependency>
<groupId>org.openjdk.nashorn</groupId>
<artifactId>nashorn-core</artifactId>
<version>15.3</version>
</dependency>
Не благодари.
У твоей бабки разве что
да хуй его знает, какие там цели, мотивы и как они коррелируют с обстановочкой
Будто его трогали. Его и не стали трогать, потому что он не особо нужен был, а донбассцы посмотрели на ситуацию с крымом и такие "опа, надо тоже валить нахуй, ща путен поможет есличо". А путен потом ещё 8 лет булки мял, но назад пути уже не было.
>>348842
Ты бля поаккуратнее со своими желаниями, я могу это в шарпотред превратить.
Если в шарпотреде тоже политика, то не надо, а если шарп в чистом виде, то флаг тебе в руки.
Какие у спринг-котла преимущества перед спринг-жабой?
Сваггер и с фронтом не морочиться вообще.
Не так много вакансий с требованием знания спа-фреймворка. А там где требование такое есть - это обычно очень плохая вакансия, где из тебя захотят все соки выжать и чтобы ты один за целую команду работал.
Если есть желание поиграть во фронт чисто для себя - дрочи реакт. С другой стороны я видел на торрентах курсы ангуляр+спринг. Вью теряет популярность.
Здесь орудует один вуешизик, соответственно, будет топить за вуе. Ещё здесь есть долбоёб, заявивший, что "thymeleaf - стандарт индустрии", хотя какой там стандарт, если шаблонизаторы юзают только в хеллоуворлдах для вкатышей, чтобы не грузить их веб-дриснёй, и в реальных проектах их почти не используют.
А так особой разницы нет. Если идёшь в крупную компанию, вероятнее всего, заниматься будешь только бэком, хотя знание фронта будет плюсом. На галёре же придётся знать и бэк, и ангуляр, а реакт, и вуе, и девопс, и БД, и тестирование, и небо, и аллаха.
Типа шарп на минималках.
У нас в средней компании(ну человек 40 занимаются разработкой) фронты есть, а вот девопс и базы распределили между админами и двумя бек-командами. Тестировщиков вообще пока нет, но начали искать.
До этого стажировался в конторе с 5-ю разрабами и там все делали люди нанятые, как джависты, в том числе и фронт. Ну и админ плюсом.
Собесился в автомойку, где нужен был вообще 1 джавист и у них был один байтоеб. Плюс андроид приложение было на аутсорсе.
1. 99% времени программиста умнее стажёра уходит не на напечатывание строк, а на их придумывание, и написать 100 бойлерплейтных строк - дело минуты-двух.
2. Бойлерплейтный код гораздо более читабельный. Не приходится часами вкуривать набор символов по 100 символов в строке, каждый из которых что-то значит
3. Время написания бойлерплейтных строк - это отдых для мозга. Программист меньше нагружается, у него появляются моменты отдыха прямо во время работы. Никакого выгорания. Язык заботится за программиста о его продуктивности и отдыхе.
И поэтому ломбок стал фактически стандартом. И его нет только в микроскопическом количестве проектов, там где лиды - ломбокохейтеры.
Лиды-ломбокохейтеры - лучшие лиды. Он стал стандартом из-за тупизны вкатунов из петухона.
Пошел нахуй.
А геттеры-сеттеры нужны только там, где юзаются даунские либы, ищущие методы через рефлексию.
Ты че, дебил?
При работе через рефлексию вообще поебать на любые сигнатуры, довен. Приватность полей защищает их от несанкционированного доступа всяким долбоебам. Во всяких петах это может и не так критично, но в больших либах ты просто утонешь в функциях и переменных которые к тому же могут руинить всю работу при несанкционированном доступе, если тебе не выделят отдельное публичное микроскопическое АПИ
в теории при одном потоке скорость прочтения обьема инфы N
должна быть равна скорости прочтения при 6 потоках,
на деле же при 6 потоках (каждый поток читает N инфы) чтение занимает раза в 3-4 больше времени.
С записью при 6 потоках (каждый поток пишет N инфы) времени требуется больше раза в 2 чем при одном потоке, хотя из за write locka должно уходить в 6 раз больше.
В "concurrency" MongoDB написано что монга сама контролирует процессы read и write локами.
Что я делаю не так?
Откуда ты тогда знаешь, кого я имею в виду? Сколько раз сегодня дрочил на отправку петухоновского кода через мессадж экспешна?
я умею читать и видел, что ты общался с кем-то насчет вложенных циклов. Ты бы в место высеров, дал дельный совет по моему вопросы.
Единственная мелкобуква в треде с крайне специфическим стилем письма пытается замаскироваться
Шизоид, нахуя мне маскироваться, я могу написать максимум вложенный цикл, если это не противоречит логике программы. В остальных случаях стараюсь этого избегать. Тест пройден?
Ты и тогда заявлял, что 6 уровней не делаешь, а говнокодишь всего на полшишечки. Но мы то знаем, что обитает в дебрях твоих проектов.
Да всё в ту, но лучше бы ты не пиздел, что ты это не ты. Но ладно, жаба-господа народ добрый, поможет тебе.
>пацаны, а как определить норм компанию для джуджуна? В следующем месяце переезжаю + врываюсь по собесам. На что внимание обращать мастхев?
Если требуют высшее образование - нахуй. Если нет удалёнки - нахуй. Если требуют ёбнутый стек технологий - нахуй, это говорит о том, что там анальная бюрократия и говнокод по самые уши. Если платят меньше 75к - нахуй.
имеет чистый и православный синтаксис и одновременно с этим синтаксис жабы идеален во всём?
Благодарю, но все-таки это не я.
Java это база
> синтаксис жабы идеален во всём
new BigDecimal("0.1").substract(new BigDecimal("0.2").add(new BigDecimal("0.3")).divide(new BigDecimal("0.4")))
>new BigDecimal("0.1").substract(new BigDecimal("0.2").add(new BigDecimal("0.3")).divide(new BigDecimal("0.4")))
Такое на практике не встречается. А если встречается - то растягивается минимум на пару пакетов и десяток классов.
Ты просто тупенький. То, что ты там накалякал раскладывается в читаемый вид за минуту.
Фуллстак = недоджуно.
А теперь разложи реальный пример и заодно ответь, почему при проектировании языка считалось что им будут пользоваться умственно отсталые, поэтому перегрузка операторов им не нужна.
Тебя мамка за двойки пиздила что ли, что ты так боишься формул? Тут ничего сложного в том, что ты скинул нет. Раскладывается он точно также, разве что хорошим тоном было бы не добавлять в чистом виде эту формулу вообще, разделив на пару объектов её фукционал.
Все строго наоборот, довен. Перегрузка оперторов как раз нужна только в двух случаях:
1) тебе хочется повыёбываться перед теми у кого ее нет
2) ты умственно отсталый дегенерат для которого осилить какую-то альтернативную нотацию операторов это ебанись-непосильный труд.
мимо
Любая математическая либа.
>перефорс формулой банковской дрисни какой-то по начислению процентов
>против единственного языка, являющегося де-факто движком всех современных банковских систем
ты не самый умный в семье, да?
Единственный раз, когда мне хотелось иметь перегрузку операторов в джава, это когда хотелось написать собственную строку, поддерживающую помимо конкатенации еще и умножение на целое:
> "I bet you doven " * 3 -> I bet you doven I bet you doven I bet you doven
Задача эта была, ясное дело, сугубо песочная, джаст фор лулз
Да я старый дед, пишу на жабе и мне платят за строки индусы, ты же топишь за малое количество строк.
Опровергни чем-то, дебил. Мне как-то смешно слушать твои высеры, учитывая что бОльшая часть моей джава работы была связана не с крудами, а с созданием всяких вычислительных библиотек для нужд автоматизации.
Не пошле бы ты нахуй, хуесос? От тебя пока не было ни одного контрпримера, а только аргументация рода "нет, ты!" или к опыту собеседника.
В чем вопрос то? Или предлагаешь в саркастичном гринтексте его искать?
>a.compareTo(b) > 0
а ты точно программист на java?
А то был у нас тут такой дегенерат недельку назад:
> lilt.add() = "мама я долбоёб"
ты спалился, чухан. съеби в ньюфаг тред смешить таких же вкатунов-дебилов
Сука, в голос ору нахуй, давно так не ржал
Ах да, ты же аутист который обязательно хочет получить булевский аутпут. работать с int, содержащим исчерпывающий тот же смысл, тебе не с руки. Странно что ты не предложил еще сделать оболочку над булеаном из энама "BOLSHE CHEM" и "MENSHE CHEM"
Сравни что один BigDecimal больше другого и не пиши больше такую хуйню.
Линейная алгебра.
Это питон?
Нужно распарсить json в хэшмапу
При этом есть класс с полями в виде всяких стрингов и интов, имена и значения которых должны быть в самом json.
Пока очень плохо представляю, как это сделать, гугление ничего не дало, везде предлагают использовать List или Set, но мне нужен именно HashMap, чтобы данные из джейсона хранились в виде ключ - значение.
new ObjectMapper().readValue("json", Map.class)
Есть один фундаментальный принцип программирования, который позволяет решать вот все такие тупорылые задачи нуфагов. Пока не поймёшь его продолжить кодить гуглением тупорылых задач.
Ебать скуфидонище, просто пиздец
Бойлерплейт это информационный шум. Это код который может быть просто выкинут из листинга (чем ломбок и занимается) и НИЧЕГО в работе программы не поменяется. То есть код становится намного чище чисто с нихуя. Бойлерплейт код никто не пишет, его или копипастят если это какие-то кастомные мапперы и прочая параша, или генерируют IDE.
> Бойлерплейт это информационный шум. Я так скозал. Это код который может быть просто выкинут из листинга (хихи шутливоубираем :) ) (чем лобок и занимается) и НИЧЕГО!СУКА! в работе программы не поменяется. То есть код становится намного чище чисто с нихуя прямо как >>349148 тут. Бойлерплейт код ни-кто не-пи-шет!, его или копипастят если это какие-то кастомные мапперы и прочая параша, или генерируют IDE.
Нет, не нормальная. У тебя несколько страниц, которые грузят все данные через тот же рест, и шаблонизаторы там не нужны.
Нахуй ты сюда припёрся, пидоран петухоновский? Жаба - это ООП язык, инкапсуляция - один из принципов ООП. Если тебе нравятся 6 уровней вложенных циклов - ты всегда можешь пойти нахуй в уютненький петухон.
Собака сутулая, ты заебал со своими вложенными циклами, иди нахуй уже. Какое ООП тебе запрещает 6 циклов писать? Жаба ООП блять, зато вечь энтерпрайз процедурный из-за анемической модели, даун.
>Ухх ща как решу интеллектуальную олимпиадную задачу по сортировке массива на лямбда-циклах и рефлективном просмотре аннотированных паттернов работы с контейнерами валидаторов
Схуяли? Наоборот можно дать всем пощупать, собрать фидбек. В конце концов потом можно будет удалить.
Ими управляет виртуальная машина.
Удалить будет самым правильным решением, правда уже неосуществимым. Жаба должна оставаться жабой до конца своих дней.
>Жаба должна оставаться жабой до конца своих дней.
Так сиди на 8-ке, зачем в новые версии лезешь.
>>349340
Это виртуальные треды, как в Эрланге. В отличии от корутин в Котлине и Го, асинков в шарпе - у тебя всегда нормальный стек вызова, работают все плюшки с контекстом треда транзакции в спринге и всякие метрики. Работают с любым кодом, его не надо переписывать с использованием корутин/асинков.
Они как тред будут. Только вместо extends Thread пришешь extends SuperYobaVirtualThread
Жаба теперь Эрланг? Там еще и какие-то новые конвенции именования методов пушат, случайно не из Эрланга тоже?
Го теперь еблан?
почему?
>Жаба теперь Эрланг?
Нет конечно, в Эрланге у потоков нет разделяемой памяти кое-что есть, но сильно ограниченное - у каждого треда своя куча, обмен данными между потоками только через посылку сообщений за счет этого и GC проще и быстрее.
Колхоз.
Делаю рисёрч среди server-side разработчиков. Если вы работаете с ktor, спрингом, express.js, микронавтами, http4k, ретрофитом и прочими серверными штуками - пройдите, пожалуйста, опрос. Занимает до 2 минут если делать не спеша.
Гугл-форма:
https://forms.gle/PpJGQvtDAwi49nfCA
Да пошел ты нахуй.
"мам я долбаёб" = ()addFirst.linkedList
вы приняты
JavaScript
Каждый раз с этого проигрываю, как в первый
Именно поэтому в EJB не рекомендуют юзать многопоток.
Вот в жопаскрипте у всех хорошая архитектура, а не это ваше...
Нужны потоки и инстансы.
Какой же го лаконичный и какая уродливая ваша жаба. Зачем она вообще нужна?
Вкатун плз
NIO Connector с клиентской SSL аутентификацией - все что нужно для счастья скромному корпоративному проекту (spring+hiber+wicket).
А вообще по стабильности, качеству документации и распространенности равных у тебя нет.
>>Thymeleaf в реальной работе
Емейлы на нем верстаю изредка.
Изучил когда петпроект делал перед вкатом. Умею всякие там лэйауты и прочее говно.
>>чтоб выводить какие-то сложные модели данных на веб?
Сейчас везде рест + жс. Лучше свагер изучи нормально и дергай через него.
>>бесполезной тратой времени изучение этой параши
Так и есть. Но если надо что то простое прям щас, а жс сложно - то пойдет.
>>Насколько он вообще сложный?
Довольно простой, но верстать хтмл заебывает ну и с конфигами местами сложности могут возникнуть у меня ебучий jar locator сломался из за переопределения одного резолвера, пришлось вникать.
В принципе со спрингбутом там все на автомате подцепляется и работает из коробки как надо. стартер на таймлиф есть
>>За сколько можно освоить на хорошем уровне
Пару недель без учета времени на верстку и тп, если тебе прям целиком, вечер - если базово вставить значение в шаблон и добавить if.
>>и что почитать?
https://www.thymeleaf.org/documentation.html
https://habr.com/ru/post/350862/
Не знаю написано ли там, но у него есть еще либы для интеграции с спринг секьюрити и всякие утилити для времени/даты. Догуглишь если что.
Приложуху надо разрабатывать так, чтобы вообще ничего не зависело от выбора сервера приложений.
Уже, полёт нормальный. Правда это только один из подмодулей.
https://www.baeldung.com/java-void-type
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.
> Зачем она вообще нужна?
Просто пердиксы вцепились за вещи которые выучили 25 лет назад. Хотя они по сути все уже протухли давно.
Пописял тебе на лицо, обезьяна. Вкатился год назад, никаких 25 лет, сразу выбрал жабу, потому что всё остальное и рядом не стоит по уровню синтаксиса, объёму уже написанного кода и библиотек, предрасположенности к чистокоду, понятности готового кода, области применения.
Твою мать я не видел, только обосранную и с выпотрошенными кишками в канаве блядь видел. Я видел синтаксис десятков ебучих копроязыков типо петухона сука, каждый из них блядь в сотню раз нахуй хуже жабовского, шалава ебливая, ты хули забыла в треде по жабе, блядь? Пиздуй нахуй в петухон тред, сука, обоссаная шлюха, я твоей матери в рот спускал, хуйло опущенное блядь
Не скули, так уж повелось что мне приходится работать с этим древним как говно мамонта языком.
Не имею никакого отношения к Python, более того как пример годного языка это точно не к нему
ПИЗДАБОЛ ЕБУЧИЙ, ХУЙЛО ЛИЦЕМЕРНОЕ БЛЯДЬ, КАК И ВСЕ ПЕТУХОНЕРЫ СУКА, ЕСЛИ БЫ ТЫ НАХУЙ НЕ ИМЕЛ К НЕМУ НИКАКОГО ОТНОШЕНИЯ, ТЫ БЫ В ЖИЗНИ НЕ НАПИСАЛ ПОЛНОЕ НАЗВАНИЕ ПЕТУХОНА И ТЕМ БОЛЕЕ С БОЛЬШОЙ БУКВЫ
Это какого-то ватного пидорана с хохлопроекциями занесло. Обычно тут нет таких пидорасов.
Хуйню несёшь. Бизнес выбирает язык, а не рандомный разработчик.
Понятно, что ничего лучше лиспа не существует, но знаешь чего ещё не существует? Правильно - вакансий на лиспе.
> Я видел синтаксис десятков ебучих копроязыков типо петухона
А надо было видеть синтаксис языков типа жабы.
Ну так, с кастомным синтаксическим сахаром можно было бы никакие аннотации не писать, кода гораздо меньше было бы и самое главное он был бы в 100 раз более читаемым. ООП бы не пострадало
Сдается мне, на выходе будет неподдерживаемое говнище. Особое веселье будет, когда на разных проектах будут разные ключевые слова. Ух
мимо
Так надо сделать так, чтобы весь этот сахарок преобразовывался в ванильный байткод, которому похуй было бы на наличие сахара (как например сделано уже с var)
Не, это понятно, что в байткоде все хорошо будет. Я про то, что человекам надо будет на каждом проекте учить разные ключевые слова. Аннотации хоть +- стандартизированы
Стандартизированы они потому, что их стандартизируют и потому что их создание реализовано уродливо и неудобно. Всё тоже самое будет с кастомным сахаром.
Открой любой средний проект на спринге и посчитай количество NotNull/NonNull/Nonnull аннотаций из разных пакетов.
А обсервабл?
Котлин - хуета для пидаров, петухон №2 с тем же уродливым синтаксисом, самая мякотка это объявление методов через def, пиздец просто, как в петухоне fun
А если отсутствуе значения - валиднвй кейс? Ты делаешь что-то вроде:
void doSomeAction(boolean aPresent, SomeObject a, boolean bPresent, SomeObject b) {...}
Детектор чини.
Ну а у меня вот появилась надобность работы с null значениями, правда у нас simple domain model, не ъ ооп
Если появилась такая нужда - весь твой проект хуета и его надо переписать с нуля. Или ты просто тупой и не можешь придумать, как не обгаживать хороший проект нуллами.
Ты читать умеешь? Написано - simple domain model. Нет поведения в доменах. Нельзя спрятать nullable значение за методами
Завтра на мите скажу, что анон с двача сказал весь восьмилетний проект переписать, т.к. у нас нуллы есть
Здорово въебать пару недель для маленького проекта, чтобы ничего не получить на выходе
строк больше миллиона
Никогда раньше не слышал про симпл домейн модел, щас прочитал, че это такое и оказалось, что я в такой модели довольно долгое время писал (до прочтения книги бугаенки) и даже не знал, что кто-то выделяет такой стиль написания в отдельную модель.
Да, переписывать стоит, в ООП стиле. Как минимум потому, что этот миллион простынявых строк превратятся в 100к понятных.
Разработка ускорится в несколько раз, по своему опыту знаю.
И что это за маленький проект с миллионом строк?
Это не маленький проект. Просто ты сказал: пару недель для маленького. Т.е. даже на маленьком проекте сливается 2-3 десятка вечнозелёных без какого-либо профита.
А рич домен модел начинает посасывать, когда бизнес сложный и модельки пухлые
Никто никого не наёбывает, просто код на жабе раз в 50 чище кода на любом другом языке, и раз в 5 бурнее развивается общая чистота кода и квалификация программистов. Так то если сравнивать с тем, что написано для петухона, например, то там всё надо раз 5 переписать подряд, чтобы прийти к идеалу.
>>350694
Я не говорил, что для маленького, я говорил, что для 100к строк
>А рич домен модел начинает посасывать, когда бизнес сложный и модельки пухлые
Я предлагаю в полном ООП-стиле переписать, рич домейн модель это не фулл ООП. Фулл ООП бесконечно-расширяем, он не может пососать ни при какой сложности бизнеса, будь это небольшой проектик на 10к строк или вся экосистема гугла на 1кк строк.
>модельки пухлые
Если модельки пухлые, то ты делаешь что-то не так. Инкапсулировать можно до 4 полей, в идеале - до 3.
И в чем проблема тогда?
Значит такой модельки быть вообще не должно, а вместо нее - несколько других моделей и UserAPI. Или скомпоновать эти поля по внутренним моделькам, если взаимодействие не такое сложное с ними и не требует йоба-логики, например LoginStateHolder, EntityDataHolder, PermissionSetHolder итд
Конечно, то что выше описано - это костыль, лучшим решением будет проектировать структуру так, чтобы любой класс имел по 2-3 метода без геттеров и даже холдер-геттеров, но это в кратце не опишешь, для каждого кейса надо думать, а не просто шлёпать паттерн.
Еще директивы препроцессора ахуенная вещь. Но в джаве такого никогда не будет, только васянскими плагинами обмазываться.
Например можно было бы исключать из билда ненужную хуету. Кому надо пользовался бы.
Бугаенко шиз, который сознательно отказывается от лучшего из того, что придумало человечество - использования исключений для управления логикой
Такое уже есть, достаточно объявить static final boolean константу и if(constanta) будет удаляться еще на этапе компиляции.
Обработка ошибок в го стиле.
Зачем каждый раз вызывать виртуальный метод, который заведомо известно что не нужен в программе?
>Ты еблан и не знаешь как работают уровни логирования.
Ну расскажи и накидай ссылок, я бы не прочь почитать.
Хуипедаватель, ты высираешь хуйню какую-то, не имеющую ничего общего с реальностью, ты и пруфай, иначе всхрюк. Как использование уровней логгирования избавит меня от проблемы засирания кода говном?
Первым делом из нее надо убирать неудачные стереотипные практики конца 90-х годов и заменять современными и удачными.
Поэтому лучше засрать код директивами препроцессора
>>NotNull/NonNull/Nonnull аннотаций из разных пакетов
Используется только NotNull из javax.validation .
Остальное - говно ненужно.
>>хочется убрать new.
Его и так уже нечасто встретишь.
var z = List.of(x, y)
var v = map(x -> y.builder().build())
var s = mapper.map(x)
Двачую, то ли дело GovnoFactory.getInstance(KalType.getDefaultType()).newGovno()
Ты про ооп?
>Конечно, то что выше описано - это костыль, лучшим решением будет проектировать структуру так, чтобы любой класс имел по 2-3 метода без геттеров и даже холдер-геттеров, но это в кратце не опишешь, для каждого кейса надо думать, а не просто шлёпать паттерн.
Читать умеешь?
совершенный код. отправь это мартину, пусть поместит на обложку.
Без деплоя собирается в 5 раз быстрее
Удалить слово static
Это делается во время билда с помощью filter source и релизного профайла. А вообще это конечно все хрень, JIT условие которое всегда ложно выпилит и так.
>>350860
>Засрать код кучей if(hui) { log("hui) } и сделать его нечитаемым или по необходимости добавлять дебаг мессаджи, чтобы потом пользователи на проде видели загадочные забытые сообщения 1,2 и 3?
В нормальной компании такой код не пройдет ревью. В приличных местах есть правила, что нужно логировать, что можно, а что нельзя.
>В нормальной компании такой код не пройдет ревью. В приличных местах есть правила, что нужно логировать, что можно, а что нельзя.
В приличной компании есть копии прода, чтобы там проводить дебаг и тест, что твой код не обвалит всё нахуй.
Именно поэтому там мейн пустой, смекаешь?
>В приличной компании есть копии прода, чтобы там проводить дебаг и тест, что твой код не обвалит всё нахуй.
Это не связано с тем, что ты предложил напхать всюду дебаг месаджей.
> filter source
Не гуглица.
> JIT условие которое всегда ложно выпилит и так
Для этого оно должно быть известно во время компиляции.
Чтобы ифка удалилась нужно поменять в коде constanta на false. Без директивы она меняется вручную, с директивой аргументами для препроцессора.
Читай constanta из окружения почти на 100% уверен, что jit это разрулит. Даже перекомпилировать ничего не надо
Пилю моды для копрокубов, но не ебу что такое баккит и зачем поверх него что-то надстраивать ещё. Хотя слышать слышал.
Ещё ебу что ты вроде не первый раз тут с ним отмечаешься, зачем тебе это нужно? Если годнота, покупатель со звёздочками и сам найдётся.
>но не ебу что такое баккит
Баккит - обёртка для майна, которая добавляет апишку для разработки плагинов для серверов.
>и зачем поверх него что-то надстраивать ещё
Апишка дырявая, с кучей нуллов и полностью процедурная, а без инстанце оф и кастинга туда суваться нечего.
>Ещё ебу что ты вроде не первый раз тут с ним отмечаешься, зачем тебе это нужно?
- Планирую юзать как пет-проект для вката
- Думаю распиарить среди разработчиков плагинов на бакките и лутать с этого профит
- Использовать сам хочу
>Если годнота, покупатель со звёздочками и сам найдётся.
Нихуя не понял, лол.
>Баккит - обёртка для майна, которая добавляет апишку для разработки плагинов для серверов.
А отличие плагина от мода? В том, что плагин через апи взаимодействует, а мод (будь то фордж или как в старых версиях) - заливается прямо в код игры?
А хуле для модов апи не сделали? Это ж пиздец - дрочиться с деобфусцированными исходниками, потом компилить обратно. Странно почему не родилось и не вызрело нормальное апи, где код мода - отдельно, код игры - отдельно. Причём проекты-то были. Был даже проект, замахивавшийся на портируемость модов между версиями без (постоянного и радикального, блядь) переписывания.
>- Планирую юзать как пет-проект для вката
Господа джависты, скажите что этот чел троллит чрезмерно заморачивается и на самом деле для вката не нужен ебещий проект со звёздами. Хотя... он вроде не ебещий, и звезда всего одна. Такое наверное посильно.
>- Думаю распиарить среди разработчиков плагинов на бакките и лутать с этого профит
Ну это заебись
>Нихуя не понял, лол.
Забей, поставлю звёздочку, если буду сегодня в гитхаб логиниться. Не буду сегодня - поставлю завтра.
Хуйня говна.
> не родилось и не вызрело нормальное апи, где код мода - отдельно, код игры - отдельно
Так это фордж. Отличие мода от плагина в том, что мод на клиент (игру) прежде всего, плагин прежде всего на сервер (бэкенд программу).
> Отличие мода от плагина в том, что мод на клиент (игру) прежде всего, плагин прежде всего на сервер (бэкенд программу)
А, понял, спасибо
>Так это фордж.
Так, я давно с форжом не работал, но если память не подводит. форж делает что:
1. Декомпилит игру
2. Деобфусцирует
3. Ты пилишь мод
4. Компилишь @ обфусцируешь (в другом порядке, разумеется)
5. При запуске игры форж суёт все моды в джарник кубача. При этом давая всякие плюшки типа порядка загрузки, резолва конфликтов айди предметов и так далее
Я немного не это понимаю под нормальным апи. Нормальное - это когда у тебя твоя прога подливает свой код в игру, а моды лежат отдельно, подсасываемые ею уже в рантайме. Как в minetest, например. Так даже перезапускаться не надо, берёшь и прям в игре подключаешь/отключаешь. Плюс полный слой абстракции между игрой и модами, не дырявый как в форже, где у тебя обращения к классам форжа идут вперемешку с обращениями к классам самого кубача, а прям полный: моды общаются с апи и только с ним.
Подсосать мод в рантайме чисто технически невозможно, потому что при запуске игры выполняется хуева туча оптимизаций и кеширования (собственно это и есть запуск игры), если это не оптимизировать, то игра будет идти примерно в 1 кадр раз в 5 минут с модами, если пересоставлять списки при подсосе мода - то времени это столько же займёт, сколько и загрузка самого майна (можно оптимизировать мб, но всё равно у тебя гарантированно зависнет надолго, так как каждый мод в текущем варианте в фордже составляет списки секунд по 10).
Чистого апи, в общем, то, не так уж и надо, потому что мод - он на то и мод, что может сделать чё угодно, хоть другую игру на другом языке программирования в окне майна запустить. Для базовых функций чистое апи есть, типа добавления блоков.
> хоть другую игру на другом языке программирования в окне майна запустить
Но с тормозами, как ты говоришь, поэтому толку от этого мало.
Ну я понял - недостатки архитектуры кубача, в которой это не закладывалось (и до сих пор, сука , не заложено, аж трясёт с этой хуйни).
>Для базовых функций чистое апи есть, типа добавления блоков.
Видел, функционала пока не завезли.
>Не гуглица.
Пиздец! Вкатуны даже на СО не умеют искать. https://stackoverflow.com/questions/4106171/filtering-source-code-in-maven
>Для этого оно должно быть известно во время компиляции.
Ты откуда такой к нам в тред пришел? JIT - работает в рантайме, если в рантайме один из бранчей не выполняется JIT его просто выкинет из сгенерированного кода.
> Читай constanta из окружения
Это уже будет рантайм, а не компайл тайм, не разрулит. Препроцессор для этого и нужен, чтобы все разрулилось.
> filtering-source-code-in-maven
Исключает целые файлы, а речь шла об отдельно взятом блоке внутри метода.
> если в рантайме один из бранчей не выполняется
Не выполняется сейчас, выполнится потом. Ни на то ни на другое нет гарантий, что такое рантайм знаешь? Жид может выкинуть только то что известно во время компиляции.
Ебало бугаенки при взгляде на всю экосистему кубача будет такое.
Вангую, что этот говнокод выглядит именно так, потому что опирается за что-то ещё, что говенно написано. Хотя не факт, конечно. Но моды, например, поскольку юзают классы кубача - наследуют убогость последнего. Плюс ещё сдабривается это дело тем, что занимаются им школьники, студенты, вкатуна и тому подобные личности, хоторые если бы и хотели писать нормально - банально не знают, а как это делать.
Один швед когда-то написал плохо - и понеслось.
Я как-то глянул хеллоуворлд на lwjgl (библиотека, которую использует майнкрафт) с его WindowHandle опен/клоуз и тому подобной процедурной дриснёй - думаю охуел посильнее, чем бугаенко от спринга с хибером.
Ебучие ивенты баккита вынуждают писать такую хуйню, по другому тут невозможно. Зато при использовании уже моих собственных обёрнутых ивентов никакие instanceof не нужны, я об этом позаботился.
Еще там есть говно в автотесте, но я там вообще не заботился о качестве кода, думаю понятно почему
>java: exporting a package from system module java.sql.rowset is not allowed with --release
Какого дьявола ему надо? В идее language level - 15, project bytecode version - 15.
а всё, ебать начудили какие-то модули
> Еще там есть говно в автотесте, но я там вообще не заботился о качестве кода, думаю понятно почему
А зря. Хорошо написанные тесты помогают понять, как работает нужный класс
Это не юнит тест, а интеграционный, объяснить работу какого-то класса он явно не сможет
Это серверная команда, надо ещё посмотреть, чё тебе пришло после ввода команды
ПОШЛИ
>>347656
>Пошёл нахуй, пидорас ципсошный
Прошла неделя. Падение на 203 вакансии. В реальности из этих 3 тыщ вакансий именно джава спринг бекенд будет где-то 1000-1200 в лучшем случае.
Напоминаю, что до 24.02 по запросу java хх.ру выдавал более 5000 вакансий.
Если бы было все так чудно, то почему количество вакансий сокращается уже третий месяц?
-2000 вакансий, 1500 из них от западного кабанчика, исчезли в первый день после санкций. Итого -15% ВАКАНСИЙ в кризис, то есть даже скорость роста бизнеса всего на 15% замедлилась.
>1500
Это 30%, если отсчитывать от 5000 вакансий, которые были в начале февраля.
На самом деле где-то минус 40% случилось.
>западного кабанчика
Западный кабанчик ушел. А еще сбер остановил найм и начал у себя сокращения (особенно сбердевайсы). Яндекс сначала приостановил найм, а сейчас очень многим тупо отказы шлет. ВТБ почти полностью остановил найм, как и Иннотех. Альфа туда же.
Райф, Ситибанк, Росбанк похоже что ВСЕ в ближайшем будущем. Тинькофф уже вероятно будет не Тинькофф, перспективы туманные, но найм все еще идет.
Дойчетелеком (T-Systems) ушел, Епам ушел, Люксофт ушел, Accenture ушел, DXC ушел.
Не дохуя ли большие потери на рынке? Я вот вообще не знаю, куда сейчас можно относительно легко пойти работать джава-спринг-дебилоидом. Гос. энтерпрайз какой-то очень жидкий, в большинстве мест это тупо 1С + SQL + немного сишарпа для десктопиков.
Из вакансий не от западного кабанчика потеряно 15%.
>>Хорошо написанные тесты
О существовании тестов узнаю только когда CI не проходит из за сломавшийхся тестов всмысле не фейлятся, а не запускаются, которые надо переписывать после добавления фич.
>>помогают понять, как работает нужный класс
А что делает код можно понять из кода (по названиям методов и пременных в первую очередь), а не из десятка when(x)thenReturn(y)
Ну, если в методе что-то пиздец сложное, то проще посмотреть на то что выходит и выходит. Либо все то же самое пишется в примерах в жавадоке
Метод, в который что-то входит и что-то выходит - антипаттерн. Метод должен быть либо void, либо без аргументов.
ЛТС - антипаттерн. Надо пользоваться ластовой версией жабы всегда, лтс она или не лтс.
Я только за, но до 30 года половина проектов так и будет сидеть на 8.
Лол, 8 это получается SUPER LTS версия. И супер антипаттерн.
На первой работе был спринг4 без бута, джава8 и копролит.
Сейчас жаба11 и последний спринг с микросервисами.
Просто земля и небо.
Вот выйдет спринг6 и с джава 17 в этом году. Ну в начале следующего года допустим мне дадут на нем микросервис написать. Получу я хоть толику той разницы, что сейчас?
Вроде спринг 6 в октябре выйдет, а джава 17 давно вышла. Что мне помешает поставить спринг 6 в начале 2023?
Знаешь, что ещё антипаттерн? Ломание обратной совместимости. Такое лютое антипатиернище, на фоне которого всё остальное - паттерн.
На 18*
О да, вот это квинтэссенция кринжа. Именно поэтому нужно с самого начала писать в чистом ООП стиле, чтобы потом не пришлось ломать совместимость или накостыливать какую то ёба-обёртку. А также рисовать на бумажке картинки структуры проекта
Я не бугаенка, бугаенка пишет не в настоящем ООП. Настоящий ООП - в микропроцедурах (до 3-4 строк на метод), а не функциях.
Программировать - антипаттерн.
Петухонер, спок.
Если кто-то ломает обратную совместимость, то он нихуя не крутой.
Посчитай побольше тредов назад, чтоб большую картину видно было. И можно ещё сделать ещё один график с отметками не каждые 5 дней, а каждые 10, чтоб поровнее было и тренд был отчётливее виден
С весенним обострением у шизиков.
Построил за начала 2020 года.
График строится точечно по дням, и если строить за 10 дней, поменяются только отметки на оси, но не сам график. Можно наложить линейную фильтрацию (только накладывается со сдвигом в +10 дней).
Че за толкач?
Да.
>Исключает целые файлы, а речь шла об отдельно взятом блоке внутри метода.
Я смотрю тебе при сборке мозги исключили.
>Жид может выкинуть только то что известно во время компиляции.
Ну вот нахуя пиздеть про вещи про которые ты вообще ничего не знаешь?
Классы-обертки для говнокода из коробки.
> Я смотрю тебе при сборке мозги исключили.
Как исключить отдельно взятый иф с помощью filtering-source-code-in-maven?
> Ну вот нахуя пиздеть про вещи про которые ты вообще ничего не знаешь?
Иф остается. Ифа нет.
Жид это just in time компиляция, а теперь думай, как оно тебе из неизменяемой жарки выкинет ифы.
Можешь закончить мысль? Я не ванга.
Тогда зачем мне доказывают что он что то исключает? По моему он прямо следует байткоду, а байткод говорит ifeq.
> Нет, не следует.
Байткод выходит просто для красоты существует?
> Он исключает в рантайме, а не при компиляции.
Хоть один пруф будет? По моим тестам в асме те же инструкции ифов как и написано в байткоде.
List<A> list = new ArrayList<>();
var str = list.stream().collect(joining());
У меня он перегружен, но у меня ошибка "no instance(s) of type variable(s) exist so that A conforms to CharSequence".
Че такое?
>>но у меня ошибка
Очевидно что он ждет стрингу, а ты пытаешь ему скормить какой то А. Что ты там переопределял стриму похуй, он об этом не узнает. Мапь и не выебывайся.
var str = list.stream().map(A::toString).collect(Collectors.joining());
Ясен хер, что так работает. Просто пример, данный в книге, не работает у меня. Оттуда и вопрос.
Тебя недостаточно выше попустили? Ты ещё долго будешь срать тут, принимая кончу на ебло? Иди свои страшилки петухонерам рассказывай, им понравится
Жид сгенерировал машинный код, который некоторые даже не знали что можно посмотреть, опять врёти?
Ты совсем что ли олигофрен? Код в жарку не перезаписывается, он в оперативке и остается, сука.
Я где то сказал что он в жарник пишется? Ты сам это придумал или вообще не понимаешь о чем идет разговор. Читай начало ветки.
Это финальный набор инструкций после нескольких жид компиляций и оптимизаций. Эти хексы напрямую загружаются в кеш цпу.
Дай мне пруф что он не финальный и кто то его выпилит. Ведь вы в этом меня пытаетесь убедить.
Сначала дай мне пруф, что эта хуйня финальная. Я здесь вижу, как ты сдекомпилил жарку с помощью какого то декомпилятора.
Выше кто то кидал спецификацию жида, можешь начать с нее.
> как ты сдекомпилил жарку
В жарнике байткод. Ты понимаешь что я говорю о том, что идет после байткода?
>>353041
> напрямую бацткод посмотрел
Я его посмотрел еще 100 постов назад, чтобы убедится что javac вырезал от туда иф со статичной константой.
.class
>Как исключить отдельно взятый иф с помощью 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 Естественно этот код надо предварительно "прогреть".
Два разных класслоадера инициализируют два разных класса даже если у них один и тот же .class.
Какие подводные?
Ты заебал, трясёшься над этим количеством вакансий как над котировками акций и курсом доллара.
Снова ципсошник пришел за порцией кончи на ебало
> - вот этого я не понимаю.
Я нигде не выебываюсь. Скриншоты это то что мне показывают разные инструменты, по сути факты. Вроде даже без оскорблений отвечаю, а в ответ одна токсичность без контрпримеров. То есть мне предлагают верить не своим глазам, а анониму который ни одного факта так и не привел.
> PrintAssembly
Вот скрин >>353031 асм кода с этим флагом, прогретым хотспотом, несколькими компиляциями жида и всеми возможными отптизациями типа инлайнинга. Там все еще присутствует операция умножения которая не нужна.
Лол, а говорят что руби умер где примерно столько же вакансий, при этом разрабов в раз 10 меньше
Е >>2353490 (OP)
Р >>2353490 (OP)
Е >>2353490 (OP)
К >>2353490 (OP)
А >>2353490 (OP)
Т >>2353490 (OP)
Ток щас руки дошли, поставил
n=initCap * 2^i ?
>Вот скрин >>353031 асм кода с этим флагом, прогретым хотспотом, несколькими компиляциями жида и всеми возможными отптизациями типа инлайнинга. Там все еще присутствует операция умножения которая не нужна.
1. У тебя прогрев курильщика, статические методы плохо оптимизируются. Да и вообще нужно юзать JMH, он правильно прогревает.
2. По картинке вообще хер поймешь это C1 или C2.
3. Ты дурацкой подсказкой закрыл половину кода, что там надо разглядеть вообще непонятно. Но первые строчки показывают что там нет никакого if
Вот прогрев здорового человека https://pastebin.com/SGTBNeiA
А вот сравнение результатов C2 https://pastebin.com/Sb7iD0Nm
Там нет никаких if для обоих случаев там безусловное выполнения кода. if выглядит как cmp+je. И видно что для C1 if на месте, но вот C2 его уже выпилил.
Какая же макось говно, пока соберешь ждк ебнуться можно. Да линукс или винда в 100 раз лучше.
Но Джава реально вырвиглазная. Если бы возможностей для работы было больше, я бы обмазывался Сями и дрочил.
Причём, может, сама Джава ещё и нечего, но платформы, на ней написанные, это пизда. SAP Commerce, например, 'это вообще, имхо, месть немцев за Гитлера.
>>SAP Commerce
Это 1С написанный на джаве. ИТТ нет тех, кто не считал бы его говном. Привычная всем джава это спринг.
>>Джава реально вырвиглазная
Это дело вкуса. Мне вот не нравится ямл и питон, из за того что проеб пробела/таба в лесенке отступов сломает билд.
>Привычная всем джава это спринг
В том-то и прикол, что SAP Commerce (бывший Hybris) спрингом обмазался по самое не хочу, но по итогу, всё равно выходит лютейший пиздец.
Поэтому хотел бы попросить краткий-полезный видеотуториал/справочник/сайт с описыванием реализации ООП фич по типу полиморфизма, композиции, интерфейсов и т.д конкретно на Джаве. Благодарю.
Шилдт в помощь.
Что делать с датой-временем?
Маршаллинг и унмаршаллинг в человеческом виде у jaxb не нашел, чтобы сразу делался в часовом поясе пользователя и его региональными параметрами, jaxb этого по моему не умеет делать
Соответственно встает вопрос, как обмениваться с фронтом объектами, которые в себе содержут поля OffsetDateTime?
Вы видите копию треда, сохраненную 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.