Программирование 😎 — это не столько про анальное крудошлёпство😏, сколько про стиль мышления🤔. Высокоуровневая☝ абстракция, поиск сходных черт, оптимизация — всё это высшие интеллектуальные способности, что образуют такой прочный симбиоз с программированием на Java😜.
Вкатился в жабу джуном с первого же собеса. Изрядно охерел с этого. Вкатился после курсов. Когда я устраивался после универа юристом меня на собесе так не ебали во все дыры. Это каждый раз происходит или когда я стану мидлом собесы перестанут длиться по 2 часа?
>>2760049 прогнал меня почти по всему кору, правда внутрь внутренние реализации коллекций не спрашивал. Прогнал по Spring core. Стандартные вопросы про скоупы бинов, как конфигурировать. Был смешной вопрос: "Что мне делать, если мне не нравится реализация класса Стринг и я хочу создать свой". Затем мы прошлись по всем моим учебным проектам и я рассказывал что тут для чего. Какая аннотация что делает. Потом попросил написать меня юнтитест для класса, с чем я не справился пушта там надо было мокать jdbcTemplate, а без гугла я не смог условие в when прописать.
Потом мы открыли простой текстовый редактор и я написал в нём на спринге CRUD для условного эндпоинта /user Ну и решил задачку в этом же редакторе на зубчатый массив. Дано: [1,2] [3,4] [5,6] метод должен вернуть [1,3,5][2,4,6]
>>2760086 >как конфигурировать Ну и как? >Что мне делать, если мне не нравится реализация класса Стринг и я хочу создать свой Ну и что? >Ну и решил задачку в этом же редакторе на зубчатый массив Ну и как решил?
>>2760086 >Что мне делать, если мне не нравится реализация класса Стринг и я хочу создать свой Реально странный вопрос, мы ж не в cpp, где можно делать хоть 100500 реализаций, тут у стринга помощь от jvm, она литерали подменяет методы, шоб работало быстрее.
>Потом мы открыли простой текстовый редактор Ебанутые что ли? Типа я должен помнить все импорты и нейминги методов? Какая-то странная контора, компеляцию прям там же не попросила провести? > на зубчатый массив. Это не зубчатый массив, в чем задача вообще?
>>2760104 > Реально странный вопрос, мы ж не в cpp, где можно делать хоть 100500 реализаций, тут у стринга помощь от jvm, она литерали подменяет методы, шоб работало быстрее.
Примерное такой ответ и ожидался. > Ебанутые что ли? Типа я должен помнить все импорты и нейминги методов? Какая-то странная контора, компеляцию прям там же не попросила провести?
Это самый крупный банк РФ. Да и никакие методы не требуются же. Ты не помнишь как массивы в лист положить и фором по нему пройтись?
>>2760020 Даже когда станешь сеньором. Только вопросы будут типа "расскажите как устроена кафка" и "расскажите о паттернах микросервисной архитектуры, которые вам приходилось использовать"
>>2760117 >Только вопросы будут типа "расскажите как устроена кафка" э ну там девопс ставил я хз чето пишешь туда читаешь >"расскажите о паттернах микросервисной архитектуры, которые вам приходилось использовать" апи гейтвей
>>2760111 Ну не только форы. Я б например без идешечки вряд ли смог мокать этот темплейт. Да и не ебу где там в спринге спрятаны импорты от аннотаций. Кстати, а нахуя здесь лист? >Это самый крупный банк РФ. Бля, а неплохие амбиции на первый-то собес. >>2760131 Надо просто адд тогда. Там же вложенные листы... Но ас лист дает иммутабельные листы, ну не совсем иммутабельные, только по размеру, потому нужно обернуть там new ArrayList(), например.
>>2760020 >>Это каждый раз происходит или когда я стану мидлом собесы перестанут длиться по 2 часа? От конторы зависит, в некоторых типа сбера тебя будучи сеньором будут по всей теории гонять, начиная с определения класса и т.д., причем могут и про спринг не спрашивать. В норм. конторах на мидла/сеньора спрашивают про опыт, паттерны, архитектуру, как устроена кафка, кролик, кишки спринга, хибернейта и т.д.
>>2760984 Я другой анон, но тоже работал до айтишки юристом. На собесах на юриста не просто так особо жестко не спрашивают. Хотя могли бы по основным кодексам и фз, нужными для определённой погонять. Потому что там решает блат на 90%. Если твои предки не судьи, кабанычи или еще какие начальники юр отдела, то с вероятностью 90% ты будешь до пенсии работать за соротыгу. Ну и 10% сами смогут нужные связи наработать и подняться.
>>2761073 Еще помню меня из суда кабаныч подвозил один, который с моей конторой на одной стороне судебного процесса был. Я был 22 лвл после института. А он меня лет на 5 старше. Такая охуенно была комфортная тачка. Ауди кроссовер. Меня в автомобилях укачивает и тошнит от выхлопухи и плохого пластика. Типа в корпоративном фокусе, на котором меня водила в командировки возил было еще ничего, а вот всякие тазы и логаны просто пиздец, мне после поездки надо час отходит. А в эту тачку сел и там свежо, вообще не ощущается что в машине едешь и места больше чем в кабинете, где я пахал. Короче просто поразился тогда. Это еще добрый кабаныч был. А некоторые прямо как на жука на тебя смотрят, издеваются какое ты нищее чмо. Вернулся, а там сидит мой коллега с 12 лвл стажем с зп около тридцатыги. Выглядит на 50 в свои 35 и шуточки тупые шутит с девчонками моего возраста. Работа вне айти, как страшный сон.
>>2761248 Ну и сама работа говно. Я за те же деньги, что получаю сейчас джавистом и даже немножко выше тоже не пошел бы опять юристом. Сроки больше всего бесят, каждый день как белка в колесе. Вот представь. У тебя в работе одновременно 50 документов. Сроки от сегодня до месяца. Обычно треть - в течении пары дней. Тебе их надо написать, подписать, прикрепить к ним сопроводительные документы, завизировать у начальника, отправить, сходить с ними в суд. Что-то из этого сделать. Ну и не проебываться по срокам нереально. Тебе постоянно надо искать способы и уловки. Если не нашел надо скрывать факап или перекидывать. Если не смог скрыть - очко начальника должно быть всегда отполировано, чтобы он тебя не депремировал за факап. Ну и вообще это очень социоблядская работа. Надо постоянно вызванивать коллег, чтобы они сделали то что должны. Нужно вызванивать людей из других контор, чтобы они что-то тебе подсказали или сделали. Нужно бегать по городу для всяких манипуляций с документами. Нужно ездить в командировки в суды, в том числе в совсем мухосрани.
>>2761133 Так я в сбере юристом и работал, поэтому на собес попасть не проблема. Резюме слепил за секунду. Т.к. ещё не прошёл карьерный трек. Указал весь стек, который учил на курсах и все. Сделал 10 откликов. Получил 9 отказов, на 10 пригласили на собес.
>>2761767 А так ты через связи в обход общей очереди пробрался. Понятно. Украл рабочее место у более сообразительных челиков, которые даже на собес попасть не смогут из-за заградительных хр фильтров
>>2760086 >пушта там надо было мокать jdbcTemplate не надо. Запросы к базе надо тестировать >Что мне делать, если мне не нравится реализация класса Стринг и я хочу создать свой идти в байтоёбы. Какой правильный ответ?
>>2763489 > и в чем смысл такого юнит-теста? Проверить логику в коде. > Нет, тестировать надо максимально полно, минимально затрагивая и раскрывая детали реализации Это не юнит-тест.
>>2763540 ты какую-то лохматую книгу из двухтысячных прочитал. Не дядюшки боба? Моки - последнее дело. Если можешь тестировать с поднятием базы - делай именно так. Все вокруг мокать и потом "тестировать" узкий срез - не имеет смысла
>>2763560 нет, не я. Но я думаю что у меня больше опыта чем у тебя. И я гораздо больше видел падающих тестов с моками от малейшего изменения реализации. В чем тогда их смысл если они повторяют реализацию
Дело даже не в том, посыпался тест или не посыпался. Юнит тесты пишут чтобы зафиксировать ценную семантику у юнита. Например, если юнит считает баланс корзины, он должен считать его предсказуемо вне зависимости от того, как реализацию этой корзины написали-переписали-отрефакторили.
И хуйня-мантра, что "тесты должны от малейшего изменения падать". Падать они должны от малейшего изменения семантики юнита под тестом, а не от любого изменения. Последнее еще имеет имя fragile tests и считается антипаттерном. В примере выше - если подсчет баланса корзины в определенного момента по какой то причине стал включать в себя учет скидок, это повод поменять тест. Но если корзину просто отрефачили, трогать тесты вообще не в интересах рефакторящего - тесты его предохраняют от корнер кейсов которые он забыл учесть за собой, и как результат - от регрессий.
>>2763758 Ну он понимает, что он просто мошенник, который украл чужое место, поэтому и помалкивает. Нет математической базы, алгоритмической подготовки, понимания устройства компьютера. Он не ответит даже на элементарный вопрос, почему long и double имеют одинаковую длину 64 бита, а double может хранить числа аж до 10^308, а лонг только до 10^18. Но зато он смог узнать и выучить вопросики для собеса и подложить своё резюме в обход всех заградительных фильтров. Когда тысяча других желающих этого сделать не сможет, хотя их подготовка вероятно гораздо лучше
>>2763996 Хера ты говно высрал, маня. Студенты универов попадают в компании через стажировки. У вкатунов вроде меня база плюс минус одинаковая. Как знания этой хрени про 64 бита в лонг и дабл помогут не писать код? Забавно что ты высираешься про то, что я незаслуженно получил это место, хотя я хуярил как не в себя и учился больше года. Энивей я вкатился, а челики, которые знают какую-то не нужную муть, а переключить GC не смогут не вкатились. Вопросы?
>>2764006 >Вопросы? Почему сразу то не пишешь - прошел по блату? Нахуя ты тут высераешь свой пример, на который смотрят вкатуны, но при этом изначально умалчиваешь самую важную деталь?
>>2763996 А кто мешает тебе устроиться в хелпдеск любой айти компании и также как тот юрист подать резюме на разраба внутри? Обычно студенты из всяких колледжей, которых учили на сисадминов, так и делают чтобы не конкурировать за стажировку с студентами с вышки
>>2764017 Где ты блат увидел? 9 отказов тебя не смутило? Техническое интервью с решением алгоритмической задачи шутка какая-то? По сути мне просто повезло, что hr мне позвонила. Я по политике компании вообще не имею права на такие грейды откликаться. Я отличаюсь от других вкатунов только тем, что мне повезло оказаться внутри компании у которой развит it кластер и тем, что мне зачем-то решил позвонить hr. Это в большей степени удача. Мой одногруппник с этих же курсов вообще устроился на работу через hh. Ему сама написала хрюша их какой-то компании, сказала что хорошее резюме и позвала на собес, который он успешно прошёл. Это тоже блат и он занял место более умного чела?
>>2764039 Если отбросить само громоздкое красно-черное дерево, то почему бы и нет. Простое задание, но покажет понимание человеком структур данных и алгоритмической сложности. А то что выше - это не алгоритмы, это даже не two sum или физбаз, а просто задание на знание индексов в массиве. Ну то есть буквально 4 занятие по языку программирования.
Читаю книжку по дизайну и там код на Джаве. Не пойму как так? Тип Instrument взялся из ниоткуда, откуда компилятор он нем знает если он класс Instrument не импортирован?
Джава не любит, когда в коде есть неопределенные переменные. Без этого явного нуля код даже не скомпилируется, потому что значение instrument явно неопределено, когда spec - не GutarSpec и не MandolinSpec. И компилятор такие ситуации отслеживает.
>>2765156 Не я понимаю, что если не будет if ... else хуй ты оставишь без значения переменную. Я вообще про введение special значения в класс. Нахуя? Обычно этого можно избежать.
>>2765186 >Так возвращать optional практика не лучше. То же special значение. Лучше. Макакий джва раза подумает межушным гангалием прежде чем начать дергать методы прямо с ходу или лезть за данными.
Почему у остальных ЯП норм описание, где дана пара-тройка ресурсов для вкатунов,а в джаве какая-то хуйня: курсы для дебилов; если хотите успешно выкатиться, то учите в инете сами
>>2765231 > Шарписты забрали всю работу? Нет, работы дохуя, но все хорошие ресурсы для вката надёжно спрятаны, чтобы вкатиться могли только достойные. Для остальных подготовлены ловушки, чтобы вкатуны только думали, что чему-то учатся, а когда до них дойдёт, что они топчутся на месте, будет уже слишком поздно. И остаётся им в спешке учить 1С и PHP.
>>2765218 Юзлесс что-то советовать. Джава самый популярный язык на планете. Хорстманн, Эккель, Егор Бугаенко, Кэти Сиерра - про эти имена знают во всех уголках мира, как про имя Гарри Поттер. Другое дело инфа по спрингу...
переношу проект своей игры с js на libgdx, благо хорошо отделил игровую логику от графических операций
пилю в android studio так как целевая платформа это android
столкнулся с проблемой поверхностного знания явы именно с точки зрения работы с памятью. дело в том, что для оптимизации своей игры я делал подгрузку текстур по мере их надобности, а не загрузку всех текстур заранее, тем самым хорошо экономил потребление оперативы
в java я не понимаю как снизить потребление памяти. дело в том что я загружаю так же текстуры по мере надобности. после чего когда они уже не нужны я не знаю как их выгрузить. они просто занимают какое-то дико большое количество памяти.
можно ли как-то в java принудительно выгружать неиспользуемые данные? например я пробовал просто стирать эти переменные придавать им пустые значения, но толку нет никакого.
как вообще явисты решают вопрос с принудительным освобождением RAM
А так можно дёргать System.gc(), но это ниче не гарантирует. Можно объекту присвоить null. Есть еще всякие soft references, но это немного про другое. На этом вроде всё. JVM сама решает, когда ей освобождать память.
>>2765250 >Другое дело инфа по спрингу... Да, всего лишь фреймворк благодаря которому джава еще жива в кровавом ынтерпрайзе, но документация написана пидорами с синусоидальными руками. И устаревают в пизду быстрее чем версии джавы.
>>2765389 В общем случае не существует такой вещи как принудительное освобождение памяти. Память подконтрольна GC, и освобождается тогда, когда на нее не остается ссылок. Исключение - ресурсы offheap-ресурсы типа файловых дескрипторов и offheap буферов - для них обычно есть метод типа close и unload. Странно что ты вообще об этом спрашиваешь - в JSе разве не так же?
>>2765389 Ну и плюсом - то что GC уничтожает обьекты не означает, что GC отдаст эту память операционной системе. Он ее придержит для будущих аллокаций, и на это есть свои причины.
Вроде и сениор дохуя, 6 лет опыта работы, но последний год-полтора все чаще чувствую, что я нихуя не знаю. У коллег сениоров опыт, конечно на лет 5-10 больше моего, но на фоне них чувствую себя временами ущербно. С самим написанием кода никаких проблем нет, все как по маслу и как того требует бизнес, но есть огромные дыры в архитектуре приложений плюс кишках самой жабы. Недавно появилась задача по исследованию утечки памяти - так я охуел с того, что я бля даже не знаю как приступить к задаче. Понятно, что гугление дало свои результаты, и я что-то там даже сделал, но ощущения были неприятные от того, что я не знаю того, чего знают любые мидл разрабы, наверное.
Короче, пока есть вдохновение учиться и изучать новое, хочу от вас получить какие-то советы что ли, книжки/статьи, которые вас охуенно забустили в какой-то теме.
Заранее спасибо каждому кто откликнется, с меня как обычно
>>2766539 слышал про некую книгу дракона - про построение операционных сетей. Сети - олифер. Это курс вуза кстати. Как прочитаешь и поймёшь от корки до корки - начинай прорабатывать кишочки жабы
>>2766537 >Понятно, что гугление дало свои результаты, и я что-то там даже сделал, но ощущения были неприятные от того, что я не знаю того, чего знают любые мидл разрабы, наверное.
Не комплексуй. Грейд - это просто то, насколько дорого анальник продал свою жопу кабану, ни больше ни меньше. Если ты реально 6летний синьор и честно сам за собой все вышесказанное признал - то сам должен это понимать. По умолчанию экспертизу большинство набирают примерно так же как ты описал: впоролся в нужду первый раз, погуглил, изучил тему, сделал для себя выводы. А кто-то так и сычует всю жизнь, нихуя не научившись.
Позырь конференции - мне в свое время это дало хороший буст. JPoint и Jokerconf - твои бро, нагугли их в ютубе и вдохновляйся. Много годных докладов-нетленок было в период 2016-2020г. Можешь съездить даже, если можешь себе это позволить (или может за тебя тебе позволить твой работодатель), хотя сейчас конфы переживают не самые лучшие времена, по понятным причинам.
>>2766537 Ты загоняешься, у меня за 5.5 лет такие задачи всплывали очень очень редко и практически никто с ходу не знает, как правильно проводить диагностику.
>>2767588 Слушайте, но не бейте сильно нуба, ну я вообще не прогер, а инженер - просто мой говноСАПР на современной Джаве не работает. Если я отсюда скачаю - я не получу кипу троянов в систему? https://archive.org/details/jre-8u51-windows-x64
А че защита csrf прям совсем совсем не распространяется на имподентные запросы, аля гет хеад и тд. Условно, залогинился ты на сайте и кто-то хочет спиздить конфиденциальные данные аккаунта. И че ему это помешает?
>>2768467 лол. Выпилили rest template переехали на реактивную нонблок парашу WebClient, потом скуфы в оракле запили виртуальные треды, эти решили вернуть rest template только под другим именем. Теперь-то можно спокойно блокирующий код в отдельный виртуальный тред кидать.
Наверное совсем глупый вопрос, но вот тут предполагается разделение бд юзеров и бд ресурсов. Вопрос, как их связывать? Мне на пустом месте сагу городить что ли? Кто-то вообще так проектирует сервисы?
>>2769308 Ну - сагу городить конечно перебор для такой мелочи, но тыж сам должен понимать что как только ты делишь реляционную модель на два независимых куска, нормализация, констрейны и прочие ACID гарантии идут по пизде.
Обычно это решают глобальным айдишником и эвентами. Типа - удалился юзер, юзер сервис шлет на брокер сообщение, что "юзер такой то удалился". А остальные сервисы подписываются на это сообщение и реагируют на него. Например, инвалидируют связанные с этим юзером ресурсы.
Знатоки и мастера хибера на месте? Дали таск и я над ним туплю и чет не понимаю как делать. Есть приложение с multi tenancy, есть главная схема и схема на каждого тенанта. Для работы с этим есть два ентити менеджера, мастер который всегда на мастер схему смотрит и тенант, который динамически ставится. И вот мне нужно создать ентити, который мог бы содержать другую ентити, которая есть и в мастер схеме и в схемах тенанта. Я пытался через @MappedSuperclass, но ведь его нельзя указывать в других ентитях ибо его не видно, а делать по филд для мастерИд и тенантИд выглядит туповато. В каком направлении мне смотреть нужно?
>>2769614 Ты пытаешся просто сущность связки сделать? Нахуй тебе @MappedSuperclass куда ты наследоваться собрался? Или ты имел в виду @EmbeddedId? В любом случае просто сделай идшки и забей хуй. Все равно нормально повесить зарубежный ключ на них не сможешь.
>>2769661 Да, пока-что просто связать. >Нахуй тебе @MappedSuperclass куда ты наследоваться собрался? Это я просто пытался бреинсторить так сказать. Ибо вот есть EntityMaster и EntityTenant, должен быть EntityHolder, который по моей идее бы держал EntityParent, а мастер и тенант от него наследовали. Ток оно с ошибкой падает что парент unkown, погуглив я понял что это из-за @MappedSuperclass, нельзя на него ссылаться на реальных ентитях. >В любом случае просто сделай идшки и забей хуй Это вообще нормально? Выглядит же пиздец всрато, всегда есть филд который будет нулом, типо EntityHolder будет иметь entity_master_id и entity_tenant_id, а потом смотря какой из них не нул то обращаться в нужной схеме. В хибере ничего не смогли придумать что ли?
>>2769682 Как удостоверится что поможешь и помощь решит мою проблему? А если кинешь?
делаем фреймворк для магии @ оно действительно работает как магия, никто не понимает как и что делает @ на собесах дрочат кишочками этой магии @ хорошо
>>2769614 Реально пиздец, я всё больше имею желание начать читать Бугаенко, судя по смехуеечек с него здесь. Вот как объяснить эту залупу на пикриле? Весь день проебался с дискриминатором потому что не хотел создавать лишнее поле, ладно похуй создал. Теперь оно срёт мне что Cannot instantiate abstract class or interface. А НАХУЯ ТОГДА ТЕБЕ ДИСКРЕМИНАТОР ЕСЛИ ТЫ ВСЁ РАВНО РОДИТЕЛЯ ДОСТАЁШЬ?? На кой чёрт указывать resultClass если ему похуй. Пикрил собрал сейчас чтобы тестить вдали от реального кода.
>>2770037 Что мешает тебе забрать 50% до и кинуть?
>>2770734 После того как добавил это поле в БД то поставил и начало работать. https://vladmihalcea.com/the-best-way-to-map-the-discriminatorcolumn-with-jpa-and-hibernate/ Отсюда взял. Однако проблема как и написал, оно пытается этот абстрактный класс естественно инстанциировать. Пиздец, такой простой вопрос:" как при использовании одного филда в ентити иметь доступ к разным ентитям из разных схем" Вроде и интерфейс сделал и абстракный класс, всё равно говно
Сколько времени у вас ушло и по сколько часов в день уделяли литкоду прежде чем начало получаться без проблем щелкать медиумы? Я вот уже месяц сижу и чет до сих пор особых улучшений не видно, вообще кажется, что задачки, которые решал в самом начале уже забыл как делать и сейчас быстро решить не смогу если вообще смогу без подсматривания в решения, лол особенно это касается тех задач, которые сам решить на тот момент не смог и приходилось смотреть как сделали другие. Вообще стоит заморачиваться над красотой и эффективностью решений? Там переодически пишут внизу типо реши без доп памяти и тд, в итоге как с хэшмапой сделать я знаю, а как без нее туплю часами и потом смотрю ответы.
>>2773764 Я не понимаю, на собесах алгосы или кишочки фреймворков дрочат? Если первое абсолютно нахуй не надо, то второе +- полезно... Кстати, пример задачек, которые затруднения вызвали скинь.
>>2773779 Ну алгосы вроде, кишочки можно и в процессе работы узнать, а вот научиться решать эти ебучие задачки… >пример задачек, которые затруднения вызвали скинь Их слишком дохуя, чтобы все скинуть, наверное из всех могу выделить задачки на дп, для меня они одни из самых тяжелых
>>2773791 >кишочки можно и в процессе работы узнать Алгосы можно там же узнать. >могу выделить задачки на дп Вообще, кстати странный термин. Вроде как это разбивка разделяй и властвуй, но тем не менее выясняется, что это ебучий подбор магических формул. А ну и обычно объяснения чисто математические: "очевидно, что"
>>2773795 >>2773795 >Алгосы можно там же узнать. Нихуя. Мне в работе нахуй не надо вертеть деревья и пересобирать массивы. Разве что решать литкод в рабочее время, но для этого должно свободное время появиться на работе, а обычно его нет
>>2773798 Лол, чел, я начинал прогать с книжки по алгосам, много деревьев написал сам и до сих пор помню как они устроены, но этого нихуя не достаточно, потому что есть задачи, которые ты либо знаешь/догадался как решать, либо сосешь хуй, проебываешь час-два времени и идешь смотреть как решили какие-то сверхразумы, а потом через время еще и забываешь это решение и все идет по кругу.
>>2773806 >и до сих пор помню как они устроены Граф без циклов ну и пути у него во все ноды есть, если ориентирован то по крайней мере из корня. >которые ты либо знаешь/догадался как решать На собесах такое спрашивают? Или это только на олимпиадках и иже с ними
>>2774948 Контекстом легче управлять. Но я реактивщиной не пользовался, потому не ебу че там с ним. А если сравнивать с обычными потоками, то виртуальные просто выкидываются из обработки в очередь, а не паркуются осью.
>>2774948 Ты задаешь неверный вопрос. Профитов никаких в этом нет. Но в отличие от нативных потоков, в закидывании блокирующего кода в виртуальные потоки нет ничего плохого, и в этом - профит виртуальных потоков. Писать блокирующий код гораздо легче, чем асинхронный, это умеют делать литералли все.
>>2775022 >Писать блокирующий код гораздо легче, чем асинхронный, это умеют делать литералли все. Давно ли блокирующий код стал синхронным? Он даже serializable-то далеко не всегда. Может ты имел ввиду non-blocked, но чет бля сомневаюсь, что кто-то атомиками напрямую манипулирует. Вон в прекрасном языке шарп, просто берёшь и запускаешь асинку или в гошечке горутинку.
>>2776651 Да нет, всего лишь из-за того что спринг слишком медленно запускался. Задач на оптимизацию и рефакторинг зависимостей никто не заводил, пока петух в жопу не клюнул.
Всем ку, такой вопрос. Юзаю на своем проекте спринг доту и кафку, мне из кафки приходят сообщения с данными по моей сущности и мне нужно либо ее сохранить, либо обновить в базе, так вот вопрос про обновление, как мне это лучше сделать? Просто весь огромный список полей сетать в сущность, которую я достану, чет впадлу немного. А я же не знаю, что именно мне надо обновить у сущности, так что будто по-другому никак, но мож что-нибудь посоветуете по этому поводу
>>2773779 В джавамире никто алгосы не спрашивает. Дрочат заученные аннотации спринга, хибернейта, джейюнита, мокито. Мозги джаваскуфов закостенели и думать не способны. Оттого алгосов там нет, ибо скуфа могут обоссать прям на собесе. А вот аннотации скуф выучил хорошо и сможет заебать кандидата
>>2777925 Чел спрашивал как ему не сетать огромный список полей из мессаджа, а не как заперсистить в БД. Его вопрос сводится к тому как лучше десериализовать сообщение.
>>2776919 >>2778181 Как конвертить dto в entity надо объяснять? В принципе, ты можешь, конечно в entity сразу десериализовать, но это моветон, за такое тебе на реальном проекте хуев в панамку сеньки на ревью насуют
>>2776919 У меня такой же таск был, после гугления решил не ебать себе мозг и сделал просто заюзал BeanUtils у спринга для копипейста филдов и NativeQuery у хибера с UPSERT кверей, чтобы не делать лишние квери для мерджа.
>>2778203 >>2778210 Но, вообще, иногда бывают ситуации, когда нет возможности использовать dto. Например у тебя продюсер это какая-то внешняя система, которая ничего не знает про твою реализацию и твои дто, а просто выплевывает тебе набор данных в формате ключ/значение. Тогда лучше использовать первый вариант с criteriaAPI
>>2781315 Скажи на собесе, что на великом голанге можно написать любой бэк на голой стандартной либе, попусти скуфанов заучивших магические аннотации спринга!
>>2781458 Тогда спроси как сосется джавистам ведь у них до сих пор нет асинхронности в языке (потому что нет async/await). После этого они оценят твой кругозор и закроют глаза на пробелы в спринге.
>>2781449 Да, пусть пойдет и скажет. И попустит сам себя, ибо пиздеть - не мешки ворочать. Охуенная страта по вкату в кандидаты на премию дарвина.
>>2781502 Всем похуй. А кому не похуй, подрубают котлин или лабают реактив. А ты, чмоня, небось и нагрузок то таких в своей жизни не видал, где тредов перестает хватать и нужно ебаться с асинхронщиной, а чето там вякаешь про то как там джавистам сосется.
>>2781502 Експерты, а что технически более совершенно виртуальные треды или вот асинки? Просто, вот например конкурентной мапы в шарпе вроде и нет. Вообще, я смотрю все, что под что авторством doug lea просто невероятно, в шарпе есть кто-то его уровня?
>>2781661 Асинки хуже, т.к. раскрашивают тебе функции. Из-за этого обычно каждую функцию дублируют. Типа есть CheckZalupa и CheckZalupaAsync, т.к. асинхронную функцию нельзя вызывать из синхронной.
А вообще шарп просто стал жертвой корпоративных кпи, когда тебе нужно постоянно чё-то изобретать, чтоб дать это в отчёте. Скуфам в оракле похуй на джаву в принципе, она и так идеальна, а индусам в майкрософте надо постоянно повышать менеджерские метрики эффективности, чтоб не попасть под сокращение, оттого они срут бесконечно новыми фичами, которые никому не нужны и которых никто не знает. В результате шарп разросся до размеров плюсов с документацией только по самому языку на несколько тысяч страниц.
>>2781661 Ну... так то конечно это надо хорошо так изъебнуться, чтобы сделать какбэ треды, но не нативные, и при этом сохранить по максимуму возможность срать блокировками. Да еще и методы не красить. Мое почтение.
Нахуя после этого вообще нужны рутины и асинк-авайт в джаве? Просто через ступень перешагнули нахуй.
>>2782211 >так то конечно это надо хорошо так изъебнуться, чтобы сделать какбэ треды, но не нативные, и при этом сохранить по максимуму возможность срать блокировками. Да еще и методы не красить. Мое почтение. Erlang смог ещё в 1986. Go тоже смог.
Ну что друзья,устроился на свою первую работу. Предвкушаю,что мне придется писать много тестов,а я их никогда не писал. Можете поделиться исчерпывающим талмудом что и как тестировать. Также буду рад вашим советам как не вылететь с испытательного срока
>>2782706 По результатам последних 8 лет евангелизма TDD никогда не угадаешь, что встретишь в тестах. С 60% вероятностью там может встретиться параша, которая навсегда отобьет тебе охоту когда либо связываться с тестами. Но бывают и исключения.
Просто смотри как все делают и делай так же. Так хотя бы не вылетишь сразу.
>>2782909 Двачую. Нахуя писать юнит тесты на строго типизированном языке. А интеграционные/е2е пусть пишут автотестеры.
>>2782706 >>как не вылететь с испытательного срока Просто пиши такую же хуйню как в соседних классах/сервисах. Через полгода-год вам надоест их поддерживать и может быть начнете о чем то догадываться.
>>2782396 >Erlang - не в счет, он функциональный. Чел у тебя каша в голове, это вообще никак не связано. Есть скала, кложа которые функциональные при этом спокойно компилируются в байткод.
>Go делал это начисто, не имея за душой багажа легаси. Так кто угодно может. И кто кроме Го смог?
>>2783025 >И кто кроме Го смог? Наш любимый кобольчик - джаба. >>2781724 Вообще я с точки зрения технического совершенства спрашивал. По сути асинкам кучу лет; и вот интересно, смог ли мелкософт за это время их довести до совершенства. Насколько скуфы отстали
Где искать нормальную работу-то? Смотрю Java вакансии хх.ру, там пиздец же, максимум 250-300к, а часто бывает и 150к. Хрюши пишут с такими же предложениями. Но это же блин мало. У меня 10 лет опыта, я не должен работать за еду.
А у тебя кол в жопе, видимо, коли так настырно лезешь доказывать априори хуйню.
Это в императивных языках типа сей и джавы в определенный момент встала проблема конкуррентного доступа к общим мутабельным данным, из-за чего пришлось изъебываться, собирать грабли и придумывать модели памяти, конкарренси и всякие языковые конструкции, желательно не ломая совместимость. На них и приходится основное мясо.
В функциональных и прочих декларативных языках таких проблем и не было никогда. Там всем похуй было всю жизнь на ламерские асинк-авайты и рутины - хули им, когда в каком нить условном хаскелле все вычисления - ленивые, функции - чистые, а сайдэффекты надежно изолированны монадами. Хошь - параллель. Не хошь - не параллель. Для них что джаваны, что го-лемминги - один сорт черных людей с какими то унылыми загонами. Тот же эрланг - тоже считай просто залез в свой акторский райский манямирок, и ему там норм. Тока вот мейнстримом ни он, ни прочие функциональные языки так и не стали, максимум заняли свою нишу.
Любой инициативный челик с математическим бэкграундом может придумать-спиздить какую нибудь модель вычислений, где уже учтена нужда в параллелизации, и сделать на ее основе язык. Это несравнимо проще, чем вкорячивать новые конкарренси-фичи в язык, который тащит за собой багаж легаси. Поэтому первые не в счет.
>>2784315 Благословляю твой скорейший перекат в PHP. Вкатывайся в пыху, битрикс, 1С, JS, макросы на VBA, Python, ручное тестирование и подобное. Упаси тебя Боже даже подумать о вкате в джаву или шарп.
Реактор - это какой-то паттерн? Я не про реактивную хуйню, а реактор который у мавена. Если у меня должен быть класс, который из нескольких сорцов генерит какую-то штуку, как его назвать?
Всем ку, хэлпаните плиз, вот у меня есть сущность пост и сущность коммент со связью ван ту мэни из поста, и мне нужно вывести список в котором будет инфа по посту и по комменту. Проблема в том, что каждый новый коммент это отдельная строка с тем же самым постом. Сделать для каждого коммента пост после того как достану из базы не получится, тк нужна еще и пагинация. Вот я когда делаю запрос сам с джоином, то получаю три строки, но хибер все собирает в один пост со всеми комментами, а мне так не надо
Да откуда мы знаем чем спринг лучше ваших помойных шарпов, ларавелей и джангов? Мы пишем на спринге и тут дохуя работы. Нахуя копаться в ваших помойных стеках?
>>2785489 Эх, вот бы в хуйбере можно было бы смаппить какули из БД в объекты так, как это тебе нужно под задачу... да не... хуйбер это ж просто хуйня про расставление ван ту мэни бллээдь Эххх вот бы можно было бы высрать новый класс специально под задачу... с ограниченным контекстом... да не... анриал... это ж нарушение принципа дру кисс дринк юр оун писс
>>2785489 Если у тебя только один джойн, то можешь попробовать пиздануть pageable прямо в запрос. Хибер все равно постфактум твой кал склеивает в одно. При появлении второго джойна тебе правда розобьют ебало.
>>2785807 попробую угадать что сгенерит хибер select from comment where post_id = :postId select from post where post_id = :postId select from post where post_id = :postId select from post where post_id = :postId select from post where post_id = :postId select from post where post_id = :postId select from post where post_id = :postId select from post where post_id = :postId select * from post where post_id = :postId
>>2785821 Да похую. Я неправильно задачу понял. Как я понял ему нужен пагинированный список постов с последним (?) комментом. Пусть ебется или с запросом (сложна) или ставит тупой last_post_id.
>>2785807 Да проблема не в pageable, а в том, что мне надо чтоб был не один обьект поста с комментами, а много возможно одинаковых обьектов поста и у каждого свой уникальный коммент и еще чтоб на эту хуйню работали лимиты с офсетами
>>2785875 Делаешь запрос с pageable на id своих обоссаных постов без джойнов и таскания данных. Потом делаешь запрос по массивам ids с джойнами и всей хуитой и не забудь сортировку тоже.
>>2783989 >А у тебя кол в жопе, видимо, коли так настырно лезешь доказывать априори хуйню. Я был не прав, у тебя не каша в голове, а дерьмо вместо мозгов.
Иммутабельность и продвинутая многопоточность это ортогональные вещи. Иммутабельные структуры данных это просто способ борьбы с доступом к шаред данным, но не способ реализации многопоточности. Для реализации многопоточности иммутабельность не обязательна. В Го иммутабельных структур нет, а продвинутая многопоточность есть. А в том же Хаскеле кондовая многопоточность на базе тредов, хотя структуры данных иммутабельный, функции чистые и монады во все поля.
>Любой инициативный челик с математическим бэкграундом может придумать-спиздить какую нибудь модель вычислений, где уже учтена нужда в параллелизации, и сделать на ее основе язык. Это несравнимо проще, чем вкорячивать новые конкарренси-фичи в язык, который тащит за собой багаж легаси. Поэтому первые не в счет. Дурак ты и не лечишься. Да Го было легче реализовать рантайм с легковесными тредами, чем Джаве. Но утверждать что это может любой челик с математическим бэкграундом, это надо быть таким дураком как ты.
>>2784007 >Спроси лучше - кому кроме го это было надо? По большей части всем кроме гугла было похуй. То-то все асинхронность тащат, кто-то асинками, кто-то акторами, кто-то реактивное программирование пилит, кто-то корутины. Настолько всем эти, проблемы с классическими потоками, были похуй.
Перечитай мой предыдущий мессаг и процитируй, где я хоть одним словом заикнулся про иммутабельные структуры данных. А когда ты нихуя не найдешь - пиздуй нахуй.
>>2786715 Я вот когда изучал работу с spring data jpa года три назад - игрался с query dsl. А сейчас смотрю, что он сдох, уже 2 года нет обновлений. Хотя был удобнее, чем критерия и с типобезопасностью получше.
>>2786512 >Перечитай мой предыдущий мессаг и процитируй, где я хоть одним словом заикнулся про иммутабельные структуры данных. А когда ты нихуя не найдешь - пиздуй нахуй. >>2783989 >встала проблема конкуррентного доступа к общим мутабельным данным >В функциональных и прочих декларативных языках таких проблем и не было никогда.
>>2786514 >Асинхронность тащат, да, но не изобретая при этом новый ЯП, а вкорячивая в имеющиеся. Только проблема в том, что по нормальному асинхронную работу можно сделать только если при дизайне языка про неё думать. Акторы в Эранге органично вписываются в дизайн языка, а акторы в Скале костыль, который к тому же криво работает. Асинки красят функции и портят стектрейсы, а у Горутин таких проблем нет.
>>2786523 >И что тебя смущает? Пайк, Томпсон, Гризмер, Тэйлор, Кокс. Конкретный костяк людей, стоящих у истоков гоу. 1. Некоторые моменты в дизайне Го вызывают вопросы о психическом здоровье авторов. 2. Будь ты хоть трижды гений, в одиночку язык не запилить. Нужна стандартная библиотека, нужно долго и методично работать над производительностью.
Ну и че ты процитировал? Где я здесь утверждаю, что "иммутабельные структуры, это какой то там способ реализации многопоточности"? Сам бред придумал, сам его опроверг - типичный двачер-демагог в споре блять.
>Только проблема в том, что по нормальному асинхронную работу можно сделать только если при дизайне языка про неё думать.
Ты жопой не верти. Исходный стейтмент был про то, что с нуля учитывать проблемы при проектировании языка несравнимо проще, чем костылять в имеющихся, поэтому критиковать джаву апеллируя к гоу и эрлангу в этом вопросе смысла не имеет.
Что касается "нормальности" асинхронщины - а ты не дохуя ли на себя берешь с такими заявлениями? С чего ты решил что если эрланг существует с бородатых лет, все остальные языки должны были быть на него похожи и со старта лабать и мейнтейнить "зеленые" потоки проектировать? Чтобы что, какую проблему решить? Это сейчас, когда условный гугл обслуживает миллиарды запросов в секунду, старая схема "реквест-тредпул" для его юз-ке1йсов скейлится хуево, а во времена первых джав все было и так заебись. Причем что характерно, в первых джавах была своя либа с зелеными потоками, но ее выпилили за ненадобностью в версии 1.3 (https://web.archive.org/web/20040211225937/http://java.sun.com/developer/technicalArticles/Programming/linux/)
>Будь ты хоть трижды гений, в одиночку язык не запилить.
Я что, должен блять юридическим языком в диалоге с тобой все разжевывать, чтобы ты не капитанил? Ты еще давай впиши мне в качестве контраргумента что помимо стдлиба нужно нихуевое финансирование, чтобы язык занял хоть какую нибудь нишу, а не сдох в забвении. Идея языка тем не менее принадлежала трем людям из списка выше, первый тулинг для него также написали они, то есть стадию "придумать язык" они прошли сами.
>Будь ты хоть трижды гений, в одиночку язык не запилить. Нужна стандартная библиотека, нужно долго и методично работать над производительностью.
Мне что, при общении с тобой надо все досконально разжевывать?
>>2784767 Не, не паттерн. Реактор в мавене это просто механизм, который позволяет мавену понять, в каком порядке нужно собирать модули (так как модули могут друг от друга зависеть, порядок имеет значение).
>Если у меня должен быть класс, который из нескольких сорцов генерит какую-то штуку, как его назвать?
>>2787509 Нахуя в стандартной либе джсон, шиз? Этих джсонов - с десяток библиотек, есть даже одна от оракла в джакарте. Ты часом не из тех дебилов, у которых стандартная либа обязана быть все-в-одном?
Что такое Kubernetes и зачем он нужен для Java? На hh.ru практически в каждой вакансии: "Docker/K18s". С Docker вроде еще понятно, он нужен для автоматического развертывания окружения. А это что за хуйня?
>>2790821 >Как без рефлексии сделать так чтобы строка "foo.bar.baz" превратилась в цепочку вызовов "foo.getBar().getBaz()"? JEP 430 реализовать свой StringTemplate.Processor, но и там надо будет писать в синтаксисе Java: foo.getBar().getBaz()
Можете ссылку дать на то как пишут auth со spring security на микросервисах с jwt токенами? Я все что нахожу это монолитное, хочу разобраться. Или расскажите мне.
В этом мире просто нет ни одного современного лаунчера на андроид, который бы имел нужные мне возможности. Я уже думаю вкатиться в java и самому блять сделать его или форкануть какой нибудь и добавить нужных функций
Мб кто сталкивался: на рабочем пк (макос) JavaMailSender норм отрабатывает, любые сообщения отправляются. Заливаю на сервак в докер. При отправке вылезает ошибка
>>2791833 на серваке поднят nginx с https сертификатом, но я, как понимаю, его не использую. Есть вариант отправлять по http или для smtp это важно? Или есть какой то вариант подргузить сертификат в докер? Нашел способы просто сертификат загрузить, а как его внутрь контейнера положить не представляю
>>2791848 если ты из докера отправляешь, то значит тебе надо позаботиться об этих сертификатах внутри своего образа. Ищи как установить сертификаты в жабу, и прикрути эту команду в докерфайл
>>2791828 мыл.ру разве не пидорнули белые господа из своих своих цепочек сертефикатов? Качай скрепные сертефикаты от товарища майора чтобы пользоваться этим спидозным калом вместо почты.
Поясните, на кой хер нужно ключевое слово assert? Ну ок, напишу я условие через ассерт, ну упадёт оно. Выдаст мне Error, который не перехватить, и всему пизда. А чтобы не было пизды, надо отключить ассерты, сделав эти строчки бессмысленными. Можно, конечно, использовать их только в тестах, но и там везде жэюнит, в котором assertTrue() и т.д. В общем, для меня этот кал выглядит как легаси-сахар, который позволяет срать не снимая свитер. В чём я не прав?
>>2792578 Да, это понятно, я имел в виду тот код, который пишу я/разрабы на рабочих проектах, на которые работать нанимают и за которые деньги платят. >>2792582 Спасибо, анон, про то и был вопрос.
Поцаны, какая вилка для джуна? Есть 2 оффера, оба 60к на руки, Екатеринбург, соглашаться? Ощущение, что хочется 70, но не знаю чем мотивировать. Есть какие то предложения? Правда ли, что оффер дают с запасом? Т. е можно сторговаться, или это только для ребят от уровня мидл?
В чем понт дженериков в рантайме? Почему перемогают именно этим? Сложилось впечатление что исключительно из-за того что не в рантайме не тру,а если тру то можно со спокойной душой писать свои лаба1
Всем привет. Насколько сейчас актуально вкатываться в джаву? Вводные - работал аналитиком, могу немного прогнать на питоне, знаю хорошо скл . Стоит ли начинать обучаться, чтобы позже выйти на стабильную работу?
>>2794840 Так по заветам Борисова ничего делать не надо, он на пальцах показывает как спринг устроен. В прикладном коде иногда нужны аннотации, которые делаются над метааннотациями спринга. И там рефлексия не нужна.
>>2794437 Не всё можно нормально реализовать. Например метод Map.get(Object) принимает именно Object а не тип ключа именно из-за ограничений дженериков в джаве. Или классический пример String[] приводим к Object[], а List<String> к List<Object> нет, то контр интуитивно и объясняется именно особенностями реализации. По объекту нельзя узнать для какого типа он специализирован, приходится добавлять тип в виде поля явно. Нельзя работать с примитивами.
>>2795170 >Например метод Map.get(Object) принимает именно Object а не тип ключа именно из-за ограничений дженериков в джаве
Нихуя подобного. Мапгет принимает обжект не из-за дженериков, а из-за долбоебизма кодеров, которые референс мапы оформляют без дженерика.
>Или классический пример String[] приводим к Object[], а List<String> к List<Object> нет то контр интуитивно и объясняется именно особенностями реализации
Опять нихуя подобного. Контринтуитивно это только для тех кодеров, что не понимают что такое ковариантность, и не знают, что массивы ковариантны по конвеншену. Рантайм ничегошеньки не меняет в этом плане.
>По объекту нельзя узнать для какого типа он специализирован, приходится добавлять тип в виде поля явно
Да, и именно поэтому по рантайм-дженериках пиздострадают в первую очередь любители рефлексии. Таких хлебом не корми дай типозависимую логику в рантайме говнокодить.
>Нельзя работать с примитивами.
Единственный объективный недостаток. С валхаллой может быть разрешится.
>>2795425 > Мапгет принимает обжект не из-за дженериков, а из-за долбоебизма кодеров, которые референс мапы оформляют без дженерика.
Хм. Ок, здесь я проебался. Мапгет действительно задекларирован как принимающий Object. Тем не менее крайне сомневаюсь, что причина этого - именно джавовые дженерики, а не задел для полиморфизма.
>>2795425 >Нихуя подобного. Мапгет принимает обжект не из-за дженериков, а из-за долбоебизма кодеров, которые референс мапы оформляют без дженерика. Чел, ты пишешь про вещи которые не понимаешь. Если гет будет иметь иметь сигнатуру V get(K key) то из мапы с вайлдкардами ничего нельзя будет прочитать. Это именно то, чего хотели избежать авторы этой ебалы. А вот из мапы вообще без параметров все будет прекрасно читаться Нубы не в курсе, что переменная объявленная без указания типов эквивалентна объявлению с типами Object. Таким образом старый код будет компилироваться без ошибок, только ворнинги. Вот пример https://pastebin.com/hZEVjwec justMap.get(n) прекрасно читает данные, а numberObjectMap.get(n) не компилируется. По этой же самой причине Collection.contains(Object) а не T. Авторы хотели чтобы коллекцию с вайлдкардом можно было читать и удалять оттуда данные, но нельзя было ничего туда добавить.
>Контринтуитивно это только для тех кодеров, что не понимают что такое ковариантность, и не знают, что массивы ковариантны по конвеншену. Рантайм ничегошеньки не меняет в этом плане. Ты как обычно. Ковариантность можно сделать любую, все определяется средствами которые есть. Для массивов сделали потому что это достаточно безопасно. Если String[] привести к Object[], а потом попробовать туда засунуть String то ты получишь ошибку в рантайме. А если разрешить такое с List то ошибки не будет и в List<String> будет лежать Object. И ошибка вывалиться совершенно в другом месте, а не там где проблема возникла. И никаких способов бороться с этим в Джаве нет.
А вот у C# такой проблемы нет, поэтому там ковариантность работает по другому. Там IEnumerable<string> спокойно приводим к IEnumerable<object>. а вот для List они такую опцию не сделали, чтобы не было как с массивами, хотя технически они могли это сделать.
>Да, и именно поэтому по рантайм-дженериках пиздострадают в первую очередь любители рефлексии. Таких хлебом не корми дай типозависимую логику в рантайме говнокодить. Свой доморощенный анализ оставь для мамы, она за тебя порадуется. А по сути, рантайм дженерики позволяют реализовывать такую штуку без рефлексии: T NewInstance<T>() where T : new() { return new T(); } Компилятор и рантайм просто вставят вызов конструктора, без всяких рефлексий.
>>2795986 >Если гет будет иметь иметь сигнатуру V get(K key) то из мапы с вайлдкардами ничего нельзя будет прочитать
Да, я ниже уже отметил что проебался в этом месте.
Это все конечно здорово, но как описанная тобой дилемма коррелирует с отсутствием дженериков в рантайме? Проблема о которой ты гутаришь - проблема типобезопасности, а не дженериков как таковых. Говоря о твоем примере с пастбин, ты просто гипотетически не имеешь права делать get на мапе с ключом extends Number, потому что далеко не факт, что референс мапы указывает на мапу Numberов, а не мапу, например, Integerов, откуда по спецификации GenericMap читать по Number ты не имеешь права.
>Если String[] привести к Object[], а потом попробовать туда засунуть String то ты получишь ошибку в рантайме
Ничего хорошего в этом нет, кстати.
>Там IEnumerable<string> спокойно приводим к IEnumerable<object>
Ну ты конечно привел пример. Тащемто и в джаве какой нить Iterable<String> спокойно приводится к Iterable<?>, и оттуда потом спокойно читаются Objectы через итератор. Такое же работает и для коллекций, List<String> приводится к List<?>, откуда потом читаются Objectы. А вот к List<Object> приведение было бы уже тупо невалидное. Надо обьяснять, почему?
>А по сути, рантайм дженерики позволяют реализовывать такую штуку без рефлексии
Ну и что. Конструктор-референсы вполне себе покрывают нужду дженерикового создания обьектов там где это нужно. Без рантайм-дженериков.
>>2796070 >Ничего хорошего в этом нет, кстати. Ты последнее слово что-ли хочешь оставить, ебло? Смысл был в том, что это лучше, чем вообще словить это хуй знает где и когда, чем сразу же после делания хуйни.
>>2796091 Сука, разницу между "получишь ошибку в момент выполнения ошибочной строки" и "получишь ошибку хуй знает когда после выполнения ошибочной строки" видишь?
>>2796070 >Проблема о которой ты гутаришь - проблема типобезопасности, а не дженериков как таковых. Говоря о твоем примере с пастбин, ты просто гипотетически не имеешь права делать get на мапе с ключом extends Number, потому что далеко не факт, что референс мапы указывает на мапу Numberов, а не мапу, например, Integerов, откуда по спецификации GenericMap читать по Number ты не имеешь права. Ага get(Number) делать нельзя, а get(Object) можно, ахуительная логика! Нет тут никакой проблемы типобезопасности, вся суть в том как реализованы дженерики в джаве. Если у тебя есть тип с вайлдкардом, то можно вызывать только те методы где этот тип возвращаемый параметр, а там где он аргумент - вызывать нельзя.
Вот тебе настоящая проблема типобезопасности именно из-за сигнатуры get(Object) https://pastebin.com/kqpXGizt ни одного ворнинга нет, а ClassCastException есть. Если бы сигнатура была get(K key), то метод было бы нельзя вызвать, но при этом и ClassCastException не было бы.
>Ну ты конечно привел пример. Тащемто и в джаве какой нить Iterable<String> спокойно приводится к Iterable<?>, и оттуда потом спокойно читаются Objectы через итератор. Такое же работает и для коллекций, List<String> приводится к List<?>, откуда потом читаются Objectы. А вот к List<Object> приведение было бы уже тупо невалидное. Надо обьяснять, почему? Ты читаешь сам знаешь чем. Во первых я писал "почему" и сравнивал с поведением массивов. Во вторых речь идет о том, что там можно кастить просто к базовому типу, без ёбли с вайлдкардами. В третьих разница состоит в том, что у разработчиков Джава просто не было выбора какое поведение реализовывать, реализовали что смогли. А вот у ребят из команды сишарпа выбор был, но они решили не повторять поведение массивов.
>Конструктор-референсы вполне себе покрывают нужду дженерикового создания обьектов там где это нужно. Без рантайм-дженериков. Не ты ли тут проводил психоанализ людей которые любят рефлексию в прод коде?
>>2796182 Сам сука. Разница - это когда тебя компилятор по рукам ебашит, видя что ты хуйню творишь. Когда тебя по рукам бьет рантайм, это в лучшем случае - безнадега. В худшем - джаваскрипт. Поэтому ковариантность массивов в джаве - не самая удачная идея. По сути - они ковариантны лишь из-за обратной совместимости с джавой <=1.4, где дженериков еще даже в качестве идеи не существовало. По факту - нихуя ковариантного в них нет.
>Вот тебе настоящая проблема типобезопасности именно из-за сигнатуры get(Object) https://pastebin.com/kqpXGizt ни одного ворнинга нет, а ClassCastException есть. Если бы сигнатура была get(K key), то метод было бы нельзя вызвать, но при этом и ClassCastException не было бы.
Пиздабол. Проблема в твоем примере не из-за сигнатуры, а из-за реализации TreeMap. Замени TreeMap на HashMap в своем пастбине - сигнатура останется прежней, а проблемы больше не будет.
>Во вторых речь идет о том, что там можно кастить просто к базовому типу, без ёбли с вайлдкардами
Ты тоже читаешь жопой судя по всему. Прикасти лист интежеров к листу обжектов, и поясни, почему add() стринги на таком прикащенном листе - не параша ебаная, которая должна прескаться еще компайл-тайме.
>Не ты ли тут проводил психоанализ людей которые любят рефлексию в прод коде?
А для тебя метод референсы значит это рефлексия? Еблан или как?
>>2796265 ЕБЛАН ТУПОРЫЛЫЙ, МАКАКА ЕБУЧАЯ, НИКТО ТЕБЕ НЕ ПЫТАЕТСЯ ДОКАЗАТЬ, ЧТО ЭТО ИДЕАЛ ДЛЯ ПОДРАЖАНИЯ, СМЫСЛ В ТОМ, ЧТО ОШИБКИ С МАССИВАМИ В РАНТАЙМЕ НЕ ТАК ПЛОХИ, КАК МОГЛИ БЫ БЫТЬ ОШИБКИ С ДЖЕНЕРИКАМИ В РАНТАЙМЕ, ОБЪЕБОС СУКА
"Могли бы быть" такие ошибки разве что у балбесов, которые, используя дженериковые типы, не декеларируют у них дженерики, потому что "ыыыыыы.... компилятор дууушит, вайлдкарты это слооожна, вариантность это слоооожна, пусть все что мне нужно будет ковариантно и кастится как я хочу".
>>2796265 Ты тупой и агрессивный, это мой последний ответ тебе, дальше ебись ты конём.
>Пиздабол. Проблема в твоем примере не из-за сигнатуры, а из-за реализации TreeMap. Замени TreeMap на HashMap в своем пастбине - сигнатура останется прежней, а проблемы больше не будет. Ты просто тупой и не можешь посмотреть на остальные сигнатуры в SortedMap, например headMap(K toKey) - тут сигнатура метода не допускает таких проблем. По твоим тупым высерам видно, что ты не читал один из самых первых дизайн документов дженериков, где прямо сказано >In particular, the language is designed to guarantee that if your entire application has been compiled without unchecked warnings using javac -source 1.5, it is type safe.
>Прикасти лист интежеров к листу обжектов, и поясни, почему add() стринги на таком прикащенном листе - не параша ебаная, которая должна прескаться еще компайл-тайме. Повторяю для тупых >разница состоит в том, что у разработчиков Джава просто не было выбора какое поведение реализовывать, реализовали что смогли. А вот у ребят из команды сишарпа выбор был, но они решили не повторять поведение массивов.
>А для тебя метод референсы значит это рефлексия? Еблан или как? Я думал что ты про MethodHandle, ок это не рефлексия, но все равно костыль. Ошибешься, передашь не тот метод референс и класс каст экспенш.
>А вот у ребят из команды сишарпа выбор был, но они решили не повторять поведение массивов.
Ты блять заебал уже. Я с самого начала тебе говорю что массивы по сути не ковариантны, и решение сделать их такими в джаве было от безнадеги - ты рвешься как неадекват, и апеллируешь ровно к тому же самому.
Сука, перечитал и искренне пытаюсь разобрать твою шизофазию, не выходит. Походу она отсюда проистекает:
>А если разрешить такое с List то ошибки не будет и в List<String> будет лежать Object. И ошибка вывалиться совершенно в другом месте, а не там где проблема возникла. И никаких способов бороться с этим в Джаве нет.
"Разрешить", лол. Единственный способ, как ты можешь это "разрешить" в джаве, это не специфицировать дженерики у дженериковых типов, что априори моветон, и идея вместе с мириадой статических анализаторов тебе за это подсветит. Если у тебя переменная List<?>, которая указывает непонятно на какой лист, ты попросту не сможешь вызвать у него add ни с чем, даже с Object, потому что ни один тип не подойдет под вайлдкарт.
>Ошибешься, передашь не тот метод референс и класс каст экспенш.
Не передаш. Типы не сойдутся, компиляция не пройдет.
>>2797174 А хули в них хорошего? Мутабельные и иммутабельные коллекции одни интерфейсы имплементируют, кидая рантайм-эксепшоны на попытку мутировать то, что нельзя. Map декларирует контракт для ключей, IdentityHashMap его по пизде пускает. И это еще из того, что с наскоку вспоминается, приколов с коллекциями хватает.
>>2797522 Значсмотри. Берешь, выкраиваешь неделю, и начинаешь люто бухать. Прям в мясо, в щи, в дрободан нахуй, не просыхая. Рраз - и через неделю ты уже синьор спринг-девелопер. Если из запоя выйдешь.
>>2797612 На мидла как минимум три передоза за спиной должно быть. Отсутствие оных свидетельствует о твоей слабой активности и тяге к знаниями запретным в том числе
>>2797703 Сорян, я имею в виду инспекцию unchecked generic array creation for varags prameter, и в совокупности, главный майндфак для меня - Possible heap pollution from parameterized vararg type. Я непонимаю че там за хип екарны бабай, че за полюшен?
>>2797704 О, вот кстати еще одна бесспорная объективная проблема отсутствия дженериков в рантайме, которую мог бы привести в пример тот психушник выше, если б был хоть немного в теме.
Тут скорее к терминологии вопрос, heap у нормальных людей это системная память или там ещё какая память, почему "засрать массив объектами неправильного типа" называется "heap pollution"?
Парни, всем спасибо за ответы. Вчера напился до беспамятства. Не знаю что вчера произошло, но когда проснулся увидел 15 хард задач в решённых. Если нажраться перед собесом на какую ЗП претендую после оффера?
>>2799522 >>2799523 Ой, все. Душнилы подтянулись, щас новичка душить будут: "ококококо, стримы, ломбок не нужны, ко-ко-ко, а вапще-то тестовое задание на стримы правильней было бы решать через хибер"
Аноны, скажите пожалуйста, как получить, что дата была создана именно вчера? У меня пока что получилось вывести дату ровно сутки назад (но это не то), а мне нужно чтобы у юзера менялся день в календаре, а соответственно и значение
>>2799525 Ну и нахуя стримы нужны в при >O(n)? Тем более изначально надо запрашивать Ordered by данные, ну или хотя бы sorted list сделать. Хуита, а не задание.
>>2799722 >Пипец ты душный, чел. Ну вообще преждевременная оптимизация зло, да. Ну вообще я не про асимптотику, а про то, что все, что не линейно решать через стримы такое себе.
Оцените апишку. По сути у меня есть user_uuid из keycloack и я хочу привязать этот uuid к общему аккаунту. Так есть два запроса для создания. Один пут, который использует имя из тела и получатся создает ресурс по адресу /{requestAccount.getName()}, второй же пост, который если еще не существует общего аккаунта, то создает новый, иначе возвращает старый. Также стоит упомянуть, что общий аккаунт подгружается через jwtAuthenticationConverter.
>>2800396 Слой контроллера перегружен, лучше всю логику в слой сервисов перенести.
Не понял нахуя ты путом регаешь по особому пути, в чем проблема передавать все на "/register", а в теле все передать (requestAccount как я понимаю)? Уникальность имени (стринги) уже в коде проверить.
Геттеры и сеттеры нахуя написал? Пиши @Data и не выебывайся.
Статические классы для дто не годятся, используй обычные pojo. Либо я твою логику не понял и ты решил специально насрать себе в штаны сломав стейтлес
Возвращать респонс энтити можно, но лучше просто саму дто вернуть. Результат тот же, кода меньше.
>>2800409 Не очень понимаю какую конкретно логику в сервисы запихнуть.
Пост автоматически генерирует имя. Типа id%. В путе это имя в теле задаётся и его изменить можно. Т.е. по сути как в вкшечке можно менять путь до аккаунта.
а зачем вообще изобретают новые языки? Ради нескучного синтаксиса и сахарка? Главное это же инфраструктура, либы и сообщество. Жаба я думаю и до судного дня доживёт если хозяева не пойдут по пути шарпа
>>2800599 Ничем, уёбывай в свой ПЩ. >>2800736 Да, старые языки надоедают. Это как SQL, который идеально решает свои задачи, но его пытаются заменить, потому что наскучил.
>>2800736 >>зачем вообще изобретают новые языки? Сахар, лицензии, какие то нужные только тебе фичи. Если бабла много - то че бы и не кинуть его на хотелки техдира.
Адекватных причин для новых языков - где то около трех:
- Своя парадигма на чужом рантайме (typescript, kotlin, scala, closure) - Уникальная экспериментальная идея или фича, которую невозможно или невыносимо тяжело вкорячить в имеющийся язык (как borrow-checker в rust) - Корпораты и их инвестиции (typescript и go)
В остальных случаях это - рядовые Васяны, колхозящие свои языки либо ради интереса и нового опыта, либо в надежде засветиться со своей поделкой перед корпоратом (в РФ последнее неактуально).
>>2800985 Ну перепутал. Я имел ввиду обратное. По идее пост должен каждый раз возвращать новый аккаунт. Я этого обеспечить не могу, тк uuid уникальный. Да и ник тоже. Но мне нужно как-то генерировать уникальное имя для пути. Вопрос какой метод для этого использовать.
>>2800382 >Оцените апишку. Говно, вы нихуя не понимаете в АПИ! АПИ должно выражаться платформо независимым языком. Так чтобы его и ЖопаСкриптер, Котлиноид, Гофер понял. АПИ описывается в терминах: присылаете А, получаете Б. А не ебучие картинки с кодом.
>>2800409 >Либо я твою логику не понял и ты решил специально насрать себе в штаны сломав стейтлес Статические классы никак не поламают стейтлесс, потому что поля внутри обычные, а не статические. Просто чтобы инстанцировать такой класс тебе не нужен инстанц его родителя.
>>2801929 >Да похуй мне, есть сваггер и опенапи. Именно про это, тебе дебилу, в первом посте и написали >АПИ должно выражаться платформо независимым языком.
>>2802879 >тебе дебилу Ну я если че тебе не отвечал. Просто у меня мне нужна оценка и кода в том числе, да и разбираться с опенапи сейчас впадлу, ибо не доделано есче.
>>2801297 Ну к слову, решил проверки переместить в репозитории. Правда пришлось написать методы для проверки существования. По моему я костыли какие-то делаю...
Уже 14 день пишу памятку как распознать вкатунца (ссылки на законы, где проверить выписку, что и как фиксируется в ИП, где можно пробивать вкатунца (чаты), примеры резюме-обманок, примеры накрутки опыта, примеры пет-проектов самозванцев и многое другое)
Сам додик, баклан недоделанный. Где ты там смешивание подходов нашел, ослина?
>>2803000 Ну так и пиздуй к себе в загон, и хуйни не неси, раз не знаешь и не интересуешься. Типичный шарпей блять - мозгов нет, по делу сказать нечего, но надо потявкать на мимокроков, показать свою значимость.
>>2802994 >Тем более, что jpa работает на jdbc. И вот эти методы точно также раскладываются в jpql.
Формально говоря - нихуя подобного. JPA это не просто JDBC в типобезопасной обертке. Это еще и персистенс контекст с энтитями. Там свой положняк, и он довольно душный, с нюансами. Поэтому смешивать нежелательно.
Но тебе это не грозит пока что, ты просто лабаешь JPQL через аннотации.
ЗЫ: авторизацию зря засунул в репы, имхо. Лучше б на рестах оставил.
>>2802969 >>Это против хуйцов которые рисуют себе опыт А в чем проблема с нарисованным опытом? Его рисуют и джуны и херки - по итоги все получают что им нужно.
>>2803020 >>Там свой положняк, и он довольно душный, с нюансами. Если у меня щас жук на проекте, то стоит душится хибернейтом в петах, чтоб на собесах не попускали или потом за пару недель гэпа подтянуть смогу?
>>2803020 Ну ето понятно, что там есть кэши разных уровней. Так или иначе, все проходит через jdbc внизу. Да и вон, целую главу посвятили sql, так что можно смешивать, просто редко действительно нужно.
> авторизацию зря засунул в репы, имхо. Мне вообще сложно понять на какой ее уровень лучше впихнуть, на уровень контроллера, сервиса или репа.
>>2803020 В том то и дело что ты привык к своему java говну А я как специалист со стороны без предвзятого мнения заявляю, что выглядит как смешанное говно бакланов.
На скринах подход богов, читаемо. гибко, защищено, умно и хитро!
>>2803043 Говно ты, а не специалист. Ты и сам это в глубине души это понимаешь, иначе бы не шароебился по чужим предам в попытке продать свою персональную предвзятость.
>>2803029 >Мне вообще сложно понять на какой ее уровень лучше впихнуть
Впихивай ее туда, куда пользователь смотрит (и где он может напиздеть). Покрывай ими все внешние АПИ, включая ресты. С покрытием компонентов уровнями ниже есть такой подводный камень, что ты очень легко в будущем можешь впороться в ситуацию, когда такая авторизация входит в конфликт с новым пользовательским сценарием и тебе понадобятся обходные лазейки, поэтому аккуратней.
>>2803062 Понятно, ты уже даже и не отрицаешь свою суть, клоун. Предъявляет за предвзятость, но даже значение слова такого не знает. "Выглядит" у него. И продает-продает-продает.
>>2803028 >>Оставь ченить одно. У меня сейчас жук на проекте и мне с ним заебись.
>>Смотря куда. Читай требования к вакансиям. Хибер я почти не знаю, но в вакансиях он часто мелькает. Вот и интересно много ли его реально и надо ли там что то задрачивать годами или достаточно пару глав в книжке почитать для собеса на мидла
>>2803064 Не неси чушь Я тебе все по фактам разбил Существуют языки, которые лучше твоего, представь себе? Потому что их проектировали современные люди, представь себе? Потому что их развивают, представь себе?
Я тебе разнес по фактам, а у тебя единственный аргумент - это доебаться до двух опечаток в тексте.
>>2803110 Ты тупой, не выкупаешь? Мочи на ебало мало?
Ты слишком чмо чтобы я с тобой на равных спорил. Ты просто омежка-приживала, который приперся сюда и пытается в залупу залезть.
Что мне, что прочему треду похуй на твои ценности, доводы и аргументы. С тем фактом что джава неидеальна и есть языки новее и засахареннее, я уж как нибудь проживу. А вот быть тобой - зашкварышем, бестолковой пиздой на всякий хуй, проткнутым евангелистом дешевым - позорнее участи вряди существует.
>>2803308 Так о каком посреднике речь? У ьебя joinTable, через который ты указываешь FK - какую таблицу ты укажешь, такая и будет. Ты так говоришь как будто мы твою схему знаем чтоб судить, насколько посредник у тебя general_account_mapping
>>2803734 А, ну да. Есть некий общий счет, который внутри содержит конкретные счета. Вроде это разделение понадобилось, чтобы ввести имя общего счета, ну типа путь до аккаунта, что-то типа vk.com/id1234567, а ну и еще потому, что я не могу влезть в регистрацию пользователя, она где-то в keycloack происходит. Потому нужны изъебства какие-то. Пока думаю, пользователь заводит аккаунт в keycloack, заходит обратно на сайт, я вижу, что нихуя у него нет общего и пишу, мол неплохо бы настроить. И вот настройка есть создание общего аккаунта. Также после регистрации можно просто перекидывать на страницу настройки.
>>2803756 Подобные действия. Карта тут нужна, чтобы в репозитории не писать кучу методов для проверок всяких. А вот привязывать натуральный ключ к primary вроде плохая практика. Пик 3, короче.
>>2803775 Проверка на принадлежность счета общему счету. Также взятие счета без репозиториев, просто при имении AccountNumber и GeneralAccount. Еще добавление, если не существует. putIfAbsent. Может еще что-то понадобится, ну проще говоря, с картой эти действия более объектно выглядят что ли. >>2803785 А с чего он не изменяем-то? Как раз изменяем. В вк можно же менять путь до аккаунта. Также как и номер счета почему бы и не изменить.
>>2803787 в мире банков ты можешь открыть счёт, можешь закрыть счёт. Но изменить номер счёта ты не можешь. В этом весь смысл. Номер счёта это и есть ид счёта
>Проверка на принадлежность счета общему счету SELECT count(account_number) > 0 FROM sub_account WHERE account_number = :subAccountNumber AND parent_account_number = :parentAccountNumber
Не имею ни малейшего желания выяснять как это получить через говнохибернейт
>>2803795 У меня не банк, мне похуй на их правила. Это фантики, по сути номер счета, это то, куда перевести, условно номер телефона. Че я и номер телефона в банке не могу поменять? Нахуй бы пошли они со своими правилами. Ну я уже делал подобное, туть >>2802947 Просто не хочу пихать все методы в репозиторий.
>>2803800 в сущности "телефонный номер" ты не можешь поменять номер телефона. Если у тебя сущность "клиент", то ты можешь менять у него номер телефона.
>>2804010 Как валидатор нормально написать? По моему какая-то параша нетипобезопасная вышла. Все что требуется, это проверка на то, что элементы в массиве имеют в сумме какое-то значение. Также нужно как-то передать функцию, для преобразования элементов массива в число.
Зашел в своей Чите в книжный ларек, а там 99 книг по Го и сотая книга издательства Маннинга под названием Concurrency in Practice in .Netбомбанулоно книга хорошая
Помогите советом. Есть ресурс сервер и клиент. Какой лучший способ запихнуть данные об юзере в сессию, чтобы они были актуальны и обращений к ресурс серверу было минимально количество? И еще стоит ли с этим вообще заморачиваться?
>>2806679 >Если по stateless то в SecurityContext Ну клиент, наверное, должен заботиться о состоянии хоть как-то. Хотя разве SecurityContext всегда не хранит состояние? >сделай бин сессионный и туда сри. Ну это понятно. Я про синхронизацию. Если условно другой клиент ник сменил у юзера. Как я про это узнаю вообще?
Или проще не хранить полное состояние, а только то, что нельзя изменить... Но тогда каждый при каждом обновлении странички придется стучаться в ресурс сервер.
>>2806684 >Хотя разве SecurityContext всегда не хранит состояние? Нет. Там вагоны разных конфигураций и случаев. Если монолит, то обычно на входе стоит фильтр, который по куку или хидеру (JWT) понимает что за пользователь и просто подгружает его данные из базы в SecurityContext. А на логине просто отдаешь этот jwt и дальше клиент с ним ебется как хочет. В микросервисах там все сложнее с OAuth2 и еблей в жопу.
>Я про синхронизацию. Если условно другой клиент ник сменил у юзера. Как я про это узнаю вообще? >Но тогда каждый при каждом обновлении странички придется стучаться в ресурс сервер. Ладно. Возможно я не так понял. Ты клиент пишешь или сервер? Или ты пишешь сервер, который стучит на другой сервер? То что я выше написал конкретно относится к сприновым серверным кишкам.
>>2806727 > В микросервисах там все сложнее с OAuth2 и еблей в жопу. Вот у меня OAuth2 как раз. > Ты клиент пишешь или сервер? Клиент. Браузерный. Statless сервер ресурсный вроде написал, вот хоть какую-то морду хочу, но не совсем понятно как сократить количество обращений к ресурс серверу. Хотя, наверное, забить на это можно.
>>2806779 В общем, попробовал сделать. Я говорил про строчку на пик 2. Мне придется добавлять ее практически в каждом контроллере. По моему это как-то неправильно...
Привет аноны. Хотел бы конечно здесь посидеть. В тред заходят и пожилые сеньоры, высказываются. Но мне очень не нравится какая-то общая токсичность на двачах, что здесь, что в МВП (здесь конечно поменьше)
Когда школьники спорят - это весело. Пыжатся чего-то, молодые. Те, кто понял жизнь, не спешит считать сколько там бит в лонге, это всё пустое.
Короче, посоветуйте что можно послушать\почитать по распределенной архитектуре, систем дизайну, а то джуны уже крутят кайфу, а я сижу.
>>2807565 Так и этот шрифт - моноширинный. Просто в идее помимо текста еще есть хинты, из-за которых моноширинность ломается. Все претензии - к жидбрензу.
>>2807653 Ничего хорошего обычно нет в том, чтобы класть в базу куски кода или файлы. Если этого возможно избежать, лучше этого избегать. Например, для файлов заиметь файлсервер/S3, а в базе хранить лишь ссылки.
Сап двач, думаю я в правильное место за карьерным советом пришел, Думаете есть смысл перекатываться в джаву если цель найти ремоут за баксы в ближайшем будущем? сейчас стек hadoop, pyspark (дата инж), за рубежом к этому попросят опыт с облаками и ci/cd а на такие позиции меня не берут)))))) вроде вижу вакухи джава джунов на хх
Где хуйню для метрик инициализировать? Вот есть у меня класс,мне всякие Counter/Timer в конструкторе создавать? А если мне нужна метрика по полю которое существует только в рамках метода?
>>2808628 Да микрометер. Я просто хуй знает, хочется как-то единообразно все организовать,а гайды и дока говно говна. Как написать что-то сложнее greeting count хуй напишут. Все что я вынес из этой писанины это то что все происходит через MicrometerRegistry. При этом есть всякие GaugeBuilder которые вообще хуй знает что делают
>>2808908 На свое время были слишком громоздкими,джава приложуха могла грузиться дольше чем сам сайт. Когда мощности подросли идея поместить среду для запуска в браузер взлетела в виде флеш игр
>>2809254 >а ты пруфани свою чушь, что браузеры были дырявее апплетов. >https только недавно стал обязательным и бесплатным >ехал CSRF через XSS Да ты тупой.
>>2809295 Нихуя. Отказались от них в тот момент, когда их депрекейтнули. Никаких более-менее безопасных аналогов в то время не появлялось, просто появилась мода на SPA.
>>2809295 От них отказались потому что гугл выкинул нахуй интерфейс для старых плагинов который дохуя много позволял. Это была конкретно проблема не ява аплетов (они редкий зверь), а ебанного флеша.
Я бы русскую ОС сделал с предустановленной JVM. А в браузере разершил апплеты. И всё бы писал на джаве. Игры, фронтенды, бэкенды. Ничего кроме джавы. Миллионы разработчиков на джаве, которых готовят со школьной скамьи.
>>2809737 Ну я там перепривязал к ga. А так, вроде критерия апи как критерия апи. Главный пиздец, это сервис, для которого все это чудо надо. По сути-то кулдаун вычисляется. Т.е. произошло действие и вот скока ждать еще. Ну так или иначе, надеюсь уже скора закончу и меня таки возьмут жуном...
>>2809835 Я же изменяю кулдаун. Если не сделать детач, то контекст вытолкнется и они изменят свое значение. Можно бы было ебнуть вообще рид онли, но я не в репозитории, а двигать это выше как-то неявно.
>>2809749 >>2809846 1 - Зачем тебе @transactional над методом если ты сам детач вызываешь. В самих репозиториях уже ведь есть везде @Transactional так ты просто ведь продлеваешь жизнь транзакции без причины. 2 - Если ты делаешь детач то я могу предположить что этот метод возвращает в контроллер? Может тогда мапстрактом просто проще в DTO перевести и готово. 3 - зачем на 52 строке ты опять проверяешь лист на емпти если ты уже это делал на 48?
>>2809857 1. Мне бы хотелось, чтобы оба select-а были атомарны. Я честно не знаю, будут ли проблемы, если это не учитывать. 2. Типа DTO перенести в область сервиса? Так вроде низя. 3. Там разные листы.
>>2809955 Ну типа выборка n сущностей. Короче обычное перелистывание на сайте. Просто без привязки к id. https://www.baeldung.com/hibernate-pagination >>2809959 Ну тут не проверки, а просто чтобы лишние действия не делать. А можешь проконсультировать по поводу дто? Я просто не очень понимаю, как именно стоит их впихивать в сервисную часть. Может примеры есть какие-то
>>2809969 >Короче обычное перелистывание на сайте. Ты рофлишь чтоли? Подключаешь JpaRepository и хуяришь нужный тебе запрос с Pageable. Можешь какие угодно туда лимити, оффсеты хуярить и сортировки.
>>2810960 я читал мнение что хибернейт тянуть только из-за мапперов, которые якобы сложно писать. У меня на ручное написание маппера сущности уходит ну минут 10. Ради экономии 10 минут тянуть хибернейт, на который потом тратить часы?
>>2811387 Мотай на ус что тебе старшие говорят, может быть тогда и сможешь стать таким же умным красивым и успешным джуном с двумя месяцами опыта как я
>>2811392 >>2811393 Ну я это к тому, что для жпа может быть одно написано, а в его классах что-то другое. Просто вот он появился раньше и теперь куча дубликатов есть и возникает вопрос, есть ли разница между ними.
Кстати, а если сделать транзакционным метод A, B и C. Потом сделать что-то подобное: A() { B(); C(); } Будет ли контекст из B виден в C?
>>2811405 Ты блядь пользуешься энтити менеджером,это класс жпа. У хибернейта есть класс реализация—сешн фактори. Жпа это интерфейс,хибер реализация,хули не понятно
>>2811422 Да отъебись ты от меня. Про это во вступлении книжек пишут блять, а ты мне это как скрытое знание какое-то превозносишь. Если не понял про что я, то в SimpleJpaRepository может быть одно, тогда как в Criteria#setFirstResult что-то другое. Если для тебя это один хуй разница, то пользуйся HashTable, не знаю.
>>2811945 Онбординг, потом можно говорить про изучение кода, потом уточнять всякую хуйню (все заняты, поэтому мол ждет пока с ним поговорят 2 недели). Потом когда поймут, что наняли хуеплета, лиду нужно будет еще убедить кабана, что это мошенник и надо заново выделять ресурсы на поиск работяги. Тот будет лепить отговорки что мол ты ж лид, подтяни джуна, хуле ты. Чем больше бюрократии, тем дольше это все длится.
>>2811929 >проделать это без библиотек. >2k23 >senior java 24/7 lead enterprise developer не может редактировать csv без библиотек Библиотеки для csv есть но они кривые и написаны криворукими даунами для криворуких даунов, не способных написать парсер цсв. Терабайтные цсв ими не поколупать, терминальные случаи типа когда в заголовках и в строках разный разделитель, они в принципе не поддерживают
>>2812275 На самом деле нет ничего плохого в этом, если в целом тащишь. Я вкатывался в нулевых с неплохим опытом в смежных вещах, осемблирах и интерпрайзе на проприетарном говне, в целом с опытом ведения проекта, но на жабе мне дали такой конченый продукт что я в ахуе уволился через 8 месяцев, решив что ето не для меня. Но потом устроился на норм проект и понял что все-таки не во мне дело было. Так что всегда есть вариант что даже если ты дартаньян, можно влипнуть
Если дело касается резюме, то какого уровня проект не стыдно будет добавить и показать? У меня кроме чисто рабочей хуйни из той сферы, где я сейчас работаю никих идей нет.
Всем привет. Пишу консольный калькулятор, который должен работать как с арабскими, так и с римскими цифрами. Однако, в том месте, где программа выбирает с каким типом цифр ей работать, происходит проблема - возвращается ноль вместо нормального целочисленного значения: public class Oberon { public static void main(String[] args) { Scanner s = new Scanner(System.in); int result = 0; System.out.println("Желаете использовать римские, или арабские числа? В первом случае введите I во втором - 1"); String cebteul = s.nextLine(); //Вот здесь блок работы с римскими цифрами. if (cebteul == "I") { System.out.println("Введите два числа"); String ss = s.nextLine(); String[] forMath = ss.split(" "); int[] forMath1 = new int[2]; for (int i = 0; i < forMath.length; i++) { FromRomanToArabic rome2Arab = new FromRomanToArabic(); forMath1 = rome2Arab.RometoArab(forMath);
} //А здесь идет работа с цифрами арабскими. } else if (cebteul == "1") { System.out.println("Введите два числа"); String ss = s.nextLine(); String[] forMath = ss.split(" "); int[] forMath1 = new int[2]; for (int i = 0; i < forMath.length; i++) { forMath1 = Integer.parseInt(forMath); } } System.out.println("Введите операнд");
String operand = s.nextLine();
switch (operand) { case "+": result = forMath1[0] + forMath1[1]; break; case "-": result = forMath1[0] - forMath1[1]; break; case "": result = forMath1[0] forMath1[1]; break; case "/": result = forMath1[0] / forMath1[1]; break;
}
System.out.println(result);
} } Причем когда я использую блоки работы с цифрами по отдельности - все прекрасно работает. Проблема начинается тогда, когда я подрубаю все эти if-else.
>>2812723 Я не говорил что он мне не нравится, скорее даже наоборот. Но он не имеет такой поддержки как жаба. В жабу вкидывают бабло всякие гуглы, делают кучу всяких ждк и гц. Даже у микрософта есть свой ждк для жабы. С котлином все не так хорошо - его главная фича - это умение доедать за жабой, поэтому его не ебет что собственных либ на нем нет. Но просто так его никто не поддерживает, не вваливает миллиарды, не пишет сотни либ. Поэтому он не может быть убийцей жабы, он сам помрет тут же. На бэке - сразу, в андроиде попозже, но его готовы сместить всякие дарты и прочие мутные языки.
Привет. Что выбрать: Котлин или Ява? Мне почему-то всегда казалось, что в мобильных приложениях в разы больше перспектив и роста, или это ошибочное мнение и веб по-прежнему сверхактуален?
>>2812914 а что ещё может быть? Десктоп умер, остались только монструозные автокады, 3дмаксы и архикады на плюсах. Порт жабы в фронт веба пытались делать (GWT) взлетело, но не затмило жабаскрипт. Мобилки так и работают на жабе
>>2809749 Переделал. Но нормально ли так использовать мапперы и дто в сервисах? Впрочем, так можно контролировать сколько сервис информации отдаст и даже валидацию из джакарты прикрутить.
>>2813131 Хотя лично я вижу тут три проблемы, во первых квадрат, во вторых кривость апи, что нужен фулл аккаунт, а не его имя. А также кривой мердж. Надо значение забирать. Надо поправить все...
>>2813145 тут не спринг, тут хибернейт в основе проблем. Создает иллюзию что не надо знать бд + делает невозможным нормальную работу с бд. Плюс требует конверторов
>>2813147 В чем плохость? У меня тогда будет полное имя пакета для каждого Name. Так и че насчёт пропихивания в сервисы дто и мерджа для восстановления сущности? >>2813145 Подумать над чем? Ты конкретнее скажи в чем проеб...
>>2813156 потому-что эта штука так и провоцирует выгрузку всего графа и поиск через код/итерации вместо написания запросов. Её для этого и создавали.
В коде куча каких-то запросов, при этом на выходе только одна сущность. Предположу что там происходит select и update, но всрато. Значит надо было написать один селект и один апдейт и запускать их в транзакции. Ещё эти вары. В итоге непонятно что это - структура, лист или что это
>>2813155 >скажи в чем проеб Ну вот у вас хибернейт, фреймворк позволяющий делоть автоматический маппинг стркутуры БД, и код который делает маппинг и составляет объекты вручную. Я никогда не юзал хибернейт но мне кажется что за 20 или сколько там лет его существования, должны были быть выработаны средства и решения, позволяющие не писать такие простыни вручную. Т.е. это классический кейс "треугольника кастомизации" - боимся писать сами, берём 24/7 библиотеку, пишем к ней тонну костылей, в то время как прямой путь от задачи к решению был бы гораздо менее затратен.
>>2813165 Не совсем. Там выгружается 10 таких сущностей. Соответственно раз Lazy, то декартового произведения не будет. Потом по другой табличке мы смотрим когда там крутили эти кейсы в диапазоне id конкретный юзер. Вычитаем кулдаун вычисляя актуальный. Тут только селект 10 сущностей будет. Ну и аккаунтов. >>2813167 Это нестандартный запрос вроде как. Тут около 5 таблиц затрагивается.
>>2813170 > Соответственно раз Lazy, то декартового произведения не будет ошибаешься.
SQL select с 5 джойнами - элементарно. Через хибернейт 5 сущностей - nightmare, хз что оно нагенерит и с каким оверхедом. Я про это и говорю, эта штука не дает писать нормальные запросы и провоцирует всё выгружать в код
>>2813170 >нестандартный запрос Значит это не круд а бизнес код, репорт по существу. Репорты делать через хибер это сразу кринж. Сущности нужны только для апдейтов.
>>2813172 >>2813175 Вы фрики? Почему нельзя вручную кверю прописать? Тебе надо сделать пагинацию, выбираешь по 10 объектов и шлёшь на юи, что не так? Или ты хочешь ещё кэшировать данные?
>>2813178 Не очень понял в чем притензия. Это все в сервисе как бы происходит. Хибер отвечает только за загрузку аккаунта, кейсов и дат. >>2813183 Там не просто пагинация >>2813170
>>2813183 >Почему нельзя вручную кверю прописать? потому-что кверю делаешь через энтити, а значит через всю эту хибернейтовскую логику по генерации запросов и выгрузке графа
>>2812914 >>2813039 Есть ли смысл изучать сначала Яву, а потом постепенно переходить на Котлин? Или план хуйня? Просто у меня такое чувство, что от бека я охуею. Тем более если судить по вашим постам, то Яву кроме как в бекенде не используют.
>>2813213 Короче хуй знает, что с этим мерджем не так, но он хуярит декартово произведение по ленивым коллекциям. Проще по id искать. Так и дтошки можно упростить до получения айдишек. https://pastebin.com/3EVrXcDT
>>2813309 Спроси в Андроид-треде. Может, к 2023 году уже успели написать учебники по котлину, не опирающиеся на знание жабы. Ведь раньше котлин без жабы было выучить невозможно.
>>2813187 А меня это должно волновать? Запрос к базе есть? Данные вытащил которые мне необходимы? Значит всё правильно сделал. Какие-то энтити-шизы в треде. Какой-то граф. Ну охуеть теперь.
Пиздос, всю жизнь юзал JdbcTemplate и ни про какие графы ебучие не слышал. Воистину, придумали себе трудности с этим говнохибернейтом и теперь героически их превозмогают.
После двух лет на текущей галере вообще с хибером не имел дело. С jooq нормально так поигрался. Вот думаю работу менять. Но вот с жуком почти нет вакансий. Там пару десятков из нескольких тысяч. А хибер или спринг дата просто везде. Так неохота всю эту хиберовскую мудотень изучать ради собесов, вы бы знали.
Ведь этот язык: - жив только в тырпрайзе со скуфами, если не считать котлин - сложный для освоения (имеется в виду не чистая Java) - многословный - работа только от 3х лет коммерческого опыта (где ты вкатусик будешь его брать - никого не ебёт лол) - без вышки сразу нахуй
В чём я не прав? Java - отвратительный выбор для новичков, а лохи которые повелись на javarush будут дальше работать таксистами/грузчиками.
Почему тогда в этот язык все вкатусики так стремятся, если они потом всё равно нахуй пойдут, и будут дальше работать таксистами?...Слабоумие и отвага? Что ж, похвально.
>>2813172 >SQL select с 5 джойнами - элементарно. Через хибернейт 5 сущностей - nightmare, хз что оно нагенерит и с каким оверхедом. Ты просто зеленый джун, который увидел в логах огромное полотно запроса хибера и напридумывал себе там какой-то оверхед, а если бы пошел и закинул бы в базу на EXPLAIN то понял бы что нихуя оверхеда там нет вообще. Там просто многословный маппинг полей сущностей на хиберовские алиасы.
>>2813663 >- жив только в тырпрайзе со скуфами, если не считать котлин Ну да. Сереьзные проекты, бигдата, хайлоад и вот это все. А котлин жив только на ведре. Ты слишком молой и не знаешь что уже кучу раз изобретали язык-заменитель Java для JVM: Scala, Closure и прочие. И они сейчас мертвы чуть менее чем полностью.
>- сложный для освоения (имеется в виду не чистая Java) Жаба - супер простой язык. Спринг просто добавляет магию, которой нужно научиться пользоваться.
>- многословный Уже нет. Сейчас просто километровые штуки вмещаются в несколько строк стримов.
>- работа только от 3х лет коммерческого опыта Как они это проверят?
>- без вышки сразу нахуй Хз. Я знаю некоторые вкатывались и без образования. Главное скилл чтобы был.
>>2813740 А ты три дня гайды по Весна Ботинок перед сном читал, как Пророк Скуфений советовал?
Если да - можешь хоть щас на собес идти, и меньше чем сотыгу не проси.
Можешь ещё Зимовать месяц поучить под балтику 9 с копчёной косичкой, нарисуешь потом себе год-два опыта с этой технологией на проектах - один хуй проверять не будут.
Ну и потом устраиваешься, через полгода после трудоустройства тёлку примерно пикрил получаешь и сотыги в кармане.
>>2813663 >- жив только в тырпрайзе со скуфами, если не считать котлин >- многословный Это правда и для меня это не проблема. Я сам скуф-вкатун из экономистов. И хотел в тырпрайз, для меня корпоративный софт ближе чем интернет-магазин. А пару бойлерплейт уровня public static void main для меня не проблема. >- сложный для освоения (имеется в виду не чистая Java) >- работа только от 3х лет коммерческого опыта >- без вышки сразу нахуй Это не правда. Я вкатился, у меня куча знакомых вкатилось. Пол отдела без вышки по специальности. И моя галера еще джунов и стажеров постоянно набирает.
>>2814188 1)Сколько у вас часов в танках? 2)Любимое пиво? 3)Чем отличается клев на блесну и на резинку? В каких случаях вы бы использовали блесну? А в каких резинку? 4)Какой жмых вы бы использовали при ловле на закидушки? 5)Лучшая модель волги на ваш взгляд,аргументируйте 6)Лучший маринад для шашлыка на ваш взгляд?
>>2814175 >>Пол отдела без вышки по специальности. Речь был а о вышке, а не о специальности. А то вкатился якобы без вышки, а потом выясняется что он инженер-скуфировщик. юристы и экономисты тоже котируются Без вышки - это школа и все. Максимум - технарь.
>>2814320 Чел, в моем поколении 30-летних у 70% есть хоть какая то корка о во. И людей вообще без корки, кто вообще заинтересован вкатиться не так много. А из тех кто хотел бы большинство дропает этот ваш кодинг на циклах. Хотя у нас работают пару ребят без вышки, кто закончил пту на программистов.
>>2814358 В 20 самое время начать ее получать. Студента второго курса примут с намного большей вероятностью, чем челика без корки. Когда поступишь, будет всего 21. Это на самом деле немного, всего на 4 года старше обычных первокуров. Если на заочку, то наоборот скорее всего будешь младше большинства. У тебя еще целый год на поступление. Мне вот советовали люди, как я получил военник в 19 лет - дропать нафиг эконом и поступить в на информатику на 1 курс. Я поленился готовиться и зассал отчисляться. И еще 3 курса проучился. О чем до сих пор жалею.
>>2814669 И щито, я получаю инженерную заборостроительную вышку, как она мне поможет? Только время теряю, когда хожу на пары. Мог бы дрочить литкод больше, ещё один год терпения остался и диплом кроме мамки никому не нужен будет, на заводе я был, там всё печально
>>2814392 Учеба и решение курсовых- беполезный дроч. Трудно делать то, что нахуй никому не нужно. Преподу похуй че ты там наваяяешь - лишь бы сдал что то. Студенту похуй че делать - лишь бы зачет получить и забыть про эту бесполезную нудятину.
А на работе ты погружаешься в контекст, понимаешь что это не просто набор символов, на который всем похуй, а что то реально работающее. И твой говнокод кому то может быть нужен. За него даже готовы платить. Это очень мотивирует развиваться джуна по крайней мере, преисполнившийся мидл - это другое
>>2815238 >а что то реально работающее не факт >твой говнокод кому то может быть нужен еще сильнее не факт
А еще тебе придется учить кучу хуиты для собесов, для ассесментов. А потом оно в реальной работе тебе никогда не пригодится. Или тебе лид на ревью будет ебать мозги клинкодом, неймингом и гоф-паттернами, а в его собственном коде будет так насрано, что ты такого больше нигде не увидишь.
>>2815287 Ну вот, например ItemDTO: https://pastebin.com/MfCeDZZM Эти слои в ином случае перетекут в пакеты. И вот мне для каждого реквеста по имени надо полное имя писать. Чем это лучше?
Да и что по поводу реальных вопросов, не похуй ли как уложены эти дтошки? Че за духота блин...
>>2815333 Блядь,если это ты до этого спрашивал про пагинацию,то я пиздец в предвкушении что за адский монстр у тебя получится. Будет яндере симулятор джава треда. Останешься в истории
>>2815419 Вначале было ничего. Потом объект. И подумал объект, не создать ли ему своих детей. И сотворил он полиморфизм и сказал всем зверям - плодитесь и размножайтесь.
>>2815333 А зачем тебе столько классов с одинаковым названием, которые являются вложенными дтошками основной дтошки? Тем более вложенные не один раз. Структура вложений одна и та же. Может и поля и методы те же? Может нужно использовать одни и те же вложенные дтошки в разных корневых?
Это читать больно, как в контроллере, так и в самой этой дтошке. Да, полное имя класса с пакетом было бы читать менее больно.
>>2815425 У нейма может быть разная валидация. Потому, для каждой дтошки нужны свои классы. >Нахрена там дтошки с дженериками вообще не ясно. Всм не ясно? Там только один класс дто с дженериком, который контейнер - Page<?>. А вот интерфейсы с дженериками нужны для контракта имен. Мол геттер будет иметь поле того имени, что надо. Ну и NotNull. С ломбоком лучше бы смотрелось, но я не хочу его использовать.
>>2815442 Конечно скуфы на ревьюверах тебя наругают. Они ещё более зашоренные, чем мы здесь Ну ты сперва допиши и скинь. А потом уже перепишешь. Это треш конечно. Но хочется понять задумку.
>>2815293 >>придется учить кучу хуиты для собесов Я не про собесы, а про саму работу.
>>лид на ревью будет ебать мозги клинкодом, неймингом и гоф-паттернами Уж лучше так, чем профессор будет ебать мозги тем что отступ слева для реферата 2см, а не 2.5см - а значит незачет, все переделывай (а содержание даже смотреть не станет).
Но вообще на работе долбоебов таких с манией величия встречал намного реже. Лиду все таки надо чтоб фича была запилена, а преподу - нет. Это ты должен доказывать, что ты что то важное делаешь и он должен уделить 5 минут своего драгоценного времени на оценку. Программистов пока никто не заставляет продавать кабану ручку
>>2815448 Ну времени нет никогда. Впрочем я просил скинуть мне пример архитектур с дто. Ну пока не скинули. >>2815446 Вроде показывал уже https://habr.com/ru/articles/513072/ . Через интерфейсы удобно контракт задавать. А то, как они запиханы - просто форма же, ну я так думал.
>>2815447 >Программистов пока никто не заставляет продавать кабану ручку Постоянно заставляют. Особенно лидов. Лиды продают нужность затащить теху, нанять людей. Нужность фичи тоже продают. А если у вас с бизнес аналитиками и пмами плохо, то и обычный разраб уровня мидла будет за них работу делать. То есть и постановку задачи делать и презентовать клиентам и за фитбеком сам бегать по всем смежникам, прям как в универе за преподом и что угодно всем вокруг продавать.
>>2815466 Сервиса? В плане вот этого? Хуй его знает, про смысл архитектуры в тех книгах, что я четал не писали. Когда тут спрашивал, забить предположили. Пока я вижу, что хрень, которая берет на себя грязь в виде репозиториев, а также имеет контракт в виде дто, а соответственно и тех данных, что предоставляет. Мол вот публичный сервис, который дает только публичную инфу юзера. Или сервис, который дает конкретную информацию по домену.
>>2815467 Ну я такую хуйню несколько раз встречал. И в мвп жаловались люди на подобное. Ну типа кабан тебе скажетя: "Ну мы можем нанять еще двух аналитиков, но тебя, Сычев, мы тогда уволим." Ну в мяскотах, фаангах или больших галерах такого нет или намного меньше.
>>2815472 В чем суть твоего пет-проекта. Какое у него применение? Зачем тебе 17 почти одинаковых сущностей? Зачем ты использовал какой-то стремный паттерн использования дтошек от нонеймов?
>>2815480 >Какое у него применение? Ну изначааально это был пик. Потом бд сократились до онли реляционной, но суть примерно та же. Есть кейсы, крутишь, выигрываешь айтемы, какие-то можно продать, так производится эмиссия денег ремиссия же есть покупка кейсов пока что. >Зачем ты использовал какой-то стремный паттерн использования дтошек от нонеймов? Ну напиши нормальные.
>>2815487 А как ремиссия относится к лотерее? Ремиссия это буквально уничножение денежек. Если мы говорим про цифры на счетах это значит, что у кого то цифры списываются, и никому другому они не записываются.
>>2815517 Лотерея стоит денег. Типа вот чтобы покрутить кейс, тебе надо заплотить денежку - это ремиссия, так как нет дебита. Потом ты можешь, что-то выйграть, это будет эмиссией. Вообще не такие важные эти термины, просто суть в том, что фантики не подвержены инфляции, как в кликерах. >>2815519 Ой вот на счет кафки хз, я когда это писал-то. А аппаратные генераторы просто долгие, типа им нужно время для сбора энтропии. По сути в очередь встать может, но мне кажется кафка тут не особа нужна, потому я на нее тоже забил.
>>2815551 Польза это категория морали. А тут гильотина юма... Проще говоря, зависит от принятой морали в обществе. Так можно сказать, что отберёт деньги у агентов, что ими распоряжаться нормально не могут. Но тк у меня тут только фантики, то хз, покажет реальные шансы выйрать в казино и отговорит лудомана мб. Как с вейпами. Короче можно много чего навыдумывать, я же просто на рандом её выбрал. >>2815552 Тут нет реальных денег и весь код открыт.
>>2815458 >https://habr.com/ru/articles/513072/ Это говно выглядит, как будто кто-то хочет замутить что-то вроде соапа поверх реста, но на уровне дтошек в контроллере. А если у меня полсотни полей в сущности? И десятки дтошек? Это 50 интерфейсов, и десятки вложенных классов, каждый из которых наследуется от десятка интерфейсов? И все внутри класса, на тысячи строк? Заманчиво. И это кстати забывая о том, что при хорошем декаплинге дтошка вообще не должна ебать, что там в классе-сущности.
>>2815589 >А если у меня полсотни полей в сущности? Ебать табличка, наверное. >И это кстати забывая о том, что при хорошем декаплинге дтошка вообще не должна ебать, что там в классе-сущности. Ну тут она тоже не ебет вроде. Ебет только маппер. Ну как я это вижу.
>>2815616 Чеееел. Мы из тырпрайза. 50 полей в табличке это вариант нормы. Бывают и сони полей в табличке. >>2815618 Просто пишешь все в отдельных классах. И называешь по-разному, чтобы не таскать полное имя с пакетом.
>>2815621 Натурой на пару часов разве что. >>2815622 >Просто пишешь все в отдельных классах. И называешь по-разному, чтобы не таскать полное имя с пакетом. Ну наверное позже перепишу, но интерфейсы-то все равно можно и оставить же. Просто в ином случае надо валидацию пр. в каждом классе индивидуально писать, также можно проебаться с именем поля.
>>2815647 А тебе-то зачем? Реально выебать хочешь? Ужас, уже чувствую себя грязным........ >>2815638 К слову, так норма ли в сервисы пихать дто? Как они выглядеть в идеале должны-то?
Как примерно растёт ЗП от опыта в Java разработке? Понятно, что опыт бывает разный, но джуну с годом опыта никто не готов платить 600к+, а синьор с 10 годами опыта, который запрашивает 200к будет выглядить странно. Расскажите примерно с каким опытом на какую ЗП можно рассчитывать? Было бы здорово собрать бигдату и построить график, но едва ли у кого-то из тут сидящих будут такие данные.
>>2815972 Обычно менять формат нужно при сериализации. И для этого у джексона есть специальные аннотации типа @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd@HH:mm:ss.SSSZ") private Date createdDate;
Написал микросервис с сервисом пользователей и сервисом фильмов. Каждый из них отправляет созданных пользователей/фильмы в Н2 и свой топик кафки. Можете сказать как теперь связать сервисы? Чтобы можно было добавить к примеру связь пользователь onetomany фильм. Сервис пользователя должен обращаться к сервису фильмов через кафку и тот уже доставать из бд фильм?
>>2816561 Не ну тут без микросервисов не обойтись конечно. Ну как я уже скозал uuid должно хватить. Не надо даже сагу по идее, да и без кафки можно вполне.
>>2820038 Да и похуй, тебе от этого хуже если знаешь хотя бы на базовом уровне? Тем более если не знаешь. А если не хочешь, то что вообще здесь делаешь?
>>2816664 Ты долбоеб ебаный, кажется ему. Все всегда говорят, что с первой работы надо ливать, потому зп поднимают нехотя и со скрипом. Мой случай не исключение я начинал с 30 стажером, дошел до 60 серой зп за полтора года, а когда принес оффер на 130 тыщ после вычетов налогов работадатель не поверил, сказал что я его набываю и на всякий случай поднял мне зп на пятеру, да на 5 тыщ рублей и это не шутки! В самом деле так и было. Конечно же я уволился.
Подскажите, че делать дальше? Освоила все основное по самой джаве, пописала сервисы на спринг буте, на чистом спринге, с бд тоже научилась работать, тесты писать умею. Планирую дальше изучить как работает кафка, потыркаться в нее, что еще надо добрать чтоб пойти джуном? И если кто-нибудь устраивался здесь без опыта джуном, поделитесь как это было: накручивали ли опыт, скока зп, как сильно ебали на собесах и сколько их понадобилось? Заранее спасибо
>>2837475 Во-первых в следующий раз смотри на дату последнего поста в треде. Есть свежий >>2816575 (OP)
А по вопросу самое главное в устройстве джуном на первую работу - УДАЧА. Без рофлов. Всё остальное имеет намного меньшее значение. Ну ещё могут ролять: - профильная вышка, - резюме, из которого будет понятно, что ты не сантехник, который услышал про IT из рекламы на ютубе, а увлекаешься этим с детства и это не стало твоей профессией по чистой случайности. Проблема свитчеров в том, что из курсов они получают очень поверхностные знания. Знания информатики хоть и не так важно, но даст возможность разговаривать с другими IT специалистами на одном языке, сойти за своего. А это как минимум половина успеха. - фотография в резюме, которая внушает ощущение, что ты можешь быть толковым джуном. - пол я бы выбрал мужской, но это моё субъективное мнение.
Какие у вас там нахуй могут быть проблемы со вкатом?
Учитесь 1 год, потом пиздуете в какой-нибудь епам откуда попадаете на работу. У меня многие знакомые примерно одинаковый путь и проходили, причем как с вышкой так и без.